Merge "Huawei: Judgement failure when creating hypermetro"

This commit is contained in:
Jenkins 2016-02-29 01:56:38 +00:00 committed by Gerrit Code Review
commit 62a65629ce
2 changed files with 19 additions and 0 deletions
cinder
tests/unit
volume/drivers/huawei

@ -2323,6 +2323,20 @@ class HuaweiISCSIDriverTestCase(test.TestCase):
self.driver.create_volume, hyper_volume)
mock_delete_lun.assert_called_with('1')
@mock.patch.object(rest_client.RestClient, 'get_all_pools',
return_value=FAKE_STORAGE_POOL_RESPONSE)
@mock.patch.object(rest_client.RestClient, 'get_pool_info',
return_value={})
def test_create_hypermetro_remote_pool_none_fail(self,
mock_pool_info,
mock_all_pool_info):
param = {'TYPE': '11',
'PARENTID': ''}
self.driver.client.login()
self.assertRaises(exception.VolumeBackendAPIException,
self.driver.metro.create_hypermetro,
'2', param)
@mock.patch.object(rest_client.RestClient, 'check_lun_exist',
return_value=True)
@mock.patch.object(rest_client.RestClient, 'check_hypermetro_exist',

@ -40,6 +40,11 @@ class HuaweiHyperMetro(object):
config_pool = self.configuration.metro_storage_pools
remote_pool = self.rmt_client.get_all_pools()
pool = self.rmt_client.get_pool_info(config_pool, remote_pool)
if not pool:
err_msg = _("Remote pool cannot be found.")
LOG.error(err_msg)
raise exception.VolumeBackendAPIException(data=err_msg)
# Create remote lun.
lun_params['pool_id'] = pool['ID']
remotelun_info = self.rmt_client.create_lun(lun_params)