@@ -15,12 +15,15 @@ limitations under the License.
15
15
package gcecloudprovider
16
16
17
17
import (
18
+ computealpha "google.golang.org/api/compute/v0.alpha"
18
19
computev1 "google.golang.org/api/compute/v1"
19
20
)
20
21
21
22
type CloudDisk struct {
22
- ZonalDisk * computev1.Disk
23
- RegionalDisk * computev1.Disk
23
+ ZonalDisk * computev1.Disk
24
+ RegionalDisk * computev1.Disk
25
+ ZonalAlphaDisk * computealpha.Disk
26
+ RegionalAlphaDisk * computealpha.Disk
24
27
}
25
28
26
29
type CloudDiskType string
@@ -30,6 +33,10 @@ const (
30
33
Zonal = "zonal"
31
34
// Regional key type.
32
35
Regional = "regional"
36
+ // ZonalAlpha key type.
37
+ ZonalAlpha = "zonalAlpha"
38
+ // RegionalAlpha key type.
39
+ RegionalAlpha = "regionalAlpha"
33
40
// Global key type.
34
41
Global = "global"
35
42
)
@@ -46,12 +53,28 @@ func RegionalCloudDisk(disk *computev1.Disk) *CloudDisk {
46
53
}
47
54
}
48
55
56
+ func ZonalAlphaCloudDisk (disk * computealpha.Disk ) * CloudDisk {
57
+ return & CloudDisk {
58
+ ZonalAlphaDisk : disk ,
59
+ }
60
+ }
61
+
62
+ func RegionalAlphaCloudDisk (disk * computealpha.Disk ) * CloudDisk {
63
+ return & CloudDisk {
64
+ RegionalAlphaDisk : disk ,
65
+ }
66
+ }
67
+
49
68
func (d * CloudDisk ) Type () CloudDiskType {
50
69
switch {
51
70
case d .ZonalDisk != nil :
52
71
return Zonal
53
72
case d .RegionalDisk != nil :
54
73
return Regional
74
+ case d .ZonalAlphaDisk != nil :
75
+ return ZonalAlpha
76
+ case d .RegionalAlphaDisk != nil :
77
+ return RegionalAlpha
55
78
default :
56
79
return Global
57
80
}
@@ -63,6 +86,10 @@ func (d *CloudDisk) GetUsers() []string {
63
86
return d .ZonalDisk .Users
64
87
case Regional :
65
88
return d .RegionalDisk .Users
89
+ case ZonalAlpha :
90
+ return d .ZonalAlphaDisk .Users
91
+ case RegionalAlpha :
92
+ return d .RegionalAlphaDisk .Users
66
93
default :
67
94
return nil
68
95
}
@@ -74,6 +101,10 @@ func (d *CloudDisk) GetName() string {
74
101
return d .ZonalDisk .Name
75
102
case Regional :
76
103
return d .RegionalDisk .Name
104
+ case ZonalAlpha :
105
+ return d .ZonalAlphaDisk .Name
106
+ case RegionalAlpha :
107
+ return d .RegionalAlphaDisk .Name
77
108
default :
78
109
return ""
79
110
}
@@ -85,6 +116,10 @@ func (d *CloudDisk) GetKind() string {
85
116
return d .ZonalDisk .Kind
86
117
case Regional :
87
118
return d .RegionalDisk .Kind
119
+ case ZonalAlpha :
120
+ return d .ZonalAlphaDisk .Kind
121
+ case RegionalAlpha :
122
+ return d .RegionalAlphaDisk .Kind
88
123
default :
89
124
return ""
90
125
}
@@ -96,6 +131,10 @@ func (d *CloudDisk) GetType() string {
96
131
return d .ZonalDisk .Type
97
132
case Regional :
98
133
return d .RegionalDisk .Type
134
+ case ZonalAlpha :
135
+ return d .ZonalAlphaDisk .Type
136
+ case RegionalAlpha :
137
+ return d .RegionalAlphaDisk .Type
99
138
default :
100
139
return ""
101
140
}
@@ -107,6 +146,10 @@ func (d *CloudDisk) GetSelfLink() string {
107
146
return d .ZonalDisk .SelfLink
108
147
case Regional :
109
148
return d .RegionalDisk .SelfLink
149
+ case ZonalAlpha :
150
+ return d .ZonalAlphaDisk .SelfLink
151
+ case RegionalAlpha :
152
+ return d .RegionalAlphaDisk .SelfLink
110
153
default :
111
154
return ""
112
155
}
@@ -118,6 +161,10 @@ func (d *CloudDisk) GetSizeGb() int64 {
118
161
return d .ZonalDisk .SizeGb
119
162
case Regional :
120
163
return d .RegionalDisk .SizeGb
164
+ case ZonalAlpha :
165
+ return d .ZonalAlphaDisk .SizeGb
166
+ case RegionalAlpha :
167
+ return d .RegionalAlphaDisk .SizeGb
121
168
default :
122
169
return - 1
123
170
}
@@ -131,6 +178,10 @@ func (d *CloudDisk) setSizeGb(size int64) {
131
178
d .ZonalDisk .SizeGb = size
132
179
case Regional :
133
180
d .RegionalDisk .SizeGb = size
181
+ case ZonalAlpha :
182
+ d .ZonalAlphaDisk .SizeGb = size
183
+ case RegionalAlpha :
184
+ d .RegionalAlphaDisk .SizeGb = size
134
185
}
135
186
}
136
187
@@ -140,6 +191,10 @@ func (d *CloudDisk) GetZone() string {
140
191
return d .ZonalDisk .Zone
141
192
case Regional :
142
193
return d .RegionalDisk .Zone
194
+ case ZonalAlpha :
195
+ return d .ZonalAlphaDisk .Zone
196
+ case RegionalAlpha :
197
+ return d .RegionalAlphaDisk .Zone
143
198
default :
144
199
return ""
145
200
}
@@ -151,7 +206,26 @@ func (d *CloudDisk) GetSnapshotId() string {
151
206
return d .ZonalDisk .SourceSnapshotId
152
207
case Regional :
153
208
return d .RegionalDisk .SourceSnapshotId
209
+ case ZonalAlpha :
210
+ return d .ZonalAlphaDisk .SourceSnapshotId
211
+ case RegionalAlpha :
212
+ return d .RegionalAlphaDisk .SourceSnapshotId
154
213
default :
155
214
return ""
156
215
}
157
216
}
217
+
218
+ func (d * CloudDisk ) GetMultiWriter () bool {
219
+ switch d .Type () {
220
+ case Zonal :
221
+ return false
222
+ case Regional :
223
+ return false
224
+ case ZonalAlpha :
225
+ return d .ZonalAlphaDisk .MultiWriter
226
+ case RegionalAlpha :
227
+ return d .RegionalAlphaDisk .MultiWriter
228
+ default :
229
+ return false
230
+ }
231
+ }
0 commit comments