66 lines
2.5 KiB
Markdown
66 lines
2.5 KiB
Markdown
# govcloudair [![Build Status](https://ci.vmware.run/api/badges/ukcloud/govcloudair/status.svg)](https://ci.vmware.run/ukcloud/govcloudair) [![Build Status](https://travis-ci.org/ukcloud/govcloudair.svg?branch=master)](https://travis-ci.org/ukcloud/govcloudair) [![Coverage Status](https://coveralls.io/repos/ukcloud/govcloudair/badge.svg?branch=master&service=github)](https://coveralls.io/github/ukcloud/govcloudair?branch=master) [![GoDoc](https://godoc.org/github.com/ukcloud/govcloudair?status.svg)](http://godoc.org/github.com/ukcloud/govcloudair) [![Join the chat at https://gitter.im/ukcloud/govcloudair](https://badges.gitter.im/ukcloud/govcloudair.svg)](https://gitter.im/ukcloud/govcloudair?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
This repo provides the `govcloudair` package which offers an interface to the vCloud Air 5.6 and 5.7 API and vCloud Director 5.5 API.
|
|
|
|
It serves as a foundation for a project currently in development, there are plans to make it a general purpose API in the future. The `govcloudair` package is used by the Terraform provider for vCloud Director.
|
|
|
|
The API is currently under heavy development, its coverage is extremely limited at the moment.
|
|
|
|
The bindings now support both Subscription and On-demand accounts and vCloud Director 5.5
|
|
|
|
### Example ###
|
|
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
"os"
|
|
|
|
govcd "github.com/ukcloud/govcloudair"
|
|
)
|
|
|
|
type Config struct {
|
|
User string
|
|
Password string
|
|
Org string
|
|
Href string
|
|
VDC string
|
|
Insecure bool
|
|
}
|
|
|
|
func (c *Config) Client() (*govcd.VCDClient, error) {
|
|
u, err := url.ParseRequestURI(c.Href)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("Unable to pass url: %s", err)
|
|
}
|
|
|
|
vcdclient := govcd.NewVCDClient(*u, c.Insecure)
|
|
org, vcd, err := vcdclient.Authenticate(c.User, c.Password, c.Org, c.VDC)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("Unable to authenticate: %s", err)
|
|
}
|
|
vcdclient.Org = org
|
|
vcdclient.OrgVdc = vcd
|
|
return vcdclient, nil
|
|
}
|
|
|
|
func main() {
|
|
config := Config{
|
|
User: "Username",
|
|
Password: "password",
|
|
Org: "vcd org",
|
|
Href: "vcd api url",
|
|
VDC: "vcd virtual datacenter name",
|
|
}
|
|
|
|
client, err := config.Client() // We now have a client
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
fmt.Printf("Org URL: %s\n", client.OrgHREF.String())
|
|
}
|
|
```
|
|
|