@@ -17,12 +17,15 @@ package gcecloudprovider
1717import (
1818 "strings"
1919
20+ computealpha "google.golang.org/api/compute/v0.alpha"
2021 computev1 "google.golang.org/api/compute/v1"
2122)
2223
2324type 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
2629}
2730
2831type CloudDiskType string
@@ -32,6 +35,10 @@ const (
3235 Zonal = "zonal"
3336 // Regional key type.
3437 Regional = "regional"
38+ // ZonalAlpha key type.
39+ ZonalAlpha = "zonalAlpha"
40+ // RegionalAlpha key type.
41+ RegionalAlpha = "regionalAlpha"
3542 // Global key type.
3643 Global = "global"
3744)
@@ -48,12 +55,28 @@ func RegionalCloudDisk(disk *computev1.Disk) *CloudDisk {
4855 }
4956}
5057
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+
5170func (d * CloudDisk ) Type () CloudDiskType {
5271 switch {
5372 case d .ZonalDisk != nil :
5473 return Zonal
5574 case d .RegionalDisk != nil :
5675 return Regional
76+ case d .ZonalAlphaDisk != nil :
77+ return ZonalAlpha
78+ case d .RegionalAlphaDisk != nil :
79+ return RegionalAlpha
5780 default :
5881 return Global
5982 }
@@ -65,6 +88,10 @@ func (d *CloudDisk) GetUsers() []string {
6588 return d .ZonalDisk .Users
6689 case Regional :
6790 return d .RegionalDisk .Users
91+ case ZonalAlpha :
92+ return d .ZonalAlphaDisk .Users
93+ case RegionalAlpha :
94+ return d .RegionalAlphaDisk .Users
6895 default :
6996 return nil
7097 }
@@ -76,6 +103,10 @@ func (d *CloudDisk) GetName() string {
76103 return d .ZonalDisk .Name
77104 case Regional :
78105 return d .RegionalDisk .Name
106+ case ZonalAlpha :
107+ return d .ZonalAlphaDisk .Name
108+ case RegionalAlpha :
109+ return d .RegionalAlphaDisk .Name
79110 default :
80111 return ""
81112 }
@@ -87,6 +118,10 @@ func (d *CloudDisk) GetKind() string {
87118 return d .ZonalDisk .Kind
88119 case Regional :
89120 return d .RegionalDisk .Kind
121+ case ZonalAlpha :
122+ return d .ZonalAlphaDisk .Kind
123+ case RegionalAlpha :
124+ return d .RegionalAlphaDisk .Kind
90125 default :
91126 return ""
92127 }
@@ -98,6 +133,10 @@ func (d *CloudDisk) GetStatus() string {
98133 return d .ZonalDisk .Status
99134 case Regional :
100135 return d .RegionalDisk .Status
136+ case ZonalAlpha :
137+ return d .ZonalAlphaDisk .Status
138+ case RegionalAlpha :
139+ return d .RegionalAlphaDisk .Status
101140 default :
102141 return "Unknown"
103142 }
@@ -113,6 +152,10 @@ func (d *CloudDisk) GetPDType() string {
113152 pdType = d .ZonalDisk .Type
114153 case Regional :
115154 pdType = d .RegionalDisk .Type
155+ case ZonalAlpha :
156+ pdType = d .ZonalAlphaDisk .Type
157+ case RegionalAlpha :
158+ pdType = d .RegionalAlphaDisk .Type
116159 default :
117160 return ""
118161 }
@@ -126,6 +169,10 @@ func (d *CloudDisk) GetSelfLink() string {
126169 return d .ZonalDisk .SelfLink
127170 case Regional :
128171 return d .RegionalDisk .SelfLink
172+ case ZonalAlpha :
173+ return d .ZonalAlphaDisk .SelfLink
174+ case RegionalAlpha :
175+ return d .RegionalAlphaDisk .SelfLink
129176 default :
130177 return ""
131178 }
@@ -137,6 +184,10 @@ func (d *CloudDisk) GetSizeGb() int64 {
137184 return d .ZonalDisk .SizeGb
138185 case Regional :
139186 return d .RegionalDisk .SizeGb
187+ case ZonalAlpha :
188+ return d .ZonalAlphaDisk .SizeGb
189+ case RegionalAlpha :
190+ return d .RegionalAlphaDisk .SizeGb
140191 default :
141192 return - 1
142193 }
@@ -150,6 +201,10 @@ func (d *CloudDisk) setSizeGb(size int64) {
150201 d .ZonalDisk .SizeGb = size
151202 case Regional :
152203 d .RegionalDisk .SizeGb = size
204+ case ZonalAlpha :
205+ d .ZonalAlphaDisk .SizeGb = size
206+ case RegionalAlpha :
207+ d .RegionalAlphaDisk .SizeGb = size
153208 }
154209}
155210
@@ -159,6 +214,10 @@ func (d *CloudDisk) GetZone() string {
159214 return d .ZonalDisk .Zone
160215 case Regional :
161216 return d .RegionalDisk .Zone
217+ case ZonalAlpha :
218+ return d .ZonalAlphaDisk .Zone
219+ case RegionalAlpha :
220+ return d .RegionalAlphaDisk .Zone
162221 default :
163222 return ""
164223 }
@@ -170,23 +229,50 @@ func (d *CloudDisk) GetSnapshotId() string {
170229 return d .ZonalDisk .SourceSnapshotId
171230 case Regional :
172231 return d .RegionalDisk .SourceSnapshotId
232+ case ZonalAlpha :
233+ return d .ZonalAlphaDisk .SourceSnapshotId
234+ case RegionalAlpha :
235+ return d .RegionalAlphaDisk .SourceSnapshotId
173236 default :
174237 return ""
175238 }
176239}
177240
178241func (d * CloudDisk ) GetKMSKeyName () string {
179242 var dek * computev1.CustomerEncryptionKey
243+ var dekAlpha * computealpha.CustomerEncryptionKey
180244 switch d .Type () {
181245 case Zonal :
182246 dek = d .ZonalDisk .DiskEncryptionKey
183247 case Regional :
184248 dek = d .RegionalDisk .DiskEncryptionKey
249+ case ZonalAlpha :
250+ dekAlpha = d .ZonalAlphaDisk .DiskEncryptionKey
251+ case RegionalAlpha :
252+ dekAlpha = d .RegionalAlphaDisk .DiskEncryptionKey
185253 default :
186254 return ""
187255 }
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
190277 }
191- return dek .KmsKeyName
192278}
0 commit comments