Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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!")
Ejemplo n.º 6
0
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!")