def test_restore_data(self): # Test for unsupported storage backend. flexmock(backup_recovery_constants.StorageTypes()).\ should_receive("get_storage_types").and_return([]) self.assertEquals(False, zookeeper_backup.restore_data('blah', '')) # Test with failure to download backup from GCS. flexmock(gcs_helper).should_receive('download_from_bucket').and_return( False) self.assertEquals( False, zookeeper_backup.restore_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test with successful download from GCS and failure to untar. flexmock(gcs_helper).should_receive('download_from_bucket').and_return( True) flexmock(zookeeper_backup).should_receive('flush_zk').and_return() flexmock(backup_recovery_helper).should_receive( 'untar_backup_files').and_raise(backup_exceptions.BRException) flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() self.assertEquals( False, zookeeper_backup.restore_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test normal case for GCS. flexmock(backup_recovery_helper).should_receive('untar_backup_files').\ and_return() flexmock(zookeeper_backup).should_receive('restore_zk').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( True, zookeeper_backup.restore_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test with failure to untar in local mode. flexmock(zookeeper_backup).should_receive('flush_zk').and_return() flexmock(backup_recovery_helper).should_receive('untar_backup_files').\ and_raise(backup_exceptions.BRException) flexmock(zookeeper_backup).should_receive('restore_zk').and_return() flexmock(backup_recovery_helper).should_receive('remove').and_return() self.assertEquals(False, zookeeper_backup.restore_data('', '')) # Test normal case in local mode. flexmock(backup_recovery_helper).should_receive('untar_backup_files').\ and_return() flexmock(zookeeper_backup).should_receive('restore_zk').and_return() flexmock(backup_recovery_helper).should_receive('remove').and_return() self.assertEquals(True, zookeeper_backup.restore_data('', ''))
def test_restore_data(self): # Test for unsupported storage backend. flexmock(backup_recovery_constants.StorageTypes()).\ should_receive("get_storage_types").and_return([]) self.assertEquals(False, zookeeper_backup.restore_data('blah', '')) # Test with failure to download backup from GCS. flexmock(gcs_helper).should_receive('download_from_bucket').and_return( False) self.assertEquals(False, zookeeper_backup.restore_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test with successful download from GCS and failure to untar. flexmock(gcs_helper).should_receive('download_from_bucket').and_return( True) flexmock(zookeeper_backup).should_receive('flush_zk').and_return() flexmock(backup_recovery_helper).should_receive( 'untar_backup_files').and_raise(backup_exceptions.BRException) flexmock(backup_recovery_helper).\ should_receive('delete_local_backup_file').\ and_return() self.assertEquals(False, zookeeper_backup.restore_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test normal case for GCS. flexmock(backup_recovery_helper).should_receive('untar_backup_files').\ and_return() flexmock(zookeeper_backup).should_receive('restore_zk').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(True, zookeeper_backup.restore_data( backup_recovery_constants.StorageTypes.GCS, '')) # Test with failure to untar in local mode. flexmock(zookeeper_backup).should_receive('flush_zk').and_return() flexmock(backup_recovery_helper).should_receive('untar_backup_files').\ and_raise(backup_exceptions.BRException) flexmock(zookeeper_backup).should_receive('restore_zk').and_return() flexmock(backup_recovery_helper).should_receive('remove').and_return() self.assertEquals(False, zookeeper_backup.restore_data('', '')) # Test normal case in local mode. flexmock(backup_recovery_helper).should_receive('untar_backup_files').\ and_return() flexmock(zookeeper_backup).should_receive('restore_zk').and_return() flexmock(backup_recovery_helper).should_receive('remove').and_return() self.assertEquals(True, zookeeper_backup.restore_data('', ''))
def do_zookeeper_restore(self, storage, path): """ Top level function for doing Zookeeper restores. 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 restore.") self.__zookeeper_backup_lock.acquire(True) logging.info("Got the lock for zk restore.") if not zookeeper_backup.restore_data(storage, path): return self.bad_request("ZK restore failed!") else: logging.info("Successful zk restore!") except backup_exceptions.BRException, exception: logging.error("Unable to complete zk restore: {0}".format(exception)) success = False reason = str(exception)
def do_zookeeper_restore(self, storage, path): """ Top level function for doing Zookeeper restores. 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 restore.") self.__zookeeper_backup_lock.acquire(True) logging.info("Got the lock for zk restore.") if not zookeeper_backup.restore_data(storage, path): return self.bad_request("ZK restore failed!") else: logging.info("Successful zk restore!") except backup_exceptions.BRException, exception: logging.error( "Unable to complete zk restore: {0}".format(exception)) success = False reason = str(exception)