mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-21 19:09:04 +00:00
Add JobManager and Job decorator (#2225)
* Adds condition decorator to block execution that require internet * Fix exsisting tests * Add internet state to network info * Add healthy condition * Add tests * It's all changed * rename
This commit is contained in:
@@ -22,19 +22,20 @@ if TYPE_CHECKING:
|
||||
from .dbus import DBusManager
|
||||
from .discovery import Discovery
|
||||
from .hassos import HassOS
|
||||
from .misc.scheduler import Scheduler
|
||||
from .misc.hwmon import HwMonitor
|
||||
from .misc.tasks import Tasks
|
||||
from .homeassistant import HomeAssistant
|
||||
from .host import HostManager
|
||||
from .ingress import Ingress
|
||||
from .services import ServiceManager
|
||||
from .snapshots import SnapshotManager
|
||||
from .supervisor import Supervisor
|
||||
from .store import StoreManager
|
||||
from .updater import Updater
|
||||
from .job import JobManager
|
||||
from .misc.hwmon import HwMonitor
|
||||
from .misc.scheduler import Scheduler
|
||||
from .misc.tasks import Tasks
|
||||
from .plugins import PluginManager
|
||||
from .resolution import ResolutionManager
|
||||
from .services import ServiceManager
|
||||
from .snapshots import SnapshotManager
|
||||
from .store import StoreManager
|
||||
from .supervisor import Supervisor
|
||||
from .updater import Updater
|
||||
|
||||
|
||||
T = TypeVar("T")
|
||||
@@ -83,6 +84,7 @@ class CoreSys:
|
||||
self._hwmonitor: Optional[HwMonitor] = None
|
||||
self._plugins: Optional[PluginManager] = None
|
||||
self._resolution: Optional[ResolutionManager] = None
|
||||
self._jobs: Optional[JobManager] = None
|
||||
|
||||
@property
|
||||
def dev(self) -> bool:
|
||||
@@ -413,6 +415,20 @@ class CoreSys:
|
||||
raise RuntimeError("resolution manager already set!")
|
||||
self._resolution = value
|
||||
|
||||
@property
|
||||
def jobs(self) -> JobManager:
|
||||
"""Return resolution manager object."""
|
||||
if self._jobs is None:
|
||||
raise RuntimeError("job manager not set!")
|
||||
return self._jobs
|
||||
|
||||
@jobs.setter
|
||||
def jobs(self, value: JobManager) -> None:
|
||||
"""Set a resolution manager object."""
|
||||
if self._jobs:
|
||||
raise RuntimeError("job manager already set!")
|
||||
self._jobs = value
|
||||
|
||||
@property
|
||||
def machine(self) -> Optional[str]:
|
||||
"""Return machine type string."""
|
||||
@@ -588,6 +604,11 @@ class CoreSysAttributes:
|
||||
"""Return Resolution manager object."""
|
||||
return self.coresys.resolution
|
||||
|
||||
@property
|
||||
def sys_jobs(self) -> JobManager:
|
||||
"""Return Job manager object."""
|
||||
return self.coresys.jobs
|
||||
|
||||
def sys_run_in_executor(
|
||||
self, funct: Callable[..., T], *args: Any
|
||||
) -> Coroutine[Any, Any, T]:
|
||||
|
||||
Reference in New Issue
Block a user