@@ -113,7 +113,8 @@ type NetworkInterfaceDetectorMultipleInterfaces struct {
113
113
}
114
114
115
115
func (n * NetworkInterfaceDetectorMultipleInterfaces ) Interfaces () ([]net.Interface , error ) {
116
- return []net.Interface {lo , eth0 , eth1 , eth2 }, nil
116
+ // Return link local first to test we don't prefer it
117
+ return []net.Interface {lo , eth0 , eth1 , eth2 , eth3 , eth4 }, nil
117
118
}
118
119
119
120
func (n * NetworkInterfaceDetectorMultipleInterfaces ) InterfaceByName (name string ) (* net.Interface , error ) {
@@ -224,23 +225,6 @@ func TestNetworkFingerprint_basic(t *testing.T) {
224
225
}
225
226
}
226
227
227
- func TestNetworkFingerprint_no_devices (t * testing.T ) {
228
- f := & NetworkFingerprint {logger : testLogger (), interfaceDetector : & NetworkIntefaceDetectorNoDevices {}}
229
- node := & structs.Node {
230
- Attributes : make (map [string ]string ),
231
- }
232
- cfg := & config.Config {NetworkSpeed : 100 }
233
-
234
- ok , err := f .Fingerprint (cfg , node )
235
- if err != nil {
236
- t .Fatalf ("err: %v" , err )
237
- }
238
-
239
- if ok {
240
- t .Fatalf ("ok: %v" , ok )
241
- }
242
- }
243
-
244
228
func TestNetworkFingerprint_default_device_absent (t * testing.T ) {
245
229
f := & NetworkFingerprint {logger : testLogger (), interfaceDetector : & NetworkInterfaceDetectorOnlyLo {}}
246
230
node := & structs.Node {
@@ -301,61 +285,6 @@ func TestNetworkFingerPrint_default_device(t *testing.T) {
301
285
}
302
286
}
303
287
304
- func TestNetworkFingerPrint_excludelo_down_interfaces (t * testing.T ) {
305
- f := & NetworkFingerprint {logger : testLogger (), interfaceDetector : & NetworkInterfaceDetectorMultipleInterfaces {}}
306
- node := & structs.Node {
307
- Attributes : make (map [string ]string ),
308
- }
309
- cfg := & config.Config {NetworkSpeed : 100 }
310
-
311
- ok , err := f .Fingerprint (cfg , node )
312
- if err != nil {
313
- t .Fatalf ("err: %v" , err )
314
- }
315
- if ! ok {
316
- t .Fatalf ("should apply" )
317
- }
318
-
319
- assertNodeAttributeContains (t , node , "unique.network.ip-address" )
320
-
321
- ip := node .Attributes ["unique.network.ip-address" ]
322
- match := net .ParseIP (ip )
323
- if match == nil {
324
- t .Fatalf ("Bad IP match: %s" , ip )
325
- }
326
-
327
- if node .Resources == nil || len (node .Resources .Networks ) == 0 {
328
- t .Fatal ("Expected to find Network Resources" )
329
- }
330
-
331
- // Test at least the first Network Resource
332
- net := node .Resources .Networks [0 ]
333
- if net .IP == "" {
334
- t .Fatal ("Expected Network Resource to have an IP" )
335
- }
336
- if net .CIDR == "" {
337
- t .Fatal ("Expected Network Resource to have a CIDR" )
338
- }
339
- if net .Device != "eth0" {
340
- t .Fatal ("Expected Network Resource to be eth0. Actual: " , net .Device )
341
- }
342
- if net .MBits == 0 {
343
- t .Fatal ("Expected Network Resource to have a non-zero bandwidth" )
344
- }
345
-
346
- // Test the CIDR of the IPs
347
- if node .Resources .Networks [0 ].CIDR != "100.64.0.0/32" {
348
- t .Fatalf ("bad CIDR: %v" , node .Resources .Networks [0 ].CIDR )
349
- }
350
- if node .Resources .Networks [1 ].CIDR != "2001:db8:85a3::/128" {
351
- t .Fatalf ("bad CIDR: %v" , node .Resources .Networks [1 ].CIDR )
352
- }
353
- // Ensure that the link local address isn't fingerprinted
354
- if len (node .Resources .Networks ) != 2 {
355
- t .Fatalf ("bad number of IPs %v" , len (node .Resources .Networks ))
356
- }
357
- }
358
-
359
288
func TestNetworkFingerPrint_LinkLocal_Allowed (t * testing.T ) {
360
289
f := & NetworkFingerprint {logger : testLogger (), interfaceDetector : & NetworkInterfaceDetectorMultipleInterfaces {}}
361
290
node := & structs.Node {
0 commit comments