jrperritt | c138523 | 2014-09-03 19:52:54 -0500 | [diff] [blame] | 1 | == Gophercloud -- V0.2.0 image:https://secure.travis-ci.org/rackspace/gophercloud.png?branch=v0.2.0["build status",link="https://travis-ci.org/rackspace/gophercloud"] |
Glen Campbell | a1f6f22 | 2013-06-20 11:10:46 -0700 | [diff] [blame] | 2 | |
Jon Perritt | 8ef2153 | 2014-08-28 16:44:36 -0500 | [diff] [blame] | 3 | Gophercloud currently lets you authenticate with OpenStack providers to create and manage servers (compute service) and objects (object-storage service). |
| 4 | We are working on extending the API to further include block storage, DNS, databases, security groups, and other features. |
Samuel A. Falvo II | ff3f09d | 2013-06-20 17:54:26 -0700 | [diff] [blame] | 5 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 6 | WARNING: This library is still in the very early stages of development. Unless you want to contribute, it probably isn't what you want. Yet. |
Samuel A. Falvo II | 9e271cf | 2014-02-25 11:21:43 -0800 | [diff] [blame] | 7 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 8 | === Outstanding Features |
Samuel A. Falvo II | 0755281 | 2013-06-27 15:02:13 -0700 | [diff] [blame] | 9 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 10 | 1. Apache 2.0 License, making Gophercloud friendly to commercial and open-source enterprises alike. |
| 11 | 2. Gophercloud is one of the most actively maintained Go SDKs for OpenStack. |
Jon Perritt | 8ef2153 | 2014-08-28 16:44:36 -0500 | [diff] [blame] | 12 | 3. Gophercloud supports Identity V2, Nova V2, and Object Storage V1 APIs. More coming soon! |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 13 | 5. Gophercloud supports automatic reauthentication upon auth token timeout, if enabled by your software. |
| 14 | 6. Gophercloud is the only SDK implementation with actual acceptance-level integration tests. |
Samuel A. Falvo II | ff3f09d | 2013-06-20 17:54:26 -0700 | [diff] [blame] | 15 | |
jrperritt | c138523 | 2014-09-03 19:52:54 -0500 | [diff] [blame] | 16 | === Dependencies |
| 17 | * Go 1.* (For information on installing Go and setting up your environment, go link:https://golang.org/doc/install[here]) |
Jon Perritt | b71daf7 | 2014-09-04 10:02:53 -0500 | [diff] [blame] | 18 | * git |
jrperritt | c138523 | 2014-09-03 19:52:54 -0500 | [diff] [blame] | 19 | |
| 20 | === Getting the code |
| 21 | |
Don Schenck | 3874149 | 2014-09-24 15:23:35 -0400 | [diff] [blame^] | 22 | To download Gophercloud, simply run |
jrperritt | c138523 | 2014-09-03 19:52:54 -0500 | [diff] [blame] | 23 | ``` |
| 24 | go get github.com/rackspace/gophercloud |
| 25 | ``` |
Don Schenck | 3874149 | 2014-09-24 15:23:35 -0400 | [diff] [blame^] | 26 | It will automatically retrieve all dependencies. Goperhcloud and its dependencies will be located within your $GOPATH (%GOPATH% if you are using Windows). |
jrperritt | c138523 | 2014-09-03 19:52:54 -0500 | [diff] [blame] | 27 | |
| 28 | === Running the tests |
| 29 | |
| 30 | Gophercloud has both unit tests and acceptance (integration) tests. |
| 31 | |
| 32 | To run the unit tests, run |
| 33 | ``` |
| 34 | go test -v github.com/rackspace/gophercloud |
| 35 | ``` |
| 36 | from the Gophercloud root directory. |
| 37 | |
| 38 | To run the acceptance tests, run |
| 39 | ``` |
| 40 | go test -v -tags acceptance github.com/rackspace/gophercloud |
| 41 | ``` |
jrperritt | 40b8ee4 | 2014-09-09 10:23:11 -0500 | [diff] [blame] | 42 | *Note: Running the acceptance tests briefly creates (and deletes) real resources. You may incur costs from your provider by running these.* |
jrperritt | c138523 | 2014-09-03 19:52:54 -0500 | [diff] [blame] | 43 | |
| 44 | To run specific tests, use a regular expression with the `run` flag. For example, to just run the authentication test (named TestAuthentication), run |
| 45 | ``` |
| 46 | go test -v -run "Authentication" -tags acceptance github.com/rackspace/gophercloud |
| 47 | ``` |
| 48 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 49 | === What Does it Look Like? |
Samuel A. Falvo II | ff3f09d | 2013-06-20 17:54:26 -0700 | [diff] [blame] | 50 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 51 | The Gophercloud 0.1.0 and earlier APIs are now deprecated and obsolete. |
| 52 | No new feature development will occur for 0.1.0 or 0.0.0. |
| 53 | However, we will accept and provide bug fixes for these APIs. |
| 54 | Please refer to the acceptance tests in the master brach for code examples using the v0.1.0 API. |
| 55 | The most up to date documentation for version 0.1.x can be found at link:http://godoc.org/github.com/rackspace/gophercloud[our Godoc.org documentation]. |
Samuel A. Falvo II | ff3f09d | 2013-06-20 17:54:26 -0700 | [diff] [blame] | 56 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 57 | We are working on a new API that provides much better support for extensions, pagination, and other features that proved difficult to implement before. |
| 58 | This new API will be substantially more Go-idiomatic as well; one of the complaints received about 0.1.x and earlier is that it didn't "feel" right. |
| 59 | To see what this new API is going to look like, you can look at the code examples up on the link:http://gophercloud.io/docs.html[Gophercloud website]. |
| 60 | If you're interested in tracking progress, note that features for version 0.2.0 will appear in the `v0.2.0` branch until merged to master. |
Samuel A. Falvo II | 0755281 | 2013-06-27 15:02:13 -0700 | [diff] [blame] | 61 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 62 | === How can I Contribute? |
Samuel A. Falvo II | 0755281 | 2013-06-27 15:02:13 -0700 | [diff] [blame] | 63 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 64 | After using Gophercloud for a while, you might find that it lacks some useful feature, or that existing behavior seems buggy. We welcome contributions from our users for both missing functionality as well as for bug fixes. We encourage contributors to collaborate with the link:http://gophercloud.io/community.html[Gophercloud community.] |
Samuel A. Falvo II | 0755281 | 2013-06-27 15:02:13 -0700 | [diff] [blame] | 65 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 66 | Finally, Gophercloud maintains its own link:http://gophercloud.io[announcements and updates blog.] |
| 67 | Feel free to check back now and again to see what's new. |
Samuel A. Falvo II | 0755281 | 2013-06-27 15:02:13 -0700 | [diff] [blame] | 68 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 69 | == License |
stackedsax | 563bf05 | 2013-06-25 13:21:00 -0700 | [diff] [blame] | 70 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 71 | Copyright (C) 2013, 2014 Rackspace, Inc. |
Samuel A. Falvo II | ff3f09d | 2013-06-20 17:54:26 -0700 | [diff] [blame] | 72 | |
Samuel A. Falvo II | d79a705 | 2014-03-10 17:18:03 -0700 | [diff] [blame] | 73 | Licensed under the Apache License, Version 2.0 |
Samuel A. Falvo II | ff3f09d | 2013-06-20 17:54:26 -0700 | [diff] [blame] | 74 | |