Example #1
0
 def test_get_volume_targets_by_node_id(self):
     node2 = db_utils.create_test_node(uuid=uuidutils.generate_uuid())
     target2 = db_utils.create_test_volume_target(
         uuid=uuidutils.generate_uuid(), node_id=node2.id)
     self._create_list_of_volume_targets(2)
     res = self.dbapi.get_volume_targets_by_node_id(node2.id)
     self.assertEqual(1, len(res))
     self.assertEqual(target2.uuid, res[0].uuid)
Example #2
0
 def test_update_volume_target_duplicated_nodeid_and_bootindex(self):
     t = db_utils.create_test_volume_target(uuid=uuidutils.generate_uuid(),
                                            boot_index=1)
     self.assertRaises(exception.VolumeTargetBootIndexAlreadyExists,
                       self.dbapi.update_volume_target, t.uuid, {
                           'boot_index': self.target.boot_index,
                           'node_id': self.target.node_id
                       })
Example #3
0
 def test_update_volume_target_duplicated_nodeid_and_bootindex(self):
     t = db_utils.create_test_volume_target(uuid=uuidutils.generate_uuid(),
                                            boot_index=1)
     self.assertRaises(exception.VolumeTargetBootIndexAlreadyExists,
                       self.dbapi.update_volume_target,
                       t.uuid,
                       {'boot_index': self.target.boot_index,
                        'node_id': self.target.node_id})
Example #4
0
 def test_get_volume_targets_by_node_id(self):
     node2 = db_utils.create_test_node(uuid=uuidutils.generate_uuid())
     target2 = db_utils.create_test_volume_target(
         uuid=uuidutils.generate_uuid(), node_id=node2.id)
     self._create_list_of_volume_targets(2)
     res = self.dbapi.get_volume_targets_by_node_id(node2.id)
     self.assertEqual(1, len(res))
     self.assertEqual(target2.uuid, res[0].uuid)
Example #5
0
    def test_volume_target_gets_destroyed_after_destroying_a_node_uuid(self):
        node = utils.create_test_node()

        target = utils.create_test_volume_target(node_id=node.id)

        self.dbapi.destroy_node(node.uuid)

        self.assertRaises(exception.VolumeTargetNotFound,
                          self.dbapi.get_volume_target_by_id, target.id)
Example #6
0
 def _create_list_of_volume_targets(self, num):
     uuids = [six.text_type(self.target.uuid)]
     for i in range(1, num):
         volume_target = db_utils.create_test_volume_target(
             uuid=uuidutils.generate_uuid(),
             properties={"target_iqn": "iqn.test-%s" % i},
             boot_index=i)
         uuids.append(six.text_type(volume_target.uuid))
     return uuids
Example #7
0
 def _create_list_of_volume_targets(self, num):
     uuids = [six.text_type(self.target.uuid)]
     for i in range(1, num):
         volume_target = db_utils.create_test_volume_target(
             uuid=uuidutils.generate_uuid(),
             properties={"target_iqn": "iqn.test-%s" % i},
             boot_index=i)
         uuids.append(six.text_type(volume_target.uuid))
     return uuids
Example #8
0
    def test_volume_target_gets_destroyed_after_destroying_a_node_uuid(self):
        node = utils.create_test_node()

        target = utils.create_test_volume_target(node_id=node.id)

        self.dbapi.destroy_node(node.uuid)

        self.assertRaises(exception.VolumeTargetNotFound,
                          self.dbapi.get_volume_target_by_id, target.id)
Example #9
0
    def test_save_after_refresh(self):
        # Ensure that it's possible to do object.save() after object.refresh()
        db_volume_target = db_utils.create_test_volume_target()

        vt = objects.VolumeTarget.get_by_uuid(self.context,
                                              db_volume_target.uuid)
        vt_copy = objects.VolumeTarget.get_by_uuid(self.context,
                                                   db_volume_target.uuid)
        vt.name = 'b240'
        vt.save()
        vt_copy.refresh()
        vt_copy.name = 'aaff'
        # Ensure this passes and an exception is not generated
        vt_copy.save()
