Skip to content

Commit da047b4

Browse files
committed
fix: Upgrade to gophercloud v2
Primarily add context references to all remote calling methods, and fix one non-extension module path.
1 parent 35bfe20 commit da047b4

File tree

4 files changed

+23
-31
lines changed

4 files changed

+23
-31
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ require (
1616
github.com/docker/go-connections v0.4.0 // indirect
1717
golang.org/x/mod v0.8.0 // indirect
1818
golang.org/x/net v0.23.0 // indirect
19-
golang.org/x/sys v0.18.0 // indirect
19+
golang.org/x/sys v0.21.0 // indirect
2020
golang.org/x/tools v0.6.0 // indirect
2121
)

go.sum

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5Xh
1212
github.com/docker/go-plugins-helpers v0.0.0-20240701071450-45e2431495c8 h1:IMfrF5LCzP2Vhw7j4IIH3HxPsCLuZYjDqFAM/C88ulg=
1313
github.com/docker/go-plugins-helpers v0.0.0-20240701071450-45e2431495c8/go.mod h1:LFyLie6XcDbyKGeVK6bHe+9aJTYCxWLBg5IrJZOaXKA=
1414
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
15-
github.com/gophercloud/gophercloud v1.12.0 h1:Jrz16vPAL93l80q16fp8NplrTCp93y7rZh2P3Q4Yq7g=
16-
github.com/gophercloud/gophercloud v1.12.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM=
15+
github.com/gophercloud/gophercloud/v2 v2.0.0 h1:iH0x0Ji79a/ULzmq95fvOBAyie7+M+wUAEu+JrRMsCk=
16+
github.com/gophercloud/gophercloud/v2 v2.0.0/go.mod h1:ZKbcGNjxFTSaP5wlvtLDdsppllD/UGGvXBPqcjeqA8Y=
1717
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1818
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1919
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
@@ -23,27 +23,18 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs
2323
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
2424
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
2525
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
26-
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
2726
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
2827
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
29-
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3028
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
3129
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
3230
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
3331
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
34-
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
35-
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
36-
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3732
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
38-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
39-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
40-
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
41-
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
42-
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
33+
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
34+
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
4335
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
4436
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
4537
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
4638
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
47-
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
4839
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
4940
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

main.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"encoding/json"
56
"flag"
67
"io/ioutil"
@@ -11,8 +12,8 @@ import (
1112
log "github.com/sirupsen/logrus"
1213

1314
"github.com/docker/go-plugins-helpers/volume"
14-
"github.com/gophercloud/gophercloud"
15-
"github.com/gophercloud/gophercloud/openstack"
15+
"github.com/gophercloud/gophercloud/v2"
16+
"github.com/gophercloud/gophercloud/v2/openstack"
1617
)
1718

