Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
 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"])
Ejemplo n.º 12
0
 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'])
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
 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'])
Ejemplo n.º 17
0
 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()
Ejemplo n.º 18
0
 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)
Ejemplo n.º 19
0
 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, {})
Ejemplo n.º 20
0
 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, {})