def main()

in mysqloperator/backup_main.py [0:0]


def main(argv):

    import datetime, time

    parser = argparse.ArgumentParser(description = "MySQL InnoDB Cluster Instance Sidecar Container")
    parser.add_argument('--debug',   type = int, nargs="?", const = 1, default = 0, help = "Debug")
    parser.add_argument('--namespace', type = str, default = "", help = "Namespace")
    parser.add_argument('--command', type = str, default = "", help = "Command")
    parser.add_argument('--backup-object-name', type = str, default = "", help = "Backup Object Name")
    parser.add_argument('--job-name', type = str, default = "", help = "Job name")
    parser.add_argument('--backup-dir', type = str, default = os.environ.get('DUMP_MOUNT_PATH', ""), help = "Backup Directory")
    parser.add_argument('--cluster-name', type = str, default = "", help = "Cluster Name")
    parser.add_argument('--schedule-name', type = str, default = "", help = "Schedule Name")
    args = parser.parse_args(argv)

    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s - [%(levelname)s] [%(name)s] %(message)s',
                        datefmt="%Y-%m-%dT%H:%M:%S")

    debug = args.debug

    # suppress logging from other libs
    for name in ['kubernetes']:
        logger = logging.getLogger(name)
        logger.propagate = debug
        if not debug:
            logger.handlers[:] = [logging.NullHandler()]

    logger = logging.getLogger("backup")
    ts = datetime.datetime.fromtimestamp(
        os.stat(__file__).st_mtime).isoformat()

    command = args.command

    logger.info(f"[BACKUP] command={command} version={config.OPERATOR_VERSION} timestamp={ts}")

    print(f"Command is {command}")

    ret = False
    if command == "execute-backup":
        import subprocess
        subprocess.run(["ls", "-la", "/"])
        subprocess.run(["ls", "-l", "/.oci"])

        namespace = args.namespace
        backup_object_name = args.backup_object_name
        job_name = args.job_name
        backup_dir = args.backup_dir
        logger.info(f"backupdir={backup_dir}")

        ret = command_do_create_backup(namespace, backup_object_name, job_name, backup_dir, logger, debug)
    elif command == "create-backup-object":
        namespace = args.namespace
        cluster_name = args.cluster_name
        schedule_name = args.schedule_name
        ret = command_create_backup_object(namespace, cluster_name, schedule_name, logger)
    else:
        raise Exception(f"Unknown command {command}")

    logger.info(f"Command {command} finished with code {ret}")
    return 0 if ret == True else 1