From f7c15862ff3210d62d55ac9168045f0adf88b02d Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Thu, 1 Jun 2023 13:43:28 +0100 Subject: [PATCH] Ensure that rules collections use Runtime in offline mode --- src/ansiblelint/__main__.py | 4 +++- src/ansiblelint/app.py | 5 +++-- src/ansiblelint/rules/__init__.py | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ansiblelint/__main__.py b/src/ansiblelint/__main__.py index 7636882f4e..769b21d3d3 100755 --- a/src/ansiblelint/__main__.py +++ b/src/ansiblelint/__main__.py @@ -252,10 +252,12 @@ def main(argv: list[str] | None = None) -> int: console.print(profiles_as_rich()) return 0 + app = get_app(offline=None) # to be sure we use the offline value from settings + rules = RulesCollection(options.rulesdirs, profile_name=options.profile, app=app) + if options.list_rules or options.list_tags: return _do_list(rules) - app = get_app() if isinstance(options.tags, str): options.tags = options.tags.split(",") # pragma: no cover result = _get_matches(rules, options) diff --git a/src/ansiblelint/app.py b/src/ansiblelint/app.py index 2222f61e89..4a7af6ced4 100644 --- a/src/ansiblelint/app.py +++ b/src/ansiblelint/app.py @@ -368,9 +368,10 @@ def _sanitize_list_options(tag_list: list[str]) -> list[str]: @lru_cache -def get_app() -> App: +def get_app(*, offline: bool | None = None) -> App: """Return the application instance, caching the return value.""" - offline = default_options.offline + if offline is None: + offline = default_options.offline app = App(options=default_options) # Make linter use the cache dir from compat default_options.cache_dir = app.runtime.cache_dir diff --git a/src/ansiblelint/rules/__init__.py b/src/ansiblelint/rules/__init__.py index d7861329f6..f243e4672a 100644 --- a/src/ansiblelint/rules/__init__.py +++ b/src/ansiblelint/rules/__init__.py @@ -382,7 +382,7 @@ def __init__( """Initialize a RulesCollection instance.""" self.options = options self.profile = [] - self.app = app or get_app() + self.app = app or get_app(offline=True) if profile_name: self.profile = PROFILES[profile_name]