From 47bf2eff09495b1cbb15470b1d267e2957ad9272 Mon Sep 17 00:00:00 2001 From: Joe Topjian Date: Wed, 15 Feb 2017 02:37:05 -0700 Subject: [PATCH] provider/openstack BlockStorage v1 availability_zone Fix (#11949) * vendor: Updating Gophercloud * provider/openstack: Fix upstream AvailabilityZone field This commit complements an upstream fix where "availability" was being sent instead of "availability_zone". --- ...source_openstack_blockstorage_volume_v1.go | 18 +- ...e_openstack_blockstorage_volume_v1_test.go | 5 +- .../gophercloud/gophercloud/STYLEGUIDE.md | 6 + .../blockstorage/v1/volumes/requests.go | 18 +- .../openstack/networking/v2/ports/requests.go | 4 +- .../gophercloud/gophercloud/util.go | 50 +++-- vendor/vendor.json | 182 +++++++++--------- 7 files changed, 155 insertions(+), 128 deletions(-) diff --git a/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go b/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go index b4d6b2031..ed3ef561d 100644 --- a/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go +++ b/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go @@ -112,15 +112,15 @@ func resourceBlockStorageVolumeV1Create(d *schema.ResourceData, meta interface{} } createOpts := &volumes.CreateOpts{ - Description: d.Get("description").(string), - Availability: d.Get("availability_zone").(string), - Name: d.Get("name").(string), - Size: d.Get("size").(int), - SnapshotID: d.Get("snapshot_id").(string), - SourceVolID: d.Get("source_vol_id").(string), - ImageID: d.Get("image_id").(string), - VolumeType: d.Get("volume_type").(string), - Metadata: resourceContainerMetadataV2(d), + Description: d.Get("description").(string), + AvailabilityZone: d.Get("availability_zone").(string), + Name: d.Get("name").(string), + Size: d.Get("size").(int), + SnapshotID: d.Get("snapshot_id").(string), + SourceVolID: d.Get("source_vol_id").(string), + ImageID: d.Get("image_id").(string), + VolumeType: d.Get("volume_type").(string), + Metadata: resourceContainerMetadataV2(d), } log.Printf("[DEBUG] Create Options: %#v", createOpts) diff --git a/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1_test.go b/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1_test.go index d19389c13..85d82f489 100644 --- a/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1_test.go +++ b/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1_test.go @@ -162,7 +162,8 @@ const testAccBlockStorageV1Volume_basic = ` resource "openstack_blockstorage_volume_v1" "volume_1" { name = "volume_1" description = "first test volume" - metadata{ + availability_zone = "nova" + metadata { foo = "bar" } size = 1 @@ -173,7 +174,7 @@ const testAccBlockStorageV1Volume_update = ` resource "openstack_blockstorage_volume_v1" "volume_1" { name = "volume_1-updated" description = "first test volume" - metadata{ + metadata { foo = "bar" } size = 1 diff --git a/vendor/github.com/gophercloud/gophercloud/STYLEGUIDE.md b/vendor/github.com/gophercloud/gophercloud/STYLEGUIDE.md index 18f6dc46b..5b49ef488 100644 --- a/vendor/github.com/gophercloud/gophercloud/STYLEGUIDE.md +++ b/vendor/github.com/gophercloud/gophercloud/STYLEGUIDE.md @@ -20,6 +20,12 @@ - A PR that is in-progress should have `[wip]` in front of the PR's title. When ready for review, remove the `[wip]` and ping a core contributor with an `@`. +- Forcing PRs to be small can have the effect of users submitting PRs in a hierarchical chain, with + one depending on the next. If a PR depends on another one, it should have a [Pending #PRNUM] + prefix in the PR title. In addition, it will be the PR submitter's responsibility to remove the + [Pending #PRNUM] tag once the PR has been updated with the merged, dependent PR. That will + let reviewers know it is ready to review. + - A PR should be small. Even if you intend on implementing an entire service, a PR should only be one route of that service (e.g. create server or get server, but not both). diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/requests.go b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/requests.go index d66859187..566def518 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/requests.go +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/requests.go @@ -15,15 +15,15 @@ type CreateOptsBuilder interface { // the volumes.Create function. For more information about these parameters, // see the Volume object. type CreateOpts struct { - Size int `json:"size" required:"true"` - Availability string `json:"availability,omitempty"` - Description string `json:"display_description,omitempty"` - Metadata map[string]string `json:"metadata,omitempty"` - Name string `json:"display_name,omitempty"` - SnapshotID string `json:"snapshot_id,omitempty"` - SourceVolID string `json:"source_volid,omitempty"` - ImageID string `json:"imageRef,omitempty"` - VolumeType string `json:"volume_type,omitempty"` + Size int `json:"size" required:"true"` + AvailabilityZone string `json:"availability_zone,omitempty"` + Description string `json:"display_description,omitempty"` + Metadata map[string]string `json:"metadata,omitempty"` + Name string `json:"display_name,omitempty"` + SnapshotID string `json:"snapshot_id,omitempty"` + SourceVolID string `json:"source_volid,omitempty"` + ImageID string `json:"imageRef,omitempty"` + VolumeType string `json:"volume_type,omitempty"` } // ToVolumeCreateMap assembles a request body based on the contents of a diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/requests.go b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/requests.go index 2a53202b3..d353b7ed3 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/requests.go +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/requests.go @@ -119,8 +119,8 @@ type UpdateOpts struct { FixedIPs interface{} `json:"fixed_ips,omitempty"` DeviceID string `json:"device_id,omitempty"` DeviceOwner string `json:"device_owner,omitempty"` - SecurityGroups []string `json:"security_groups,omitempty"` - AllowedAddressPairs []AddressPair `json:"allowed_address_pairs,omitempty"` + SecurityGroups []string `json:"security_groups"` + AllowedAddressPairs []AddressPair `json:"allowed_address_pairs"` } // ToPortUpdateMap casts an UpdateOpts struct to a map. diff --git a/vendor/github.com/gophercloud/gophercloud/util.go b/vendor/github.com/gophercloud/gophercloud/util.go index 3d6a4e490..68f9a5d3e 100644 --- a/vendor/github.com/gophercloud/gophercloud/util.go +++ b/vendor/github.com/gophercloud/gophercloud/util.go @@ -1,7 +1,7 @@ package gophercloud import ( - "errors" + "fmt" "net/url" "path/filepath" "strings" @@ -9,27 +9,47 @@ import ( ) // WaitFor polls a predicate function, once per second, up to a timeout limit. -// It usually does this to wait for a resource to transition to a certain state. +// This is useful to wait for a resource to transition to a certain state. +// To handle situations when the predicate might hang indefinitely, the +// predicate will be prematurely cancelled after the timeout. // Resource packages will wrap this in a more convenient function that's // specific to a certain resource, but it can also be useful on its own. func WaitFor(timeout int, predicate func() (bool, error)) error { - start := time.Now().Second() + type WaitForResult struct { + Success bool + Error error + } + + start := time.Now().Unix() + for { - // Force a 1s sleep + // If a timeout is set, and that's been exceeded, shut it down. + if timeout >= 0 && time.Now().Unix()-start >= int64(timeout) { + return fmt.Errorf("A timeout occurred") + } + time.Sleep(1 * time.Second) - // If a timeout is set, and that's been exceeded, shut it down - if timeout >= 0 && time.Now().Second()-start >= timeout { - return errors.New("A timeout occurred") - } + var result WaitForResult + ch := make(chan bool, 1) + go func() { + defer close(ch) + satisfied, err := predicate() + result.Success = satisfied + result.Error = err + }() - // Execute the function - satisfied, err := predicate() - if err != nil { - return err - } - if satisfied { - return nil + select { + case <-ch: + if result.Error != nil { + return result.Error + } + if result.Success { + return nil + } + // If the predicate has not finished by the timeout, cancel it. + case <-time.After(time.Duration(timeout) * time.Second): + return fmt.Errorf("A timeout occurred") } } } diff --git a/vendor/vendor.json b/vendor/vendor.json index 87636bfd6..4b738bccd 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1314,268 +1314,268 @@ "revisionTime": "2016-11-07T00:24:06Z" }, { - "checksumSHA1": "t8C0jff5naj/d2EYrUqdKus8lGY=", + "checksumSHA1": "xKB/9qxVhWxAERkjZLYfuUBR4P8=", "path": "github.com/gophercloud/gophercloud", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "S3zTth9INyj1RfyHkQEvJAvRWvw=", "path": "github.com/gophercloud/gophercloud/openstack", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "XAKLUSwXSMGtbp+U874qU4MzT/A=", "path": "github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { - "checksumSHA1": "PFD8SEqhArAy/6jRbIlYb5lp64k=", + "checksumSHA1": "9DTfNt/B4aZWXEmTNqXU5rNrrDc=", "path": "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "B4IXSmq364HcBruvvV0QjDFxZgc=", "path": "github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "w2wHF5eEBE89ZYlkS9GAJsSIq9U=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/bootfromvolume", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "e7AW3YDVYJPKUjpqsB4AL9RRlTw=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/floatingips", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "RWwUliHD65cWApdEo4ckOcPSArg=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/keypairs", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "tOmntqlmZ/r8aObUChNloddLhwk=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/schedulerhints", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "jNrUTQf+9dYfaD7YqvKwC+kGvyY=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/secgroups", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "ci4gzd7Uy9JC4NcQ2ms19pjtW6s=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/servergroups", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "qBpGbX7LQMPATdO8XyQmU7IXDiI=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/startstop", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "5JuziAp9BSRA/z+8pTjVLTWeTw4=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/tenantnetworks", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "2VNgU0F9PDax5VKClvMLmbzuksw=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "a9xDFPigDjHlPlthknKlBduGvKY=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "UGeqrw3KdPNRwDxl315MAYyy/uY=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/images", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "S8zR7Y8Yf6dz5+m5jyWYu5ar+vk=", "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/servers", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "1sVqsZBZBNhDXLY9XzjMkcOkcbg=", "path": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "AvUU5En9YpG25iLlcAPDgcQODjI=", "path": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "ZKyEbJuIlvuZ9aUushINCXJHF4w=", "path": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "aTHxjMlfNXFJ3l2TZyvIwqt/3kM=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/firewalls", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "14ZhP0wE/WCL/6oujcML755AaH4=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/policies", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "sYET5A7WTyJ7dpuxR/VXYoReldw=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/rules", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "0UcU/7oQbhlnYKoT+I+T403U8MQ=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "Mjt7GwFygyqPxygY8xZZnUasHmk=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "mCTz2rnyVfhjJ+AD/WihCNcYWiY=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "B2mtHvADREtFLam72wyijyQh/Ds=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "pTr22CKKJ26yvhgd0SRxFF4jkEs=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "E7/Z7g5O9o+ge+8YklheTpKgWNw=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "mhpwj5tPv7Uw5aUfC55fhLPBcKo=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "5efJz6UH7JCFeav5ZCCzicXCFTU=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "TVFgBTz7B6bb1R4TWdgAkbE1/fk=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "xirjw9vJIN6rmkT3T56bfPfOLUM=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "FKwSMrpQf7b3TcCOQfh+ovoBShA=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "CsS/kI3VeLcSHzMKviFVDwqwgvk=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "zKOhFTL5BDZPMC58ZzZkryjskno=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/networks", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { - "checksumSHA1": "BE+CO3QrEGpIgv3Ee2ANZp1WtSo=", + "checksumSHA1": "Lx257Qaf6y2weNwHTx6lm3OY7a8=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/ports", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "wY0MY7RpX0Z2Y0rMmrAuYS6cHYA=", "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/subnets", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "LtdQKIKKRKe6FOGdBvrBz/bg1Gc=", "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/accounts", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "1lwXcRrM5A7iCfekbn3bpfNLe3g=", "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/containers", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "dotTh+ZsNiyv8e9Z4e0chPEZDKE=", "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/objects", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "roxPPVwS2CjJhf0CApHNQxAX7EA=", "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/swauth", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "TDOZnaS0TO0NirpxV1QwPerAQTY=", "path": "github.com/gophercloud/gophercloud/openstack/utils", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "pmpLcbUZ+EgLUmTbzMtGRq3haOU=", "path": "github.com/gophercloud/gophercloud/pagination", - "revision": "ed2f96ce05eb76a9fe89e671467ebf1818f49234", - "revisionTime": "2017-01-20T19:02:54Z" + "revision": "b06120d13e262ceaf890ef38ee30898813696af0", + "revisionTime": "2017-02-14T04:36:15Z" }, { "checksumSHA1": "6tvhO5ieOvX9R6o0vtl19s0lr8E=",