Merge "Allow share status reset to migration status"

This commit is contained in:
Jenkins 2016-12-29 23:14:04 +00:00 committed by Gerrit Code Review
commit ba8e8d1ada
3 changed files with 34 additions and 0 deletions

View File

@ -1185,6 +1185,8 @@ class AdminActionsMixin(object):
constants.STATUS_DELETING,
constants.STATUS_ERROR,
constants.STATUS_ERROR_DELETING,
constants.STATUS_MIGRATING,
constants.STATUS_MIGRATING_TO,
]),
'replica_state': set([
constants.REPLICA_STATE_ACTIVE,

View File

@ -277,6 +277,24 @@ fixture_invalid_reset_status_body = (
)
fixture_valid_reset_status_body = (
({'os-reset_status': {'status': 'creating'}}, '2.6'),
({'os-reset_status': {'status': 'available'}}, '2.6'),
({'os-reset_status': {'status': 'deleting'}}, '2.6'),
({'os-reset_status': {'status': 'error_deleting'}}, '2.6'),
({'os-reset_status': {'status': 'error'}}, '2.6'),
({'os-reset_status': {'status': 'migrating'}}, '2.6'),
({'os-reset_status': {'status': 'migrating_to'}}, '2.6'),
({'reset_status': {'status': 'creating'}}, '2.7'),
({'reset_status': {'status': 'available'}}, '2.7'),
({'reset_status': {'status': 'deleting'}}, '2.7'),
({'reset_status': {'status': 'error_deleting'}}, '2.7'),
({'reset_status': {'status': 'error'}}, '2.7'),
({'reset_status': {'status': 'migrating'}}, '2.7'),
({'reset_status': {'status': 'migrating_to'}}, '2.7'),
)
def mock_fake_admin_check(context, resource_name, action, *args, **kwargs):
if context.is_admin:
return

View File

@ -232,6 +232,20 @@ class ShareInstancesAPITest(test.TestCase):
self._reset_status(ctxt, instance, req, db.share_instance_get,
valid_code, valid_status, version=version)
@ddt.data(*fakes.fixture_valid_reset_status_body)
@ddt.unpack
def test_share_instance_reset_status(self, body, version):
instance, req = self._setup_share_instance_data()
req.headers['X-Openstack-Manila-Api-Version'] = version
if float(version) > 2.6:
state = body['reset_status']['status']
else:
state = body['os-reset_status']['status']
self._reset_status(self.admin_context, instance, req,
db.share_instance_get, 202,
state, body, version=version)
@ddt.data(
({'os-reset_status': {'x-status': 'bad'}}, '2.6'),
({'os-reset_status': {'status': 'invalid'}}, '2.6'),