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