blob: 53cebdfd07c81c0c224d523e903782cbcd8bb1d1 [file] [log] [blame]
jrperrittc1385232014-09-03 19:52:54 -05001== 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 Campbella1f6f222013-06-20 11:10:46 -07002
Jon Perritt8ef21532014-08-28 16:44:36 -05003Gophercloud currently lets you authenticate with OpenStack providers to create and manage servers (compute service) and objects (object-storage service).
4We are working on extending the API to further include block storage, DNS, databases, security groups, and other features.
Samuel A. Falvo IIff3f09d2013-06-20 17:54:26 -07005
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -07006WARNING: 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 II9e271cf2014-02-25 11:21:43 -08007
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -07008=== Outstanding Features
Samuel A. Falvo II07552812013-06-27 15:02:13 -07009
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -0700101. Apache 2.0 License, making Gophercloud friendly to commercial and open-source enterprises alike.
112. Gophercloud is one of the most actively maintained Go SDKs for OpenStack.
Jon Perritt8ef21532014-08-28 16:44:36 -0500123. Gophercloud supports Identity V2, Nova V2, and Object Storage V1 APIs. More coming soon!
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -0700135. Gophercloud supports automatic reauthentication upon auth token timeout, if enabled by your software.
146. Gophercloud is the only SDK implementation with actual acceptance-level integration tests.
Samuel A. Falvo IIff3f09d2013-06-20 17:54:26 -070015
jrperrittc1385232014-09-03 19:52:54 -050016=== Dependencies
17* Go 1.* (For information on installing Go and setting up your environment, go link:https://golang.org/doc/install[here])
Jon Perrittb71daf72014-09-04 10:02:53 -050018* git
jrperrittc1385232014-09-03 19:52:54 -050019
20=== Getting the code
21
22To download Gophercloud, simpy run
23```
24go get github.com/rackspace/gophercloud
25```
26It will automatically retrieve all dependencies. Goperhcloud and its dependencies will be located within your $GOPATH.
27
28=== Running the tests
29
30Gophercloud has both unit tests and acceptance (integration) tests.
31
32To run the unit tests, run
33```
34go test -v github.com/rackspace/gophercloud
35```
36from the Gophercloud root directory.
37
38To run the acceptance tests, run
39```
40go test -v -tags acceptance github.com/rackspace/gophercloud
41```
42*Note: Running the acceptance tests briefly creates (and deletes) real resources. You may incur costsfrom your provider by running these.*
43
44To run specific tests, use a regular expression with the `run` flag. For example, to just run the authentication test (named TestAuthentication), run
45```
46go test -v -run "Authentication" -tags acceptance github.com/rackspace/gophercloud
47```
48
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070049=== What Does it Look Like?
Samuel A. Falvo IIff3f09d2013-06-20 17:54:26 -070050
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070051The Gophercloud 0.1.0 and earlier APIs are now deprecated and obsolete.
52No new feature development will occur for 0.1.0 or 0.0.0.
53However, we will accept and provide bug fixes for these APIs.
54Please refer to the acceptance tests in the master brach for code examples using the v0.1.0 API.
55The 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 IIff3f09d2013-06-20 17:54:26 -070056
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070057We are working on a new API that provides much better support for extensions, pagination, and other features that proved difficult to implement before.
58This 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.
59To 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].
60If 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 II07552812013-06-27 15:02:13 -070061
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070062=== How can I Contribute?
Samuel A. Falvo II07552812013-06-27 15:02:13 -070063
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070064After 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 II07552812013-06-27 15:02:13 -070065
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070066Finally, Gophercloud maintains its own link:http://gophercloud.io[announcements and updates blog.]
67Feel free to check back now and again to see what's new.
Samuel A. Falvo II07552812013-06-27 15:02:13 -070068
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070069== License
stackedsax563bf052013-06-25 13:21:00 -070070
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070071Copyright (C) 2013, 2014 Rackspace, Inc.
Samuel A. Falvo IIff3f09d2013-06-20 17:54:26 -070072
Samuel A. Falvo IId79a7052014-03-10 17:18:03 -070073Licensed under the Apache License, Version 2.0
Samuel A. Falvo IIff3f09d2013-06-20 17:54:26 -070074