iwita b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
..
types b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
.gitignore b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
.travis.yml b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
BUILD b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
Gopkg.lock b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
Gopkg.toml b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
LICENSE b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
README.md b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
VERSION b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
api.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
certs.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
device.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
instance.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
protectiondomain.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
scsiinitiator.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
sdc.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
sds.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
storagepool.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
system.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
user.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos
volume.go b9152718d2 new version %!s(int64=5) %!d(string=hai) anos

README.md

Goscaleio

The Goscaleio project represents API bindings that can be used to provide ScaleIO functionality into other Go applications.

Use Cases

Any application written in Go can take advantage of these bindings. Specifically, things that are involved in monitoring, management, and more specifically infrastructrue as code would find these bindings relevant.

Current State

Early build-out and pre-documentation stages. The basics around authentication and object models are there.

Usage

Logging in

client, err := goscaleio.NewClient()
if err != nil {
  log.Fatalf("err: %v", err)
}

_, err = client.Authenticate(&goscaleio.ConfigConnect{endpoint, username, password})
if err != nil {
  log.Fatalf("error authenticating: %v", err)
}

fmt.Println("Successfuly logged in to ScaleIO Gateway at", client.SIOEndpoint.String())

Reusing the authentication token

Once a client struct is created via the NewClient() function, you can replace the Token with the saved token.

client, err := goscaleio.NewClient()
if err != nil {
  log.Fatalf("error with NewClient: %s", err)
}

client.Token = oldToken

Get Systems

Retrieving systems is the first step after authentication which enables you to work with other necessary methods.

All Systems

systems, err := client.GetInstance()
if err != nil {
  log.Fatalf("err: problem getting instance %v", err)
}

Find a System

system, err := client.FindSystem(systemid,"","")
if err != nil {
  log.Fatalf("err: problem getting instance %v", err)
}

Get Protection Domains

Once you have a System struct you can then get other things like Protection Domains.

protectiondomains, err := system.GetProtectionDomain()
if err != nil {
  log.Fatalf("error getting protection domains: %v", err)
}

Licensing

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Support

Please file bugs and issues on the Github issues page for this project. This is to help keep track and document everything related to this repo. For general discussions and further support you can join the EMC {code} Community slack channel. Lastly, for questions asked on Stackoverflow.com please tag them with EMC. The code and documentation are released with no warranties or SLAs and are intended to be supported through a community driven process.