Merge "NetApp ONTAP fix test allocate container with share_instance"

This commit is contained in:
Zuul 2018-10-17 02:05:39 +00:00 committed by Gerrit Code Review
commit fc16c55cb2
2 changed files with 50 additions and 35 deletions

View File

@ -682,12 +682,12 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
mock.Mock(return_value=provisioning_options))
vserver_client = mock.Mock()
self.library._allocate_container(fake.EXTRA_SPEC_SHARE,
self.library._allocate_container(fake.SHARE_INSTANCE,
fake.VSERVER1,
vserver_client)
mock_get_provisioning_opts.assert_called_once_with(
fake.EXTRA_SPEC_SHARE, fake.VSERVER1, replica=False)
fake.SHARE_INSTANCE, fake.VSERVER1, replica=False)
vserver_client.create_volume.assert_called_once_with(
fake.POOL_NAME, fake.SHARE_NAME, fake.SHARE['size'],
@ -719,11 +719,11 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
mock.Mock(return_value=copy.deepcopy(fake.PROVISIONING_OPTIONS)))
vserver_client = mock.Mock()
self.library._allocate_container(fake.EXTRA_SPEC_SHARE, fake.VSERVER1,
self.library._allocate_container(fake.SHARE_INSTANCE, fake.VSERVER1,
vserver_client, replica=True)
mock_get_provisioning_opts.assert_called_once_with(
fake.EXTRA_SPEC_SHARE, fake.VSERVER1, replica=True)
fake.SHARE_INSTANCE, fake.VSERVER1, replica=True)
vserver_client.create_volume.assert_called_once_with(
fake.POOL_NAME, fake.SHARE_NAME, fake.SHARE['size'],
@ -742,13 +742,13 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
vserver_client = mock.Mock()
self.assertRaises(exception.InvalidHost,
self.library._allocate_container, fake.SHARE,
fake.VSERVER1, vserver_client)
self.library._allocate_container,
fake.SHARE_INSTANCE, fake.VSERVER1, vserver_client)
self.library._get_backend_share_name.assert_called_once_with(
fake.SHARE['id'])
share_utils.extract_host.assert_called_once_with(fake.SHARE['host'],
level='pool')
fake.SHARE_INSTANCE['id'])
share_utils.extract_host.assert_called_once_with(
fake.SHARE_INSTANCE['host'], level='pool')
self.assertEqual(0,
self.library._check_extra_specs_validity.call_count)
self.assertEqual(0, self.library._get_provisioning_options.call_count)
@ -762,33 +762,33 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
self.library, '_check_string_extra_specs_validity')
self.library._check_extra_specs_validity(
fake.EXTRA_SPEC_SHARE, fake.EXTRA_SPEC)
fake.SHARE_INSTANCE, fake.EXTRA_SPEC)
mock_bool_check.assert_called_once_with(
fake.EXTRA_SPEC_SHARE, fake.EXTRA_SPEC, boolean_extra_spec_keys)
fake.SHARE_INSTANCE, fake.EXTRA_SPEC, boolean_extra_spec_keys)
mock_string_check.assert_called_once_with(
fake.EXTRA_SPEC_SHARE, fake.EXTRA_SPEC)
fake.SHARE_INSTANCE, fake.EXTRA_SPEC)
def test_check_extra_specs_validity_empty_spec(self):
result = self.library._check_extra_specs_validity(
fake.EXTRA_SPEC_SHARE, fake.EMPTY_EXTRA_SPEC)
fake.SHARE_INSTANCE, fake.EMPTY_EXTRA_SPEC)
self.assertIsNone(result)
def test_check_extra_specs_validity_invalid_value(self):
self.assertRaises(
exception.Invalid, self.library._check_extra_specs_validity,
fake.EXTRA_SPEC_SHARE, fake.INVALID_EXTRA_SPEC)
fake.SHARE_INSTANCE, fake.INVALID_EXTRA_SPEC)
def test_check_string_extra_specs_validity(self):
result = self.library._check_string_extra_specs_validity(
fake.EXTRA_SPEC_SHARE, fake.EXTRA_SPEC)
fake.SHARE_INSTANCE, fake.EXTRA_SPEC)
self.assertIsNone(result)
def test_check_string_extra_specs_validity_empty_spec(self):
result = self.library._check_string_extra_specs_validity(
fake.EXTRA_SPEC_SHARE, fake.EMPTY_EXTRA_SPEC)
fake.SHARE_INSTANCE, fake.EMPTY_EXTRA_SPEC)
self.assertIsNone(result)
@ -796,20 +796,20 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
self.assertRaises(
exception.NetAppException,
self.library._check_string_extra_specs_validity,
fake.EXTRA_SPEC_SHARE, fake.INVALID_MAX_FILE_EXTRA_SPEC)
fake.SHARE_INSTANCE, fake.INVALID_MAX_FILE_EXTRA_SPEC)
def test_check_boolean_extra_specs_validity_invalid_value(self):
self.assertRaises(
exception.Invalid,
self.library._check_boolean_extra_specs_validity,
fake.EXTRA_SPEC_SHARE, fake.INVALID_EXTRA_SPEC,
fake.SHARE_INSTANCE, fake.INVALID_EXTRA_SPEC,
list(self.library.BOOLEAN_QUALIFIED_EXTRA_SPECS_MAP))
def test_check_extra_specs_validity_invalid_combination(self):
self.assertRaises(
exception.Invalid,
self.library._check_boolean_extra_specs_validity,
fake.EXTRA_SPEC_SHARE, fake.INVALID_EXTRA_SPEC_COMBO,
fake.SHARE_INSTANCE, fake.INVALID_EXTRA_SPEC_COMBO,
list(self.library.BOOLEAN_QUALIFIED_EXTRA_SPECS_MAP))
@ddt.data({'extra_specs': fake.EXTRA_SPEC, 'is_replica': False},
@ -839,7 +839,7 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
return_value=fake.QOS_POLICY_GROUP_NAME))
result = self.library._get_provisioning_options_for_share(
fake.EXTRA_SPEC_SHARE, fake.VSERVER1, replica=is_replica)
fake.SHARE_INSTANCE, fake.VSERVER1, replica=is_replica)
if qos and is_replica:
expected_provisioning_opts = fake.PROVISIONING_OPTIONS
@ -847,16 +847,16 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
else:
expected_provisioning_opts = fake.PROVISIONING_OPTIONS_WITH_QOS
mock_create_qos_policy_group.assert_called_once_with(
fake.EXTRA_SPEC_SHARE, fake.VSERVER1,
fake.SHARE_INSTANCE, fake.VSERVER1,
{fake.QOS_NORMALIZED_SPEC: 3000})
self.assertEqual(expected_provisioning_opts, result)
mock_get_extra_specs_from_share.assert_called_once_with(
fake.EXTRA_SPEC_SHARE)
fake.SHARE_INSTANCE)
mock_remap_standard_boolean_extra_specs.assert_called_once_with(
extra_specs)
mock_check_extra_specs_validity.assert_called_once_with(
fake.EXTRA_SPEC_SHARE, extra_specs)
fake.SHARE_INSTANCE, extra_specs)
mock_get_provisioning_options.assert_called_once_with(extra_specs)
mock_get_normalized_qos_specs.assert_called_once_with(extra_specs)
@ -1002,12 +1002,12 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
def test_allocate_container_no_pool(self):
vserver_client = mock.Mock()
fake_share = copy.deepcopy(fake.SHARE)
fake_share['host'] = fake_share['host'].split('#')[0]
fake_share_inst = copy.deepcopy(fake.SHARE_INSTANCE)
fake_share_inst['host'] = fake_share_inst['host'].split('#')[0]
self.assertRaises(exception.InvalidHost,
self.library._allocate_container,
fake_share,
fake_share_inst,
fake.VSERVER1,
vserver_client)
@ -1049,24 +1049,25 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
vserver_client = mock.Mock()
original_snapshot_size = 20
fake_share = copy.deepcopy(fake.SHARE)
fake_share['size'] = size
fake_share_inst = copy.deepcopy(fake.SHARE_INSTANCE)
fake_share_inst['size'] = size
fake_snapshot = copy.deepcopy(fake.SNAPSHOT)
fake_snapshot['provider_location'] = provider_location
fake_snapshot['size'] = original_snapshot_size
self.library._allocate_container_from_snapshot(fake_share,
self.library._allocate_container_from_snapshot(fake_share_inst,
fake_snapshot,
vserver,
vserver_client)
share_name = self.library._get_backend_share_name(fake_share['id'])
share_name = self.library._get_backend_share_name(
fake_share_inst['id'])
parent_share_name = self.library._get_backend_share_name(
fake_snapshot['share_id'])
parent_snapshot_name = self.library._get_backend_snapshot_name(
fake_snapshot['id']) if not provider_location else 'fake_location'
mock_get_provisioning_opts.assert_called_once_with(
fake_share, fake.VSERVER1)
fake_share_inst, fake.VSERVER1)
vserver_client.create_volume_clone.assert_called_once_with(
share_name, parent_share_name, parent_snapshot_name,
thin_provisioned=True, snapshot_policy='default',
@ -1080,7 +1081,7 @@ class NetAppFileStorageLibraryTestCase(test.TestCase):
if hide_snapdir:
vserver_client.set_volume_snapdir_access.assert_called_once_with(
fake.SHARE_NAME, hide_snapdir)
fake.SHARE_INSTANCE_NAME, hide_snapdir)
else:
vserver_client.set_volume_snapdir_access.assert_not_called()

