From 03fa3e0cd471c919247bfb0fbb6efc35c8d52a45 Mon Sep 17 00:00:00 2001 From: Robin Bowes Date: Thu, 21 Jul 2016 13:23:51 +0100 Subject: [PATCH] Update vmware-govcd plugin --- .../hmrc/vmware-govcd/.editorconfig | 26 --- .../github.com/hmrc/vmware-govcd/.gitignore | 25 --- .../github.com/hmrc/vmware-govcd/.travis.yml | 16 -- vendor/github.com/hmrc/vmware-govcd/README.md | 3 +- .../github.com/hmrc/vmware-govcd/api_vcd.go | 10 +- vendor/github.com/hmrc/vmware-govcd/query.go | 42 ++++ .../hmrc/vmware-govcd/types/v56/types.go | 208 ++++++++++++++++-- vendor/github.com/hmrc/vmware-govcd/vm.go | 55 +++++ vendor/vendor.json | 8 +- 9 files changed, 301 insertions(+), 92 deletions(-) delete mode 100644 vendor/github.com/hmrc/vmware-govcd/.editorconfig delete mode 100644 vendor/github.com/hmrc/vmware-govcd/.gitignore delete mode 100644 vendor/github.com/hmrc/vmware-govcd/.travis.yml create mode 100644 vendor/github.com/hmrc/vmware-govcd/query.go create mode 100644 vendor/github.com/hmrc/vmware-govcd/vm.go diff --git a/vendor/github.com/hmrc/vmware-govcd/.editorconfig b/vendor/github.com/hmrc/vmware-govcd/.editorconfig deleted file mode 100644 index 3152da69a5d7..000000000000 --- a/vendor/github.com/hmrc/vmware-govcd/.editorconfig +++ /dev/null @@ -1,26 +0,0 @@ -# top-most EditorConfig file -root = true - -# Unix-style newlines with a newline ending every file -[*] -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 2 -trim_trailing_whitespace = true - -# Set default charset -[*.{js,py,go,scala,rb,java,html,css,less,sass,md}] -charset = utf-8 - -# Tab indentation (no size specified) -[*.go] -indent_style = tab - -[*.md] -trim_trailing_whitespace = false - -# Matches the exact files either package.json or .travis.yml -[{package.json,.travis.yml}] -indent_style = space -indent_size = 2 diff --git a/vendor/github.com/hmrc/vmware-govcd/.gitignore b/vendor/github.com/hmrc/vmware-govcd/.gitignore deleted file mode 100644 index 975162838b2d..000000000000 --- a/vendor/github.com/hmrc/vmware-govcd/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test -.cover - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof \ No newline at end of file diff --git a/vendor/github.com/hmrc/vmware-govcd/.travis.yml b/vendor/github.com/hmrc/vmware-govcd/.travis.yml deleted file mode 100644 index d179553b3fe2..000000000000 --- a/vendor/github.com/hmrc/vmware-govcd/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -before_install: - - sudo apt-get update -qq - - sudo apt-get install -y figlet cowsay -sudo: required -language: go -install: -- go get -t ./... -- go get golang.org/x/tools/cmd/cover -- go get github.com/mattn/goveralls -script: -- PATH="$HOME/gopath/bin:$PATH" -- script/coverage --coveralls -after_success: -- figlet "Build Successful!" | /usr/games/cowsay -n -e "^^" -after_failure: -- figlet "Build Failed!" | /usr/games/cowsay -n -s diff --git a/vendor/github.com/hmrc/vmware-govcd/README.md b/vendor/github.com/hmrc/vmware-govcd/README.md index 4a78fd2e9445..a6a1887b2d7e 100644 --- a/vendor/github.com/hmrc/vmware-govcd/README.md +++ b/vendor/github.com/hmrc/vmware-govcd/README.md @@ -22,6 +22,7 @@ type Config struct { Org string Href string VDC string + Insecure bool } func (c *Config) Client() (*govcd.VCDClient, error) { @@ -30,7 +31,7 @@ func (c *Config) Client() (*govcd.VCDClient, error) { return nil, fmt.Errorf("Unable to pass url: %s", err) } - vcdclient := govcd.NewVCDClient(*u) + 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) diff --git a/vendor/github.com/hmrc/vmware-govcd/api_vcd.go b/vendor/github.com/hmrc/vmware-govcd/api_vcd.go index 9649118ba1fc..dc28d83423f0 100644 --- a/vendor/github.com/hmrc/vmware-govcd/api_vcd.go +++ b/vendor/github.com/hmrc/vmware-govcd/api_vcd.go @@ -16,6 +16,7 @@ type VCDClient struct { OrgVdc Vdc // Org vDC Client Client // Client for the underlying VCD instance sessionHREF url.URL // HREF for the session API + QueryHREF url.URL // HREF for the query API Mutex sync.Mutex } @@ -97,7 +98,7 @@ func (c *VCDClient) vcdauthorize(user, pass, org string) error { } org_found := false - // Loop in the session struct to find the organization. + // Loop in the session struct to find the organization and query api. for _, s := range session.Link { if s.Type == "application/vnd.vmware.vcloud.org+xml" && s.Rel == "down" { u, err := url.Parse(s.HREF) @@ -107,6 +108,13 @@ func (c *VCDClient) vcdauthorize(user, pass, org string) error { c.OrgHREF = *u org_found = true } + if s.Type == "application/vnd.vmware.vcloud.query.queryList+xml" && s.Rel == "down" { + u, err := url.Parse(s.HREF) + if err != nil { + return fmt.Errorf("couldn't find a Query API in current session, %v", err) + } + c.QueryHREF = *u + } } if !org_found { return fmt.Errorf("couldn't find a Organization in current session") diff --git a/vendor/github.com/hmrc/vmware-govcd/query.go b/vendor/github.com/hmrc/vmware-govcd/query.go new file mode 100644 index 000000000000..905ff41a18b5 --- /dev/null +++ b/vendor/github.com/hmrc/vmware-govcd/query.go @@ -0,0 +1,42 @@ +/* + * Copyright 2016 Skyscape Cloud Services. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + + types "github.com/hmrc/vmware-govcd/types/v56" +) + +type Results struct { + Results *types.QueryResultRecordsType + c *Client +} + +func NewResults(c *Client) *Results { + return &Results{ + Results: new(types.QueryResultRecordsType), + c: c, + } +} + +func (c *VCDClient) Query(params map[string]string) (Results, error) { + + req := c.Client.NewRequest(params, "GET", c.QueryHREF, nil) + req.Header.Add("Accept", "vnd.vmware.vcloud.org+xml;version=5.5") + + resp, err := checkResp(c.Client.Http.Do(req)) + if err != nil { + return Results{}, fmt.Errorf("error retreiving query: %s", err) + } + + results := NewResults(&c.Client) + + if err = decodeBody(resp, results.Results); err != nil { + return Results{}, fmt.Errorf("error decoding query results: %s", err) + } + + return *results, nil +} diff --git a/vendor/github.com/hmrc/vmware-govcd/types/v56/types.go b/vendor/github.com/hmrc/vmware-govcd/types/v56/types.go index 7a345a30e248..d4714687f832 100644 --- a/vendor/github.com/hmrc/vmware-govcd/types/v56/types.go +++ b/vendor/github.com/hmrc/vmware-govcd/types/v56/types.go @@ -268,9 +268,9 @@ type NetworkConnection struct { type NetworkConnectionSection struct { // Extends OVF Section_Type // FIXME: Fix the OVF section - XMLName xml.Name `xml:"NetworkConnectionSection"` - Xmlns string `xml:"xmlns,attr,omitempty"` - Ovf string `xml:"xmlns:ovf,attr,omitempty"` + XMLName xml.Name `xml:"NetworkConnectionSection"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Ovf string `xml:"xmlns:ovf,attr,omitempty"` Info string `xml:"ovf:Info"` // @@ -317,7 +317,7 @@ type OrgVDCNetwork struct { IsShared bool `xml:"IsShared"` Link []Link `xml:"Link,omitempty"` ServiceConfig *GatewayFeatures `xml:"ServiceConfig,omitempty"` // Specifies the service configuration for an isolated Org vDC networks - Tasks *TasksInProgress `xml:"Tasks,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` } // SupportedHardwareVersions contains a list of VMware virtual hardware versions supported in this vDC. @@ -767,15 +767,15 @@ type VApp struct { } type MetadataValue struct { - XMLName xml.Name `xml:"MetadataValue"` - Xsi string `xml:"xmlns:xsi,attr"` - Xmlns string `xml:"xmlns,attr"` - TypedValue *TypedValue `xml:"TypedValue"` + XMLName xml.Name `xml:"MetadataValue"` + Xsi string `xml:"xmlns:xsi,attr"` + Xmlns string `xml:"xmlns,attr"` + TypedValue *TypedValue `xml:"TypedValue"` } type TypedValue struct { - XsiType string `xml:"xsi:type,attr"` - Value string `xml:"Value"` + XsiType string `xml:"xsi:type,attr"` + Value string `xml:"Value"` } // VAppChildren is a container for virtual machines included in this vApp. @@ -807,8 +807,6 @@ type VAppTemplateChildren struct { VM []*VAppTemplate `xml:"Vm"` // Represents a virtual machine in this vApp template. } - - // VAppTemplate represents a vApp template. // Type: VAppTemplateType // Namespace: http://www.vmware.com/vcloud/v1.5 @@ -853,10 +851,10 @@ type VAppTemplate struct { // Since: 0.9 type VM struct { // Attributes - XMLName xml.Name `xml:"Vm"` - Ovf string `xml:"xmlns:ovf,attr,omitempty"` - Xsi string `xml:"xmlns:xsi,attr,omitempty"` - Xmlns string `xml:"xmlns,attr,omitempty"` + XMLName xml.Name `xml:"Vm"` + Ovf string `xml:"xmlns:ovf,attr,omitempty"` + Xsi string `xml:"xmlns:xsi,attr,omitempty"` + Xmlns string `xml:"xmlns,attr,omitempty"` HREF string `xml:"href,attr,omitempty"` // The URI of the entity. Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. @@ -877,11 +875,16 @@ type VM struct { // Section OVF_Section `xml:"Section,omitempty" DateCreated string `xml:"DateCreated,omitempty"` // Creation date/time of the vApp. + // Section ovf:VirtualHardwareSection + VirtualHardwareSection *VirtualHardwareSection `xml:"VirtualHardwareSection,omitempty"` + // FIXME: Upstream bug? Missing NetworkConnectionSection NetworkConnectionSection *NetworkConnectionSection `xml:"NetworkConnectionSection,omitempty"` VAppScopedLocalID string `xml:"VAppScopedLocalId,omitempty"` // A unique identifier for the virtual machine in the scope of the vApp. + Snapshots *SnapshotSection `xml:"SnapshotSection,omitempty"` + // TODO: OVF Sections to be implemented // Environment OVF_Environment `xml:"Environment,omitempty" @@ -889,6 +892,73 @@ type VM struct { StorageProfile *Reference `xml:"StorageProfile,omitempty"` // A reference to a storage profile to be used for this object. The specified storage profile must exist in the organization vDC that contains the object. If not specified, the default storage profile for the vDC is used. } +// ovf:VirtualHardwareSection from VM struct +type VirtualHardwareSection struct { + // Extends OVF Section_Type + XMLName xml.Name `xml:"VirtualHardwareSection"` + Xmlns string `xml:"vcloud,attr,omitempty"` + + Info string `xml:"Info"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Item []*VirtualHardwareItem `xml:"Item,omitempty"` +} + +// Each ovf:Item parsed from the ovf:VirtualHardwareSection +type VirtualHardwareItem struct { + XMLName xml.Name `xml:"Item"` + ResourceType int `xml:"ResourceType,omitempty"` + ResourceSubType string `xml:"ResourceSubType,omitempty"` + ElementName string `xml:"ElementName,omitempty"` + Description string `xml:"Description,omitempty"` + InstanceID int `xml:"InstanceID,omitempty"` + AutomaticAllocation bool `xml:"AutomaticAllocation,omitempty"` + Address string `xml:"Address,omitempty"` + AddressOnParent int `xml:"AddressOnParent,omitempty"` + AllocationUnits string `xml:"AllocationUnits,omitempty"` + Reservation int `xml:"Reservation,omitempty"` + VirtualQuantity int `xml:"VirtualQuantity,omitempty"` + Weight int `xml:"Weight,omitempty"` + CoresPerSocket int `xml:"CoresPerSocket,omitempty"` + Connection []*VirtualHardwareConnection `xml:"Connection,omitempty"` + HostResource []*VirtualHardwareHostResource `xml:"HostResource,omitempty"` + Link []*Link `xml:"Link,omitempty"` +} + +// Connection info from ResourceType=10 (Network Interface) +type VirtualHardwareConnection struct { + IPAddress string `xml:"ipAddress,attr,omitempty"` + PrimaryConnection bool `xml:"primaryNetworkConnection,attr,omitempty"` + IpAddressingMode string `xml:"ipAddressingMode,attr,omitempty"` + NetworkName string `xml:",chardata"` +} + +// HostResource info from ResourceType=17 (Hard Disk) +type VirtualHardwareHostResource struct { + BusType int `xml:"busType,attr,omitempty"` + BusSubType string `xml:"busSubType,attr,omitempty"` + Capacity int `xml:"capacity,attr,omitempty"` + StorageProfile string `xml:"storageProfileHref,attr,omitempty"` + OverrideVmDefault bool `xml:"storageProfileOverrideVmDefault,attr,omitempty"` +} + +// SnapshotSection from VM struct +type SnapshotSection struct { + // Extends OVF Section_Type + XMLName xml.Name `xml:"SnapshotSection"` + Info string `xml:"Info"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Snapshot []*SnapshotItem `xml:"Snapshot,omitempty"` +} + +// Each snapshot listed in the SnapshotSection +type SnapshotItem struct { + Created string `xml:"created,attr,omitempty"` + PoweredOn bool `xml:"poweredOn,attr,omitempty"` + Size int `xml:"size,attr,omitempty"` +} + // OVFItem is a horrible kludge to process OVF, needs to be fixed with proper types. type OVFItem struct { XMLName xml.Name `xml:"vcloud:Item"` @@ -1060,11 +1130,11 @@ type SubnetParticipation struct { } type EdgeGatewayServiceConfiguration struct { - XMLName xml.Name `xml:"EdgeGatewayServiceConfiguration"` - Xmlns string `xml:"xmlns,attr,omitempty"` - GatewayDhcpService *GatewayDhcpService `xml:"GatewayDhcpService,omitempty"` - FirewallService *FirewallService `xml:"FirewallService,omitempty"` - NatService *NatService `xml:"NatService,omitempty"` + XMLName xml.Name `xml:"EdgeGatewayServiceConfiguration"` + Xmlns string `xml:"xmlns,attr,omitempty"` + GatewayDhcpService *GatewayDhcpService `xml:"GatewayDhcpService,omitempty"` + FirewallService *FirewallService `xml:"FirewallService,omitempty"` + NatService *NatService `xml:"NatService,omitempty"` } // GatewayFeatures represents edge gateway services. @@ -1493,6 +1563,22 @@ type QueryResultEdgeGatewayRecordsType struct { EdgeGatewayRecord *QueryResultEdgeGatewayRecordType `xml:"EdgeGatewayRecord"` // A record representing a query result. } +type QueryResultRecordsType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Name string `xml:"name,attr,omitempty"` // The name of the entity. + Page int `xml:"page,attr,omitempty"` // Page of the result set that this container holds. The first page is page number 1. + PageSize int `xml:"pageSize,attr,omitempty"` // Page size, as a number of records or references. + Total float64 `xml:"total,attr,omitempty"` // Total number of records or references in the container. + // Elements + Link []*Link `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + EdgeGatewayRecord *QueryResultEdgeGatewayRecordType `xml:"EdgeGatewayRecord"` // A record representing a query result. + VMRecord []*QueryResultVMRecordType `xml:"VMRecord"` // A record representing a VM result. + VAppRecord []*QueryResultVAppRecordType `xml:"VAppRecord"` // A record representing a VApp result. + OrgVdcStorageProfileRecord []*QueryResultOrgVdcStorageProfileRecordType `xml:"OrgVdcStorageProfileRecord"` // A record representing storage profiles +} + // QueryResultEdgeGatewayRecordType represents an edge gateway record as query result. type QueryResultEdgeGatewayRecordType struct { // Attributes @@ -1506,3 +1592,83 @@ type QueryResultEdgeGatewayRecordType struct { GatewayStatus string `xml:"gatewayStatus,attr,omitempty"` // HaStatus string `xml:"haStatus,attr,omitempty"` // High Availability Status of the edgeGateway Yes Yes } + +// QueryResultVMRecordType represents a VM record as query result. +type QueryResultVMRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr,omitempty"` // VM name. + Deployed bool `xml:"isDeployed,attr,omitempty"` // True if the virtual machine is deployed. + Status string `xml:"status,attr,omitempty"` + Busy bool `xml:"isBusy,attr,omitempty"` + Deleted bool `xml:"isDeleted,attr,omitempty"` + MaintenanceMode bool `xml:"isInMaintenanceMode,attr,omitempty"` + Published bool `xml:"isPublished,attr,omitempty"` + VAppTemplate bool `xml:"isVAppTemplate,attr,omitempty"` + VdcEnabled bool `xml:"isVdcEnabled,attr,omitempty"` + VdcHREF string `xml:"vdc,attr,omitempty"` + VAppParentHREF string `xml:"container,attr,omitempty"` + VAppParentName string `xml:"containerName,attr,omitempty"` + HardwareVersion int `xml:"hardwareVersion,attr,omitempty"` + HighestSupportedVersion int `xml:"pvdcHighestSupportedHardwareVersion,attr,omitempty"` + VmToolsVersion string `xml:"vmToolsVersion,attr,omitempty"` + GuestOS string `xml:"guestOs,attr,omitempty"` + MemoryMB int `xml:"memoryMB,attr,omitempty"` + Cpus int `xml:"numberOfCpus,attr,omitempty"` + StorageProfileName string `xml:"storageProfileName,attr,omitempty"` + NetworkName string `xml:"networkName,attr,omitempty"` + TaskHREF string `xml:"task,attr,omitempty"` + TaskStatusName string `xml:"taskStatusName,attr,omitempty"` + TaskDetails string `xml:"taskDetails,attr,omitempty"` + TaskStatus string `xml:"TaskStatus,attr,omitempty"` +} + +// QueryResultVAppRecordType represents a VM record as query result. +type QueryResultVAppRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr"` // The name of the entity. + CreationDate string `xml:"creationDate,attr,omitempty"` // Creation date/time of the vApp. + Busy bool `xml:"isBusy,attr,omitempty"` + Deployed bool `xml:"isDeployed,attr,omitempty"` // True if the vApp is deployed. + Enabled bool `xml:"isEnabled,attr,omitempty"` + Expired bool `xml:"isExpired,attr,omitempty"` + MaintenanceMode bool `xml:"isInMaintenanceMode,attr,omitempty"` + Public bool `xml:"isPublic,attr,omitempty"` + OwnerName string `xml:"ownerName,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + VdcHREF string `xml:"vdc,attr,omitempty"` + VdcName string `xml:"vdcName,attr,omitempty"` + NumberOfVMs int `xml:"numberOfVMs,attr,omitempty"` + NumberOfCPUs int `xml:"numberOfCpus,attr,omitempty"` + CpuAllocationMhz int `xml:"cpuAllocationMhz,attr,omitempty"` + CpuAllocationInMhz int `xml:"cpuAllocationInMhz,attr,omitempty"` + StorageKB int `xml:"storageKB,attr,omitempty"` + MemoryAllocationMB int `xml:"memoryAllocationMB,attr,omitempty"` + AutoDeleteNotified bool `xml:"isAutoDeleteNotified,attr,omitempty"` + AutoUndeployNotified bool `xml:"isAutoUndeployNotified,attr,omitempty"` + VdcEnabled bool `xml:"isVdcEnabled, attr,omitempty"` + HonorBootOrder bool `xml:"honorBookOrder,attr,omitempty"` + HighestSupportedVersion int `xml:"pvdcHighestSupportedHardwareVersion,attr,omitempty"` + LowestHardwareVersion int `xml:"lowestHardwareVersionInVApp,attr,omitempty"` + TaskHREF string `xml:"task,attr,omitempty"` + TaskStatusName string `xml:"taskStatusName,attr,omitempty"` + TaskStatus string `xml:"TaskStatus,attr,omitempty"` + TaskDetails string `xml:"taskDetails,attr,omitempty"` +} + +// QueryResultOrgVdcStorageProfileRecordType represents a storage +// profile as query result. +type QueryResultOrgVdcStorageProfileRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr,omitempty"` // Storage Profile name. + VdcHREF string `xml:"vdc,attr,omitempty"` + VdcName string `xml:"vdcName,attr,omitempty"` + IsDefaultStorageProfile bool `xml:"isDefaultStorageProfile,attr,omitempty"` + IsEnabled bool `xml:"isEnabled,attr,omitempty"` + IsVdcBusy bool `xml:"isVdcBusy,attr,omitempty"` + NumberOfConditions int `xml:"numberOfConditions,attr,omitempty"` + StorageUsedMB int `xml:"storageUsedMB,attr,omitempty"` + StorageLimitMB int `xml:"storageLimitMB,attr,omitempty"` +} diff --git a/vendor/github.com/hmrc/vmware-govcd/vm.go b/vendor/github.com/hmrc/vmware-govcd/vm.go new file mode 100644 index 000000000000..2e4d44b4d738 --- /dev/null +++ b/vendor/github.com/hmrc/vmware-govcd/vm.go @@ -0,0 +1,55 @@ +/* + * Copyright 2014 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + // "bytes" + // "encoding/xml" + "fmt" + // "log" + "net/url" + // "os" + // "strconv" + + types "github.com/hmrc/vmware-govcd/types/v56" +) + +type VM struct { + VM *types.VM + c *Client +} + +func NewVM(c *Client) *VM { + return &VM{ + VM: new(types.VM), + c: c, + } +} + +func (c *VCDClient) FindVMByHREF(vmhref string) (VM, error) { + + u, err := url.ParseRequestURI(vmhref) + + if err != nil { + return VM{}, fmt.Errorf("error decoding vm HREF: %s", err) + } + + // Querying the VApp + req := c.Client.NewRequest(map[string]string{}, "GET", *u, nil) + + resp, err := checkResp(c.Client.Http.Do(req)) + if err != nil { + return VM{}, fmt.Errorf("error retrieving VM: %s", err) + } + + newvm := NewVM(&c.Client) + + if err = decodeBody(resp, newvm.VM); err != nil { + return VM{}, fmt.Errorf("error decoding VM response: %s", err) + } + + return *newvm, nil + +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 931fedb09246..76f97080bc99 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1069,14 +1069,18 @@ "revision": "613abdebf4922c4d9d46bcb4bcf14ee18c08d7de" }, { + "checksumSHA1": "IUWlXGc4g8je52zg2qWOETPp8dg=", "comment": "v0.0.2-37-g5cd82f0", "path": "github.com/hmrc/vmware-govcd", - "revision": "5cd82f01aa1c97afa9b23ef6f4f42a60f3106003" + "revision": "8dc9fc011e97899e74f8b45ed16ac10aff8b9457", + "revisionTime": "2016-03-16T10:04:48Z" }, { + "checksumSHA1": "QarH8ggsjIB+t0r4loMPEViOGcw=", "comment": "v0.0.2-37-g5cd82f0", "path": "github.com/hmrc/vmware-govcd/types/v56", - "revision": "5cd82f01aa1c97afa9b23ef6f4f42a60f3106003" + "revision": "8dc9fc011e97899e74f8b45ed16ac10aff8b9457", + "revisionTime": "2016-03-16T10:04:48Z" }, { "comment": "0.2.1-3-gb1859b1",