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)
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 })
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})
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)
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
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()
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)
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']})
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'], })