Skip to content

Commit a3de0c5

Browse files
authored
bumping upcloud && setting longer default timeout (#1496)
1 parent 78c78b6 commit a3de0c5

12 files changed

+459
-274
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ require (
1010
github.com/Azure/go-autorest/autorest/adal v0.9.18
1111
github.com/Azure/go-autorest/autorest/azure/auth v0.5.3
1212
github.com/Azure/go-autorest/autorest/to v0.4.0
13-
github.com/UpCloudLtd/upcloud-go-api v0.0.0-20210127073406-2964ed7e5972
1413
github.com/aws/aws-sdk-go v1.35.20
1514
github.com/bramvdbogaerde/go-scp v1.0.0
1615
github.com/digitalocean/godo v1.57.0
@@ -44,6 +43,7 @@ require (
4443
google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37
4544
google.golang.org/grpc v1.51.0
4645
google.golang.org/protobuf v1.28.1
46+
gopkg.in/yaml.v2 v2.4.0
4747
gotest.tools v2.2.0+incompatible
4848
k8s.io/client-go v0.23.1
4949
)
@@ -62,6 +62,7 @@ require (
6262
github.com/Azure/go-autorest/logger v0.2.1 // indirect
6363
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
6464
github.com/Microsoft/go-winio v0.5.2 // indirect
65+
github.com/UpCloudLtd/upcloud-go-api/v6 v6.5.0 // indirect
6566
github.com/blang/semver v3.5.1+incompatible // indirect
6667
github.com/blang/semver/v4 v4.0.0 // indirect
6768
github.com/containerd/containerd v1.6.12 // indirect
@@ -112,7 +113,6 @@ require (
112113
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
113114
google.golang.org/appengine v1.6.7 // indirect
114115
gopkg.in/inf.v0 v0.9.1 // indirect
115-
gopkg.in/yaml.v2 v2.4.0 // indirect
116116
gopkg.in/yaml.v3 v3.0.1 // indirect
117117
k8s.io/api v0.23.1 // indirect
118118
k8s.io/apimachinery v0.23.1 // indirect

go.sum

Lines changed: 114 additions & 29 deletions
Large diffs are not rendered by default.

provider/upcloud/mocks/upcloud.go

Lines changed: 232 additions & 142 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provider/upcloud/upcloud.go

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
package upcloud
66

77
import (
8+
"context"
89
"errors"
910
"os"
1011
"time"
1112

12-
"github.com/UpCloudLtd/upcloud-go-api/upcloud"
13-
"github.com/UpCloudLtd/upcloud-go-api/upcloud/client"
14-
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
15-
"github.com/UpCloudLtd/upcloud-go-api/upcloud/service"
13+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud"
14+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud/client"
15+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud/request"
16+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud/service"
1617
"github.com/nanovms/ops/types"
1718
)
1819

@@ -64,18 +65,15 @@ func (p *Provider) Initialize(c *types.ProviderConfig) error {
6465
}
6566

6667
if p.upcloud == nil {
67-
c := client.New(user, password)
68-
69-
c.SetTimeout(time.Second * 30)
70-
68+
c := client.New(user, password, client.WithTimeout(time.Second*600))
7169
p.upcloud = service.New(c)
7270
}
7371

74-
_, err := p.upcloud.GetAccount()
72+
_, err := p.upcloud.GetAccount(context.Background())
7573

7674
if err != nil {
77-
if serviceError, ok := err.(*upcloud.Error); ok {
78-
return errors.New(serviceError.ErrorMessage)
75+
if serviceError, ok := err.(*upcloud.Problem); ok {
76+
return errors.New(serviceError.Title)
7977
}
8078
return errors.New("Invalid credentials")
8179
}
@@ -84,7 +82,7 @@ func (p *Provider) Initialize(c *types.ProviderConfig) error {
8482
}
8583

8684
func (p *Provider) findOrCreateTag(tag upcloud.Tag) (upcloudTag *upcloud.Tag, err error) {
87-
tagsResponse, err := p.upcloud.GetTags()
85+
tagsResponse, err := p.upcloud.GetTags(context.Background())
8886
if err != nil {
8987
return
9088
}
@@ -98,7 +96,7 @@ func (p *Provider) findOrCreateTag(tag upcloud.Tag) (upcloudTag *upcloud.Tag, er
9896

9997
createTagReq := &request.CreateTagRequest{Tag: tag}
10098

101-
upcloudTag, err = p.upcloud.CreateTag(createTagReq)
99+
upcloudTag, err = p.upcloud.CreateTag(context.Background(), createTagReq)
102100
if err != nil {
103101
return
104102
}

provider/upcloud/upcloud_image.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33
package upcloud
44

55
import (
6+
"context"
67
"errors"
78
"math"
89
"os"
910

10-
"github.com/UpCloudLtd/upcloud-go-api/upcloud"
11-
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
1211
"github.com/nanovms/ops/lepton"
1312
"github.com/nanovms/ops/types"
13+
14+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud"
15+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud/request"
1416
"github.com/olekukonko/tablewriter"
1517
)
1618

@@ -50,7 +52,7 @@ func (p *Provider) CreateImage(ctx *lepton.Context, imagePath string) error {
5052
Title: ctx.Config().CloudConfig.ImageName,
5153
}
5254

53-
templateDetails, err := p.upcloud.TemplatizeStorage(templatizeReq)
55+
templateDetails, err := p.upcloud.TemplatizeStorage(context.Background(), templatizeReq)
5456
if err != nil {
5557
return err
5658
}
@@ -108,7 +110,7 @@ func (p *Provider) GetImages(ctx *lepton.Context) (images []lepton.CloudImage, e
108110
Access: "private",
109111
}
110112

111-
templates, err := p.upcloud.GetStorages(listTemplatesReq)
113+
templates, err := p.upcloud.GetStorages(context.Background(), listTemplatesReq)
112114
if err != nil {
113115
return
114116
}

provider/upcloud/upcloud_image_test.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
package upcloud_test
44

55
import (
6+
"context"
67
"os"
78
"testing"
89
"time"
910

10-
"github.com/UpCloudLtd/upcloud-go-api/upcloud"
11-
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
1211
"github.com/nanovms/ops/lepton"
12+
13+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud"
14+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud/request"
1315
"github.com/stretchr/testify/assert"
1416
)
1517

@@ -22,24 +24,24 @@ func TestCreateImage(t *testing.T) {
2224
storageUUID := "1"
2325

2426
s.EXPECT().
25-
CreateStorage(&request.CreateStorageRequest{Size: 10}).
27+
CreateStorage(context.Background(), &request.CreateStorageRequest{Size: 1}).
2628
Return(&upcloud.StorageDetails{Storage: upcloud.Storage{UUID: storageUUID}}, nil)
2729

2830
s.EXPECT().
29-
CreateStorageImport(&request.CreateStorageImportRequest{StorageUUID: storageUUID, Source: "direct_upload", SourceLocation: file.Name()}).
31+
CreateStorageImport(context.Background(), &request.CreateStorageImportRequest{StorageUUID: storageUUID, Source: "direct_upload", SourceLocation: file.Name()}).
3032
Return(&upcloud.StorageImportDetails{}, nil)
3133

3234
s.EXPECT().
33-
WaitForStorageState(&request.WaitForStorageStateRequest{UUID: storageUUID, DesiredState: "online", Timeout: 10 * time.Minute}).
35+
WaitForStorageState(context.Background(), &request.WaitForStorageStateRequest{UUID: storageUUID, DesiredState: "online", Timeout: 10 * time.Minute}).
3436
Return(nil, nil).
3537
Times(2)
3638

3739
s.EXPECT().
38-
TemplatizeStorage(&request.TemplatizeStorageRequest{UUID: storageUUID}).
40+
TemplatizeStorage(context.Background(), &request.TemplatizeStorageRequest{UUID: storageUUID}).
3941
Return(nil, nil)
4042

4143
s.EXPECT().
42-
DeleteStorage(&request.DeleteStorageRequest{UUID: storageUUID}).
44+
DeleteStorage(context.Background(), &request.DeleteStorageRequest{UUID: storageUUID}).
4345
Return(nil)
4446

4547
ctx := lepton.NewContext(lepton.NewConfig())
@@ -52,7 +54,7 @@ func TestListImages(t *testing.T) {
5254
p, s := NewProvider(t)
5355

5456
s.EXPECT().
55-
GetStorages(&request.GetStoragesRequest{Access: "private", Type: "template"}).
57+
GetStorages(context.Background(), &request.GetStoragesRequest{Access: "private", Type: "template"}).
5658
Return(&upcloud.Storages{}, nil)
5759

5860
ctx := lepton.NewContext(lepton.NewConfig())
@@ -65,7 +67,7 @@ func TestGetImages(t *testing.T) {
6567
p, s := NewProvider(t)
6668

6769
s.EXPECT().
68-
GetStorages(&request.GetStoragesRequest{Access: "private", Type: "template"}).
70+
GetStorages(context.Background(), &request.GetStoragesRequest{Access: "private", Type: "template"}).
6971
Return(&upcloud.Storages{}, nil)
7072

7173
ctx := lepton.NewContext(lepton.NewConfig())
@@ -87,11 +89,11 @@ func TestDeleteImage(t *testing.T) {
8789
storages.Storages = []upcloud.Storage{{UUID: storageUUID, Title: storageTitle}}
8890

8991
s.EXPECT().
90-
GetStorages(&request.GetStoragesRequest{Access: "private", Type: "template"}).
92+
GetStorages(context.Background(), &request.GetStoragesRequest{Access: "private", Type: "template"}).
9193
Return(&storages, nil)
9294

9395
s.EXPECT().
94-
DeleteStorage(&request.DeleteStorageRequest{UUID: storageUUID}).
96+
DeleteStorage(context.Background(), &request.DeleteStorageRequest{UUID: storageUUID}).
9597
Return(nil)
9698

9799
ctx := lepton.NewContext(lepton.NewConfig())

provider/upcloud/upcloud_instance.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33
package upcloud
44

55
import (
6+
"context"
67
"errors"
78
"os"
89
"strings"
910
"time"
1011

11-
"github.com/UpCloudLtd/upcloud-go-api/upcloud"
12-
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
1312
"github.com/nanovms/ops/lepton"
13+
14+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud"
15+
"github.com/UpCloudLtd/upcloud-go-api/v6/upcloud/request"
1416
"github.com/olekukonko/tablewriter"
1517
)
1618

@@ -48,7 +50,7 @@ func (p *Provider) CreateInstance(ctx *lepton.Context) error {
4850

4951
ctx.Logger().Info("creating server")
5052

51-
serverDetails, err := p.upcloud.CreateServer(createInstanceReq)
53+
serverDetails, err := p.upcloud.CreateServer(context.Background(), createInstanceReq)
5254
if err != nil {
5355
return err
5456
}
@@ -78,7 +80,7 @@ func (p *Provider) CreateInstance(ctx *lepton.Context) error {
7880
Tags: []string{opsTag.Name, imageTag.Name},
7981
}
8082

81-
_, err = p.upcloud.TagServer(assignOpsTagsRequest)
83+
_, err = p.upcloud.TagServer(context.Background(), assignOpsTagsRequest)
8284
if err != nil {
8385
ctx.Logger().Warn("failed assigning ops tags: %s", err)
8486
return nil
@@ -134,7 +136,7 @@ func (p *Provider) GetInstances(ctx *lepton.Context) (instances []lepton.CloudIn
134136
ctx.Logger().Warn("failed creating tags: %s", err)
135137

136138
var servers *upcloud.Servers
137-
servers, err = p.upcloud.GetServers()
139+
servers, err = p.upcloud.GetServers(context.Background())
138140
if err != nil {
139141
return
140142
}
@@ -203,7 +205,7 @@ func (p *Provider) DeleteInstance(ctx *lepton.Context, instancename string) (err
203205
}
204206

205207
ctx.Logger().Debug(`deleting server with uuid "%s"`, instance.ID)
206-
err = p.upcloud.DeleteServer(deleteServerReq)
208+
err = p.upcloud.DeleteServer(context.Background(), deleteServerReq)
207209

208210
return
209211
}
@@ -226,7 +228,7 @@ func (p *Provider) stopServer(uuid string) (err error) {
226228
UUID: uuid,
227229
}
228230

229-
_, err = p.upcloud.StopServer(stopServerReq)
231+
_, err = p.upcloud.StopServer(context.Background(), stopServerReq)
230232

231233
return
232234
}
@@ -250,7 +252,7 @@ func (p *Provider) startServer(uuid string) (err error) {
250252
UUID: uuid,
251253
}
252254

253-
_, err = p.upcloud.StartServer(startServerReq)
255+
_, err = p.upcloud.StartServer(context.Background(), startServerReq)
254256

255257
return
256258
}
@@ -269,7 +271,7 @@ func (p *Provider) GetInstanceByName(ctx *lepton.Context, name string) (instance
269271
}
270272

271273
func (p *Provider) getServerByName(ctx *lepton.Context, name string) (server *upcloud.Server, err error) {
272-
servers, err := p.upcloud.GetServers()
274+
servers, err := p.upcloud.GetServers(context.Background())
273275
if err != nil {
274276
return
275277
}
@@ -293,7 +295,7 @@ func (p *Provider) GetInstanceByID(ctx *lepton.Context, id string) (instance *le
293295

294296
serverDetailsReq := &request.GetServerDetailsRequest{UUID: id}
295297

296-
serverDetails, err = p.upcloud.GetServerDetails(serverDetailsReq)
298+
serverDetails, err = p.upcloud.GetServerDetails(context.Background(), serverDetailsReq)
297299
if err != nil {
298300
return
299301
}
@@ -349,7 +351,7 @@ func (p *Provider) waitForServerState(uuid, state string) (err error) {
349351
Timeout: 1 * time.Minute,
350352
}
351353

352-
_, err = p.upcloud.WaitForServerState(waitReq)
354+
_, err = p.upcloud.WaitForServerState(context.Background(), waitReq)
353355

354356
return
355357
}

0 commit comments

Comments
 (0)