1819
type tConfig struct {
@@ -104,7 +105,7 @@ func main() {
104105
logger := log.WithField("endpoint", opts.IdentityEndpoint)
105106
logger.Info("Connecting...")
106107

107-
provider, err := openstack.AuthenticatedClient(opts)
108+
provider, err := openstack.AuthenticatedClient(context.TODO(), opts)
108109
if err != nil {
109110
logger.WithError(err).Fatal(err.Error())
110111
}

plugin.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ import (
1818
log "github.com/sirupsen/logrus"
1919

2020
"github.com/docker/go-plugins-helpers/volume"
21-
"github.com/gophercloud/gophercloud"
22-
"github.com/gophercloud/gophercloud/openstack"
23-
"github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes"
24-
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach"
25-
"github.com/gophercloud/gophercloud/pagination"
21+
"github.com/gophercloud/gophercloud/v2"
22+
"github.com/gophercloud/gophercloud/v2/openstack"
23+
"github.com/gophercloud/gophercloud/v2/openstack/blockstorage/v3/volumes"
24+
"github.com/gophercloud/gophercloud/v2/openstack/compute/v2/volumeattach"
25+
"github.com/gophercloud/gophercloud/v2/pagination"
2626
)
2727

2828
type plugin struct {
@@ -98,10 +98,10 @@ func (d plugin) Create(r *volume.CreateRequest) error {
9898
}
9999
}
100100

101-
vol, err := volumes.Create(d.blockClient, volumes.CreateOpts{
101+
vol, err := volumes.Create(context.TODO(), d.blockClient, volumes.CreateOpts{
102102
Size: size,
103103
Name: r.Name,
104-
}).Extract()
104+
}, volumes.SchedulerHintOpts{}).Extract()
105105

106106
if err != nil {
107107
logger.WithError(err).Errorf("Error creating volume: %s", err.Error())
@@ -142,7 +142,7 @@ func (d plugin) List() (*volume.ListResponse, error) {
142142
var vols []*volume.Volume
143143

144144
pager := volumes.List(d.blockClient, volumes.ListOpts{})
145-
err := pager.EachPage(func(page pagination.Page) (bool, error) {
145+
err := pager.EachPage(context.TODO(), func(ctx context.Context, page pagination.Page) (bool, error) {
146146
vList, _ := volumes.ExtractVolumes(page)
147147

148148
for _, v := range vList {
@@ -189,7 +189,7 @@ func (d plugin) Mount(r *volume.MountRequest) (*volume.MountResponse, error) {
189189
}
190190
}
191191

192-
if vol, err = volumes.Get(d.blockClient, vol.ID).Extract(); err != nil {
192+
if vol, err = volumes.Get(context.TODO(), d.blockClient, vol.ID).Extract(); err != nil {
193193
return nil, err
194194
}
195195

@@ -216,7 +216,7 @@ func (d plugin) Mount(r *volume.MountRequest) (*volume.MountResponse, error) {
216216
// Attaching block volume to compute instance
217217

218218
opts := volumeattach.CreateOpts{VolumeID: vol.ID}
219-
_, err = volumeattach.Create(d.computeClient, d.config.MachineID, opts).Extract()
219+
_, err = volumeattach.Create(context.TODO(), d.computeClient, d.config.MachineID, opts).Extract()
220220

221221
if err != nil {
222222
logger.WithError(err).Errorf("Error attaching volume: %s", err.Error())
@@ -312,7 +312,7 @@ func (d plugin) Remove(r *volume.RemoveRequest) error {
312312

313313
logger.Debug("Deleting block volume...")
314314

315-
err = volumes.Delete(d.blockClient, vol.ID, volumes.DeleteOpts{}).ExtractErr()
315+
err = volumes.Delete(context.TODO(), d.blockClient, vol.ID, volumes.DeleteOpts{}).ExtractErr()
316316
if err != nil {
317317
logger.WithError(err).Errorf("Error deleting volume: %s", err.Error())
318318
return err
@@ -361,7 +361,7 @@ func (d plugin) getByName(name string) (*volumes.Volume, error) {
361361
var volume *volumes.Volume
362362

363363
pager := volumes.List(d.blockClient, volumes.ListOpts{Name: name})
364-
err := pager.EachPage(func(page pagination.Page) (bool, error) {
364+
err := pager.EachPage(context.TODO(), func(ctx context.Context, page pagination.Page) (bool, error) {
365365
vList, err := volumes.ExtractVolumes(page)
366366

367367
if err != nil {
@@ -387,7 +387,7 @@ func (d plugin) getByName(name string) (*volumes.Volume, error) {
387387

388388
func (d plugin) detachVolume(ctx context.Context, vol *volumes.Volume) (*volumes.Volume, error) {
389389
for _, att := range vol.Attachments {
390-
err := volumeattach.Delete(d.computeClient, att.ServerID, att.ID).ExtractErr()
390+
err := volumeattach.Delete(ctx, d.computeClient, att.ServerID, att.ID).ExtractErr()
391391
if err != nil {
392392
return nil, err
393393
}
@@ -404,7 +404,7 @@ func (d plugin) waitOnVolumeState(ctx context.Context, vol *volumes.Volume, stat
404404
for i := 1; i <= 10; i++ {
405405
time.Sleep(500 * time.Millisecond)
406406

407-
vol, err := volumes.Get(d.blockClient, vol.ID).Extract()
407+
vol, err := volumes.Get(ctx, d.blockClient, vol.ID).Extract()
408408
if err != nil {
409409
return nil, err
410410
}

0 commit comments

Comments
 (0)