class TestFakePlugin(base.BaseTestCase): def setUp(self): super(TestFakePlugin, self).setUp() self.plugin = FakePlugin() def test_create(self): port = self.plugin.create_dhcp_port({'port': {}}) self.assertEqual(port, { 'device_owner': 'network:dhcp', 'id': 'dhcp', 'mac_address': '02:00:00:00:00:00' }) def test_release(self): self.plugin.release_dhcp_port('calico', 'dhcp')
def test_build_cmdline(self, commonutils, device_mgr_cls): v4subnet = mock.Mock() v4subnet.id = 'v4subnet-1' v4subnet.enable_dhcp = True v4subnet.ip_version = 4 v4subnet.cidr = '10.28.0.0/24' v6subnet = mock.Mock() v6subnet.id = 'v6subnet-1' v6subnet.enable_dhcp = True v6subnet.ip_version = 6 v6subnet.cidr = '2001:db8:1::/80' v6subnet.ipv6_ra_mode = DHCPV6_STATEFUL v6subnet.ipv6_address_mode = DHCPV6_STATEFUL network = mock.Mock() network.id = 'calico' network.subnets = [v4subnet, v6subnet] network.mtu = 0 network.ports = [ dhcp.DictModel({'device_id': 'tap1'}), dhcp.DictModel({'device_id': 'tap2'}), dhcp.DictModel({'device_id': 'tap3'}), ] network.non_local_subnets = [] network.get.side_effect = lambda key, dflt=None: dflt device_mgr_cls.return_value.driver.bridged = False dhcp_driver = DnsmasqRouted(cfg.CONF, network, None, plugin=FakePlugin()) with mock.patch.object(dhcp_driver, '_get_value_from_conf_file') as gv: gv.return_value = 'ns-dhcp' cmdline = dhcp_driver._build_cmdline_callback('/run/pid_file') self.assertEqual([ 'dnsmasq', '--no-hosts', '--no-resolv', '--except-interface=lo', '--pid-file=/run/pid_file', '--dhcp-hostsfile=/run/calico/host', '--addn-hosts=/run/calico/addn_hosts', '--dhcp-optsfile=/run/calico/opts', '--dhcp-leasefile=/run/calico/leases', '--dhcp-match=set:ipxe,175', '--bind-dynamic', '--interface=ns-dhcp', '--dhcp-range=set:subnet-v4subnet-1,10.28.0.0' + ',static,255.255.255.0,86400s', '--dhcp-lease-max=16777216', '--conf-file=', '--dhcp-range=set:subnet-v6subnet-1,2001:db8:1::' + ',static,off-link,80,86400s', '--enable-ra', '--interface=tap1', '--interface=tap2', '--interface=tap3', '--bridge-interface=ns-dhcp,tap1,tap2,tap3' ], cmdline)
def setUp(self): super(TestFakePlugin, self).setUp() self.plugin = FakePlugin()