Add log about ratelimit (#2271)

* Add log about ratelimit

* Update wording

* create issue
This commit is contained in:
Joakim Sørensen 2020-11-20 10:50:26 +01:00 committed by GitHub
parent a59ea72c66
commit 46dc6dc63b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -19,6 +19,7 @@ from ..const import (
) )
from ..coresys import CoreSys, CoreSysAttributes from ..coresys import CoreSys, CoreSysAttributes
from ..exceptions import DockerAPIError, DockerError, DockerNotFound, DockerRequestError from ..exceptions import DockerAPIError, DockerError, DockerNotFound, DockerRequestError
from ..resolution.const import ContextType, IssueType, SuggestionType
from ..utils import process_lock from ..utils import process_lock
from .stats import DockerStats from .stats import DockerStats
@ -162,6 +163,16 @@ class DockerInterface(CoreSysAttributes):
"Available space in /data is: %s GiB", "Available space in /data is: %s GiB",
free_space, free_space,
) )
elif err.status_code == 429:
self.sys_resolution.create_issue(
IssueType.DOCKER_RATELIMIT,
ContextType.SYSTEM,
suggestions=[SuggestionType.REGISTRY_LOGIN],
)
_LOGGER.info(
"Your IP address has made too many requests to Docker Hub which activated a rate limit. "
"For more details see https://www.home-assistant.io/more-info/dockerhub-rate-limit"
)
raise DockerError() from err raise DockerError() from err
except (docker.errors.DockerException, requests.RequestException) as err: except (docker.errors.DockerException, requests.RequestException) as err:
_LOGGER.error("Unknown error with %s:%s -> %s", image, tag, err) _LOGGER.error("Unknown error with %s:%s -> %s", image, tag, err)

View File

@ -46,6 +46,7 @@ class IssueType(str, Enum):
"""Issue type.""" """Issue type."""
FREE_SPACE = "free_space" FREE_SPACE = "free_space"
DOCKER_RATELIMIT = "docker_ratelimit"
CORRUPT_DOCKER = "corrupt_docker" CORRUPT_DOCKER = "corrupt_docker"
CORRUPT_REPOSITORY = "corrupt_repository" CORRUPT_REPOSITORY = "corrupt_repository"
MISSING_IMAGE = "missing_image" MISSING_IMAGE = "missing_image"
@ -64,4 +65,5 @@ class SuggestionType(str, Enum):
EXECUTE_REPAIR = "execute_repair" EXECUTE_REPAIR = "execute_repair"
EXECUTE_RESET = "execute_reset" EXECUTE_RESET = "execute_reset"
EXECUTE_RELOAD = "execute_reload" EXECUTE_RELOAD = "execute_reload"
REGISTRY_LOGIN = "registry_login"
NEW_INITIALIZE = "new_initialize" NEW_INITIALIZE = "new_initialize"