Skip to content

Commit 53e8abd

Browse files
authored
Merge pull request #643 from alculquicondor/compute-beta
Migrate from alpha to beta compute APIs
2 parents f96028f + 2c2ff1f commit 53e8abd

File tree

7 files changed

+180
-274
lines changed

7 files changed

+180
-274
lines changed

pkg/gce-cloud-provider/compute/cloud-disk.go

+85-160
Original file line numberDiff line numberDiff line change
@@ -17,126 +17,89 @@ package gcecloudprovider
1717
import (
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

2425
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
2928
}
3029

3130
type 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

8564
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
9570
default:
9671
return nil
9772
}
9873
}
9974

10075
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
11081
default:
11182
return ""
11283
}
11384
}
11485

11586
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
12592
default:
12693
return ""
12794
}
12895
}
12996

13097
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
140103
default:
141104
return "Unknown"
142105
}
@@ -147,15 +110,11 @@ func (d *CloudDisk) GetStatus() string {
147110
// validated, it is just passed verbatium from GCP.
148111
func (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

166125
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
176131
default:
177132
return ""
178133
}
179134
}
180135

181136
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
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.
198149
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
208155
}
209156
}
210157

211158
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
221164
default:
222165
return ""
223166
}
224167
}
225168

226169
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
236175
default:
237176
return ""
238177
}
239178
}
240179

241180
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+
}
261190
}
262191
return ""
263192
}
264193

265194
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:
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

Comments
 (0)