Example #10
0
    def test_save_after_refresh(self):
        # Ensure that it's possible to do object.save() after object.refresh()
        db_volume_target = db_utils.create_test_volume_target()

        vt = objects.VolumeTarget.get_by_uuid(self.context,
                                              db_volume_target.uuid)
        vt_copy = objects.VolumeTarget.get_by_uuid(self.context,
                                                   db_volume_target.uuid)
        vt.name = 'b240'
        vt.save()
        vt_copy.refresh()
        vt_copy.name = 'aaff'
        # Ensure this passes and an exception is not generated
        vt_copy.save()
Example #11
0
 def setUp(self):
     # This method creates a volume_target for every test.
     super(DbVolumeTargetTestCase, self).setUp()
     self.node = db_utils.create_test_node()
     self.target = db_utils.create_test_volume_target(node_id=self.node.id)
Example #12
0
 def setUp(self):
     # This method creates a volume_target for every test.
     super(DbVolumeTargetTestCase, self).setUp()
     self.node = db_utils.create_test_node()
     self.target = db_utils.create_test_volume_target(node_id=self.node.id)
Example #13
0
    def _create_test_data(self):
        owner_node_ident = '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881'
        lessee_node_ident = '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'
        owner_project_id = '70e5e25a-2ca2-4cb1-8ae8-7d8739cee205'
        lessee_project_id = 'f11853c7-fa9c-4db3-a477-c9d8e0dbbf13'
        unowned_node = db_utils.create_test_node(chassis_id=None)

        # owned node - since the tests use the same node for
        # owner/lesse checks
        owned_node = db_utils.create_test_node(
            uuid=owner_node_ident,
            owner=owner_project_id,
            last_error='meow',
            reservation='lolcats')
        owned_node_port = db_utils.create_test_port(
            uuid='ebe30f19-358d-41e1-8d28-fd7357a0164c',
            node_id=owned_node['id'],
            address='00:00:00:00:00:01')
        db_utils.create_test_port(
            uuid='21a3c5a7-1e14-44dc-a9dd-0c84d5477a57',
            node_id=owned_node['id'],
            address='00:00:00:00:00:02')
        owner_pgroup = db_utils.create_test_portgroup(
            uuid='b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc',
            node_id=owned_node['id'],
            name='magicfoo',
            address='01:03:09:ff:01:01')
        db_utils.create_test_volume_target(
            uuid='a265e2f0-e97f-4177-b1c0-8298add53086',
            node_id=owned_node['id'])
        db_utils.create_test_volume_connector(
            uuid='65ea0296-219b-4635-b0c8-a6e055da878d',
            node_id=owned_node['id'],
            connector_id='iqn.2012-06.org.openstack.magic')
        fake_owner_allocation = db_utils.create_test_allocation(
            node_id=owned_node['id'],
            owner=owner_project_id,
            resource_class="CUSTOM_TEST")

        # Leased nodes
        fake_allocation_id = 61
        leased_node = db_utils.create_test_node(
            allocation_id=fake_allocation_id,
            uuid=lessee_node_ident,
            owner=owner_project_id,
            lessee=lessee_project_id,
            last_error='meow',
            reservation='lolcats')
        fake_db_volume_target = db_utils.create_test_volume_target(
            node_id=leased_node['id'])
        fake_db_volume_connector = db_utils.create_test_volume_connector(
            node_id=leased_node['id'])
        fake_db_port = db_utils.create_test_port(
            node_id=leased_node['id'])
        fake_db_portgroup = db_utils.create_test_portgroup(
            node_id=leased_node['id'])
        fake_trait = 'CUSTOM_MEOW'
        fake_vif_port_id = "0e21d58f-5de2-4956-85ff-33935ea1ca01"
        fake_leased_allocation = db_utils.create_test_allocation(
            id=fake_allocation_id,
            node_id=leased_node['id'],
            owner=lessee_project_id,
            resource_class="CUSTOM_LEASED")

        # Random objects that shouldn't be project visible
        other_port = db_utils.create_test_port(
            uuid='abfd8dbb-1732-449a-b760-2224035c6b99',
            address='00:00:00:00:00:ff')

        other_node = db_utils.create_test_node(
            uuid='573208e5-cd41-4e26-8f06-ef44022b3793')
        other_pgroup = db_utils.create_test_portgroup(
            uuid='5810f41c-6585-41fc-b9c9-a94f50d421b5',
            node_id=other_node['id'],
            name='corgis_rule_the_world',
            address='ff:ff:ff:ff:ff:0f')

        self.format_data.update({
            'node_ident': unowned_node['uuid'],
            'owner_node_ident': owner_node_ident,
            'lessee_node_ident': lessee_node_ident,
            'allocated_node_ident': lessee_node_ident,
            'volume_target_ident': fake_db_volume_target['uuid'],
            'volume_connector_ident': fake_db_volume_connector['uuid'],
            'lessee_port_ident': fake_db_port['uuid'],
            'lessee_portgroup_ident': fake_db_portgroup['uuid'],
            'trait': fake_trait,
            'vif_ident': fake_vif_port_id,
            'ind_component': 'component',
            'ind_ident': 'magic_light',
            'owner_port_ident': owned_node_port['uuid'],
            'other_port_ident': other_port['uuid'],
            'owner_portgroup_ident': owner_pgroup['uuid'],
            'other_portgroup_ident': other_pgroup['uuid'],
            'driver_name': 'fake-driverz',
            'owner_allocation': fake_owner_allocation['uuid'],
            'lessee_allocation': fake_leased_allocation['uuid']})
