def test_get_auth_password(self): dbaas.utils.execute_with_timeout = Mock(return_value=("password ", None)) password = dbaas.get_auth_password() self.assertEqual("password", password)
def test_get_auth_password(self): dbaas.utils.execute_with_timeout = \ Mock(return_value=("password ", None)) password = dbaas.get_auth_password() self.assertEqual("password", password)
def execute_backup(self, context, backup_id, runner=RUNNER): LOG.debug("Searching for backup instance %s", backup_id) backup = DBBackup.find_by(id=backup_id) LOG.info("Setting task state to %s for instance %s", BackupState.NEW, backup.instance_id) backup.state(BackupState.NEW) backup.save() LOG.info("Running backup %s", backup_id) user = ADMIN_USER_NAME password = get_auth_password() connection = create_swift_client(context) with runner(filename=backup_id, user=user, password=password) as bkup: LOG.info("Starting Backup %s", backup_id) connection.put_container(BACKUP_CONTAINER) while not bkup.end_of_file: segment = bkup.segment etag = connection.put_object(BACKUP_CONTAINER, segment, bkup) # Check each segment MD5 hash against swift etag # Raise an error and mark backup as failed if etag != bkup.schecksum.hexdigest(): print etag, bkup.schecksum.hexdigest() backup.state(BackupState.FAILED) backup.note = "Error sending data to cloud files!" backup.save() raise BackupError(backup.note) checksum = bkup.checksum.hexdigest() url = connection.url location = "%s/%s/%s" % (url, BACKUP_CONTAINER, bkup.manifest) LOG.info("Backup %s file size: %s", backup_id, bkup.content_length) LOG.info('Backup %s file checksum: %s', backup_id, checksum) LOG.info('Backup %s location: %s', location) # Create the manifest file headers = {'X-Object-Manifest': bkup.prefix} connection.put_object(BACKUP_CONTAINER, bkup.manifest, contents='', headers=headers) LOG.info("Saving %s Backup Info", backup_id) backup.state(BackupState.COMPLETED) backup.checksum = checksum backup.location = location backup.backup_type = bkup.backup_type backup.save()