thecodeteam / goscaleio Goto Github PK
View Code? Open in Web Editor NEWArchived repo for GoScaleIO
Home Page: https://github.com/dell/goscaleio
License: Apache License 2.0
Archived repo for GoScaleIO
Home Page: https://github.com/dell/goscaleio
License: Apache License 2.0
Hi,
are there any plans in the near future for a version which is compatible with the scaleio API Version 1.3 ?
Greets
Marc
Enhance the goscaleio bindings to allow for HTTP request/response logging.
Have you tested it in scale io 2.0?
Got an error when I use scale io 2. 0 with this.
{quote}
[root@scaleio_0 ~]# rexray service start --config=config.yaml -l debug
DEBU[0000] updated log level logLevel=debug
INFO[0000] [linux]
INFO[0000] [docker]
INFO[0000] [scaleio]
DEBU[0000] core get drivers osDrivers=[linux] storageDrivers=[scaleio] volumeDrivers=[docker]
PANI[0000] runtime error: invalid memory address or nil pointer dereference
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: (*logrus.Entry) (0x1ad60a0,0xc820229e80)
[signal 0xb code=0x1 addr=0x0 pc=0x97f976]
goroutine 1 [running]:
github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus.Entry.log(0xc820012180, 0xc820241740, 0x0, 0x0, 0x0, 0xc82024cd00, 0x0, 0x0, 0x0, 0xc820229e40, ...)
/home/travis/gopath/src/github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus/entry.go:113 +0x618
github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus.(_Entry).Panic(0xc8201db010, 0xc8201db0f8, 0x1, 0x1)
/home/travis/gopath/src/github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus/entry.go:169 +0xdf
github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus.(_Logger).Panic(0xc820012180, 0xc8201db0f8, 0x1, 0x1)
/home/travis/gopath/src/github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus/logger.go:163 +0xe7
github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus.Panic(0xc8201db0f8, 0x1, 0x1)
/home/travis/gopath/src/github.com/emccode/rexray/vendor/github.com/Sirupsen/logrus/exported.go:107 +0x41
github.com/emccode/rexray/rexray/cli.(_CLI).Execute.func1()
/home/travis/gopath/src/github.com/emccode/rexray/rexray/cli/cli.go:224 +0x2e0
github.com/emccode/rexray/rexray/cli.(_CLI).execute.func1()
/home/travis/gopath/src/github.com/emccode/rexray/rexray/cli/cli.go:243 +0xd4
github.com/emccode/rexray/vendor/github.com/emccode/goscaleio.(_Client).Authenticate(0xc8200e8700, 0xc820229940, 0x0, 0x0)
/home/travis/gopath/src/github.com/emccode/rexray/vendor/github.com/emccode/goscaleio/api.go:101 +0xbb6
github.com/emccode/rexray/drivers/storage/scaleio.(_driver).Init(0xc8201f7230, 0xc8201fe540, 0x0, 0x0)
/home/travis/gopath/src/github.com/emccode/rexray/drivers/storage/scaleio/scaleio.go:84 +0x890
github.com/emccode/rexray/core.(_RexRay).InitDrivers(0xc8201fe540, 0x0, 0x0)
/home/travis/gopath/src/github.com/emccode/rexray/core/rexray.go:86 +0x16fd
github.com/emccode/rexray/rexray/cli.(_CLI).preRun(0xc820204000, 0xc82020da40, 0xc820218480, 0x0, 0x3)
/home/travis/gopath/src/github.com/emccode/rexray/rexray/cli/cli.go:328 +0x381
github.com/emccode/rexray/rexray/cli.(_CLI).(github.com/emccode/rexray/rexray/cli.preRun)-fm(0xc82020da40, 0xc820218480, 0x0, 0x3)
/home/travis/gopath/src/github.com/emccode/rexray/rexray/cli/cli.go:179 +0x48
github.com/emccode/rexray/vendor/github.com/spf13/cobra.(_Command).execute(0xc82020da40, 0xc8202183c0, 0x3, 0x3, 0x0, 0x0)
/home/travis/gopath/src/github.com/emccode/rexray/vendor/github.com/spf13/cobra/command.go:517 +0x911
github.com/emccode/rexray/vendor/github.com/spf13/cobra.(_Command).Execute(0xc82008c700, 0x0, 0x0)
/home/travis/gopath/src/github.com/emccode/rexray/vendor/github.com/spf13/cobra/command.go:617 +0x46a
github.com/emccode/rexray/rexray/cli.(_CLI).execute(0xc820204000)
/home/travis/gopath/src/github.com/emccode/rexray/rexray/cli/cli.go:247 +0x42
github.com/emccode/rexray/rexray/cli.(*CLI).Execute(0xc820204000)
/home/travis/gopath/src/github.com/emccode/rexray/rexray/cli/cli.go:230 +0x3e
github.com/emccode/rexray/rexray/cli.Execute()
/home/travis/gopath/src/github.com/emccode/rexray/rexray/cli/cli.go:204 +0x25
main.main()
/home/travis/gopath/src/github.com/emccode/rexray/rexray/rexray.go:11 +0x14
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1696 +0x1
goroutine 6 [syscall]:
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.1
/usr/local/go/src/os/signal/signal_unix.go:28 +0x37
goroutine 10 [select]:
net/http.(_persistConn).readLoop(0xc8200c7b80)
/usr/local/go/src/net/http/transport.go:976 +0xac7
created by net/http.(_Transport).dialConn
/usr/local/go/src/net/http/transport.go:685 +0xc78
goroutine 11 [select]:
net/http.(_persistConn).writeLoop(0xc8200c7b80)
/usr/local/go/src/net/http/transport.go:1009 +0x40c
created by net/http.(_Transport).dialConn
{quote}
scaleio log shows
{quote}
curl --insecure --user admin:password https://gatewayip:443/api/login
{"message":"Failed connecting to cluster: mdm_ip","httpStatusCode":428,"errorCode":0}
{quote}
{quote}
2016-04-25 17:38:27,493 [http-nio-443-exec-4] ERROR c.e.s.s.s.ConnectionServiceImpl - Failed connecting to cluster
2016-04-25 17:38:27,497 [http-nio-443-exec-4] ERROR c.e.s.s.w.c.SpecialImplController - Got an exception in handleException
com.emc.s3g.scaleio.common.gateway.ScaleIORemoteRuntimeException: Failed connecting to cluster: 88.88.88.88
at com.emc.s3g.scaleio.services.ConnectionServiceImpl.openConnection(ConnectionServiceImpl.java:337) ~[ams-1.0-SNAPSHOT.jar:na]
at com.emc.s3g.scaleio.services.ConnectionServiceImpl.openConnection(ConnectionServiceImpl.java:347) ~[ams-1.0-SNAPSHOT.jar:na]
at com.emc.s3g.scaleio.services.ConnectionServiceImpl.openConnection(ConnectionServiceImpl.java:347) ~[ams-1.0-SNAPSHOT.jar:na]
at com.emc.s3g.scaleio.services.ConnectionServiceImpl.refreshConnection(ConnectionServiceImpl.java:323) ~[ams-1.0-SNAPSHOT.jar:na]
at com.emc.s3g.scaleio.services.ConnectionServiceImpl.invokeRequest(ConnectionServiceImpl.java:251) ~[ams-1.0-SNAPSHOT.jar:na]
at com.emc.s3g.scaleio.services.ConnectionServiceImpl.invokeMethod(ConnectionServiceImpl.java:225) ~[ams-1.0-SNAPSHOT.jar:na]
at com.emc.s3g.scaleio.services.RestServiceImpl.sendRequest(RestServiceImpl.java:589) ~[ams-1.0-SNAPSHOT.jar:na]
at com.emc.s3g.scaleio.services.RestServiceImpl.mdmLogin(RestServiceImpl.java:1059) ~[ams-1.0-SNAPSHOT.jar:na]{quote}
If the package is used before ScaleIO is ready there is a runtime panic that occurs.
[root@mdm1 vagrant]# REXRAY_DEBUG=true rexray get-instance
map[XtremIO:0x5f3d10 scaleio:0x5ed5f0 rackspace:0x5e5af0 ec2:0x5dbd70]
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x10 pc=0x6d63d1]
goroutine 1 [running]:
github.com/emccode/goscaleio.retryCheckResp(0xc20808e078, 0xc20801f2b0, 0x6, 0x0, 0x0)
Effectively there is a program that is installing, configuring, and starting rexray all at the same time. The first instance seems to start just fine but every instance after that fails. One problem is that rexray cannot be started until the scaleio gateway is functioning normally since rexray seems to hit the gateway on start. I am pretty sure that is “functions as designed” but the problem then is I need to start all the rexray instances after scaleio gateway is available.
In an attempt to remedy the situation, I added an exponentially increasing back off delay before retrying plus the additional of a random component but starting the services that failed still wont work. The odd thing is once the program gives up after their number of retries, i log into each host and just do a service start and it works without changing a thing.
rexray_works.log - Is the first instance and rexray starts fine.
rexray_failed.log - Is instance #2 and rexray fails
rexray_retry.log - I ssh into instance #2. The first half of the log is the initial attempt above (rexray_failed.log) and I just do a rexray start
and the service starts normally.
I could not find copyright statement anywhere in this project...
Could you document Copyright please?
Thanks.
https://github.com/thecodeteam/goscaleio/blob/master/LICENSE#L189
Hi,
I tried to use your library but it miss at least one useful metric :
ThinCapacityAllocatedInKb int `json:"thinCapacityAllocatedInKm"`
When EMC will fix the typo issue it should end with "Kb" instead "Km".
Do you need a PR ?
Regards,
Hi, I'm trying to run the api test against my scaleIO cluster and keep getting
a blank system name returned. This is causing my Kube/Scale pod volumes from working.
I appear to be authenticating ok, and get back a System ID, but the system name is blank...
when this happens, the Kube volume code in system.go, line 37 throws an error.
I am new to scaleio and wondering if there is a command I can use to set the system name
in scaleio? I thought it would assign 'default' during the installation but I guess it didn't.
thanks
Add installation manager API coverage.
Install and Configure ScaleIO cluster through Code.
Sincerely,
Victor da Costa
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.