|
|
|
@ -1441,7 +1441,7 @@ class ShareManagerTestCase(test.TestCase):
|
|
|
|
|
mock_replica_update = self.mock_object(db, 'share_replica_update') |
|
|
|
|
expected_update_calls = [mock.call( |
|
|
|
|
mock.ANY, r['id'], {'status': constants.STATUS_ERROR}) |
|
|
|
|
for r in(replica, active_replica)] |
|
|
|
|
for r in (replica, active_replica)] |
|
|
|
|
|
|
|
|
|
self.assertRaises(exception.ManilaException, |
|
|
|
|
self.share_manager.promote_share_replica, |
|
|
|
@ -5553,6 +5553,7 @@ class ShareManagerTestCase(test.TestCase):
|
|
|
|
|
mock.Mock(return_value=True)) |
|
|
|
|
self.mock_object(self.share_manager.db, 'share_instance_update') |
|
|
|
|
self.mock_object(self.share_manager.db, 'share_update') |
|
|
|
|
self.mock_object(self.share_manager, '_migration_complete_instance') |
|
|
|
|
self.mock_object(self.share_manager, '_migration_delete_instance') |
|
|
|
|
self.mock_object(migration_api.ShareMigrationHelper, |
|
|
|
|
'apply_new_access_rules') |
|
|
|
@ -5583,14 +5584,11 @@ class ShareManagerTestCase(test.TestCase):
|
|
|
|
|
snapshot_mappings, src_server, dest_server) |
|
|
|
|
(migration_api.ShareMigrationHelper.apply_new_access_rules. |
|
|
|
|
assert_called_once_with(dest_instance)) |
|
|
|
|
(self.share_manager._migration_complete_instance. |
|
|
|
|
assert_called_once_with(self.context, share, |
|
|
|
|
src_instance['id'], dest_instance['id'])) |
|
|
|
|
self.share_manager._migration_delete_instance.assert_called_once_with( |
|
|
|
|
self.context, src_instance['id']) |
|
|
|
|
self.share_manager.db.share_instance_update.assert_has_calls([ |
|
|
|
|
mock.call(self.context, dest_instance['id'], |
|
|
|
|
{'status': constants.STATUS_AVAILABLE, |
|
|
|
|
'progress': '100%'}), |
|
|
|
|
mock.call(self.context, src_instance['id'], |
|
|
|
|
{'status': constants.STATUS_INACTIVE})]) |
|
|
|
|
self.share_manager.db.share_update.assert_called_once_with( |
|
|
|
|
self.context, dest_instance['share_id'], |
|
|
|
|
{'task_state': constants.TASK_STATE_MIGRATION_COMPLETING}) |
|
|
|
@ -5633,6 +5631,7 @@ class ShareManagerTestCase(test.TestCase):
|
|
|
|
|
mock.Mock(side_effect=[instance, new_instance])) |
|
|
|
|
self.mock_object(self.share_manager.db, 'share_instance_update') |
|
|
|
|
self.mock_object(self.share_manager.db, 'share_update') |
|
|
|
|
self.mock_object(self.share_manager, '_migration_complete_instance') |
|
|
|
|
delete_mock = self.mock_object(migration_api.ShareMigrationHelper, |
|
|
|
|
'delete_instance_and_wait') |
|
|
|
|
self.mock_object(migration_api.ShareMigrationHelper, |
|
|
|
@ -5648,20 +5647,15 @@ class ShareManagerTestCase(test.TestCase):
|
|
|
|
|
mock.call(self.context, new_instance['id'], with_share_data=True) |
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
self.share_manager.db.share_instance_update.assert_has_calls([ |
|
|
|
|
mock.call(self.context, new_instance['id'], |
|
|
|
|
{'status': constants.STATUS_AVAILABLE, |
|
|
|
|
'progress': '100%'}), |
|
|
|
|
mock.call(self.context, instance['id'], |
|
|
|
|
{'status': constants.STATUS_INACTIVE}) |
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
self.share_manager.db.share_update.assert_called_once_with( |
|
|
|
|
self.context, share['id'], |
|
|
|
|
{'task_state': constants.TASK_STATE_MIGRATION_COMPLETING}) |
|
|
|
|
(migration_api.ShareMigrationHelper.apply_new_access_rules. |
|
|
|
|
assert_called_once_with(new_instance)) |
|
|
|
|
delete_mock.assert_called_once_with(instance) |
|
|
|
|
(self.share_manager._migration_complete_instance. |
|
|
|
|
assert_called_once_with(self.context, share, instance['id'], |
|
|
|
|
new_instance['id'])) |
|
|
|
|
|
|
|
|
|
@ddt.data(constants.TASK_STATE_MIGRATION_DRIVER_IN_PROGRESS, |
|
|
|
|
constants.TASK_STATE_MIGRATION_DRIVER_PHASE1_DONE, |
|
|
|
@ -5828,6 +5822,31 @@ class ShareManagerTestCase(test.TestCase):
|
|
|
|
|
(self.share_manager.db.share_snapshot_instance_delete. |
|
|
|
|
assert_called_once_with(self.context, snapshot.instance['id'])) |
|
|
|
|
|
|
|
|
|
@ddt.data({}, {'replication_type': 'readable'}) |
|
|
|
|
def test__migration_complete_instance(self, kwargs): |
|
|
|
|
src_share = db_utils.create_share() |
|
|
|
|
dest_share = db_utils.create_share(**kwargs) |
|
|
|
|
src_instance_id = src_share['instance']['id'] |
|
|
|
|
dest_instance_id = dest_share['instance']['id'] |
|
|
|
|
src_updates = {'status': constants.STATUS_INACTIVE} |
|
|
|
|
dest_updates = dest_updates = { |
|
|
|
|
'status': constants.STATUS_AVAILABLE, |
|
|
|
|
'progress': '100%' |
|
|
|
|
} |
|
|
|
|
if kwargs.get('replication_type'): |
|
|
|
|
replication_info = { |
|
|
|
|
'replica_state': constants.REPLICA_STATE_ACTIVE} |
|
|
|
|
dest_updates.update(replication_info) |
|
|
|
|
|
|
|
|
|
self.mock_object(self.share_manager.db, 'share_instance_update') |
|
|
|
|
|
|
|
|
|
self.share_manager._migration_complete_instance( |
|
|
|
|
self.context, dest_share, src_instance_id, dest_instance_id) |
|
|
|
|
|
|
|
|
|
self.share_manager.db.share_instance_update.assert_has_calls( |
|
|
|
|
[mock.call(self.context, dest_instance_id, dest_updates), |
|
|
|
|
mock.call(self.context, src_instance_id, src_updates)]) |
|
|
|
|
|
|
|
|
|
def test_migration_cancel_invalid(self): |
|
|
|
|
|
|
|
|
|
share = db_utils.create_share() |
|
|
|
|