def setUp(self): super(TestBackup, self).setUp() self.sess = mock.Mock(spec=adapter.Adapter) self.sess.get = mock.Mock() self.sess.delete = mock.Mock() self.sess.put = mock.Mock() self.sess.default_microversion = '1' self.sess._get_connection = mock.Mock(return_value=self.cloud) self.sot = _backup.Backup() self.sot_expected = _backup.Backup(**EXAMPLE)
def test_list(self): backup = _backup.Backup(id='backup') self.verify_list(self.proxy.members, _member.Member, method_args=[backup], expected_kwargs={'backup_id': backup.id}, expected_args=[])
def test_basic(self): sot = _backup.Backup() self.assertEqual('backup', sot.resource_key) self.assertEqual('backups', sot.resources_key) self.assertEqual('/backups', sot.base_path) self.assertTrue(sot.allow_list) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) self.assertTrue(sot.allow_delete) self.assertDictEqual( { 'checkpoint_id': 'checkpoint_id', 'dec': 'dec', 'end_time': 'end_time', 'enterprise_project_id': 'enterprise_project_id', 'image_type': 'image_type', 'limit': 'limit', 'marker': 'marker', 'member_status': 'member_status', 'name': 'name', 'offset': 'offset', 'own_type': 'own_type', 'parent_id': 'parent_id', 'resource_az': 'resource_az', 'resource_id': 'resource_id', 'resource_name': 'resource_name', 'resource_type': 'resource_type', 'sort': 'sort', 'start_time': 'start_time', 'status': 'status', 'used_percent': 'used_percent', 'vault_id': 'vault_id' }, sot._query_mapping._mapping)
def test_member_add(self): members = ['member1', 'member2'] backup = _backup.Backup(id='backup') self._verify('otcextensions.sdk.cbr.v3.backup.Backup.add_members', self.proxy.add_members, method_args=[backup, members], expected_args=[self.proxy], expected_kwargs={'members': members})
def test_restore_server(self): attrs = {'a': 'b'} backup = _backup.Backup(id='my_backup') self._verify('openstack.proxy.Proxy._create', self.proxy.restore_data, method_args=[backup], method_kwargs=attrs, expected_args=[_restore.Restore], expected_kwargs=dict(backup_id=backup.id, **attrs))
def test_get(self): backup = _backup.Backup(id='backup') member = _member.Member(id='member') self._verify('openstack.proxy.Proxy._get', self.proxy.get_member, method_args=[backup, member], method_kwargs={}, expected_args=[_member.Member, member], expected_kwargs={'backup_id': backup.id})
def test_delete(self): backup = _backup.Backup(id='backup') member = _member.Member(id='member') self._verify('openstack.proxy.Proxy._delete', self.proxy.delete_member, method_args=[backup, member, True], method_kwargs={}, expected_args=[_member.Member, member], expected_kwargs={ 'backup_id': backup.id, 'ignore_missing': True })
def test_update(self): backup = _backup.Backup(id='backup') member = _member.Member(id='member') status = 'accepted' vault = _vault.Vault(id='vault') self._verify('openstack.proxy.Proxy._update', self.proxy.update_member, method_args=[backup, member, status, vault], method_kwargs={}, expected_args=[_member.Member, member], expected_kwargs={ 'backup_id': backup.id, 'status': status, 'vault_id': vault.id })
def test_make_it(self): test_backup = _backup.Backup(**EXAMPLE) self.assertEqual(EXAMPLE['provider_id'], test_backup.provider_id) self.assertEqual(EXAMPLE['checkpoint_id'], test_backup.checkpoint_id) self.assertEqual(EXAMPLE['updated_at'], test_backup.updated_at) self.assertEqual(EXAMPLE['vault_id'], test_backup.vault_id) self.assertEqual(EXAMPLE['id'], test_backup.id) self.assertEqual(EXAMPLE['resource_az'], test_backup.resource_az) self.assertEqual(EXAMPLE['image_type'], test_backup.image_type) self.assertEqual(EXAMPLE['resource_id'], test_backup.resource_id) self.assertEqual(EXAMPLE['resource_size'], test_backup.resource_size) self.assertEqual(EXAMPLE['children'], test_backup.children) self.assertEqual(EXAMPLE['project_id'], test_backup.project_id) self.assertEqual(EXAMPLE['status'], test_backup.status) self.assertEqual(EXAMPLE['resource_name'], test_backup.resource_name) self.assertEqual(EXAMPLE['description'], test_backup.description) self.assertEqual(EXAMPLE['expired_at'], test_backup.expired_at) self.assertEqual(EXAMPLE['replication_records'], test_backup.replication_records) self.assertEqual(EXAMPLE['name'], test_backup.name) self.assertEqual(EXAMPLE['created_at'], test_backup.created_at) self.assertEqual(EXAMPLE['resource_type'], test_backup.resource_type) self.assertTrue(test_backup.extend_info.auto_trigger) self.assertEqual(EXAMPLE['extend_info']['supported_restore_mode'], test_backup.extend_info.supported_restore_mode) self.assertTrue(test_backup.extend_info.contain_system_disk) self.assertTrue(test_backup.extend_info.support_lld) self.assertEqual(EXAMPLE['extend_info']['architecture'], test_backup.extend_info.architecture) self.assertFalse(test_backup.extend_info.system_disk) self.assertEqual( EXAMPLE['extend_info']['app_consistency']['app_consistency'], test_backup.extend_info.app_consistency.app_consistency) self.assertEqual( EXAMPLE['extend_info']['app_consistency']['error_code'], test_backup.extend_info.app_consistency.error_code) self.assertEqual( EXAMPLE['extend_info']['app_consistency']['error_message'], test_backup.extend_info.app_consistency.error_message) self.assertEqual( EXAMPLE['extend_info']['app_consistency']['error_status'], test_backup.extend_info.app_consistency.error_status)
def test_default(self): arglist = [ 'backup_uuid', '--mappings', 'backup_id=backup_uuid volume_id=volume_uuid', '--server-id', 'server_uuid', '--volume-id', 'volume_uuid' ] verifylist = [ ('backup', 'backup_uuid'), ('power_on', False), ('server_id', 'server_uuid'), ('volume_id', 'volume_uuid'), ('mappings', ['backup_id=backup_uuid volume_id=volume_uuid']) ] # Verify cm is triggereg with default parameters parsed_args = self.check_parser(self.cmd, arglist, verifylist) # # Set the response self.client.restore_data.side_effect = [ {} ] self.client.find_backup.side_effect = [ backupSDK.Backup(id='backup_uuid') ] # Trigger the action self.cmd.take_action(parsed_args) self.client.restore_data.assert_called_once_with( backup='backup_uuid', mappings=[{'backup_id': 'backup_uuid', 'volume_id': 'volume_uuid'}], power_on=False, server_id='server_uuid', volume_id='volume_uuid' )
def test_delete(self): arglist = [ 'b1' ] verifylist = [ ('backup', 'b1') ] # Verify cm is triggereg with default parameters parsed_args = self.check_parser(self.cmd, arglist, verifylist) # Set the response self.client.delete_backup.side_effect = [{}] # Set the response for find_policy self.client.find_backup.side_effect = [ backupSDK.Backup(id='b1') ] # Trigger the action self.cmd.take_action(parsed_args) delete_calls = [ mock.call( backup='b1', ignore_missing=False), ] find_calls = [ mock.call( name_or_id='b1', ignore_missing=False), ] self.client.delete_backup.assert_has_calls(delete_calls) self.client.find_backup.assert_has_calls(find_calls) self.assertEqual(1, self.client.delete_backup.call_count)