65
67
'method': 'manual',
66
68
'_source_path': '/etc/network/interfaces',
70
def test_parse_deb_config_data_error_on_redefine(self):
71
contents = dedent("""\
72
iface eth0 inet static
74
iface eth0 inet static
80
net.parse_deb_config_data,
81
ifaces, contents, '', '/etc/network/interfaces')
83
72
def test_parse_deb_config_data_commands(self):
84
73
contents = dedent("""\
85
74
iface eth0 inet manual
466
455
def test_render_persistent_net(self):
467
456
ns = self.get_net_state()
468
udev_rules = ('# Autogenerated by curtin\n' +
469
'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ' +
470
'ATTR{address}=="cf:d6:af:48:e8:80", NAME="eth1"\n' +
471
'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ' +
457
udev_rules = ('# Autogenerated by curtin\n'
458
'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", '
459
'ATTR{address}=="cf:d6:af:48:e8:80", NAME="eth1"\n'
460
'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", '
472
461
'ATTR{address}=="c0:d6:9f:2c:e8:80", NAME="eth0"\n')
473
462
persist_net_rules = net.render_persistent_net(ns.network_state)
474
463
self.assertEqual(sorted(udev_rules.split('\n')),
477
466
def test_render_interfaces(self):
478
467
ns = self.get_net_state()
479
ifaces = ('auto lo\n' + 'iface lo inet loopback\n' +
480
' dns-nameservers 1.2.3.4 5.6.7.8\n' +
481
' dns-search wark.maas\n' +
482
'auto eth0\n' + 'iface eth0 inet dhcp\n\n' +
484
'iface eth0:1 inet static\n' +
485
' address 192.168.21.3/24\n' +
486
' dns-nameservers 8.8.8.8 8.8.4.4\n' +
487
' dns-search barley.maas sach.maas\n\n' +
488
'iface eth1 inet manual\n\n')
470
iface lo inet loopback
471
dns-nameservers 1.2.3.4 5.6.7.8
478
iface eth0:1 inet static
479
address 192.168.21.3/24
480
dns-nameservers 8.8.8.8 8.8.4.4
481
dns-search barley.maas sach.maas
483
iface eth1 inet manual
485
source /etc/network/interfaces.d/*.cfg
489
487
net_ifaces = net.render_interfaces(ns.network_state)
490
488
print(ns.network_state.get('interfaces'))
491
489
self.assertEqual(sorted(ifaces.split('\n')),
495
493
bond_config = open('examples/tests/bonding_network.yaml', 'r').read()
497
495
ns = self.get_net_state(bond_config)
498
ifaces = ('auto lo\n' +
499
'iface lo inet loopback\n\n' +
501
'iface eth0 inet dhcp\n\n' +
503
'iface eth1 inet manual\n' +
504
' bond-master bond0\n' +
505
' bond-mode active-backup\n\n' +
507
'iface eth2 inet manual\n' +
508
' bond-master bond0\n' +
509
' bond-mode active-backup\n\n' +
511
'iface bond0 inet static\n' +
512
' address 10.23.23.2/24\n' +
513
' bond-mode active-backup\n' +
514
' hwaddress 52:54:00:12:34:06\n' +
515
' bond-slaves none\n')
498
iface lo inet loopback
504
iface eth1 inet manual
505
bond-mode active-backup
509
iface eth2 inet manual
510
bond-mode active-backup
514
iface bond0 inet static
515
address 10.23.23.2/24
516
bond-mode active-backup
517
hwaddress 52:54:00:12:34:06
520
source /etc/network/interfaces.d/*.cfg
522
net_ifaces = net.render_interfaces(ns.network_state)
523
print("\n".join(list(map(str,
524
enumerate(sorted(ifaces.split('\n')))))))
525
print("\n^^ LOCAL -- RENDER vv")
526
print("\n".join(list(map(str,
527
enumerate(sorted(net_ifaces.split('\n')))))))
528
print(ns.network_state.get('interfaces'))
529
self.assertEqual(sorted(ifaces.split('\n')),
530
sorted(net_ifaces.split('\n')))
532
def test_render_interfaces_iscsiroot(self):
533
iscsi_config = open('examples/network-iscsiroot.yaml', 'r').read()
535
ns = self.get_net_state(iscsi_config)
538
iface lo inet loopback
540
# control-manual eth0
544
iface eth1 inet static
545
address 192.168.14.2/24
550
iface eth1:1 inet static
551
address 192.168.14.4/24
555
iface eth2 inet static
557
address 10.11.12.13/22
559
source /etc/network/interfaces.d/*.cfg
516
561
net_ifaces = net.render_interfaces(ns.network_state)
517
562
print("\n".join(sorted(ifaces.split('\n'))))
518
563
print("\n^^ LOCAL -- RENDER vv")