예제 #1
0
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')
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()
 def setUp(self):
     super(TestFakePlugin, self).setUp()
     self.plugin = FakePlugin()