mysqloperator/__main__.py (33 lines of code) (raw):

# Copyright (c) 2020, 2025, Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ # import sys import importlib entrypoints = { "operator": ".operator_main", "sidecar": ".sidecar_main", "init": ".init_main", "backup": ".backup_main", "restore": ".restore_main", "meb": ".meb_main", "csfo": ".clusterset_failover_main", "sleep": None } if sys.argv[1] in entrypoints: if sys.argv[1] == "sleep": print("Sleeping...") import time time.sleep(3600) sys.exit(0) ret = 0 try: mod = importlib.import_module(entrypoints[sys.argv[1]], "mysqloperator") # don't pass the name of the module, thus [2:] istead of [1:] ret = mod.main(sys.argv[2:]) # type: ignore except Exception as exc: print(f"Exception happened in entrypoint {sys.argv[1]}. The message is: {exc}") ret = 1 raise exc sys.exit(ret) elif sys.argv[1] == "pytest": import pytest sys.exit(pytest.main(sys.argv[2:])) else: print("Invalid args:", sys.argv) sys.exit(1)