Skip to content

Commit

Permalink
CBQE-5999: [25/n] [17/n] Add test cases for when staging directory is…
Browse files Browse the repository at this point in the history
… removed

Change-Id: Ia70b6f4eaece852b7819239288b99700f0b782ac
Reviewed-on: http://review.couchbase.org/c/testrunner/+/136055
Reviewed-by: James Lee <james.lee@couchbase.com>
Tested-by: Asad Zaidi <asad.zaidi@couchbase.com>
  • Loading branch information
jamesl33 authored and Asad Zaidi committed Sep 14, 2020
1 parent d44cbc3 commit 837183f
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
5 changes: 5 additions & 0 deletions conf/entbackuprestore/entbackuprestore-objstore.conf
Expand Up @@ -5,6 +5,7 @@ ent_backup_restore.enterprise_backup_restore_test.EnterpriseBackupRestoreTest:
test_backup_create,objstore_provider=s3,include-buckets='default',GROUP=P0
test_backup_remove_take_backup_range,objstore_provider=s3
test_backup_restore_sanity,objstore_provider=s3,items=1000,GROUP=P0
test_backup_with_remove_staging_directory,objstore_provider=s3,GROUP=P1
test_cbbackupmgr_restore_with_ttl,objstore_provider=s3
test_cbbackupmgr_restore_with_ttl,objstore_provider=s3,replace-ttl=add-none,GROUP=P0
test_cbbackupmgr_restore_with_ttl,objstore_provider=s3,replace-ttl=add-none,GROUP=P1,passwd-env=True
Expand Down Expand Up @@ -41,3 +42,7 @@ ent_backup_restore.enterprise_backup_restore_test.EnterpriseBackupRestoreTest:
test_cbbackupmgr_restore_with_vbuckets_filter,objstore_provider=s3,init_nodes=2,GROUP=P1,user-env=True,passwd-env=True,vbucket-filter=1000,2,8,90
test_cbbackupmgr_restore_with_vbuckets_filter,objstore_provider=s3,init_nodes=2,GROUP=P1,vbucket-filter=0
test_cbbackupmgr_restore_with_vbuckets_filter,objstore_provider=s3,init_nodes=2,GROUP=P1,vbucket-filter=1,2,8,90,1000,456,3,5,7,99,88
test_config_create_multiple_repos_with_remove_staging_directory,objstore_provider=s3,GROUP=P1
test_info_with_remove_staging_directory,objstore_provider=s3,GROUP=P1
test_remove_with_remove_staging_directory,objstore_provider=s3,GROUP=P1
test_restore_with_remove_staging_directory,objstore_provider=s3,GROUP=P1
48 changes: 48 additions & 0 deletions pytests/ent_backup_restore/enterprise_backup_restore_test.py
Expand Up @@ -4546,3 +4546,51 @@ def test_remove_without_objstore_bucket(self):
self.objstore_provider.remove_bucket()
_, output, _ = self.backup_remove()
self.assertIn('the specified bucket does not exist', output[0].lower())

def test_config_create_multiple_repos_with_remove_staging_directory(self):
self.assertIsNotNone(self.objstore_provider, "Test requires an object store provider")
self.backup_create_validate()
self.backupset.name = "another_repo"
remote_client = RemoteMachineShellConnection(self.backupset.backup_host)
self.objstore_provider._remove_staging_directory(remote_client.extract_remote_info().type.lower(), remote_client)
self.backup_create_validate()

def test_backup_with_remove_staging_directory(self):
self.assertIsNotNone(self.objstore_provider, "Test requires an object store provider")
self.objstore_provider._remove_staging_directory(remote_client.extract_remote_info().type.lower(), remote_client)
gen = BlobGenerator("ent-backup", "ent-backup-", self.value_size, end=self.num_items)
self.backup_create_validate()
remote_client = RemoteMachineShellConnection(self.backupset.backup_host)
self._load_all_buckets(self.master, gen, "create", 0)
self.backup_cluster_validate()

def test_info_with_remove_staging_directory(self):
self.assertIsNotNone(self.objstore_provider, "Test requires an object store provider")
self.backup_create_validate()
self.backup_cluster_validate()
remote_client = RemoteMachineShellConnection(self.backupset.backup_host)
self.objstore_provider._remove_staging_directory(remote_client.extract_remote_info().type.lower(), remote_client)
output, error = self.backup_info()
if error:
self.fail("Expected to be able to info backup where staging directory has been removed: {}".format(error))
self.assertEqual(json.loads(output[0])['count'], 1,
"Expected to find a single backup even though the staging directory was removed")

def test_restore_with_remove_staging_directory(self):
self.assertIsNotNone(self.objstore_provider, "Test requires an object store provider")
gen = BlobGenerator("ent-backup", "ent-backup-", self.value_size, end=self.num_items)
self._load_all_buckets(self.master, gen, "create", 0)
self.backup_create_validate()
self.backup_cluster_validate()
remote_client = RemoteMachineShellConnection(self.backupset.backup_host)
self.objstore_provider._remove_staging_directory(remote_client.extract_remote_info().type.lower(), remote_client)
self.backup_restore_validate()

def test_remove_with_remove_staging_directory(self):
self.assertIsNotNone(self.objstore_provider, "Test requires an object store provider")
self.backup_create_validate()
self.backup_cluster_validate()
remote_client = RemoteMachineShellConnection(self.backupset.backup_host)
self.objstore_provider._remove_staging_directory(remote_client.extract_remote_info().type.lower(), remote_client)
success, _, _ = self.backup_remove()
self.assertTrue(success, "Expected to have removed backups even though the staging directory was removed")

0 comments on commit 837183f

Please sign in to comment.