OpenStack Golang Client ======================= NOTE(dtroyer) Apr 2015: This repo is under heavy revision as it is being revived. `openstack/golang-client` is an implementation of [OpenStack] (http://www.openstack.org/) API client in [Go language](http://golang.org). The code follows OpenStack licensing and uses its CI infrastructure for 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/). The initial focus is on building a solid core REST Session and OpenStack authentication on which to build the usual API interfaces. The architecture if the `Session` and authentication is similar to that used in the current Python Keystone client library: The `Session` object contains the HTTP interface methods and an authentication object that provides access to the auth token and service catalog. Current State ------------- Code maturity is considered experimental. * The new Session object is functional and used by most of the code now. * The examples work. * The image tests work. * The obejct store tests do not work. * identity/v2/auth.go is now unused, will be kept around for a short time for easier reference. Installation ------------ Use `go get git.openstack.org/openstack/golang-client`. 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: - [DevStack](http://devstack.org) 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 utilizes the OpenStack CI 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).