def cmd_backup(args, osbs): dirname = time.strftime("osbs-backup-{0}-%Y-%m-%d-%H%M%S".format( args.instance)) if args.filename == '-': outfile = sys.stdout.buffer if PY3 else sys.stdout elif args.filename: outfile = args.filename else: outfile = dirname + ".tar.bz2" with paused_builds(osbs, quota_name='pause-backup', ignore_quota_errors=args.ignore_quota_errors): with TarWriter(outfile, dirname) as t: for resource_type in BACKUP_RESOURCES: try: logger.info("dumping %s", resource_type) resources = osbs.dump_resource(resource_type) t.write_file(resource_type + ".json", json.dumps(resources).encode('ascii')) except Exception as e: if args.continue_on_error: logger.warning( "Error during {} backup".format(resource_type), exc_info=True) else: raise e if not hasattr(outfile, "write"): logger.info("backup archive created: %s", outfile)
def cmd_backup(args, osbs): dirname = time.strftime("osbs-backup-{0}-%Y-%m-%d-%H%M%S" .format(args.instance)) if args.filename == '-': outfile = sys.stdout.buffer if PY3 else sys.stdout elif args.filename: outfile = args.filename else: outfile = dirname + ".tar.bz2" with paused_builds(osbs, quota_name='pause-backup', ignore_quota_errors=args.ignore_quota_errors): with TarWriter(outfile, dirname) as t: for resource_type in BACKUP_RESOURCES: try: logger.info("dumping %s", resource_type) resources = osbs.dump_resource(resource_type) t.write_file(resource_type + ".json", json.dumps(resources).encode('ascii')) except Exception as e: if args.continue_on_error: logger.warning( "Error during {} backup".format(resource_type), exc_info=True) else: raise e if not hasattr(outfile, "write"): logger.info("backup archive created: %s", outfile)
def cmd_backup(args, osbs): dirname = time.strftime("osbs-backup-{0}-{1}-%Y-%m-%d-%H%M%S" .format(args.instance, args.namespace)) if args.filename == '-': outfile = sys.stdout.buffer if PY3 else sys.stdout elif args.filename: outfile = args.filename else: outfile = dirname + ".tar.bz2" with paused_builds(osbs, quota_name='pause-backup'): with TarWriter(outfile, dirname) as t: for resource_type in BACKUP_RESOURCES: logger.info("dumping %s", resource_type) resources = osbs.dump_resource(resource_type) t.write_file(resource_type + ".json", json.dumps(resources).encode('ascii')) if not hasattr(outfile, "write"): logger.info("backup archive created: %s", outfile)
def cmd_backup(args, osbs): dirname = time.strftime("osbs-backup-{0}-{1}-%Y-%m-%d-%H%M%S".format( args.instance, args.namespace)) if args.filename == '-': outfile = sys.stdout.buffer if PY3 else sys.stdout elif args.filename: outfile = args.filename else: outfile = dirname + ".tar.bz2" with paused_builds(osbs, quota_name='pause-backup'): with TarWriter(outfile, dirname) as t: for resource_type in BACKUP_RESOURCES: logger.info("dumping %s", resource_type) resources = osbs.dump_resource(resource_type) t.write_file(resource_type + ".json", json.dumps(resources).encode('ascii')) if not hasattr(outfile, "write"): logger.info("backup archive created: %s", outfile)
def cmd_restore(args, osbs): if args.BACKUP_ARCHIVE == '-': infile = sys.stdin.buffer if PY3 else sys.stdin else: infile = args.BACKUP_ARCHIVE asciireader = codecs.getreader('ascii') with paused_builds(osbs, quota_name='pause-backup'): for f in TarReader(infile): resource_type = os.path.basename(f.filename).split('.')[0] if resource_type not in BACKUP_RESOURCES: logger.warning("Unknown resource type for %s, skipping", f.filename) continue logger.info("restoring %s", resource_type) osbs.restore_resource(resource_type, json.load(asciireader(f.fileobj)), continue_on_error=args.continue_on_error) f.fileobj.close() logger.info("backup recovery complete!")
def cmd_restore(args, osbs): if args.BACKUP_ARCHIVE == '-': infile = sys.stdin.buffer if PY3 else sys.stdin # pylint: disable=no-member else: infile = args.BACKUP_ARCHIVE asciireader = codecs.getreader('ascii') with paused_builds(osbs, quota_name='pause-backup', ignore_quota_errors=args.ignore_quota_errors): for f in TarReader(infile): resource_type = os.path.basename(f.filename).split('.')[0] if resource_type not in BACKUP_RESOURCES: logger.warning("Unknown resource type for %s, skipping", f.filename) continue logger.info("restoring %s", resource_type) osbs.restore_resource(resource_type, json.load(asciireader(f.fileobj)), continue_on_error=args.continue_on_error) f.fileobj.close() logger.info("backup recovery complete!")