@@ -17,12 +17,15 @@ package gcecloudprovider
17
17
import (
18
18
"strings"
19
19
20
+ computealpha "google.golang.org/api/compute/v0.alpha"
20
21
computev1 "google.golang.org/api/compute/v1"
21
22
)
22
23
23
24
type CloudDisk struct {
24
- ZonalDisk * computev1.Disk
25
- RegionalDisk * computev1.Disk
25
+ ZonalDisk * computev1.Disk
26
+ RegionalDisk * computev1.Disk
27
+ ZonalAlphaDisk * computealpha.Disk
28
+ RegionalAlphaDisk * computealpha.Disk
26
29
}
27
30
28
31
type CloudDiskType string
@@ -32,6 +35,10 @@ const (
32
35
Zonal = "zonal"
33
36
// Regional key type.
34
37
Regional = "regional"
38
+ // ZonalAlpha key type.
39
+ ZonalAlpha = "zonalAlpha"
40
+ // RegionalAlpha key type.
41
+ RegionalAlpha = "regionalAlpha"
35
42
// Global key type.
36
43
Global = "global"
37
44
)
@@ -48,12 +55,28 @@ func RegionalCloudDisk(disk *computev1.Disk) *CloudDisk {
48
55
}
49
56
}
50
57
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 ,
67
+ }
68
+ }
69
+
51
70
func (d * CloudDisk ) Type () CloudDiskType {
52
71
switch {
53
72
case d .ZonalDisk != nil :
54
73
return Zonal
55
74
case d .RegionalDisk != nil :
56
75
return Regional
76
+ case d .ZonalAlphaDisk != nil :
77
+ return ZonalAlpha
78
+ case d .RegionalAlphaDisk != nil :
79
+ return RegionalAlpha
57
80
default :
58
81
return Global
59
82
}
@@ -65,6 +88,10 @@ func (d *CloudDisk) GetUsers() []string {
65
88
return d .ZonalDisk .Users
66
89
case Regional :
67
90
return d .RegionalDisk .Users
91
+ case ZonalAlpha :
92
+ return d .ZonalAlphaDisk .Users
93
+ case RegionalAlpha :
94
+ return d .RegionalAlphaDisk .Users
68
95
default :
69
96
return nil
70
97
}
@@ -76,6 +103,10 @@ func (d *CloudDisk) GetName() string {
76
103
return d .ZonalDisk .Name
77
104
case Regional :
78
105
return d .RegionalDisk .Name
106
+ case ZonalAlpha :
107
+ return d .ZonalAlphaDisk .Name
108
+ case RegionalAlpha :
109
+ return d .RegionalAlphaDisk .Name
79
110
default :
80
111
return ""
81
112
}
@@ -87,6 +118,10 @@ func (d *CloudDisk) GetKind() string {
87
118
return d .ZonalDisk .Kind
88
119
case Regional :
89
120
return d .RegionalDisk .Kind
121
+ case ZonalAlpha :
122
+ return d .ZonalAlphaDisk .Kind
123
+ case RegionalAlpha :
124
+ return d .RegionalAlphaDisk .Kind
90
125
default :
91
126
return ""
92
127
}
@@ -98,6 +133,10 @@ func (d *CloudDisk) GetStatus() string {
98
133
return d .ZonalDisk .Status
99
134
case Regional :
100
135
return d .RegionalDisk .Status
136
+ case ZonalAlpha :
137
+ return d .ZonalAlphaDisk .Status
138
+ case RegionalAlpha :
139
+ return d .RegionalAlphaDisk .Status
101
140
default :
102
141
return "Unknown"
103
142
}
@@ -113,6 +152,10 @@ func (d *CloudDisk) GetPDType() string {
113
152
pdType = d .ZonalDisk .Type
114
153
case Regional :
115
154
pdType = d .RegionalDisk .Type
155
+ case ZonalAlpha :
156
+ pdType = d .ZonalAlphaDisk .Type
157
+ case RegionalAlpha :
158
+ pdType = d .RegionalAlphaDisk .Type
116
159
default :
117
160
return ""
118
161
}
@@ -126,6 +169,10 @@ func (d *CloudDisk) GetSelfLink() string {
126
169
return d .ZonalDisk .SelfLink
127
170
case Regional :
128
171
return d .RegionalDisk .SelfLink
172
+ case ZonalAlpha :
173
+ return d .ZonalAlphaDisk .SelfLink
174
+ case RegionalAlpha :
175
+ return d .RegionalAlphaDisk .SelfLink
129
176
default :
130
177
return ""
131
178
}
@@ -137,6 +184,10 @@ func (d *CloudDisk) GetSizeGb() int64 {
137
184
return d .ZonalDisk .SizeGb
138
185
case Regional :
139
186
return d .RegionalDisk .SizeGb
187
+ case ZonalAlpha :
188
+ return d .ZonalAlphaDisk .SizeGb
189
+ case RegionalAlpha :
190
+ return d .RegionalAlphaDisk .SizeGb
140
191
default :
141
192
return - 1
142
193
}
@@ -150,6 +201,10 @@ func (d *CloudDisk) setSizeGb(size int64) {
150
201
d .ZonalDisk .SizeGb = size
151
202
case Regional :
152
203
d .RegionalDisk .SizeGb = size
204
+ case ZonalAlpha :
205
+ d .ZonalAlphaDisk .SizeGb = size
206
+ case RegionalAlpha :
207
+ d .RegionalAlphaDisk .SizeGb = size
153
208
}
154
209
}
155
210
@@ -159,6 +214,10 @@ func (d *CloudDisk) GetZone() string {
159
214
return d .ZonalDisk .Zone
160
215
case Regional :
161
216
return d .RegionalDisk .Zone
217
+ case ZonalAlpha :
218
+ return d .ZonalAlphaDisk .Zone
219
+ case RegionalAlpha :
220
+ return d .RegionalAlphaDisk .Zone
162
221
default :
163
222
return ""
164
223
}
@@ -170,23 +229,50 @@ func (d *CloudDisk) GetSnapshotId() string {
170
229
return d .ZonalDisk .SourceSnapshotId
171
230
case Regional :
172
231
return d .RegionalDisk .SourceSnapshotId
232
+ case ZonalAlpha :
233
+ return d .ZonalAlphaDisk .SourceSnapshotId
234
+ case RegionalAlpha :
235
+ return d .RegionalAlphaDisk .SourceSnapshotId
173
236
default :
174
237
return ""
175
238
}
176
239
}
177
240
178
241
func (d * CloudDisk ) GetKMSKeyName () string {
179
242
var dek * computev1.CustomerEncryptionKey
243
+ var dekAlpha * computealpha.CustomerEncryptionKey
180
244
switch d .Type () {
181
245
case Zonal :
182
246
dek = d .ZonalDisk .DiskEncryptionKey
183
247
case Regional :
184
248
dek = d .RegionalDisk .DiskEncryptionKey
249
+ case ZonalAlpha :
250
+ dekAlpha = d .ZonalAlphaDisk .DiskEncryptionKey
251
+ case RegionalAlpha :
252
+ dekAlpha = d .RegionalAlphaDisk .DiskEncryptionKey
185
253
default :
186
254
return ""
187
255
}
188
- if dek == nil {
189
- return ""
256
+
257
+ if dek != nil {
258
+ return dek .KmsKeyName
259
+ } else if dekAlpha != nil {
260
+ return dekAlpha .KmsKeyName
261
+ }
262
+ return ""
263
+ }
264
+
265
+ func (d * CloudDisk ) GetMultiWriter () bool {
266
+ switch d .Type () {
267
+ case Zonal :
268
+ return false
269
+ case Regional :
270
+ return false
271
+ case ZonalAlpha :
272
+ return d .ZonalAlphaDisk .MultiWriter
273
+ case RegionalAlpha :
274
+ return d .RegionalAlphaDisk .MultiWriter
275
+ default :
276
+ return false
190
277
}
191
- return dek .KmsKeyName
192
278
}
0 commit comments