Allow share status reset to migration status
Fix the status of the share instances cannot be reset to "migrating" and "migrating_to" in server APIImpact Add two status "migrating" and "migrating_to" in share status. Change-Id: Ia23c13f62997d99495d9ecca066475565d9bfc87 Closes-Bug: #1650774
This commit is contained in:
parent
b76a2af237
commit
6965a73ab2
manila
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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'),
|
||||
|
Loading…
x
Reference in New Issue
Block a user