This PR switches the Nomad repository from using govendor to Go modules for managing dependencies. Aspects of the Nomad workflow remain pretty much the same. The usual Makefile targets should continue to work as they always did. The API submodule simply defers to the parent Nomad version on the repository, keeping the semantics of API versioning that currently exists.
1.6 KiB
packngo
Packet Go Api Client
Installation
go get github.com/packethost/packngo
Usage
To authenticate to the Packet API, you must have your API token exported in env var PACKET_API_TOKEN
.
This code snippet initializes Packet API client, and lists your Projects:
package main
import (
"log"
"github.com/packethost/packngo"
)
func main() {
c, err := packngo.NewClient()
if err != nil {
log.Fatal(err)
}
ps, _, err := c.Projects.List(nil)
if err != nil {
log.Fatal(err)
}
for _, p := range ps {
log.Println(p.ID, p.Name)
}
}
This lib is used by the official terraform-provider-packet.
You can also learn a lot from the *_test.go
sources. Almost all out tests touch the Packet API, so you can see how auth, querying and POSTing works. For example devices_test.go.
Acceptance Tests
If you want to run tests against the actual Packet API, you must set envvar PACKET_TEST_ACTUAL_API
to non-empty string for the go test
. The device tests wait for the device creation, so it's best to run a few in parallel.
To run a particular test, you can do
$ PACKNGO_TEST_ACTUAL_API=1 go test -v -run=TestAccDeviceBasic
If you want to see HTTP requests, set the PACKNGO_DEBUG
env var to non-empty string, for example:
$ PACKNGO_DEBUG=1 PACKNGO_TEST_ACTUAL_API=1 go test -v -run=TestAccVolumeUpdate
Committing
Before committing, it's a good idea to run gofmt -w *.go
. (gofmt)