Example #14
0
    def _create_test_data(self):
        allocated_node_id = 31
        fake_db_allocation = db_utils.create_test_allocation(
            node_id=allocated_node_id,
            resource_class="CUSTOM_TEST")
        fake_db_node = db_utils.create_test_node(
            chassis_id=None,
            driver='fake-driverz',
            owner='z')
        fake_db_node_alloced = db_utils.create_test_node(
            id=allocated_node_id,
            chassis_id=None,
            allocation_id=fake_db_allocation['id'],
            uuid='22e26c0b-03f2-4d2e-ae87-c02d7f33c000',
            driver='fake-driverz',
            owner='z')
        fake_vif_port_id = "ee21d58f-5de2-4956-85ff-33935ea1ca00"
        fake_db_port = db_utils.create_test_port(
            node_id=fake_db_node['id'],
            internal_info={'tenant_vif_port_id': fake_vif_port_id})
        fake_db_portgroup = db_utils.create_test_portgroup(
            uuid="6eb02b44-18a3-4659-8c0b-8d2802581ae4",
            node_id=fake_db_node['id'])
        fake_db_chassis = db_utils.create_test_chassis(
            drivers=['fake-hardware', 'fake-driverz', 'fake-driver'])
        fake_db_deploy_template = db_utils.create_test_deploy_template()
        fake_db_conductor = db_utils.create_test_conductor()
        fake_db_volume_target = db_utils.create_test_volume_target(
            node_id=fake_db_allocation['id'])
        fake_db_volume_connector = db_utils.create_test_volume_connector(
            node_id=fake_db_allocation['id'])
        # Trait name aligns with create_test_node_trait.
        fake_trait = 'trait'
        fake_setting = 'FAKE_SETTING'
        db_utils.create_test_bios_setting(
            node_id=fake_db_node['id'],
            name=fake_setting,
            value=fake_setting)
        db_utils.create_test_node_trait(
            node_id=fake_db_node['id'])

        # dedicated node for portgroup addition test to avoid
        # false positives with test runners.
        db_utils.create_test_node(
            uuid='18a552fb-dcd2-43bf-9302-e4c93287be11')
        self.format_data.update({
            'node_ident': fake_db_node['uuid'],
            'allocated_node_ident': fake_db_node_alloced['uuid'],
            'port_ident': fake_db_port['uuid'],
            'portgroup_ident': fake_db_portgroup['uuid'],
            'chassis_ident': fake_db_chassis['uuid'],
            'deploy_template_ident': fake_db_deploy_template['uuid'],
            'allocation_ident': fake_db_allocation['uuid'],
            'conductor_ident': fake_db_conductor['hostname'],
            'vif_ident': fake_vif_port_id,
            # Can't use the same fake-driver as other tests can
            # pollute a global method cache in the API that is in the
            # test runner, resulting in false positives.
            'driver_name': 'fake-driverz',
            'bios_setting': fake_setting,
            'trait': fake_trait,
            'volume_target_ident': fake_db_volume_target['uuid'],
            'volume_connector_ident': fake_db_volume_connector['uuid'],
        })