def test_network_create_with_duplicate_vlan(self): ctxt = context.get_admin_context() values1 = {'host': 'localhost', 'project_id': 'project1', 'vlan': 1} values2 = {'host': 'something', 'project_id': 'project1', 'vlan': 1} db.network_create_safe(ctxt, values1) self.assertRaises(exception.DuplicateVlan, db.network_create_safe, ctxt, values2)
def create(self, context): updates = self._get_primitive_changes() if 'id' in updates: raise exception.ObjectActionError(action='create', reason='already created') db_network = db.network_create_safe(context, updates) self._from_db_object(context, self, db_network)
def _timeout_test(self, ctxt, timeout, multi_host): values = {'host': 'foo'} instance = db.instance_create(ctxt, values) values = {'multi_host': multi_host, 'host': 'bar'} net = db.network_create_safe(ctxt, values) old = time = timeout - datetime.timedelta(seconds=5) new = time = timeout + datetime.timedelta(seconds=5) # should deallocate values = {'allocated': False, 'instance_id': instance['id'], 'network_id': net['id'], 'updated_at': old} db.fixed_ip_create(ctxt, values) # still allocated values = {'allocated': True, 'instance_id': instance['id'], 'network_id': net['id'], 'updated_at': old} db.fixed_ip_create(ctxt, values) # wrong network values = {'allocated': False, 'instance_id': instance['id'], 'network_id': None, 'updated_at': old} db.fixed_ip_create(ctxt, values) # too new values = {'allocated': False, 'instance_id': instance['id'], 'network_id': None, 'updated_at': new} db.fixed_ip_create(ctxt, values)
def create_subnet(self, context, label, project_id, quantum_net_id, priority, cidr=None, gateway_v6=None, cidr_v6=None, dns1=None, dns2=None): """Contact Melange and create a subnet for any non-NULL IPv4 or IPv6 subnets. Also create a entry in the Nova networks DB, but only to store values not represented in Melange or to temporarily provide compatibility with Nova code that accesses IPAM data directly via the DB (e.g., nova-api) """ tenant_id = project_id or FLAGS.quantum_default_tenant_id if cidr: self.m_conn.create_block(quantum_net_id, cidr, project_id=tenant_id, dns1=dns1, dns2=dns2) if cidr_v6: self.m_conn.create_block(quantum_net_id, cidr_v6, project_id=tenant_id, dns1=dns1, dns2=dns2) net = {"uuid": quantum_net_id, "project_id": project_id, "priority": priority, "label": label} admin_context = context.elevated() network = db.network_create_safe(admin_context, net)
def test_network_create_safe(self): ctxt = context.get_admin_context() values = {'host': 'localhost', 'project_id': 'project1'} network = db.network_create_safe(ctxt, values) self.assertNotEqual(None, network.uuid) self.assertEqual(36, len(network.uuid)) db_network = db.network_get(ctxt, network.id) self.assertEqual(network.uuid, db_network.uuid)
def create_subnet(self, context, label, project_id, quantum_net_id, priority, cidr=None, gateway=None, gateway_v6=None, cidr_v6=None, dns1=None, dns2=None): """Contact Melange and create a subnet for any non-NULL IPv4 or IPv6 subnets. Also create a entry in the Nova networks DB, but only to store values not represented in Melange or to temporarily provide compatibility with Nova code that accesses IPAM data directly via the DB (e.g., nova-api) """ tenant_id = project_id or FLAGS.quantum_default_tenant_id if cidr: self.m_conn.create_block(quantum_net_id, cidr, project_id=tenant_id, gateway=gateway, dns1=dns1, dns2=dns2) if cidr_v6: self.m_conn.create_block(quantum_net_id, cidr_v6, project_id=tenant_id, gateway=gateway_v6, dns1=dns1, dns2=dns2) net = { "uuid": quantum_net_id, "project_id": project_id, "priority": priority, "label": label } if FLAGS.quantum_use_dhcp: if cidr: n = IPNetwork(cidr) net['dhcp_start'] = IPAddress(n.first + 2) else: net['dhcp_start'] = None admin_context = context.elevated() network = db.network_create_safe(admin_context, net)
def test_network_delete_safe(self): ctxt = context.get_admin_context() values = {"host": "localhost", "project_id": "project1"} network = db.network_create_safe(ctxt, values) db_network = db.network_get(ctxt, network.id) values = {"network_id": network["id"], "address": "fake1"} address1 = db.fixed_ip_create(ctxt, values) values = {"network_id": network["id"], "address": "fake2", "allocated": True} address2 = db.fixed_ip_create(ctxt, values) self.assertRaises(exception.NetworkInUse, db.network_delete_safe, ctxt, network["id"]) db.fixed_ip_update(ctxt, address2, {"allocated": False}) network = db.network_delete_safe(ctxt, network["id"]) ctxt = ctxt.elevated(read_deleted="yes") fixed_ip = db.fixed_ip_get_by_address(ctxt, address1) self.assertTrue(fixed_ip["deleted"])
def create_subnet( self, context, label, tenant_id, quantum_net_id, priority, cidr=None, gateway=None, gateway_v6=None, cidr_v6=None, dns1=None, dns2=None, ): net = {"uuid": quantum_net_id, "project_id": tenant_id, "priority": priority, "label": label} admin_context = context.elevated() network = db.network_create_safe(admin_context, net)
def test_network_delete_safe(self): ctxt = context.get_admin_context() values = {'host': 'localhost', 'project_id': 'project1'} network = db.network_create_safe(ctxt, values) db_network = db.network_get(ctxt, network.id) values = {'network_id': network['id'], 'address': 'fake1'} address1 = db.fixed_ip_create(ctxt, values) values = {'network_id': network['id'], 'address': 'fake2', 'allocated': True} address2 = db.fixed_ip_create(ctxt, values) self.assertRaises(exception.NetworkInUse, db.network_delete_safe, ctxt, network['id']) db.fixed_ip_update(ctxt, address2, {'allocated': False}) network = db.network_delete_safe(ctxt, network['id']) ctxt = ctxt.elevated(read_deleted='yes') fixed_ip = db.fixed_ip_get_by_address(ctxt, address1) self.assertTrue(fixed_ip['deleted'])
def _timeout_test(self, ctxt, timeout, multi_host): values = {"host": "foo"} instance = db.instance_create(ctxt, values) values = {"multi_host": multi_host, "host": "bar"} net = db.network_create_safe(ctxt, values) old = time = timeout - datetime.timedelta(seconds=5) new = time = timeout + datetime.timedelta(seconds=5) # should deallocate values = {"allocated": False, "instance_id": instance["id"], "network_id": net["id"], "updated_at": old} db.fixed_ip_create(ctxt, values) # still allocated values = {"allocated": True, "instance_id": instance["id"], "network_id": net["id"], "updated_at": old} db.fixed_ip_create(ctxt, values) # wrong network values = {"allocated": False, "instance_id": instance["id"], "network_id": None, "updated_at": old} db.fixed_ip_create(ctxt, values) # too new values = {"allocated": False, "instance_id": instance["id"], "network_id": None, "updated_at": new} db.fixed_ip_create(ctxt, values)
def create_subnet(self, context, label, tenant_id, quantum_net_id, priority, cidr=None, gateway=None, gateway_v6=None, cidr_v6=None, dns1=None, dns2=None): net = { "uuid": quantum_net_id, "project_id": tenant_id, "priority": priority, "label": label } admin_context = context.elevated() network = db.network_create_safe(admin_context, net)
def test_network_delete_safe(self): ctxt = context.get_admin_context() values = {'host': 'localhost', 'project_id': 'project1'} network = db.network_create_safe(ctxt, values) db_network = db.network_get(ctxt, network.id) values = {'network_id': network['id'], 'address': 'fake1'} address1 = db.fixed_ip_create(ctxt, values) values = { 'network_id': network['id'], 'address': 'fake2', 'allocated': True } address2 = db.fixed_ip_create(ctxt, values) self.assertRaises(exception.NetworkInUse, db.network_delete_safe, ctxt, network['id']) db.fixed_ip_update(ctxt, address2, {'allocated': False}) network = db.network_delete_safe(ctxt, network['id']) ctxt = ctxt.elevated(read_deleted='yes') fixed_ip = db.fixed_ip_get_by_address(ctxt, address1) self.assertTrue(fixed_ip['deleted'])
def setUp(self): super(FixedIpCommandsTestCase, self).setUp() cidr = '10.0.0.0/24' net = netaddr.IPNetwork(cidr) net_info = {'bridge': 'fakebr', 'bridge_interface': 'fakeeth', 'dns': FLAGS.flat_network_dns, 'cidr': cidr, 'netmask': str(net.netmask), 'gateway': str(net[1]), 'broadcast': str(net.broadcast), 'dhcp_start': str(net[2])} self.network = db.network_create_safe(context.get_admin_context(), net_info) num_ips = len(net) for index in range(num_ips): address = str(net[index]) reserved = (index == 1 or index == 2) db.fixed_ip_create(context.get_admin_context(), {'network_id': self.network['id'], 'address': address, 'reserved': reserved}) self.commands = nova_manage.FixedIpCommands()
def test_network_create_with_duplicate_vlan(self): ctxt = context.get_admin_context() values1 = {"host": "localhost", "project_id": "project1", "vlan": 1} values2 = {"host": "something", "project_id": "project1", "vlan": 1} db.network_create_safe(ctxt, values1) self.assertRaises(exception.DuplicateVlan, db.network_create_safe, ctxt, values2)
def setUp(self): super(TestIpAllocation, self).setUp() self.ctxt = context.get_admin_context() self.instance = db.instance_create(self.ctxt, {}) self.network = db.network_create_safe(self.ctxt, {})