opentofu/vendor/github.com/hmrc/vmware-govcd
Paul Hinze 6fe2703665 Vendor all dependencies w/ Godep
* Remove `make updatedeps` from Travis build. We'll follow up with more
   specific plans around dependency updating in subsequent PRs.
 * Update all `make` targets to set `GO15VENDOREXPERIMENT=1` and to
   filter out `/vendor/` from `./...` where appropriate.
 * Temporarily remove `vet` from the `make test` target until we can
   figure out how to get it to not vet `vendor/`. (Initial
   experimentation failed to yield the proper incantation.)

Everything is pinned to current master, with the exception of:

 * Azure/azure-sdk-for-go which is pinned before the breaking change today
 * aws/aws-sdk-go which is pinned to the most recent tag

The documentation still needs to be updated, which we can do in a follow
up PR. The goal here is to unblock release.
2016-01-29 15:08:48 -06:00
..
script Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
testutil Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
types/v56 Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
.editorconfig Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
.gitignore Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
.travis.yml Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
api_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
api_vca_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
api_vca.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
api_vcd_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
api_vcd.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
api.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
catalog_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
catalog.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
catalogitem_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
catalogitem.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
edgegateway_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
edgegateway.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
LICENSE Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
org_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
org.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
orgvdcnetwork_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
orgvdcnetwork.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
README.md Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
task_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
task.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
vapp_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
vapp.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
vapptemplate_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
vapptemplate.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
vdc_test.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00
vdc.go Vendor all dependencies w/ Godep 2016-01-29 15:08:48 -06:00

vmware-govcd

This package was originally forked from github.com/vmware/govcloudair before pulling in rickard-von-essen's great changes to allow using a vCloud Director API. On top of this I have added features as needed for a terraform provider for vCloud Director

Example

package main

import (
	"fmt"
	"net/url"
    "os"

	"github.com/hmrc/vmware-govcd"
)

type Config struct {
	User     string
	Password string
	Org      string
	Href     string
	VDC      string
}

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)
	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())
}