예제 #1
0
async def initialize_coresys() -> CoreSys:
    """Initialize supervisor coresys/objects."""
    coresys = CoreSys()

    # Initialize core objects
    coresys.resolution = ResolutionManager(coresys)
    coresys.jobs = JobManager(coresys)
    coresys.core = Core(coresys)
    coresys.plugins = PluginManager(coresys)
    coresys.arch = CpuArch(coresys)
    coresys.auth = Auth(coresys)
    coresys.updater = Updater(coresys)
    coresys.api = RestAPI(coresys)
    coresys.supervisor = Supervisor(coresys)
    coresys.homeassistant = HomeAssistant(coresys)
    coresys.addons = AddonManager(coresys)
    coresys.snapshots = SnapshotManager(coresys)
    coresys.host = HostManager(coresys)
    coresys.hardware = HardwareManager(coresys)
    coresys.ingress = Ingress(coresys)
    coresys.tasks = Tasks(coresys)
    coresys.services = ServiceManager(coresys)
    coresys.store = StoreManager(coresys)
    coresys.discovery = Discovery(coresys)
    coresys.dbus = DBusManager(coresys)
    coresys.hassos = HassOS(coresys)
    coresys.scheduler = Scheduler(coresys)
    coresys.security = Security(coresys)

    # diagnostics
    setup_diagnostics(coresys)

    # bootstrap config
    initialize_system_data(coresys)

    # Set Machine/Host ID
    if MACHINE_ID.exists():
        coresys.machine_id = MACHINE_ID.read_text().strip()

    # Init TimeZone
    if coresys.config.timezone == "UTC":
        coresys.config.timezone = await fetch_timezone(coresys.websession)

    # Set machine type
    if os.environ.get(ENV_SUPERVISOR_MACHINE):
        coresys.machine = os.environ[ENV_SUPERVISOR_MACHINE]
    elif os.environ.get(ENV_HOMEASSISTANT_REPOSITORY):
        coresys.machine = os.environ[ENV_HOMEASSISTANT_REPOSITORY][14:-14]
    _LOGGER.info("Seting up coresys for machine: %s", coresys.machine)

    return coresys
예제 #2
0
async def initialize_coresys() -> CoreSys:
    """Initialize supervisor coresys/objects."""
    coresys = CoreSys()

    # Initialize core objects
    coresys.resolution = ResolutionManager(coresys)
    coresys.jobs = JobManager(coresys)
    coresys.core = Core(coresys)
    coresys.plugins = PluginManager(coresys)
    coresys.arch = CpuArch(coresys)
    coresys.auth = Auth(coresys)
    coresys.updater = Updater(coresys)
    coresys.api = RestAPI(coresys)
    coresys.supervisor = Supervisor(coresys)
    coresys.homeassistant = HomeAssistant(coresys)
    coresys.addons = AddonManager(coresys)
    coresys.backups = BackupManager(coresys)
    coresys.host = HostManager(coresys)
    coresys.hardware = HardwareManager(coresys)
    coresys.ingress = Ingress(coresys)
    coresys.tasks = Tasks(coresys)
    coresys.services = ServiceManager(coresys)
    coresys.store = StoreManager(coresys)
    coresys.discovery = Discovery(coresys)
    coresys.dbus = DBusManager(coresys)
    coresys.os = OSManager(coresys)
    coresys.scheduler = Scheduler(coresys)
    coresys.security = Security(coresys)
    coresys.bus = Bus(coresys)

    # diagnostics
    setup_diagnostics(coresys)

    # bootstrap config
    initialize_system(coresys)

    # Set Machine/Host ID
    if MACHINE_ID.exists():
        coresys.machine_id = MACHINE_ID.read_text(encoding="utf-8").strip()

    # Check if ENV is in development mode
    if coresys.dev:
        _LOGGER.warning("Environment variable 'SUPERVISOR_DEV' is set")
        coresys.config.logging = LogLevel.DEBUG
        coresys.config.debug = True
        coresys.updater.channel = UpdateChannel.DEV
        coresys.security.content_trust = False
    else:
        coresys.config.modify_log_level()

    # Convert datetime
    logging.Formatter.converter = lambda *args: coresys.now().timetuple()

    # Set machine type
    if os.environ.get(ENV_SUPERVISOR_MACHINE):
        coresys.machine = os.environ[ENV_SUPERVISOR_MACHINE]
    elif os.environ.get(ENV_HOMEASSISTANT_REPOSITORY):
        coresys.machine = os.environ[ENV_HOMEASSISTANT_REPOSITORY][14:-14]
        _LOGGER.warning(
            "Missing SUPERVISOR_MACHINE environment variable. Fallback to deprecated extraction!"
        )
    _LOGGER.info("Seting up coresys for machine: %s", coresys.machine)

    return coresys