diff --git a/hassio/docker/interface.py b/hassio/docker/interface.py index 12ad5e21d..fe3cd4332 100644 --- a/hassio/docker/interface.py +++ b/hassio/docker/interface.py @@ -42,6 +42,13 @@ class DockerInterface(CoreSysAttributes): return {} return self._meta.get("Config", {}) + @property + def meta_host(self) -> Dict[str, Any]: + """Return meta data of configuration for host.""" + if not self._meta: + return {} + return self._meta.get("HostConfig", {}) + @property def meta_labels(self) -> Dict[str, str]: """Return meta data of labels for container/image.""" diff --git a/hassio/docker/supervisor.py b/hassio/docker/supervisor.py index 961fd1551..174067b23 100644 --- a/hassio/docker/supervisor.py +++ b/hassio/docker/supervisor.py @@ -26,6 +26,11 @@ class DockerSupervisor(DockerInterface, CoreSysAttributes): """Return IP address of this container.""" return self.sys_docker.network.supervisor + @property + def privileged(self) -> bool: + """Return True if the container run with Privileged.""" + return self.meta_host.get("Privileged", False) + def _attach(self, tag: str) -> None: """Attach to running docker container. diff --git a/hassio/supervisor.py b/hassio/supervisor.py index 0fc8039ee..372af6fd6 100644 --- a/hassio/supervisor.py +++ b/hassio/supervisor.py @@ -41,6 +41,12 @@ class Supervisor(CoreSysAttributes): with suppress(DockerAPIError): await self.instance.cleanup() + # Check privileged mode + if not self.instance.privileged: + _LOGGER.error( + "Supervisor does not run in Privileged mode. Hassio runs with limited functionality!" + ) + @property def ip_address(self) -> IPv4Address: """Return IP of Supervisor instance."""