@@ -17,126 +17,89 @@ package gcecloudprovider
1717import (
1818 "strings"
1919
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"
2122 computev1 "google.golang.org/api/compute/v1"
2223)
2324
2425type 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
2928}
3029
3130type CloudDiskType string
3231
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 {
4733 return & CloudDisk {
48- ZonalDisk : disk ,
34+ disk : disk ,
4935 }
5036}
5137
52- func RegionalCloudDisk (disk * computev1 .Disk ) * CloudDisk {
38+ func CloudDiskFromBeta (disk * computebeta .Disk ) * CloudDisk {
5339 return & CloudDisk {
54- RegionalDisk : disk ,
40+ betaDisk : disk ,
5541 }
5642}
5743
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
6753 }
68- }
69-
70- func (d * CloudDisk ) Type () CloudDiskType {
7154 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
8059 default :
81- return Global
60+ return meta . Global
8261 }
8362}
8463
8564func (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
9570 default :
9671 return nil
9772 }
9873}
9974
10075func (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
11081 default :
11182 return ""
11283 }
11384}
11485
11586func (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
12592 default :
12693 return ""
12794 }
12895}
12996
13097func (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
140103 default :
141104 return "Unknown"
142105 }
@@ -147,15 +110,11 @@ func (d *CloudDisk) GetStatus() string {
147110// validated, it is just passed verbatium from GCP.
148111func (d * CloudDisk ) GetPDType () string {
149112 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
159118 default :
160119 return ""
161120 }
@@ -164,30 +123,22 @@ func (d *CloudDisk) GetPDType() string {
164123}
165124
166125func (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
176131 default :
177132 return ""
178133 }
179134}
180135
181136func (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
191142 default :
192143 return - 1
193144 }
@@ -196,82 +147,56 @@ func (d *CloudDisk) GetSizeGb() int64 {
196147// setSizeGb sets the size of the disk used ONLY
197148// for testing purposes.
198149func (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
208155 }
209156}
210157
211158func (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
221164 default :
222165 return ""
223166 }
224167}
225168
226169func (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
236175 default :
237176 return ""
238177 }
239178}
240179
241180func (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+ }
261190 }
262191 return ""
263192}
264193
265194func (d * CloudDisk ) GetMultiWriter () bool {
266- switch d .Type () {
267- case Zonal :
268- return false
269- case Regional :
195+ switch {
196+ case d .disk != nil :
270197 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
275200 default :
276201 return false
277202 }
0 commit comments