def execute_backup(self, context, backup_info, runner=RUNNER, extra_opts=EXTRA_OPTS): LOG.debug("Searching for backup instance %s", backup_info['id']) ctxt = trove_context.TroveContext( user=CONF.nova_proxy_admin_user, auth_token=CONF.nova_proxy_admin_pass) conductor = conductor_api.API(ctxt) LOG.info("Running backup %s", backup_info['id']) user = ADMIN_USER_NAME password = get_auth_password() swiftStorage = get_storage_strategy( CONF.storage_strategy, CONF.storage_namespace)(context) # Store the size of the filesystem before the backup. stats = get_filesystem_volume_stats(CONF.mount_point) conductor.update_backup(CONF.guest_id, backup_id=backup_info['id'], size=stats.get('used', 0.0), state=BackupState.BUILDING) with runner(filename=backup_info['id'], extra_opts=extra_opts, user=user, password=password) as bkup: try: LOG.info("Starting Backup %s", backup_info['id']) success, note, checksum, location = swiftStorage.save( BACKUP_CONTAINER, bkup) LOG.info("Backup %s completed status: %s", backup_info['id'], success) LOG.info("Backup %s file size: %s", backup_info['id'], bkup.content_length) LOG.info('Backup %s file swift checksum: %s', backup_info['id'], checksum) LOG.info('Backup %s location: %s', backup_info['id'], location) if not success: raise BackupError(note) except Exception as e: LOG.error(e) LOG.error("Error saving %s Backup", backup_info['id']) conductor.update_backup(CONF.guest_id, backup_id=backup_info['id'], state=BackupState.FAILED) raise else: LOG.info("Saving %s Backup Info to model", backup_info['id']) conductor.update_backup(CONF.guest_id, backup_id=backup_info['id'], checksum=checksum, location=location, note=note, backup_type=bkup.backup_type, state=BackupState.COMPLETED)
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 cmd(self): user_and_pass = ( ' --password=%(password)s -u %(user)s ' '2>/tmp/mysqldump.log' % {'password': get_auth_password(), 'user': ADMIN_USER_NAME}) cmd = ('mysqldump' ' --all-databases' ' %(extra_opts)s' ' --opt' + user_and_pass) return cmd + self.zip_cmd + self.encrypt_cmd
def cmd(self): user_and_pass = (' --password=%(password)s -u %(user)s ' '2>/tmp/mysqldump.log' % { 'password': get_auth_password(), 'user': ADMIN_USER_NAME }) cmd = ('mysqldump' ' --all-databases' ' %(extra_opts)s' ' --opt' + user_and_pass) return cmd + self.zip_cmd + self.encrypt_cmd
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() swiftStorage = get_storage_strategy(CONF.storage_strategy, CONF.storage_namespace)(context) # Store the size of the filesystem before the backup. stats = get_filesystem_volume_stats(CONF.mount_point) backup.size = stats.get('used', 0.0) backup.state = BackupState.BUILDING backup.save() try: with runner(filename=backup_id, user=user, password=password)\ as bkup: LOG.info("Starting Backup %s", backup_id) success, note, checksum, location = swiftStorage.save( BACKUP_CONTAINER, bkup) LOG.info("Backup %s completed status: %s", backup_id, success) LOG.info("Backup %s file size: %s", backup_id, bkup.content_length) LOG.info('Backup %s swift checksum: %s', backup_id, checksum) LOG.info('Backup %s location: %s', backup_id, location) if not success: raise BackupError(backup.note) except Exception as e: LOG.error(e) LOG.error("Error saving %s Backup", backup_id) backup.state = BackupState.FAILED backup.save() raise else: LOG.info("Saving %s Backup Info to model", backup_id) backup.state = BackupState.COMPLETED backup.checksum = checksum backup.location = location backup.note = note backup.backup_type = bkup.backup_type backup.save()
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() swiftStorage = get_storage_strategy(CONF.storage_strategy, CONF.storage_namespace)(context) # Store the size of the filesystem before the backup. stats = get_filesystem_volume_stats(CONF.mount_point) backup.size = stats.get("used", 0.0) backup.state = BackupState.BUILDING backup.save() try: with runner(filename=backup_id, user=user, password=password) as bkup: LOG.info("Starting Backup %s", backup_id) success, note, checksum, location = swiftStorage.save(BACKUP_CONTAINER, bkup) LOG.info("Backup %s completed status: %s", backup_id, success) LOG.info("Backup %s file size: %s", backup_id, bkup.content_length) LOG.info("Backup %s swift checksum: %s", backup_id, checksum) LOG.info("Backup %s location: %s", backup_id, location) if not success: raise BackupError(backup.note) except Exception as e: LOG.error(e) LOG.error("Error saving %s Backup", backup_id) backup.state = BackupState.FAILED backup.save() raise else: LOG.info("Saving %s Backup Info to model", backup_id) backup.state = BackupState.COMPLETED backup.checksum = checksum backup.location = location backup.note = note backup.backup_type = bkup.backup_type backup.save()
def execute_backup(self, context, backup_info, runner=RUNNER, extra_opts=EXTRA_OPTS): backup_id = backup_info['id'] ctxt = trove_context.TroveContext( user=CONF.nova_proxy_admin_user, auth_token=CONF.nova_proxy_admin_pass) conductor = conductor_api.API(ctxt) LOG.info(_("Running backup %(id)s") % backup_info) user = ADMIN_USER_NAME password = get_auth_password() storage = get_storage_strategy( CONF.storage_strategy, CONF.storage_namespace)(context) # Check if this is an incremental backup and grab the parent metadata parent_metadata = {} if backup_info.get('parent'): runner = INCREMENTAL_RUNNER LOG.info(_("Using incremental runner: %s") % runner.__name__) parent = backup_info['parent'] parent_metadata = storage.load_metadata(parent['location'], parent['checksum']) # The parent could be another incremental backup so we need to # reset the location and checksum to *this* parents info parent_metadata.update({ 'parent_location': parent['location'], 'parent_checksum': parent['checksum'] }) # Store the size of the filesystem before the backup. stats = get_filesystem_volume_stats(CONF.mount_point) backup = { 'backup_id': backup_id, 'size': stats.get('used', 0.0), 'state': BackupState.BUILDING, } conductor.update_backup(CONF.guest_id, sent=timeutils.float_utcnow(), **backup) try: with runner(filename=backup_id, extra_opts=extra_opts, user=user, password=password, **parent_metadata) as bkup: try: LOG.info(_("Starting Backup %s"), backup_id) success, note, checksum, location = storage.save( bkup.manifest, bkup) backup.update({ 'checksum': checksum, 'location': location, 'note': note, 'success': success, 'backup_type': bkup.backup_type, }) LOG.info(_("Backup %(backup_id)s completed status: " "%(success)s") % backup) LOG.info(_("Backup %(backup_id)s file swift checksum: " "%(checksum)s") % backup) LOG.info(_("Backup %(backup_id)s location: " "%(location)s") % backup) if not success: raise BackupError(note) storage.save_metadata(location, bkup.metadata()) except Exception: LOG.exception(_("Error saving %(backup_id)s Backup") % backup) backup.update({'state': BackupState.FAILED}) conductor.update_backup(CONF.guest_id, sent=timeutils.float_utcnow(), **backup) raise except Exception: LOG.exception(_("Error running backup: %(backup_id)s") % backup) backup.update({'state': BackupState.FAILED}) conductor.update_backup(CONF.guest_id, sent=timeutils.float_utcnow(), **backup) raise else: LOG.info(_("Saving %(backup_id)s Backup Info to model") % backup) backup.update({'state': BackupState.COMPLETED}) conductor.update_backup(CONF.guest_id, sent=timeutils.float_utcnow(), **backup)
def execute_backup(self, context, backup_info, runner=RUNNER, extra_opts=EXTRA_OPTS): backup_id = backup_info['id'] ctxt = trove_context.TroveContext( user=CONF.nova_proxy_admin_user, auth_token=CONF.nova_proxy_admin_pass) conductor = conductor_api.API(ctxt) LOG.info("Running backup %s", backup_id) user = ADMIN_USER_NAME password = get_auth_password() storage = get_storage_strategy( CONF.storage_strategy, CONF.storage_namespace)(context) # Store the size of the filesystem before the backup. stats = get_filesystem_volume_stats(CONF.mount_point) backup = { 'backup_id': backup_id, 'size': stats.get('used', 0.0), 'state': BackupState.BUILDING, } conductor.update_backup(CONF.guest_id, **backup) try: with runner(filename=backup_id, extra_opts=extra_opts, user=user, password=password) as bkup: try: LOG.info("Starting Backup %s", backup_id) success, note, checksum, location = storage.save( bkup.manifest, bkup) LOG.info("Backup %s completed status: %s", backup_id, success) LOG.info('Backup %s file swift checksum: %s', backup_id, checksum) LOG.info('Backup %s location: %s', backup_id, location) backup.update({ 'checksum': checksum, 'location': location, 'note': note, 'backup_type': bkup.backup_type, }) if not success: raise BackupError(note) except Exception: LOG.exception("Error saving %s Backup", backup_id) backup.update({'state': BackupState.FAILED}) conductor.update_backup(CONF.guest_id, **backup) raise except Exception: LOG.exception("Error running backup: %s", backup_id) backup.update({'state': BackupState.FAILED}) conductor.update_backup(CONF.guest_id, **backup) raise else: LOG.info("Saving %s Backup Info to model", backup_id) backup.update({'state': BackupState.COMPLETED}) conductor.update_backup(CONF.guest_id, **backup)
def execute_backup(self, context, backup_info, runner=RUNNER, extra_opts=EXTRA_OPTS): LOG.debug("Searching for backup instance %s", backup_info['id']) ctxt = trove_context.TroveContext( user=CONF.nova_proxy_admin_user, auth_token=CONF.nova_proxy_admin_pass) conductor = conductor_api.API(ctxt) LOG.info("Running backup %s", backup_info['id']) user = ADMIN_USER_NAME password = get_auth_password() swiftStorage = get_storage_strategy(CONF.storage_strategy, CONF.storage_namespace)(context) # Store the size of the filesystem before the backup. stats = get_filesystem_volume_stats(CONF.mount_point) conductor.update_backup(CONF.guest_id, backup_id=backup_info['id'], size=stats.get('used', 0.0), state=BackupState.BUILDING) with runner(filename=backup_info['id'], extra_opts=extra_opts, user=user, password=password) as bkup: try: LOG.info("Starting Backup %s", backup_info['id']) success, note, checksum, location = swiftStorage.save( BACKUP_CONTAINER, bkup) LOG.info("Backup %s completed status: %s", backup_info['id'], success) LOG.info("Backup %s file size: %s", backup_info['id'], bkup.content_length) LOG.info('Backup %s file swift checksum: %s', backup_info['id'], checksum) LOG.info('Backup %s location: %s', backup_info['id'], location) if not success: raise BackupError(note) except Exception as e: LOG.error(e) LOG.error("Error saving %s Backup", backup_info['id']) conductor.update_backup(CONF.guest_id, backup_id=backup_info['id'], state=BackupState.FAILED) raise else: LOG.info("Saving %s Backup Info to model", backup_info['id']) conductor.update_backup(CONF.guest_id, backup_id=backup_info['id'], checksum=checksum, location=location, note=note, backup_type=bkup.backup_type, state=BackupState.COMPLETED)