def test_dhcp_delete_when_dhcp_delete(self):
     dhcp_driver = driver_base.OdlDhcpDriverBase()
     data = self.get_network_and_subnet_context('10.0.90.0/24', False, True,
                                                True)
     subnet_context = data['subnet_context']
     dhcp_driver.create_or_delete_dhcp_port(subnet_context)
     dhcp_driver.create_or_delete_dhcp_port(subnet_context)
     port = self.get_port_id(data['plugin'], data['context'],
                             data['network_id'], data['subnet_id'])
     self.assertIsNone(port)
    def test_dhcp_port_create_v6network(self):
        dhcp_driver = driver_base.OdlDhcpDriverBase()

        data = self.get_network_and_subnet_context('2001:db8:abcd:0012::0/64',
                                                   True, True, True, False)
        dhcp_driver.create_or_delete_dhcp_port(data['subnet_context'])

        port = self.get_port_id(data['plugin'], data['context'],
                                data['network_id'], data['subnet_id'])
        self.assertIsNone(port)
    def test_dhcp_update_from_disable_to_disable(self):
        dhcp_driver = driver_base.OdlDhcpDriverBase()
        data = self.get_network_and_subnet_context('10.0.70.0/24', False, True,
                                                   True)
        subnet_context = data['subnet_context']
        dhcp_driver.create_or_delete_dhcp_port(subnet_context)
        subnet_context.current['enable_dhcp'] = False
        dhcp_driver.create_or_delete_dhcp_port(subnet_context)

        port = self.get_port_id(data['plugin'], data['context'],
                                data['network_id'], data['subnet_id'])
        self.assertIsNone(port)
    def test_dhcp_port_create_with_multiple_create_request(self):
        dhcp_driver = driver_base.OdlDhcpDriverBase()
        data = self.get_network_and_subnet_context('10.0.30.0/24', True, True,
                                                   True)

        dhcp_driver.create_or_delete_dhcp_port(data['subnet_context'])
        dhcp_driver.create_or_delete_dhcp_port(data['subnet_context'])
        # If there are multiple ports will one_or_none wiill throw error
        # MultipleResultsFound
        port = self.get_port_id(data['plugin'], data['context'],
                                data['network_id'], data['subnet_id'])
        self.assertIsNotNone(port)