OpenStack API client for golang
Go to file
Dean Troyer a279956280 Add Session as base REST interface
This is the initial implementation of a Session object that handles
the REST calls similar to the new Session in python-keystoneclient.
It will be expanded to utilize a callback to an appropriate authentication
handler to re-authenticate as required.

This is intended to replace CallAPI in the util/util package.

Change-Id: I585968cc584327427da3429ef7005dd909c8b8b0
2015-04-18 01:24:46 -05:00
examples Add Session as base REST interface 2015-04-18 01:24:46 -05:00
identity/v2 Add Session as base REST interface 2015-04-18 01:24:46 -05:00
image/v1 Add Session as base REST interface 2015-04-18 01:24:46 -05:00
objectstorage/v1 Add Session as base REST interface 2015-04-18 01:24:46 -05:00
openstack Add Session as base REST interface 2015-04-18 01:24:46 -05:00
testUtil Add Session as base REST interface 2015-04-18 01:24:46 -05:00
util Docs revision for current status 2015-04-18 01:24:36 -05:00
.gitignore Adding sublime project files to the gitignore. 2014-10-09 14:46:58 -04:00
.gitreview Added .gitreview 2013-06-04 14:01:00 +00:00
CONTRIBUTING.md Workflow documentation is now in infra-manual 2014-12-05 03:30:45 +00:00
LICENSE All tests passed. Initial commit. 2013-07-14 21:12:30 +07:00
README.md Docs revision for current status 2015-04-18 01:24:36 -05:00

README.md

OpenStack Golang Client

NOTE(dtroyer) Apr 2015: This repo is under heavy revision as it is being revived.

stackforge/golang-client is yet another implementation of [OpenStack] (http://www.openstack.org/) API client in Go language. The code follows OpenStack licensing and borrows its infrastructure for code hosting. It currently implements [Identity Service v2] (http://docs.openstack.org/api/openstack-identity-service/2.0/content/) and [Object Storage v1] (http://docs.openstack.org/api/openstack-object-storage/1.0/content/). Some API calls are not implemented initially, but the intention is to expand the lib over time (where pragmatic).

Code maturity is considered experimental.

Installation

Use go get git.openstack.org/stackforge/golang-client.git. Or alternatively, download or clone the repository.

The lib was developed and tested on go 1.3. No external dependencies, so far.

Examples

The examples directory contains examples for using the SDK using real world working code. Each example starts with a two digit number followed by a name (e.g., 00-authentication.go). If you have a config.json file in the examples directory following the format of config.json.dist the example can be executed using go run [example name] setup.go. Or, all the examples can be executed running the script run-all.sh from the examples directory.

Testing

There are two types of test files. The *_test.go are standard golang unit test files. The examples can be run as integration tests.

The tests were written against the [OpenStack API specifications] (http://docs.openstack.org/api/api-specs.html). The integration test were successful against the following:

If you use another provider and successfully completed the tests, please email the maintainer(s) so your service can be mentioned here. Alternatively, if you are a service provider and can arrange a free (temporary) account, a quick test can be arranged.

License

Apache v2.

Contributing

The code repository borrows OpenStack StackForge infrastructure. Please use the [recommended workflow] (http://docs.openstack.org/infra/manual/developers.html#development-workflow). If you are not a member yet, please consider joining as an [OpenStack contributor] (http://docs.openstack.org/infra/manual/developers.html). If you have questions or comments, you can email the maintainer(s).

Coding Style

The source code is automatically formatted to follow go fmt by the [IDE] (https://code.google.com/p/liteide/). And where pragmatic, the source code follows this general [coding style] (http://slamet.neocities.org/coding-style.html).