View File

@ -32,6 +32,7 @@ VOLUME_NAME_TEMPLATE = 'share_%(share_id)s'
VSERVER_NAME_TEMPLATE = 'os_%s'
AGGREGATE_NAME_SEARCH_PATTERN = '(.*)'
SHARE_NAME = 'share_7cf7c200_d3af_4e05_b87e_9167c95dfcad'
SHARE_INSTANCE_NAME = 'share_d24e7257_124e_4fb6_b05b_d384f660bc85'
FLEXVOL_NAME = 'fake_volume'
JUNCTION_PATH = '/%s' % FLEXVOL_NAME
EXPORT_LOCATION = '%s:%s' % (HOST_NAME, JUNCTION_PATH)
@ -44,6 +45,7 @@ SHARE_ID = '7cf7c200-d3af-4e05-b87e-9167c95dfcad'
SHARE_ID2 = 'b51c5a31-aa5b-4254-9ee8-7d39fa4c8c38'
SHARE_ID3 = '1379991d-037b-4897-bf3a-81b4aac72eff'
SHARE_ID4 = '1cb41aad-fd9b-4964-8059-646f69de925e'
SHARE_INSTANCE_ID = 'd24e7257-124e-4fb6-b05b-d384f660bc85'
PARENT_SHARE_ID = '585c3935-2aa9-437c-8bad-5abae1076555'
SNAPSHOT_ID = 'de4c9050-e2f9-4ce1-ade4-5ed0c9f26451'
CONSISTENCY_GROUP_ID = '65bfa2c9-dc6c-4513-951a-b8d15b453ad8'
@ -106,6 +108,21 @@ SHARE = {
'encrypt': False,
}
SHARE_INSTANCE = {
'id': SHARE_INSTANCE_ID,
'share_id': SHARE_ID,
'host': MANILA_HOST_NAME,
'project_id': TENANT_ID,
'name': SHARE_INSTANCE_NAME,
'size': SHARE_SIZE,
'share_proto': 'fake',
'share_type_id': SHARE_TYPE_ID,
'share_network_id': '5dfe0898-e2a1-4740-9177-81c7d26713b0',
'share_server_id': '7e6a2cc8-871f-4b1d-8364-5aad0f98da86',
'replica_state': constants.REPLICA_STATE_ACTIVE,
'status': constants.STATUS_AVAILABLE,
}
FLEXVOL_TO_MANAGE = {
'aggregate': POOL_NAME,
'junction-path': '/%s' % FLEXVOL_NAME,
@ -268,9 +285,6 @@ REMAPPED_OVERLAPPING_EXTRA_SPEC = {
'netapp:thin_provisioned': 'false',
}
EXTRA_SPEC_SHARE = copy.deepcopy(SHARE)
EXTRA_SPEC_SHARE['share_type_id'] = SHARE_TYPE_ID
USER_NETWORK_ALLOCATIONS = [
{
'id': '132dbb10-9a36-46f2-8d89-3d909830c356',