@@ -143,19 +143,29 @@ func TestMetadataRetrieval(t *testing.T) {
143
143
})
144
144
145
145
ipTests := []struct {
146
- name string
147
- inputIPv4s []string
148
- inputIPv6 string
149
- externalNetwork string
150
- outputAddresses []v1.NodeAddress
151
- expectedErr error
146
+ name string
147
+ inputIPv4s []string
148
+ inputIPv6 string
149
+ externalNetwork string
150
+ existingAddresses []v1.NodeAddress
151
+ outputAddresses []v1.NodeAddress
152
+ expectedErr error
152
153
}{
153
- {"no IPs" , nil , "" , "" , nil , instanceNoIPAddressesError {192910 }},
154
+ {
155
+ "no IPs" ,
156
+ nil ,
157
+ "" ,
158
+ "" ,
159
+ nil ,
160
+ nil ,
161
+ instanceNoIPAddressesError {192910 },
162
+ },
154
163
{
155
164
"one public, one private" ,
156
165
[]string {"32.74.121.25" , "192.168.121.42" },
157
166
"" ,
158
167
"" ,
168
+ nil ,
159
169
[]v1.NodeAddress {{Type : v1 .NodeExternalIP , Address : "32.74.121.25" }, {Type : v1 .NodeInternalIP , Address : "192.168.121.42" }},
160
170
nil ,
161
171
},
@@ -164,6 +174,7 @@ func TestMetadataRetrieval(t *testing.T) {
164
174
[]string {"32.74.121.25" },
165
175
"2600:3c06::f03c:94ff:fe1e:e072" ,
166
176
"" ,
177
+ nil ,
167
178
[]v1.NodeAddress {{Type : v1 .NodeExternalIP , Address : "32.74.121.25" }, {Type : v1 .NodeExternalIP , Address : "2600:3c06::f03c:94ff:fe1e:e072" }},
168
179
nil ,
169
180
},
@@ -172,6 +183,7 @@ func TestMetadataRetrieval(t *testing.T) {
172
183
[]string {"32.74.121.25" },
173
184
"" ,
174
185
"" ,
186
+ nil ,
175
187
[]v1.NodeAddress {{Type : v1 .NodeExternalIP , Address : "32.74.121.25" }},
176
188
nil ,
177
189
},
@@ -180,6 +192,7 @@ func TestMetadataRetrieval(t *testing.T) {
180
192
[]string {"192.168.121.42" },
181
193
"" ,
182
194
"" ,
195
+ nil ,
183
196
[]v1.NodeAddress {{Type : v1 .NodeInternalIP , Address : "192.168.121.42" }},
184
197
nil ,
185
198
},
@@ -188,6 +201,7 @@ func TestMetadataRetrieval(t *testing.T) {
188
201
[]string {"32.74.121.25" , "32.74.121.22" },
189
202
"" ,
190
203
"" ,
204
+ nil ,
191
205
[]v1.NodeAddress {{Type : v1 .NodeExternalIP , Address : "32.74.121.25" }, {Type : v1 .NodeExternalIP , Address : "32.74.121.22" }},
192
206
nil ,
193
207
},
@@ -196,6 +210,7 @@ func TestMetadataRetrieval(t *testing.T) {
196
210
[]string {"192.168.121.42" , "10.0.2.15" },
197
211
"" ,
198
212
"" ,
213
+ nil ,
199
214
[]v1.NodeAddress {{Type : v1 .NodeInternalIP , Address : "192.168.121.42" }, {Type : v1 .NodeInternalIP , Address : "10.0.2.15" }},
200
215
nil ,
201
216
},
@@ -204,9 +219,19 @@ func TestMetadataRetrieval(t *testing.T) {
204
219
[]string {"192.168.121.42" , "10.0.2.15" },
205
220
"" ,
206
221
"10.0.2.0/16" ,
222
+ nil ,
207
223
[]v1.NodeAddress {{Type : v1 .NodeInternalIP , Address : "192.168.121.42" }, {Type : v1 .NodeExternalIP , Address : "10.0.2.15" }},
208
224
nil ,
209
225
},
226
+ {
227
+ "one private addresses, one existing internal IP set on the node" ,
228
+ []string {"192.168.121.42" },
229
+ "" ,
230
+ "" ,
231
+ []v1.NodeAddress {{Type : v1 .NodeInternalIP , Address : "10.0.0.1" }},
232
+ []v1.NodeAddress {{Type : v1 .NodeInternalIP , Address : "192.168.121.42" }, {Type : v1 .NodeInternalIP , Address : "10.0.0.1" }},
233
+ nil ,
234
+ },
210
235
}
211
236
212
237
for _ , test := range ipTests {
@@ -221,6 +246,9 @@ func TestMetadataRetrieval(t *testing.T) {
221
246
} else {
222
247
_ , Options .LinodeExternalNetwork , _ = net .ParseCIDR (test .externalNetwork )
223
248
}
249
+ if test .existingAddresses != nil {
250
+ node .Status .Addresses = append (node .Status .Addresses , test .existingAddresses ... )
251
+ }
224
252
ips := make ([]* net.IP , 0 , len (test .inputIPv4s ))
225
253
for _ , ip := range test .inputIPv4s {
226
254
parsed := net .ParseIP (ip )
0 commit comments