def test_backup_data(self): # Test for unsupported storage backend. flexmock(backup_recovery_constants.StorageTypes()).\ should_receive("get_storage_types").and_return([]) self.assertEquals(None, zookeeper_backup.backup_data('blah', '')) # Test with failure to tar ZK data file. flexmock(zookeeper_backup).should_receive('dump_zk').\ and_return() flexmock(backup_recovery_helper).should_receive('tar_backup_files').\ and_return(None) flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() flexmock(backup_recovery_helper).should_receive('move_secondary_backup').\ and_return() self.assertEquals(None, zookeeper_backup.backup_data('', '')) # Test with successful tar creation and local storage. flexmock(backup_recovery_helper).should_receive('tar_backup_files').\ and_return('some/snapshot') flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_secondary_backup').\ and_return() self.assertEquals('some/snapshot', zookeeper_backup.backup_data('', '')) # Test with GCS as storage backend and failure to upload. flexmock(gcs_helper).should_receive('upload_to_bucket').and_return( False) flexmock(backup_recovery_helper).should_receive('move_secondary_backup').\ and_return() flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() self.assertEquals( None, zookeeper_backup.backup_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test with GCS as storage backend and successful upload. flexmock(gcs_helper).should_receive('upload_to_bucket').and_return( True) flexmock(backup_recovery_helper).\ should_receive('delete_secondary_backup').\ and_return() flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() self.assertIsNotNone( zookeeper_backup.backup_data( backup_recovery_constants.StorageTypes.GCS, ''))
def test_backup_data(self): # Test for unsupported storage backend. flexmock(backup_recovery_constants.StorageTypes()).\ should_receive("get_storage_types").and_return([]) self.assertEquals(None, zookeeper_backup.backup_data('blah', '')) # Test with failure to tar ZK data file. flexmock(zookeeper_backup).should_receive('dump_zk').\ and_return() flexmock(backup_recovery_helper).should_receive('tar_backup_files').\ and_return(None) flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() flexmock(backup_recovery_helper).should_receive('move_secondary_backup').\ and_return() self.assertEquals(None, zookeeper_backup.backup_data('', '')) # Test with successful tar creation and local storage. flexmock(backup_recovery_helper).should_receive('tar_backup_files').\ and_return('some/snapshot') flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_secondary_backup').\ and_return() self.assertEquals('some/snapshot', zookeeper_backup.backup_data('', '')) # Test with GCS as storage backend and failure to upload. flexmock(gcs_helper).should_receive('upload_to_bucket').and_return(False) flexmock(backup_recovery_helper).should_receive('move_secondary_backup').\ and_return() flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() self.assertEquals(None, zookeeper_backup.backup_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test with GCS as storage backend and successful upload. flexmock(gcs_helper).should_receive('upload_to_bucket').and_return(True) flexmock(backup_recovery_helper).\ should_receive('delete_secondary_backup').\ and_return() flexmock(backup_recovery_helper).should_receive('remove').\ and_return() flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() self.assertIsNotNone(zookeeper_backup.backup_data( backup_recovery_constants.StorageTypes.GCS, ''))
def do_zookeeper_backup(self, storage, path): """ Top level function for doing Zookeeper backups. Args: storage: A str, one of the StorageTypes class members. path: A str, the name of the backup file to be created. Returns: A JSON string to return to the client. """ success = True reason = "success" try: logging.info("Acquiring lock for zk backup.") self.__zookeeper_backup_lock.acquire(True) logging.info("Got the lock for zk backup.") if not zookeeper_backup.backup_data(storage, path): return self.bad_request("ZK backup failed!") else: logging.info("Successful zk backup!") except backup_exceptions.BRException, exception: logging.error("Unable to complete zk backup: {0}".format(exception)) success = False reason = str(exception)
def do_zookeeper_backup(self, storage, path): """ Top level function for doing Zookeeper backups. Args: storage: A str, one of the StorageTypes class members. path: A str, the name of the backup file to be created. Returns: A JSON string to return to the client. """ success = True reason = "success" try: logging.info("Acquiring lock for zk backup.") self.__zookeeper_backup_lock.acquire(True) logging.info("Got the lock for zk backup.") if not zookeeper_backup.backup_data(storage, path): return self.bad_request("ZK backup failed!") else: logging.info("Successful zk backup!") except backup_exceptions.BRException, exception: logging.error( "Unable to complete zk backup: {0}".format(exception)) success = False reason = str(exception)