1
1
package scaleway
2
2
3
3
import (
4
+ "context"
4
5
"fmt"
5
6
"strings"
6
7
"time"
@@ -68,15 +69,15 @@ func k8sGetMinorVersionFromFull(version string) (string, error) {
68
69
}
69
70
70
71
// k8sGetLatestVersionFromMinor returns the latest full version (x.y.z) for a given minor version (x.y)
71
- func k8sGetLatestVersionFromMinor (k8sAPI * k8s.API , region scw.Region , version string ) (string , error ) {
72
+ func k8sGetLatestVersionFromMinor (ctx context. Context , k8sAPI * k8s.API , region scw.Region , version string ) (string , error ) {
72
73
versionSplit := strings .Split (version , "." )
73
74
if len (versionSplit ) != 2 {
74
75
return "" , fmt .Errorf ("minor version should be like x.y not %s" , version )
75
76
}
76
77
77
78
versionsResp , err := k8sAPI .ListVersions (& k8s.ListVersionsRequest {
78
79
Region : region ,
79
- })
80
+ }, scw . WithContext ( ctx ) )
80
81
if err != nil {
81
82
return "" , err
82
83
}
@@ -93,12 +94,12 @@ func k8sGetLatestVersionFromMinor(k8sAPI *k8s.API, region scw.Region, version st
93
94
return "" , fmt .Errorf ("no available upstream version found for %s" , version )
94
95
}
95
96
96
- func waitK8SCluster (k8sAPI * k8s.API , region scw.Region , clusterID string , desiredStates ... k8s.ClusterStatus ) error {
97
+ func waitK8SCluster (ctx context. Context , k8sAPI * k8s.API , region scw.Region , clusterID string , desiredStates ... k8s.ClusterStatus ) error {
97
98
cluster , err := k8sAPI .WaitForCluster (& k8s.WaitForClusterRequest {
98
99
ClusterID : clusterID ,
99
100
Region : region ,
100
101
Timeout : scw .TimeDurationPtr (K8SClusterWaitForPoolRequiredTimeout ),
101
- })
102
+ }, scw . WithContext ( ctx ) )
102
103
if err != nil {
103
104
return err
104
105
}
@@ -112,12 +113,12 @@ func waitK8SCluster(k8sAPI *k8s.API, region scw.Region, clusterID string, desire
112
113
return fmt .Errorf ("cluster %s has state %s, wants one of %+q" , clusterID , cluster .Status , desiredStates )
113
114
}
114
115
115
- func waitK8SClusterDeleted (k8sAPI * k8s.API , region scw.Region , clusterID string ) error {
116
+ func waitK8SClusterDeleted (ctx context. Context , k8sAPI * k8s.API , region scw.Region , clusterID string ) error {
116
117
cluster , err := k8sAPI .WaitForCluster (& k8s.WaitForClusterRequest {
117
118
ClusterID : clusterID ,
118
119
Region : region ,
119
120
Timeout : scw .TimeDurationPtr (K8SClusterWaitForDeletedTimeout ),
120
- })
121
+ }, scw . WithContext ( ctx ) )
121
122
if err != nil {
122
123
if is404Error (err ) {
123
124
return nil
@@ -128,12 +129,12 @@ func waitK8SClusterDeleted(k8sAPI *k8s.API, region scw.Region, clusterID string)
128
129
return fmt .Errorf ("cluster %s has state %s, wants %s" , clusterID , cluster .Status , k8s .ClusterStatusDeleted )
129
130
}
130
131
131
- func waitK8SPoolReady (k8sAPI * k8s.API , region scw.Region , poolID string ) error {
132
+ func waitK8SPoolReady (ctx context. Context , k8sAPI * k8s.API , region scw.Region , poolID string ) error {
132
133
pool , err := k8sAPI .WaitForPool (& k8s.WaitForPoolRequest {
133
134
PoolID : poolID ,
134
135
Region : region ,
135
136
Timeout : scw .TimeDurationPtr (K8SPoolWaitForReadyTimeout ),
136
- })
137
+ }, scw . WithContext ( ctx ) )
137
138
138
139
if err != nil {
139
140
return err
@@ -163,14 +164,14 @@ func convertNodes(res *k8s.ListNodesResponse) []map[string]interface{} {
163
164
return result
164
165
}
165
166
166
- func getNodes (k8sAPI * k8s.API , pool * k8s.Pool ) ([]map [string ]interface {}, error ) {
167
+ func getNodes (ctx context. Context , k8sAPI * k8s.API , pool * k8s.Pool ) ([]map [string ]interface {}, error ) {
167
168
req := & k8s.ListNodesRequest {
168
169
Region : pool .Region ,
169
170
ClusterID : pool .ClusterID ,
170
171
PoolID : & pool .ID ,
171
172
}
172
173
173
- nodes , err := k8sAPI .ListNodes (req , scw .WithAllPages ())
174
+ nodes , err := k8sAPI .ListNodes (req , scw .WithAllPages (), scw . WithContext ( ctx ) )
174
175
175
176
if err != nil {
176
177
return nil , err
0 commit comments