WORK IN PROGRESS
TowerAPI is a Go client library for accessing the Ansible Tower V1 API.
You can view the client API docs here: http://godoc.org/github.com/mpeter/go-towerapi
You can view Ansible Tower API docs here: http://docs.ansible.com/ansible-tower/latest/html/towerapi/index.html
import "github.com/mpeter/go-towerapi"
Create a new Ansible Tower client, then use the exposed services to access different parts of the Ansible Tower API.
Currently, Basic Auth is the only method of authenticating with the API. You can manage your users inside the Ansible Tower Control GUI.
You can then use your token to create a new client:
import (
"net/http"
"github.com/mpeter/go-towerapi/towerapi"
)
type Config struct {
Endpoint string
Username string
Password string
}
func (c *Config) NewClient() (*towerapi.Client, error) {
config := &towerapi.ClientConfig{
Endpoint = c.Endpoint,
Username = c.Username,
Password = c.Password,
}
return towerapi.NewClient(http.DefaultClient, config)
}
To create a new Organization:
config := new(towerapi.ClientConfig)
config.Endpoint = c.Endpoint
config.Password = c.Password
config.Username = c.Username
//return towerapi.NewClient(http.DefaultClient, config)
api, err := towerapi.NewClient(http.DefaultClient, config)
request := &organizations.Request{
Name: "Org Name",
Description: "Org Description",
}
org, resp, err := api.Organizations.Create(request)
if err != nil {
fmt.Errorf("ERROR: Organization.Create: %v", err)
}
fmt.Printf("Organization Struct: %v", org)
fmt.Printf("Organization Response: %v", resp)
If a list of items is paginated by the API, you must request pages individually. For example, to fetch all Droplets:
TBD
TBD
For details on all the functionality in this library, see the GoDoc documentation.
We love pull requests! Please see the contribution guidelines.