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)