def test_checkpoint_list(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id, [ volume, ]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id, plan.id, timeout=2400) items = self.karbor_client.checkpoints.list(self.provider_id) ids = [item.id for item in items] self.assertTrue(checkpoint.id in ids)
def test_checkpoint_list(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id, [volume, ]) checkpoints = self.karbor_client.checkpoints.list(self.provider_id) before_num = len(checkpoints) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id, plan.id) checkpoints = self.karbor_client.checkpoints.list(self.provider_id) after_num = len(checkpoints) self.assertEqual(1, after_num - before_num)
def test_checkpoint_get(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id, [volume, ]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id, plan.id) # sanity checkpoint_item = self.karbor_client.checkpoints.get(self.provider_id, checkpoint.id) self.assertEqual(constants.CHECKPOINT_STATUS_AVAILABLE, checkpoint_item.status) self.assertEqual(checkpoint.id, checkpoint_item.id)
def test_restore_create_without_target_and_auth(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id_noop, [volume, ]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id_noop, plan.id) restore = self.store(objects.Restore()) restore.create(self.provider_id_noop, checkpoint.id, None, self.parameters, None) item = self.karbor_client.restores.get(restore.id) self.assertEqual(constants.RESTORE_STATUS_SUCCESS, item.status) self._store(item.resources_status)
def test_restore_resources_with_fs_bank(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id_noop, [volume, ]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id_noop, plan.id) restore_target = self.get_restore_target(self.keystone_endpoint) restore = self.store(objects.Restore()) restore.create(self.provider_id_noop, checkpoint.id, restore_target, self.parameters, self.restore_auth) item = self.karbor_client.restores.get(restore.id) self.assertEqual(constants.RESTORE_STATUS_SUCCESS, item.status)
def test_checkpoint_create(self): self.skipTest('Requires cinder protection plugin adjustment') volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id_os, [ volume, ]) backups = self.cinder_client.backups.list() before_num = len(backups) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id, plan.id) backups = self.cinder_client.backups.list() after_num = len(backups) self.assertEqual(1, after_num - before_num)
def test_restore_network_resources(self): network = self.store(objects.Network()) network.create() plan = self.store(objects.Plan()) plan.create(self.provider_id_os, [network, ]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id_os, plan.id) network.close() restore_target = self.get_restore_target(self.keystone_endpoint) restore = self.store(objects.Restore()) restore.create(self.provider_id_os, checkpoint.id, restore_target, self.parameters, self.restore_auth) item = self.karbor_client.restores.get(restore.id) self.assertEqual(constants.RESTORE_STATUS_SUCCESS, item.status) self._store(item.resources_status)
def test_checkpoint_delete(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id, [ volume, ]) checkpoint = objects.Checkpoint() checkpoint.create(self.provider_id, plan.id, timeout=2400) checkpoint_item = self.karbor_client.checkpoints.get( self.provider_id, checkpoint.id) self.assertEqual(constants.CHECKPOINT_STATUS_AVAILABLE, checkpoint_item.status) checkpoint.close() items = self.karbor_client.checkpoints.list(self.provider_id) ids = [item.id for item in items] self.assertTrue(checkpoint.id not in ids)
def test_server_attached_volume_protect_both(self): """Test checkpoint for server with attached volume Test checkpoint for server which has attached one volume, and add server and volume both in protect source """ volume = self.store(objects.Volume()) volume.create(1) server = self.store(objects.Server()) server.create() server.attach_volume(volume.id) plan = self.store(objects.Plan()) plan.create(self.provider_id_noop, [server, volume]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id_noop, plan.id, timeout=2400) items = self.karbor_client.checkpoints.list(self.provider_id_noop) ids = [item.id for item in items] self.assertTrue(checkpoint.id in ids)
def test_restore_get(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id, [ volume, ]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id, plan.id) volumes_pre = self.cinder_client.volumes.list() restore_target = self.get_restore_target(self.keystone_endpoint) restore = self.store(objects.Restore()) restore.create(self.provider_id, checkpoint.id, restore_target, self.parameters, self.restore_auth) restore_item = self.karbor_client.restores.get(restore.id) self.assertEqual(restore.id, restore_item.id) volumes_post = self.cinder_client.volumes.list() self._store_volume(volumes_pre, volumes_post)
def test_checkpoint_delete(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id, [volume, ]) checkpoints = self.karbor_client.checkpoints.list(self.provider_id) before_num = len(checkpoints) checkpoint = objects.Checkpoint() checkpoint.create(self.provider_id, plan.id) # sanity checkpoint_item = self.karbor_client.checkpoints.get(self.provider_id, checkpoint.id) self.assertEqual(constants.CHECKPOINT_STATUS_AVAILABLE, checkpoint_item.status) checkpoint.close() checkpoints = self.karbor_client.checkpoints.list(self.provider_id) after_num = len(checkpoints) self.assertEqual(before_num, after_num)
def test_restore_create_without_target_and_auth(self): volume = self.store(objects.Volume()) volume.create(1) plan = self.store(objects.Plan()) plan.create(self.provider_id, [ volume, ]) checkpoint = self.store(objects.Checkpoint()) checkpoint.create(self.provider_id, plan.id) restores = self.karbor_client.restores.list() before_num = len(restores) volumes_pre = self.cinder_client.volumes.list() restore = self.store(objects.Restore()) restore.create(self.provider_id, checkpoint.id, None, self.parameters, None) restores = self.karbor_client.restores.list() after_num = len(restores) self.assertEqual(1, after_num - before_num) volumes_post = self.cinder_client.volumes.list() self._store_volume(volumes_pre, volumes_post)