packer-cn/vendor/github.com/joyent/gocommon
Jasper Siepkes 7606dd541b * Contains the SSH fix by @watters of #3840.
* Fixed minor lint error.
* Added documentation for this builder in `triton.html.md`.
* Added (and updated) the needed Joyent Triton Cloud API Go libraries
  to `vendor.json`.
2016-12-27 17:05:27 +01:00
..
client builder/triton: Vendor dependencies 2016-12-24 10:25:31 +01:00
errors builder/triton: Vendor dependencies 2016-12-24 10:25:31 +01:00
http builder/triton: Vendor dependencies 2016-12-24 10:25:31 +01:00
jpc builder/triton: Vendor dependencies 2016-12-24 10:25:31 +01:00
LICENSE builder/triton: Vendor dependencies 2016-12-24 10:25:31 +01:00
README.md * Contains the SSH fix by @watters of #3840. 2016-12-27 17:05:27 +01:00
gocommon.go builder/triton: Vendor dependencies 2016-12-24 10:25:31 +01:00
version.go builder/triton: Vendor dependencies 2016-12-24 10:25:31 +01:00
wercker.yml * Contains the SSH fix by @watters of #3840. 2016-12-27 17:05:27 +01:00

README.md

gocommon

Common Go library for Joyent's Triton and Manta.

wercker status

Installation

Use go-get to install gocommon.

go get github.com/joyent/gocommon

Documentation

Auto-generated documentation can be found on godoc.

Contributing

Report bugs and request features using GitHub Issues, or contribute code via a GitHub Pull Request. Changes will be code reviewed before merging. In the near future, automated tests will be run, but in the meantime please go fmt, go lint, and test all contributions.

Developing

This library assumes a Go development environment setup based on How to Write Go Code. Your GOPATH environment variable should be pointed at your workspace directory.

You can now use go get github.com/joyent/gocommon to install the repository to the correct location, but if you are intending on contributing back a change you may want to consider cloning the repository via git yourself. This way you can have a single source tree for all Joyent Go projects with each repo having two remotes -- your own fork on GitHub and the upstream origin.

For example if your GOPATH is ~/src/joyent/go and you're working on multiple repos then that directory tree might look like:

~/src/joyent/go/
|_ pkg/
|_ src/
   |_ github.com
      |_ joyent
         |_ gocommon
         |_ gomanta
         |_ gosdc
         |_ gosign
$ mkdir -p ${GOPATH}/src/github.com/joyent
$ cd ${GOPATH}/src/github.com/joyent
$ git clone git@github.com:<yourname>/gocommon.git

# fetch dependencies
$ git clone git@github.com:<yourname>/gosign.git
$ go get -v -t ./...

# add upstream remote
$ cd gocommon
$ git remote add upstream git@github.com:joyent/gocommon.git
$ git remote -v
origin  git@github.com:<yourname>/gocommon.git (fetch)
origin  git@github.com:<yourname>/gocommon.git (push)
upstream        git@github.com:joyent/gocommon.git (fetch)
upstream        git@github.com:joyent/gocommon.git (push)

Run Tests

The library needs values for the SDC_URL, MANTA_URL, MANTA_KEY_ID and SDC_KEY_ID environment variables even though the tests are run locally. You can generate a temporary key and use its fingerprint for tests without adding the key to your Triton Cloud account.

# create a temporary key
ssh-keygen -b 2048 -C "Testing Key" -f /tmp/id_rsa -t rsa -P ""

# set up environment
# note: leave the -E md5 argument off on older ssh-keygen
export KEY_ID=$(ssh-keygen -E md5 -lf /tmp/id_rsa | awk -F' ' '{print $2}' | cut -d':' -f2-)
export SDC_KEY_ID=${KEY_ID}
export MANTA_KEY_ID=${KEY_ID}
export SDC_URL=https://us-east-1.api.joyent.com
export MANTA_URL=https://us-east.manta.joyent.com

cd ${GOPATH}/src/github.com/joyent/gocommon
go test ./...

Build the Library

cd ${GOPATH}/src/github.com/joyent/gocommon
go build ./...