435c0d9fc8
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.
73 lines
1.6 KiB
Markdown
73 lines
1.6 KiB
Markdown
# packngo
|
|
Packet Go Api Client
|
|
|
|
![](https://www.packet.net/media/images/xeiw-packettwitterprofilew.png)
|
|
|
|
|
|
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:
|
|
|
|
```go
|
|
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](https://github.com/terraform-providers/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](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](https://golang.org/cmd/gofmt/))
|