| Server IP : 150.230.34.123 / Your IP : 216.73.217.23 Web Server : LiteSpeed System : Linux amd-instance-20210802-1657 5.15.0-1042-oracle #48~20.04.1-Ubuntu SMP Mon Aug 21 18:27:46 UTC 2023 x86_64 User : ubuntu ( 1001) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/ubuntu-advantage/ |
Upload File : |
import logging
import os
import sys
from systemd.daemon import notify # type: ignore
from uaclient import defaults, http
from uaclient.config import UAConfig
from uaclient.daemon import (
poll_for_pro_license,
retry_auto_attach,
setup_logging,
)
LOG = logging.getLogger("ubuntupro.lib.daemon")
def main() -> int:
setup_logging(
logging.INFO,
logging.DEBUG,
defaults.CONFIG_DEFAULTS["daemon_log_file"],
logger=LOG,
)
cfg = UAConfig()
setup_logging(
logging.INFO, logging.DEBUG, log_file=cfg.daemon_log_file, logger=LOG
)
# used with loggers in uaclient.daemon
daemon_logger = logging.getLogger("ubuntupro.daemon")
setup_logging(
logging.INFO,
logging.DEBUG,
log_file=cfg.daemon_log_file,
logger=daemon_logger,
)
# The ua-daemon logger should log everything to its file
# Make sure the ua-daemon logger does not generate double logging
# by propagating to the root logger
LOG.propagate = False
daemon_logger.propagate = False
# The root logger should only log errors to the daemon log file
setup_logging(
logging.CRITICAL,
logging.ERROR,
cfg.daemon_log_file,
)
http.configure_web_proxy(cfg.http_proxy, cfg.https_proxy)
LOG.debug("daemon starting")
notify("READY=1")
is_correct_cloud = any(
os.path.exists("/run/cloud-init/cloud-id-{}".format(cloud))
for cloud in ("gce", "azure")
)
if is_correct_cloud and not os.path.exists(
retry_auto_attach.FLAG_FILE_PATH
):
LOG.info("mode: poll for pro license")
poll_for_pro_license.poll_for_pro_license(cfg)
# not using elif because `poll_for_pro_license` may create the flag file
if os.path.exists(retry_auto_attach.FLAG_FILE_PATH):
LOG.info("mode: retry auto attach")
retry_auto_attach.retry_auto_attach(cfg)
LOG.debug("daemon ending")
return 0
if __name__ == "__main__":
sys.exit(main())