@@ -17,126 +17,89 @@ package gcecloudprovider
17
17
import (
18
18
"strings"
19
19
20
- computealpha "google.golang.org/api/compute/v0.alpha"
20
+ "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
21
+ computebeta "google.golang.org/api/compute/v0.beta"
21
22
computev1 "google.golang.org/api/compute/v1"
22
23
)
23
24
24
25
type CloudDisk struct {
25
- ZonalDisk * computev1.Disk
26
- RegionalDisk * computev1.Disk
27
- ZonalAlphaDisk * computealpha.Disk
28
- RegionalAlphaDisk * computealpha.Disk
26
+ disk * computev1.Disk
27
+ betaDisk * computebeta.Disk
29
28
}
30
29
31
30
type CloudDiskType string
32
31
33
- const (
34
- // Zonal key type.
35
- Zonal = "zonal"
36
- // Regional key type.
37
- Regional = "regional"
38
- // ZonalAlpha key type.
39
- ZonalAlpha = "zonalAlpha"
40
- // RegionalAlpha key type.
41
- RegionalAlpha = "regionalAlpha"
42
- // Global key type.
43
- Global = "global"
44
- )
45
-
46
- func ZonalCloudDisk (disk * computev1.Disk ) * CloudDisk {
32
+ func CloudDiskFromV1 (disk * computev1.Disk ) * CloudDisk {
47
33
return & CloudDisk {
48
- ZonalDisk : disk ,
34
+ disk : disk ,
49
35
}
50
36
}
51
37
52
- func RegionalCloudDisk (disk * computev1 .Disk ) * CloudDisk {
38
+ func CloudDiskFromBeta (disk * computebeta .Disk ) * CloudDisk {
53
39
return & CloudDisk {
54
- RegionalDisk : disk ,
40
+ betaDisk : disk ,
55
41
}
56
42
}
57
43
58
- func ZonalAlphaCloudDisk ( disk * computealpha. Disk ) * CloudDisk {
59
- return & CloudDisk {
60
- ZonalAlphaDisk : disk ,
61
- }
62
- }
63
-
64
- func RegionalAlphaCloudDisk ( disk * computealpha. Disk ) * CloudDisk {
65
- return & CloudDisk {
66
- RegionalAlphaDisk : disk ,
44
+ func ( d * CloudDisk ) LocationType () meta. KeyType {
45
+ var zone , region string
46
+ switch {
47
+ case d . disk != nil :
48
+ zone = d . disk . Zone
49
+ region = d . disk . Region
50
+ case d . betaDisk != nil :
51
+ zone = d . betaDisk . Zone
52
+ region = d . betaDisk . Region
67
53
}
68
- }
69
-
70
- func (d * CloudDisk ) Type () CloudDiskType {
71
54
switch {
72
- case d .ZonalDisk != nil :
73
- return Zonal
74
- case d .RegionalDisk != nil :
75
- return Regional
76
- case d .ZonalAlphaDisk != nil :
77
- return ZonalAlpha
78
- case d .RegionalAlphaDisk != nil :
79
- return RegionalAlpha
55
+ case zone != "" :
56
+ return meta .Zonal
57
+ case region != "" :
58
+ return meta .Regional
80
59
default :
81
- return Global
60
+ return meta . Global
82
61
}
83
62
}
84
63
85
64
func (d * CloudDisk ) GetUsers () []string {
86
- switch d .Type () {
87
- case Zonal :
88
- return d .ZonalDisk .Users
89
- case Regional :
90
- return d .RegionalDisk .Users
91
- case ZonalAlpha :
92
- return d .ZonalAlphaDisk .Users
93
- case RegionalAlpha :
94
- return d .RegionalAlphaDisk .Users
65
+ switch {
66
+ case d .disk != nil :
67
+ return d .disk .Users
68
+ case d .betaDisk != nil :
69
+ return d .betaDisk .Users
95
70
default :
96
71
return nil
97
72
}
98
73
}
99
74
100
75
func (d * CloudDisk ) GetName () string {
101
- switch d .Type () {
102
- case Zonal :
103
- return d .ZonalDisk .Name
104
- case Regional :
105
- return d .RegionalDisk .Name
106
- case ZonalAlpha :
107
- return d .ZonalAlphaDisk .Name
108
- case RegionalAlpha :
109
- return d .RegionalAlphaDisk .Name
76
+ switch {
77
+ case d .disk != nil :
78
+ return d .disk .Name
79
+ case d .betaDisk != nil :
80
+ return d .betaDisk .Name
110
81
default :
111
82
return ""
112
83
}
113
84
}
114
85
115
86
func (d * CloudDisk ) GetKind () string {
116
- switch d .Type () {
117
- case Zonal :
118
- return d .ZonalDisk .Kind
119
- case Regional :
120
- return d .RegionalDisk .Kind
121
- case ZonalAlpha :
122
- return d .ZonalAlphaDisk .Kind
123
- case RegionalAlpha :
124
- return d .RegionalAlphaDisk .Kind
87
+ switch {
88
+ case d .disk != nil :
89
+ return d .disk .Kind
90
+ case d .betaDisk != nil :
91
+ return d .betaDisk .Kind
125
92
default :
126
93
return ""
127
94
}
128
95
}
129
96
130
97
func (d * CloudDisk ) GetStatus () string {
131
- switch d .Type () {
132
- case Zonal :
133
- return d .ZonalDisk .Status
134
- case Regional :
135
- return d .RegionalDisk .Status
136
- case ZonalAlpha :
137
- return d .ZonalAlphaDisk .Status
138
- case RegionalAlpha :
139
- return d .RegionalAlphaDisk .Status
98
+ switch {
99
+ case d .disk != nil :
100
+ return d .disk .Status
101
+ case d .betaDisk != nil :
102
+ return d .betaDisk .Status
140
103
default :
141
104
return "Unknown"
142
105
}
@@ -147,15 +110,11 @@ func (d *CloudDisk) GetStatus() string {
147
110
// validated, it is just passed verbatium from GCP.
148
111
func (d * CloudDisk ) GetPDType () string {
149
112
var pdType string
150
- switch d .Type () {
151
- case Zonal :
152
- pdType = d .ZonalDisk .Type
153
- case Regional :
154
- pdType = d .RegionalDisk .Type
155
- case ZonalAlpha :
156
- pdType = d .ZonalAlphaDisk .Type
157
- case RegionalAlpha :
158
- pdType = d .RegionalAlphaDisk .Type
113
+ switch {
114
+ case d .disk != nil :
115
+ pdType = d .disk .Type
116
+ case d .betaDisk != nil :
117
+ pdType = d .betaDisk .Type
159
118
default :
160
119
return ""
161
120
}
@@ -164,30 +123,22 @@ func (d *CloudDisk) GetPDType() string {
164
123
}
165
124
166
125
func (d * CloudDisk ) GetSelfLink () string {
167
- switch d .Type () {
168
- case Zonal :
169
- return d .ZonalDisk .SelfLink
170
- case Regional :
171
- return d .RegionalDisk .SelfLink
172
- case ZonalAlpha :
173
- return d .ZonalAlphaDisk .SelfLink
174
- case RegionalAlpha :
175
- return d .RegionalAlphaDisk .SelfLink
126
+ switch {
127
+ case d .disk != nil :
128
+ return d .disk .SelfLink
129
+ case d .betaDisk != nil :
130
+ return d .betaDisk .SelfLink
176
131
default :
177
132
return ""
178
133
}
179
134
}
180
135
181
136
func (d * CloudDisk ) GetSizeGb () int64 {
182
- switch d .Type () {
183
- case Zonal :
184
- return d .ZonalDisk .SizeGb
185
- case Regional :
186
- return d .RegionalDisk .SizeGb
187
- case ZonalAlpha :
188
- return d .ZonalAlphaDisk .SizeGb
189
- case RegionalAlpha :
190
- return d .RegionalAlphaDisk .SizeGb
137
+ switch {
138
+ case d .disk != nil :
139
+ return d .disk .SizeGb
140
+ case d .betaDisk != nil :
141
+ return d .betaDisk .SizeGb
191
142
default :
192
143
return - 1
193
144
}
@@ -196,82 +147,56 @@ func (d *CloudDisk) GetSizeGb() int64 {
196
147
// setSizeGb sets the size of the disk used ONLY
197
148
// for testing purposes.
198
149
func (d * CloudDisk ) setSizeGb (size int64 ) {
199
- switch d .Type () {
200
- case Zonal :
201
- d .ZonalDisk .SizeGb = size
202
- case Regional :
203
- d .RegionalDisk .SizeGb = size
204
- case ZonalAlpha :
205
- d .ZonalAlphaDisk .SizeGb = size
206
- case RegionalAlpha :
207
- d .RegionalAlphaDisk .SizeGb = size
150
+ switch {
151
+ case d .disk != nil :
152
+ d .disk .SizeGb = size
153
+ case d .betaDisk != nil :
154
+ d .betaDisk .SizeGb = size
208
155
}
209
156
}
210
157
211
158
func (d * CloudDisk ) GetZone () string {
212
- switch d .Type () {
213
- case Zonal :
214
- return d .ZonalDisk .Zone
215
- case Regional :
216
- return d .RegionalDisk .Zone
217
- case ZonalAlpha :
218
- return d .ZonalAlphaDisk .Zone
219
- case RegionalAlpha :
220
- return d .RegionalAlphaDisk .Zone
159
+ switch {
160
+ case d .disk != nil :
161
+ return d .disk .Zone
162
+ case d .betaDisk != nil :
163
+ return d .betaDisk .Zone
221
164
default :
222
165
return ""
223
166
}
224
167
}
225
168
226
169
func (d * CloudDisk ) GetSnapshotId () string {
227
- switch d .Type () {
228
- case Zonal :
229
- return d .ZonalDisk .SourceSnapshotId
230
- case Regional :
231
- return d .RegionalDisk .SourceSnapshotId
232
- case ZonalAlpha :
233
- return d .ZonalAlphaDisk .SourceSnapshotId
234
- case RegionalAlpha :
235
- return d .RegionalAlphaDisk .SourceSnapshotId
170
+ switch {
171
+ case d .disk != nil :
172
+ return d .disk .SourceSnapshotId
173
+ case d .betaDisk != nil :
174
+ return d .betaDisk .SourceSnapshotId
236
175
default :
237
176
return ""
238
177
}
239
178
}
240
179
241
180
func (d * CloudDisk ) GetKMSKeyName () string {
242
- var dek * computev1.CustomerEncryptionKey
243
- var dekAlpha * computealpha.CustomerEncryptionKey
244
- switch d .Type () {
245
- case Zonal :
246
- dek = d .ZonalDisk .DiskEncryptionKey
247
- case Regional :
248
- dek = d .RegionalDisk .DiskEncryptionKey
249
- case ZonalAlpha :
250
- dekAlpha = d .ZonalAlphaDisk .DiskEncryptionKey
251
- case RegionalAlpha :
252
- dekAlpha = d .RegionalAlphaDisk .DiskEncryptionKey
253
- default :
254
- return ""
255
- }
256
-
257
- if dek != nil {
258
- return dek .KmsKeyName
259
- } else if dekAlpha != nil {
260
- return dekAlpha .KmsKeyName
181
+ switch {
182
+ case d .disk != nil :
183
+ if dek := d .disk .DiskEncryptionKey ; dek != nil {
184
+ return dek .KmsKeyName
185
+ }
186
+ case d .betaDisk != nil :
187
+ if dek := d .betaDisk .DiskEncryptionKey ; dek != nil {
188
+ return dek .KmsKeyName
189
+ }
261
190
}
262
191
return ""
263
192
}
264
193
265
194
func (d * CloudDisk ) GetMultiWriter () bool {
266
- switch d .Type () {
267
- case Zonal :
268
- return false
269
- case Regional :
195
+ switch {
196
+ case d .disk != nil :
270
197
return false
271
- case ZonalAlpha :
272
- return d .ZonalAlphaDisk .MultiWriter
273
- case RegionalAlpha :
274
- return d .RegionalAlphaDisk .MultiWriter
198
+ case d .betaDisk != nil :
199
+ return d .betaDisk .MultiWriter
275
200
default :
276
201
return false
277
202
}
0 commit comments