18
2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 1 Gofish – A Golang Client Library for Swordfish Sean McGinnis Dell EMC

Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 1

Gofish – A Golang Client Library for Swordfish

Sean McGinnisDell EMC

Page 2: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 2

High Level View

Gofish

Page 3: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 3

Features

Hides internal details from consumer Presents basic object model Attempts to handle implementation specific

differences so users don’t need to

Page 4: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 4

Background Information

Page 5: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 5

What the Heck is Go? Statically typed language from Google Fast, efficient, and portable

Native concurrency Target different platforms at compile time

package main

import (“fmt”

)

func main() {message := “Hello, SDC!!”fmt.Println(message)

}

Page 6: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 6

Gofish History

Interest in support in OpenSDS project Open Source Liaison group efforts Open source way – saw a need and wanted

to “scratch the itch”

Page 7: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 7

Redfish Overview

Build off of capabilities of IMPI, SMASH, etc. Use modern, interoperable technology REST (HTTP) JSON data representation Clearly defined object schema

Page 8: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 8

Swordfish Overview

Built on top of Redfish specification Adds objects for storage management Close collaboration with DMTF Redfish team

Page 9: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 9

Object Model

Page 10: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 10

Redfish Objects

/redfish/v1

ServiceRoot

./Chassis/1

- Name- Model- Status

./Chassis/1

- Name- Model- Status

./Power

./Thermal

./Chassis/1

- Name- Model- Status

./Systems/1

- Name- Model- Status

./Processor/1

./Memory/1

./EthernetInterfaces/1

Page 11: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 11

Swordfish Objects

/redfish/v1

ServiceRoot

./StorageServices/1

- Name- Description- Status

./Enclosure/1

./Volumes/1

./StoragePools/1

./Endpoints/1

./Drives/1

./FileSystem/1

Page 12: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 12

Demo

Page 13: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 13

https://github.com/stmcginnis/gofish-demo

Page 14: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 14

Contributing

Typical GitHub workflow:

$ git clone https://github.com/stmcginnis/gofish$ git checkout –b [branch_name]$ git push [your_personal_github_account]

Page 15: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 15

Thanks to Contributors!

Juliano Martinezncode

Mike Pittelkomike-pittelko

Page 16: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 16

Call to Action

Try it out! Report any issues via the GitHub issue

tracker Submit pull requests for any updates and

fixes Spread the word!

Page 17: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 17

Links and References

https://github.com/stmcginnis/gofishhttps://redfish.dmtf.org/https://www.snia.org/forums/smi/swordfish

Page 18: Gofish – A Golang Client Library for Swordfish · 2019. 12. 21. · Statically typed language from Google Fast, efficient, and portable Native concurrency Target different platforms

2019 Storage Developer Conference. © 2019 Dell, Inc.. All Rights Reserved. 18

Please take a moment to rate this session.

Your feedback matters to us.