diff --git a/plugins/module_utils/k8s/client.py b/plugins/module_utils/k8s/client.py index 39f751cc..7087e236 100644 --- a/plugins/module_utils/k8s/client.py +++ b/plugins/module_utils/k8s/client.py @@ -12,7 +12,9 @@ from ansible_collections.kubernetes.core.plugins.module_utils.args_common import AUTH_ARG_SPEC, AUTH_PROXY_HEADERS_SPEC, ) -from ansible_collections.kubernetes.core.plugins.module_utils.k8s.core import requires +from ansible_collections.kubernetes.core.plugins.module_utils.k8s.core import ( + requires as _requires, +) try: from ansible_collections.kubernetes.core.plugins.module_utils import ( @@ -49,6 +51,25 @@ except ImportError: _pool = {} +class unique_string(str): + _low = None + + def __hash__(self): + return id(self) + + def __eq__(self, other): + return self is other + + def lower(self): + if self._low is None: + lower = str.lower(self) + if str.__eq__(lower, self): + self._low = self + else: + self._low = unique_string(lower) + return self._low + + def _create_auth_spec(module=None, **kwargs) -> Dict: auth: Dict = {} # If authorization variables aren't defined, look for them in environment variables @@ -148,7 +169,30 @@ def _create_configuration(auth: Dict): return configuration -def _configuration_digest(configuration) -> str: +def _create_headers(module=None, **kwargs): + header_map = { + "impersonate_user": "Impersonate-User", + "impersonate_groups": "Impersonate-Group", + } + + headers = {} + for arg_name, header_name in header_map.items(): + value = None + if module and module.params.get(arg_name) is not None: + value = module.params.get(arg_name) + elif arg_name in kwargs and kwargs.get(arg_name) is not None: + value = kwargs.get(arg_name) + else: + value = os.getenv("K8S_AUTH_{0}".format(arg_name.upper()), None) + if value is not None: + if AUTH_ARG_SPEC[arg_name].get("type") == "list": + value = [x for x in value.split(",") if x != ""] + if value: + headers[header_name] = value + return headers + + +def _configuration_digest(configuration, **kwargs) -> str: m = hashlib.sha256() for k in AUTH_ARG_MAP: if not hasattr(configuration, k): @@ -161,19 +205,36 @@ def _configuration_digest(configuration) -> str: m.update(content.encode()) else: m.update(str(v).encode()) + for k, v in kwargs.items(): + content = "{0}: {1}".format(k, v) + m.update(content.encode()) digest = m.hexdigest() return digest +def _set_header(client, header, value): + if isinstance(value, list): + for v in value: + client.set_default_header(header_name=unique_string(header), header_value=v) + else: + client.set_default_header(header_name=header, header_value=value) + + def cache(func): - def wrapper(*args): + def wrapper(*args, **kwargs): client = None - digest = _configuration_digest(*args) + hashable_kwargs = {} + for k, v in kwargs.items(): + if isinstance(v, list): + hashable_kwargs[k] = ",".join(sorted(v)) + else: + hashable_kwargs[k] = v + digest = _configuration_digest(*args, **hashable_kwargs) if digest in _pool: client = _pool[digest] else: - client = func(*args) + client = func(*args, **kwargs) _pool[digest] = client return client @@ -182,10 +243,11 @@ def cache(func): @cache -def create_api_client(configuration): - return k8sdynamicclient.K8SDynamicClient( - kubernetes.client.ApiClient(configuration), discoverer=LazyDiscoverer - ) +def create_api_client(configuration, **headers): + client = kubernetes.client.ApiClient(configuration) + for header, value in headers.items(): + _set_header(client, header, value) + return k8sdynamicclient.K8SDynamicClient(client, discoverer=LazyDiscoverer) class K8SClient: @@ -204,20 +266,32 @@ class K8SClient: def resources(self) -> List[Any]: return self.client.resources + def _find_resource_with_prefix( + self, prefix: str, kind: str, api_version: str + ) -> Resource: + for attribute in ["kind", "name", "singular_name"]: + try: + return self.client.resources.get( + **{"prefix": prefix, "api_version": api_version, attribute: kind} + ) + except (ResourceNotFoundError, ResourceNotUniqueError): + pass + return self.client.resources.get( + prefix=prefix, api_version=api_version, short_names=[kind] + ) + def resource(self, kind: str, api_version: str) -> Resource: """Fetch a kubernetes client resource. This will attempt to find a kubernetes resource trying, in order, kind, name, singular_name and short_names. """ - for attribute in ["kind", "name", "singular_name"]: - try: - return self.client.resources.get( - **{"api_version": api_version, attribute: kind} - ) - except (ResourceNotFoundError, ResourceNotUniqueError): - pass - return self.client.resources.get(api_version=api_version, short_names=[kind]) + try: + if api_version == "v1": + return self._find_resource_with_prefix("api", kind, api_version) + except ResourceNotFoundError: + pass + return self._find_resource_with_prefix(None, kind, api_version) def _ensure_dry_run(self, params: Dict) -> Dict: if self.dry_run: @@ -252,13 +326,18 @@ class K8SClient: def get_api_client(module=None, **kwargs: Optional[Any]) -> K8SClient: auth_spec = _create_auth_spec(module, **kwargs) + if module: + requires = module.requires + else: + requires = _requires if isinstance(auth_spec.get("kubeconfig"), dict): - if module: - module.requires("kubernetes", "17.17.0", "to use in-memory config") - else: - requires("kubernetes", "17.17.0", "to use in-memory config") + requires("kubernetes", "17.17.0", "to use in-memory config") + if auth_spec.get("no_proxy"): + requires("kubernetes", "19.15.0", "to use the no_proxy feature") + configuration = _create_configuration(auth_spec) - client = create_api_client(configuration) + headers = _create_headers(module, **kwargs) + client = create_api_client(configuration, **headers) k8s_client = K8SClient( configuration=configuration, diff --git a/plugins/module_utils/k8s/core.py b/plugins/module_utils/k8s/core.py index ac495ec9..b6bdd505 100644 --- a/plugins/module_utils/k8s/core.py +++ b/plugins/module_utils/k8s/core.py @@ -1,6 +1,9 @@ -from distutils.version import LooseVersion from typing import Optional +from ansible_collections.kubernetes.core.plugins.module_utils.version import ( + LooseVersion, +) + from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import missing_required_lib from ansible.module_utils.common.text.converters import to_text diff --git a/plugins/module_utils/k8s/resource.py b/plugins/module_utils/k8s/resource.py index 69e83e86..797979d7 100644 --- a/plugins/module_utils/k8s/resource.py +++ b/plugins/module_utils/k8s/resource.py @@ -90,7 +90,7 @@ def from_yaml(definition: Union[str, List, Dict]) -> Iterable[Dict]: def from_file(filepath: str) -> Iterable[Dict]: """Load resource definitions from a path to a yaml file.""" path = os.path.normpath(filepath) - with open(path, "r") as f: + with open(path, "rb") as f: definitions = list(yaml.safe_load_all(f)) return filter(None, definitions) diff --git a/plugins/module_utils/k8s/runner.py b/plugins/module_utils/k8s/runner.py index c1fe24c4..84b76c77 100644 --- a/plugins/module_utils/k8s/runner.py +++ b/plugins/module_utils/k8s/runner.py @@ -16,7 +16,6 @@ from ansible_collections.kubernetes.core.plugins.module_utils.k8s.service import diff_objects, ) from ansible_collections.kubernetes.core.plugins.module_utils.k8s.exceptions import ( - CoreException, ResourceTimeout, ) from ansible_collections.kubernetes.core.plugins.module_utils.k8s.waiter import exists @@ -60,11 +59,15 @@ def run_module(module) -> None: try: result = perform_action(svc, definition, module.params) - except CoreException as e: + except Exception as e: try: error = e.result except AttributeError: error = {} + try: + error["reason"] = e.__cause__.reason + except AttributeError: + pass error["msg"] = to_native(e) if warnings: error.setdefault("warnings", []).extend(warnings) @@ -102,7 +105,13 @@ def perform_action(svc, definition: Dict, params: Dict) -> Dict: existing = svc.retrieve(resource, definition) if state == "absent": - instance = svc.delete(resource, definition, existing) + if exists(existing) and existing.kind.endswith("List"): + instance = [] + for item in existing.items: + r = svc.delete(resource, item, existing) + instance.append(r) + else: + instance = svc.delete(resource, definition, existing) result["method"] = "delete" if exists(existing): result["changed"] = True @@ -114,7 +123,9 @@ def perform_action(svc, definition: Dict, params: Dict) -> Dict: result["msg"] = ( "resource 'kind={kind},name={name},namespace={namespace}' " "filtered by label_selectors.".format( - kind=kind, name=origin_name, namespace=namespace, + kind=kind, + name=origin_name, + namespace=namespace, ) ) return result diff --git a/plugins/module_utils/k8s/service.py b/plugins/module_utils/k8s/service.py index c2f51fc8..121b63c0 100644 --- a/plugins/module_utils/k8s/service.py +++ b/plugins/module_utils/k8s/service.py @@ -14,11 +14,16 @@ from ansible_collections.kubernetes.core.plugins.module_utils.k8s.waiter import get_waiter, ) +from ansible_collections.kubernetes.core.plugins.module_utils.k8s.core import ( + requires, +) + from ansible_collections.kubernetes.core.plugins.module_utils.k8s.exceptions import ( CoreException, ) from ansible.module_utils.common.dict_transformations import dict_merge +from ansible.module_utils._text import to_native try: from kubernetes.dynamic.exceptions import ( @@ -260,6 +265,9 @@ class K8sService: ) except BadRequestError: return result + except CoreException as e: + result["msg"] = to_native(e) + return result # There is either no result or there is a List resource with no items if ( @@ -281,7 +289,10 @@ class K8sService: name = instance["metadata"].get("name") namespace = instance["metadata"].get("namespace") success, res, duration = waiter.wait( - timeout=wait_timeout, sleep=wait_sleep, name=name, namespace=namespace, + timeout=wait_timeout, + sleep=wait_sleep, + name=name, + namespace=namespace, ) if not success: raise CoreException( @@ -331,6 +342,9 @@ class K8sService: ) -> Dict: namespace = definition["metadata"].get("namespace") + server_side_apply = self.module.params.get("server_side_apply") + if server_side_apply: + requires("kubernetes", "19.15.0", reason="to use server side apply") if self.module.check_mode and not self.client.dry_run: ignored, patch = apply_object(resource, _encode_stringdata(definition)) if existing: @@ -342,6 +356,9 @@ class K8sService: params = {} if self.module.check_mode: params["dry_run"] = "All" + if server_side_apply: + params["server_side"] = True + params.update(server_side_apply) k8s_obj = self.client.apply( resource, definition, namespace=namespace, **params ).to_dict() @@ -352,7 +369,10 @@ class K8sService: return k8s_obj def replace( - self, resource: Resource, definition: Dict, existing: ResourceInstance, + self, + resource: Resource, + definition: Dict, + existing: ResourceInstance, ) -> Dict: append_hash = self.module.params.get("append_hash", False) name = definition["metadata"].get("name") @@ -395,7 +415,11 @@ class K8sService: ]: try: k8s_obj = self.patch_resource( - resource, definition, name, namespace, merge_type=merge_type, + resource, + definition, + name, + namespace, + merge_type=merge_type, ) exception = None except CoreException as e: diff --git a/plugins/module_utils/k8s/waiter.py b/plugins/module_utils/k8s/waiter.py index 88013527..653e1708 100644 --- a/plugins/module_utils/k8s/waiter.py +++ b/plugins/module_utils/k8s/waiter.py @@ -4,6 +4,10 @@ from typing import Any, Callable, Dict, Iterator, List, Optional, Tuple, Union from ansible.module_utils.parsing.convert_bool import boolean +from ansible_collections.kubernetes.core.plugins.module_utils.k8s.exceptions import ( + CoreException, +) + try: from kubernetes.dynamic.exceptions import NotFoundError from kubernetes.dynamic.resource import Resource, ResourceField, ResourceInstance @@ -13,6 +17,12 @@ except ImportError: ResourceInstance = Any # type: ignore pass +try: + from urllib3.exceptions import HTTPError +except ImportError: + # Handled during module setup + pass + def deployment_ready(deployment: ResourceInstance) -> bool: # FIXME: frustratingly bool(deployment.status) is True even if status is empty @@ -51,14 +61,17 @@ def daemonset_ready(daemonset: ResourceInstance) -> bool: def statefulset_ready(statefulset: ResourceInstance) -> bool: + # These may be None + updated_replicas = statefulset.status.updatedReplicas or 0 + ready_replicas = statefulset.status.readyReplicas or 0 return bool( statefulset.status and statefulset.spec.updateStrategy.type == "RollingUpdate" and statefulset.status.observedGeneration == (statefulset.metadata.generation or 0) and statefulset.status.updateRevision == statefulset.status.currentRevision - and statefulset.status.updatedReplicas == statefulset.spec.replicas - and statefulset.status.readyReplicas == statefulset.spec.replicas + and updated_replicas == statefulset.spec.replicas + and ready_replicas == statefulset.spec.replicas and statefulset.status.replicas == statefulset.spec.replicas ) @@ -153,13 +166,24 @@ class Waiter: response = None elapsed = 0 for i in clock(timeout, sleep): + exception = None elapsed = i try: response = self.client.get(self.resource, **params) except NotFoundError: response = None + # Retry connection errors as it may be intermittent network issues + except HTTPError as e: + exception = e if self.predicate(response): break + if exception: + msg = ( + "Exception '{0}' raised while trying to get resource using {1}".format( + exception, params + ) + ) + raise CoreException(msg) from exception if response: instance = response.to_dict() return self.predicate(response), instance, elapsed diff --git a/plugins/modules/k8s_cp.py b/plugins/modules/k8s_cp.py index c14b918d..810cf953 100644 --- a/plugins/modules/k8s_cp.py +++ b/plugins/modules/k8s_cp.py @@ -191,9 +191,9 @@ def execute_module(module): state = module.params.get("state") if state == "to_pod": - k8s_copy = K8SCopyToPod(module, client) + k8s_copy = K8SCopyToPod(module, client.client) else: - k8s_copy = K8SCopyFromPod(module, client) + k8s_copy = K8SCopyFromPod(module, client.client) try: k8s_copy.run() diff --git a/plugins/modules/k8s_log.py b/plugins/modules/k8s_log.py index 023e9570..e55bd6e5 100644 --- a/plugins/modules/k8s_log.py +++ b/plugins/modules/k8s_log.py @@ -201,10 +201,8 @@ def execute_module(svc, params): {"sinceSeconds": params["since_seconds"]} ) - if module.params.get("previous"): - kwargs.setdefault("query_params", {}).update( - {"previous": module.params["previous"]} - ) + if params.get("previous"): + kwargs.setdefault("query_params", {}).update({"previous": params["previous"]}) response = resource.log.get( name=name, namespace=namespace, serialize=False, **kwargs diff --git a/plugins/modules/k8s_scale.py b/plugins/modules/k8s_scale.py index fb370d06..561e11ca 100644 --- a/plugins/modules/k8s_scale.py +++ b/plugins/modules/k8s_scale.py @@ -291,7 +291,9 @@ def execute_module(client, module): if module.check_mode: result["result"] = existing.to_dict() else: - result["result"] = client.patch(resource, existing.to_dict()).to_dict() + result["result"] = client.patch( + resource, existing.to_dict() + ).to_dict() else: try: result = scale( @@ -336,7 +338,14 @@ def argspec(): def scale( - client, module, resource, existing_object, replicas, wait, wait_time, wait_sleep, + client, + module, + resource, + existing_object, + replicas, + wait, + wait_time, + wait_sleep, ): name = existing_object.metadata.name namespace = existing_object.metadata.namespace @@ -373,9 +382,12 @@ def scale( k8s_obj = client.get(resource, name=name, namespace=namespace).to_dict() result["result"] = k8s_obj if wait: - waiter = get_waiter(svc.client, resource) + waiter = get_waiter(client, resource) success, result["result"], result["duration"] = waiter.wait( - timeout=wait_time, sleep=wait_sleep, name=name, namespace=namespace, + timeout=wait_time, + sleep=wait_sleep, + name=name, + namespace=namespace, ) if not success: raise ResourceTimeout("Resource scaling timed out", **result) diff --git a/plugins/modules/k8s_service.py b/plugins/modules/k8s_service.py index 4b931367..eba278b1 100644 --- a/plugins/modules/k8s_service.py +++ b/plugins/modules/k8s_service.py @@ -235,7 +235,7 @@ def perform_action(svc, resource, definition, params): def execute_module(svc): - """ Module execution """ + """Module execution""" module = svc.module api_version = "v1" selector = module.params.get("selector") @@ -269,7 +269,9 @@ def execute_module(svc): def main(): module = AnsibleK8SModule( - module_class=AnsibleModule, argument_spec=argspec(), supports_check_mode=True, + module_class=AnsibleModule, + argument_spec=argspec(), + supports_check_mode=True, ) client = get_api_client(module=module) diff --git a/tests/config.yml b/tests/config.yml new file mode 100644 index 00000000..9e402bda --- /dev/null +++ b/tests/config.yml @@ -0,0 +1,2 @@ +modules: + python_requires: ">=3.6" diff --git a/tests/sanity/ignore-2.10.txt b/tests/sanity/ignore-2.10.txt index 433223cc..dd9afccb 100644 --- a/tests/sanity/ignore-2.10.txt +++ b/tests/sanity/ignore-2.10.txt @@ -1,262 +1,178 @@ -tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip -plugins/module_utils/__init__.py compile-2.6!skip -plugins/module_utils/__init__.py compile-2.7!skip -plugins/module_utils/__init__.py compile-3.5!skip -plugins/module_utils/__init__.py future-import-boilerplate!skip -plugins/module_utils/__init__.py import-2.6!skip -plugins/module_utils/__init__.py import-2.7!skip -plugins/module_utils/__init__.py import-3.5!skip -plugins/module_utils/__init__.py metaclass-boilerplate!skip -plugins/module_utils/ansiblemodule.py compile-2.6!skip -plugins/module_utils/ansiblemodule.py compile-2.7!skip -plugins/module_utils/ansiblemodule.py compile-3.5!skip -plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip -plugins/module_utils/ansiblemodule.py import-2.6!skip -plugins/module_utils/ansiblemodule.py import-2.7!skip -plugins/module_utils/ansiblemodule.py import-3.5!skip -plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip -plugins/module_utils/apply.py compile-2.6!skip -plugins/module_utils/apply.py compile-2.7!skip -plugins/module_utils/apply.py compile-3.5!skip -plugins/module_utils/apply.py future-import-boilerplate!skip -plugins/module_utils/apply.py import-2.6!skip -plugins/module_utils/apply.py import-2.7!skip -plugins/module_utils/apply.py import-3.5!skip -plugins/module_utils/apply.py metaclass-boilerplate!skip -plugins/module_utils/args_common.py compile-2.6!skip -plugins/module_utils/args_common.py compile-2.7!skip -plugins/module_utils/args_common.py compile-3.5!skip -plugins/module_utils/args_common.py future-import-boilerplate!skip -plugins/module_utils/args_common.py import-2.6!skip -plugins/module_utils/args_common.py import-2.7!skip -plugins/module_utils/args_common.py import-3.5!skip -plugins/module_utils/args_common.py metaclass-boilerplate!skip -plugins/module_utils/client/discovery.py future-import-boilerplate!skip -plugins/module_utils/client/discovery.py import-2.6!skip -plugins/module_utils/client/discovery.py import-2.7!skip -plugins/module_utils/client/discovery.py import-3.5!skip plugins/module_utils/client/discovery.py import-3.6!skip plugins/module_utils/client/discovery.py import-3.7!skip plugins/module_utils/client/discovery.py import-3.8!skip plugins/module_utils/client/discovery.py import-3.9!skip -plugins/module_utils/client/discovery.py metaclass-boilerplate!skip -plugins/module_utils/client/resource.py import-2.6!skip -plugins/module_utils/client/resource.py import-2.7!skip -plugins/module_utils/client/resource.py import-3.5!skip plugins/module_utils/client/resource.py import-3.6!skip plugins/module_utils/client/resource.py import-3.7!skip plugins/module_utils/client/resource.py import-3.8!skip plugins/module_utils/client/resource.py import-3.9!skip -plugins/module_utils/common.py compile-2.6!skip -plugins/module_utils/common.py compile-2.7!skip -plugins/module_utils/common.py compile-3.5!skip -plugins/module_utils/common.py future-import-boilerplate!skip -plugins/module_utils/common.py import-2.6!skip -plugins/module_utils/common.py import-2.7!skip -plugins/module_utils/common.py import-3.5!skip -plugins/module_utils/common.py metaclass-boilerplate!skip -plugins/module_utils/exceptions.py compile-2.6!skip -plugins/module_utils/exceptions.py compile-2.7!skip -plugins/module_utils/exceptions.py compile-3.5!skip -plugins/module_utils/exceptions.py future-import-boilerplate!skip -plugins/module_utils/exceptions.py import-2.6!skip -plugins/module_utils/exceptions.py import-2.7!skip -plugins/module_utils/exceptions.py import-3.5!skip -plugins/module_utils/exceptions.py metaclass-boilerplate!skip -plugins/module_utils/hashes.py compile-2.6!skip -plugins/module_utils/hashes.py compile-2.7!skip -plugins/module_utils/hashes.py compile-3.5!skip -plugins/module_utils/hashes.py future-import-boilerplate!skip -plugins/module_utils/hashes.py import-2.6!skip -plugins/module_utils/hashes.py import-2.7!skip -plugins/module_utils/hashes.py import-3.5!skip -plugins/module_utils/hashes.py metaclass-boilerplate!skip -plugins/module_utils/helm.py compile-2.6!skip -plugins/module_utils/helm.py compile-2.7!skip -plugins/module_utils/helm.py compile-3.5!skip -plugins/module_utils/helm.py future-import-boilerplate!skip -plugins/module_utils/helm.py import-2.6!skip -plugins/module_utils/helm.py import-2.7!skip -plugins/module_utils/helm.py import-3.5!skip -plugins/module_utils/helm.py metaclass-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py compile-2.6!skip -plugins/module_utils/k8sdynamicclient.py compile-2.7!skip -plugins/module_utils/k8sdynamicclient.py compile-3.5!skip -plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py import-2.6!skip -plugins/module_utils/k8sdynamicclient.py import-2.7!skip -plugins/module_utils/k8sdynamicclient.py import-3.5!skip plugins/module_utils/k8sdynamicclient.py import-3.6!skip plugins/module_utils/k8sdynamicclient.py import-3.7!skip plugins/module_utils/k8sdynamicclient.py import-3.8!skip plugins/module_utils/k8sdynamicclient.py import-3.9!skip -plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip -plugins/modules/__init__.py compile-2.6!skip -plugins/modules/__init__.py compile-2.7!skip -plugins/modules/__init__.py compile-3.5!skip -plugins/modules/__init__.py future-import-boilerplate!skip -plugins/modules/__init__.py import-2.6!skip -plugins/modules/__init__.py import-2.7!skip -plugins/modules/__init__.py import-3.5!skip -plugins/modules/__init__.py metaclass-boilerplate!skip -plugins/modules/helm.py compile-2.6!skip -plugins/modules/helm.py compile-2.7!skip -plugins/modules/helm.py compile-3.5!skip -plugins/modules/helm.py future-import-boilerplate!skip -plugins/modules/helm.py import-2.6!skip -plugins/modules/helm.py import-2.7!skip -plugins/modules/helm.py import-3.5!skip -plugins/modules/helm.py metaclass-boilerplate!skip -plugins/modules/helm_info.py compile-2.6!skip -plugins/modules/helm_info.py compile-2.7!skip -plugins/modules/helm_info.py compile-3.5!skip -plugins/modules/helm_info.py future-import-boilerplate!skip -plugins/modules/helm_info.py import-2.6!skip -plugins/modules/helm_info.py import-2.7!skip -plugins/modules/helm_info.py import-3.5!skip -plugins/modules/helm_info.py metaclass-boilerplate!skip -plugins/modules/helm_plugin.py compile-2.6!skip -plugins/modules/helm_plugin.py compile-2.7!skip -plugins/modules/helm_plugin.py compile-3.5!skip -plugins/modules/helm_plugin.py future-import-boilerplate!skip -plugins/modules/helm_plugin.py import-2.6!skip -plugins/modules/helm_plugin.py import-2.7!skip -plugins/modules/helm_plugin.py import-3.5!skip -plugins/modules/helm_plugin.py metaclass-boilerplate!skip -plugins/modules/helm_plugin_info.py compile-2.6!skip -plugins/modules/helm_plugin_info.py compile-2.7!skip -plugins/modules/helm_plugin_info.py compile-3.5!skip -plugins/modules/helm_plugin_info.py future-import-boilerplate!skip -plugins/modules/helm_plugin_info.py import-2.6!skip -plugins/modules/helm_plugin_info.py import-2.7!skip -plugins/modules/helm_plugin_info.py import-3.5!skip -plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip -plugins/modules/helm_repository.py compile-2.6!skip -plugins/modules/helm_repository.py compile-2.7!skip -plugins/modules/helm_repository.py compile-3.5!skip -plugins/modules/helm_repository.py future-import-boilerplate!skip -plugins/modules/helm_repository.py import-2.6!skip -plugins/modules/helm_repository.py import-2.7!skip -plugins/modules/helm_repository.py import-3.5!skip -plugins/modules/helm_repository.py metaclass-boilerplate!skip -plugins/modules/helm_template.py compile-2.6!skip -plugins/modules/helm_template.py compile-2.7!skip -plugins/modules/helm_template.py compile-3.5!skip -plugins/modules/helm_template.py future-import-boilerplate!skip -plugins/modules/helm_template.py import-2.6!skip -plugins/modules/helm_template.py import-2.7!skip -plugins/modules/helm_template.py import-3.5!skip -plugins/modules/helm_template.py metaclass-boilerplate!skip -plugins/modules/k8s.py compile-2.6!skip -plugins/modules/k8s.py compile-2.7!skip -plugins/modules/k8s.py compile-3.5!skip -plugins/modules/k8s.py future-import-boilerplate!skip -plugins/modules/k8s.py import-2.6!skip -plugins/modules/k8s.py import-2.7!skip -plugins/modules/k8s.py import-3.5!skip -plugins/modules/k8s.py metaclass-boilerplate!skip plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s.py validate-modules:return-syntax-error -plugins/modules/k8s_cluster_info.py compile-2.6!skip -plugins/modules/k8s_cluster_info.py compile-2.7!skip -plugins/modules/k8s_cluster_info.py compile-3.5!skip -plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip -plugins/modules/k8s_cluster_info.py import-2.6!skip -plugins/modules/k8s_cluster_info.py import-2.7!skip -plugins/modules/k8s_cluster_info.py import-3.5!skip -plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip -plugins/modules/k8s_exec.py compile-2.6!skip -plugins/modules/k8s_exec.py compile-2.7!skip -plugins/modules/k8s_exec.py compile-3.5!skip -plugins/modules/k8s_exec.py future-import-boilerplate!skip -plugins/modules/k8s_exec.py import-2.6!skip -plugins/modules/k8s_exec.py import-2.7!skip -plugins/modules/k8s_exec.py import-3.5!skip -plugins/modules/k8s_exec.py metaclass-boilerplate!skip -plugins/modules/k8s_info.py compile-2.6!skip -plugins/modules/k8s_info.py compile-2.7!skip -plugins/modules/k8s_info.py compile-3.5!skip -plugins/modules/k8s_info.py future-import-boilerplate!skip -plugins/modules/k8s_info.py import-2.6!skip -plugins/modules/k8s_info.py import-2.7!skip -plugins/modules/k8s_info.py import-3.5!skip -plugins/modules/k8s_info.py metaclass-boilerplate!skip -plugins/modules/k8s_json_patch.py compile-2.6!skip -plugins/modules/k8s_json_patch.py compile-2.7!skip -plugins/modules/k8s_json_patch.py compile-3.5!skip -plugins/modules/k8s_json_patch.py future-import-boilerplate!skip -plugins/modules/k8s_json_patch.py import-2.6!skip -plugins/modules/k8s_json_patch.py import-2.7!skip -plugins/modules/k8s_json_patch.py import-3.5!skip -plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip -plugins/modules/k8s_log.py compile-2.6!skip -plugins/modules/k8s_log.py compile-2.7!skip -plugins/modules/k8s_log.py compile-3.5!skip -plugins/modules/k8s_log.py future-import-boilerplate!skip -plugins/modules/k8s_log.py import-2.6!skip -plugins/modules/k8s_log.py import-2.7!skip -plugins/modules/k8s_log.py import-3.5!skip -plugins/modules/k8s_log.py metaclass-boilerplate!skip -plugins/modules/k8s_rollback.py compile-2.6!skip -plugins/modules/k8s_rollback.py compile-2.7!skip -plugins/modules/k8s_rollback.py compile-3.5!skip -plugins/modules/k8s_rollback.py future-import-boilerplate!skip -plugins/modules/k8s_rollback.py import-2.6!skip -plugins/modules/k8s_rollback.py import-2.7!skip -plugins/modules/k8s_rollback.py import-3.5!skip -plugins/modules/k8s_rollback.py metaclass-boilerplate!skip -plugins/modules/k8s_scale.py compile-2.6!skip -plugins/modules/k8s_scale.py compile-2.7!skip -plugins/modules/k8s_scale.py compile-3.5!skip -plugins/modules/k8s_scale.py future-import-boilerplate!skip -plugins/modules/k8s_scale.py import-2.6!skip -plugins/modules/k8s_scale.py import-2.7!skip -plugins/modules/k8s_scale.py import-3.5!skip -plugins/modules/k8s_scale.py metaclass-boilerplate!skip plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_scale.py validate-modules:return-syntax-error -plugins/modules/k8s_service.py compile-2.6!skip -plugins/modules/k8s_service.py compile-2.7!skip -plugins/modules/k8s_service.py compile-3.5!skip -plugins/modules/k8s_service.py future-import-boilerplate!skip -plugins/modules/k8s_service.py import-2.6!skip -plugins/modules/k8s_service.py import-2.7!skip -plugins/modules/k8s_service.py import-3.5!skip -plugins/modules/k8s_service.py metaclass-boilerplate!skip plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_service.py validate-modules:return-syntax-error +tests/unit/module_utils/fixtures/definitions.yml yamllint!skip +tests/unit/module_utils/fixtures/deployments.yml yamllint!skip +tests/unit/module_utils/fixtures/pods.yml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip tests/sanity/refresh_ignore_files shebang!skip -tests/unit/module_utils/test_discoverer.py future-import-boilerplate!skip -tests/unit/module_utils/test_discoverer.py metaclass-boilerplate!skip -plugins/modules/k8s_cp.py compile-2.6!skip -plugins/modules/k8s_cp.py compile-2.7!skip -plugins/modules/k8s_cp.py import-2.6!skip -plugins/modules/k8s_cp.py import-2.7!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-2.6!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-2.7!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-3.5!skip -tests/unit/module_utils/test_selector.py future-import-boilerplate!skip -tests/unit/module_utils/test_selector.py metaclass-boilerplate!skip -plugins/module_utils/selector.py future-import-boilerplate!skip -plugins/module_utils/selector.py metaclass-boilerplate!skip -plugins/lookup/kustomize.py future-import-boilerplate!skip -plugins/lookup/kustomize.py metaclass-boilerplate!skip -tests/integration/targets/helm/library/helm_test_version.py metaclass-boilerplate!skip -tests/integration/targets/helm/library/helm_test_version.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py compile-2.7!skip -plugins/modules/k8s_taint.py compile-3.5!skip -plugins/modules/k8s_taint.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py import-2.7!skip -plugins/modules/k8s_taint.py import-3.5!skip -plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/k8s_scale.py validate-modules:return-syntax-error +plugins/modules/k8s_service.py validate-modules:return-syntax-error plugins/modules/k8s_taint.py validate-modules:return-syntax-error +plugins/doc_fragments/k8s_name_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_auth_options.py future-import-boilerplate!skip +plugins/doc_fragments/helm_common_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_state_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_wait_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_scale_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_delete_options.py future-import-boilerplate!skip +plugins/doc_fragments/__init__.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_resource_options.py future-import-boilerplate!skip +plugins/module_utils/helm.py future-import-boilerplate!skip +plugins/module_utils/apply.py future-import-boilerplate!skip +plugins/module_utils/hashes.py future-import-boilerplate!skip +plugins/module_utils/version.py future-import-boilerplate!skip +plugins/module_utils/_version.py future-import-boilerplate!skip plugins/module_utils/copy.py future-import-boilerplate!skip +plugins/module_utils/args_common.py future-import-boilerplate!skip +plugins/module_utils/__init__.py future-import-boilerplate!skip +plugins/module_utils/selector.py future-import-boilerplate!skip +plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip +plugins/module_utils/common.py future-import-boilerplate!skip +plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip +plugins/module_utils/exceptions.py future-import-boilerplate!skip +plugins/module_utils/client/resource.py future-import-boilerplate!skip +plugins/module_utils/client/discovery.py future-import-boilerplate!skip +plugins/module_utils/k8s/resource.py future-import-boilerplate!skip +plugins/module_utils/k8s/core.py future-import-boilerplate!skip +plugins/module_utils/k8s/waiter.py future-import-boilerplate!skip +plugins/module_utils/k8s/client.py future-import-boilerplate!skip +plugins/module_utils/k8s/runner.py future-import-boilerplate!skip +plugins/module_utils/k8s/service.py future-import-boilerplate!skip +plugins/module_utils/k8s/exceptions.py future-import-boilerplate!skip +plugins/connection/kubectl.py future-import-boilerplate!skip +plugins/inventory/k8s.py future-import-boilerplate!skip +plugins/lookup/k8s.py future-import-boilerplate!skip +plugins/lookup/kustomize.py future-import-boilerplate!skip +plugins/modules/k8s_scale.py future-import-boilerplate!skip +plugins/modules/helm_template.py future-import-boilerplate!skip +plugins/modules/k8s_exec.py future-import-boilerplate!skip +plugins/modules/helm.py future-import-boilerplate!skip +plugins/modules/helm_plugin_info.py future-import-boilerplate!skip +plugins/modules/helm_info.py future-import-boilerplate!skip +plugins/modules/helm_repository.py future-import-boilerplate!skip +plugins/modules/k8s_rollback.py future-import-boilerplate!skip +plugins/modules/k8s_log.py future-import-boilerplate!skip +plugins/modules/k8s_drain.py future-import-boilerplate!skip +plugins/modules/helm_plugin.py future-import-boilerplate!skip +plugins/modules/k8s_taint.py future-import-boilerplate!skip +plugins/modules/k8s.py future-import-boilerplate!skip +plugins/modules/k8s_service.py future-import-boilerplate!skip +plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip +plugins/modules/k8s_info.py future-import-boilerplate!skip +plugins/modules/k8s_cp.py future-import-boilerplate!skip +plugins/modules/__init__.py future-import-boilerplate!skip +plugins/modules/k8s_json_patch.py future-import-boilerplate!skip +plugins/action/k8s_info.py future-import-boilerplate!skip +plugins/filter/k8s.py future-import-boilerplate!skip +tests/unit/conftest.py future-import-boilerplate!skip +tests/unit/utils/ansible_module_mock.py future-import-boilerplate!skip +tests/unit/module_utils/test_helm.py future-import-boilerplate!skip +tests/unit/module_utils/test_marshal.py future-import-boilerplate!skip +tests/unit/module_utils/test_discoverer.py future-import-boilerplate!skip +tests/unit/module_utils/test_hashes.py future-import-boilerplate!skip +tests/unit/module_utils/test_resource.py future-import-boilerplate!skip +tests/unit/module_utils/test_service.py future-import-boilerplate!skip +tests/unit/module_utils/test_waiter.py future-import-boilerplate!skip +tests/unit/module_utils/test_common.py future-import-boilerplate!skip +tests/unit/module_utils/test_selector.py future-import-boilerplate!skip +tests/unit/module_utils/test_apply.py future-import-boilerplate!skip +tests/unit/module_utils/test_runner.py future-import-boilerplate!skip +tests/unit/module_utils/test_client.py future-import-boilerplate!skip +tests/unit/module_utils/test_core.py future-import-boilerplate!skip +tests/unit/modules/test_helm_template_module.py future-import-boilerplate!skip +tests/unit/modules/test_helm_template.py future-import-boilerplate!skip +tests/unit/modules/test_module_helm.py future-import-boilerplate!skip +tests/unit/action/test_remove_omit.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_name_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_auth_options.py metaclass-boilerplate!skip +plugins/doc_fragments/helm_common_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_state_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_wait_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_scale_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_delete_options.py metaclass-boilerplate!skip +plugins/doc_fragments/__init__.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_resource_options.py metaclass-boilerplate!skip +plugins/module_utils/helm.py metaclass-boilerplate!skip +plugins/module_utils/apply.py metaclass-boilerplate!skip +plugins/module_utils/hashes.py metaclass-boilerplate!skip +plugins/module_utils/version.py metaclass-boilerplate!skip +plugins/module_utils/_version.py metaclass-boilerplate!skip plugins/module_utils/copy.py metaclass-boilerplate!skip -plugins/module_utils/copy.py compile-2.6!skip -plugins/module_utils/copy.py compile-2.7!skip -plugins/module_utils/copy.py import-2.6!skip -plugins/module_utils/copy.py import-2.7!skip +plugins/module_utils/args_common.py metaclass-boilerplate!skip +plugins/module_utils/__init__.py metaclass-boilerplate!skip +plugins/module_utils/selector.py metaclass-boilerplate!skip +plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip +plugins/module_utils/common.py metaclass-boilerplate!skip +plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip +plugins/module_utils/exceptions.py metaclass-boilerplate!skip +plugins/module_utils/client/resource.py metaclass-boilerplate!skip +plugins/module_utils/client/discovery.py metaclass-boilerplate!skip +plugins/module_utils/k8s/resource.py metaclass-boilerplate!skip +plugins/module_utils/k8s/core.py metaclass-boilerplate!skip +plugins/module_utils/k8s/waiter.py metaclass-boilerplate!skip +plugins/module_utils/k8s/client.py metaclass-boilerplate!skip +plugins/module_utils/k8s/runner.py metaclass-boilerplate!skip +plugins/module_utils/k8s/service.py metaclass-boilerplate!skip +plugins/module_utils/k8s/exceptions.py metaclass-boilerplate!skip +plugins/connection/kubectl.py metaclass-boilerplate!skip +plugins/inventory/k8s.py metaclass-boilerplate!skip +plugins/lookup/k8s.py metaclass-boilerplate!skip +plugins/lookup/kustomize.py metaclass-boilerplate!skip +plugins/modules/k8s_scale.py metaclass-boilerplate!skip +plugins/modules/helm_template.py metaclass-boilerplate!skip +plugins/modules/k8s_exec.py metaclass-boilerplate!skip +plugins/modules/helm.py metaclass-boilerplate!skip +plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip +plugins/modules/helm_info.py metaclass-boilerplate!skip +plugins/modules/helm_repository.py metaclass-boilerplate!skip +plugins/modules/k8s_rollback.py metaclass-boilerplate!skip +plugins/modules/k8s_log.py metaclass-boilerplate!skip +plugins/modules/k8s_drain.py metaclass-boilerplate!skip +plugins/modules/helm_plugin.py metaclass-boilerplate!skip +plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/modules/k8s.py metaclass-boilerplate!skip +plugins/modules/k8s_service.py metaclass-boilerplate!skip +plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip +plugins/modules/k8s_info.py metaclass-boilerplate!skip +plugins/modules/k8s_cp.py metaclass-boilerplate!skip +plugins/modules/__init__.py metaclass-boilerplate!skip +plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip +plugins/action/k8s_info.py metaclass-boilerplate!skip +plugins/filter/k8s.py metaclass-boilerplate!skip +tests/unit/conftest.py metaclass-boilerplate!skip +tests/unit/utils/ansible_module_mock.py metaclass-boilerplate!skip +tests/unit/module_utils/test_helm.py metaclass-boilerplate!skip +tests/unit/module_utils/test_marshal.py metaclass-boilerplate!skip +tests/unit/module_utils/test_discoverer.py metaclass-boilerplate!skip +tests/unit/module_utils/test_hashes.py metaclass-boilerplate!skip +tests/unit/module_utils/test_resource.py metaclass-boilerplate!skip +tests/unit/module_utils/test_service.py metaclass-boilerplate!skip +tests/unit/module_utils/test_waiter.py metaclass-boilerplate!skip +tests/unit/module_utils/test_common.py metaclass-boilerplate!skip +tests/unit/module_utils/test_selector.py metaclass-boilerplate!skip +tests/unit/module_utils/test_apply.py metaclass-boilerplate!skip +tests/unit/module_utils/test_runner.py metaclass-boilerplate!skip +tests/unit/module_utils/test_client.py metaclass-boilerplate!skip +tests/unit/module_utils/test_core.py metaclass-boilerplate!skip +tests/unit/modules/test_helm_template_module.py metaclass-boilerplate!skip +tests/unit/modules/test_helm_template.py metaclass-boilerplate!skip +tests/unit/modules/test_module_helm.py metaclass-boilerplate!skip +tests/unit/action/test_remove_omit.py metaclass-boilerplate!skip diff --git a/tests/sanity/ignore-2.11.txt b/tests/sanity/ignore-2.11.txt index 433223cc..dd9afccb 100644 --- a/tests/sanity/ignore-2.11.txt +++ b/tests/sanity/ignore-2.11.txt @@ -1,262 +1,178 @@ -tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip -plugins/module_utils/__init__.py compile-2.6!skip -plugins/module_utils/__init__.py compile-2.7!skip -plugins/module_utils/__init__.py compile-3.5!skip -plugins/module_utils/__init__.py future-import-boilerplate!skip -plugins/module_utils/__init__.py import-2.6!skip -plugins/module_utils/__init__.py import-2.7!skip -plugins/module_utils/__init__.py import-3.5!skip -plugins/module_utils/__init__.py metaclass-boilerplate!skip -plugins/module_utils/ansiblemodule.py compile-2.6!skip -plugins/module_utils/ansiblemodule.py compile-2.7!skip -plugins/module_utils/ansiblemodule.py compile-3.5!skip -plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip -plugins/module_utils/ansiblemodule.py import-2.6!skip -plugins/module_utils/ansiblemodule.py import-2.7!skip -plugins/module_utils/ansiblemodule.py import-3.5!skip -plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip -plugins/module_utils/apply.py compile-2.6!skip -plugins/module_utils/apply.py compile-2.7!skip -plugins/module_utils/apply.py compile-3.5!skip -plugins/module_utils/apply.py future-import-boilerplate!skip -plugins/module_utils/apply.py import-2.6!skip -plugins/module_utils/apply.py import-2.7!skip -plugins/module_utils/apply.py import-3.5!skip -plugins/module_utils/apply.py metaclass-boilerplate!skip -plugins/module_utils/args_common.py compile-2.6!skip -plugins/module_utils/args_common.py compile-2.7!skip -plugins/module_utils/args_common.py compile-3.5!skip -plugins/module_utils/args_common.py future-import-boilerplate!skip -plugins/module_utils/args_common.py import-2.6!skip -plugins/module_utils/args_common.py import-2.7!skip -plugins/module_utils/args_common.py import-3.5!skip -plugins/module_utils/args_common.py metaclass-boilerplate!skip -plugins/module_utils/client/discovery.py future-import-boilerplate!skip -plugins/module_utils/client/discovery.py import-2.6!skip -plugins/module_utils/client/discovery.py import-2.7!skip -plugins/module_utils/client/discovery.py import-3.5!skip plugins/module_utils/client/discovery.py import-3.6!skip plugins/module_utils/client/discovery.py import-3.7!skip plugins/module_utils/client/discovery.py import-3.8!skip plugins/module_utils/client/discovery.py import-3.9!skip -plugins/module_utils/client/discovery.py metaclass-boilerplate!skip -plugins/module_utils/client/resource.py import-2.6!skip -plugins/module_utils/client/resource.py import-2.7!skip -plugins/module_utils/client/resource.py import-3.5!skip plugins/module_utils/client/resource.py import-3.6!skip plugins/module_utils/client/resource.py import-3.7!skip plugins/module_utils/client/resource.py import-3.8!skip plugins/module_utils/client/resource.py import-3.9!skip -plugins/module_utils/common.py compile-2.6!skip -plugins/module_utils/common.py compile-2.7!skip -plugins/module_utils/common.py compile-3.5!skip -plugins/module_utils/common.py future-import-boilerplate!skip -plugins/module_utils/common.py import-2.6!skip -plugins/module_utils/common.py import-2.7!skip -plugins/module_utils/common.py import-3.5!skip -plugins/module_utils/common.py metaclass-boilerplate!skip -plugins/module_utils/exceptions.py compile-2.6!skip -plugins/module_utils/exceptions.py compile-2.7!skip -plugins/module_utils/exceptions.py compile-3.5!skip -plugins/module_utils/exceptions.py future-import-boilerplate!skip -plugins/module_utils/exceptions.py import-2.6!skip -plugins/module_utils/exceptions.py import-2.7!skip -plugins/module_utils/exceptions.py import-3.5!skip -plugins/module_utils/exceptions.py metaclass-boilerplate!skip -plugins/module_utils/hashes.py compile-2.6!skip -plugins/module_utils/hashes.py compile-2.7!skip -plugins/module_utils/hashes.py compile-3.5!skip -plugins/module_utils/hashes.py future-import-boilerplate!skip -plugins/module_utils/hashes.py import-2.6!skip -plugins/module_utils/hashes.py import-2.7!skip -plugins/module_utils/hashes.py import-3.5!skip -plugins/module_utils/hashes.py metaclass-boilerplate!skip -plugins/module_utils/helm.py compile-2.6!skip -plugins/module_utils/helm.py compile-2.7!skip -plugins/module_utils/helm.py compile-3.5!skip -plugins/module_utils/helm.py future-import-boilerplate!skip -plugins/module_utils/helm.py import-2.6!skip -plugins/module_utils/helm.py import-2.7!skip -plugins/module_utils/helm.py import-3.5!skip -plugins/module_utils/helm.py metaclass-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py compile-2.6!skip -plugins/module_utils/k8sdynamicclient.py compile-2.7!skip -plugins/module_utils/k8sdynamicclient.py compile-3.5!skip -plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py import-2.6!skip -plugins/module_utils/k8sdynamicclient.py import-2.7!skip -plugins/module_utils/k8sdynamicclient.py import-3.5!skip plugins/module_utils/k8sdynamicclient.py import-3.6!skip plugins/module_utils/k8sdynamicclient.py import-3.7!skip plugins/module_utils/k8sdynamicclient.py import-3.8!skip plugins/module_utils/k8sdynamicclient.py import-3.9!skip -plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip -plugins/modules/__init__.py compile-2.6!skip -plugins/modules/__init__.py compile-2.7!skip -plugins/modules/__init__.py compile-3.5!skip -plugins/modules/__init__.py future-import-boilerplate!skip -plugins/modules/__init__.py import-2.6!skip -plugins/modules/__init__.py import-2.7!skip -plugins/modules/__init__.py import-3.5!skip -plugins/modules/__init__.py metaclass-boilerplate!skip -plugins/modules/helm.py compile-2.6!skip -plugins/modules/helm.py compile-2.7!skip -plugins/modules/helm.py compile-3.5!skip -plugins/modules/helm.py future-import-boilerplate!skip -plugins/modules/helm.py import-2.6!skip -plugins/modules/helm.py import-2.7!skip -plugins/modules/helm.py import-3.5!skip -plugins/modules/helm.py metaclass-boilerplate!skip -plugins/modules/helm_info.py compile-2.6!skip -plugins/modules/helm_info.py compile-2.7!skip -plugins/modules/helm_info.py compile-3.5!skip -plugins/modules/helm_info.py future-import-boilerplate!skip -plugins/modules/helm_info.py import-2.6!skip -plugins/modules/helm_info.py import-2.7!skip -plugins/modules/helm_info.py import-3.5!skip -plugins/modules/helm_info.py metaclass-boilerplate!skip -plugins/modules/helm_plugin.py compile-2.6!skip -plugins/modules/helm_plugin.py compile-2.7!skip -plugins/modules/helm_plugin.py compile-3.5!skip -plugins/modules/helm_plugin.py future-import-boilerplate!skip -plugins/modules/helm_plugin.py import-2.6!skip -plugins/modules/helm_plugin.py import-2.7!skip -plugins/modules/helm_plugin.py import-3.5!skip -plugins/modules/helm_plugin.py metaclass-boilerplate!skip -plugins/modules/helm_plugin_info.py compile-2.6!skip -plugins/modules/helm_plugin_info.py compile-2.7!skip -plugins/modules/helm_plugin_info.py compile-3.5!skip -plugins/modules/helm_plugin_info.py future-import-boilerplate!skip -plugins/modules/helm_plugin_info.py import-2.6!skip -plugins/modules/helm_plugin_info.py import-2.7!skip -plugins/modules/helm_plugin_info.py import-3.5!skip -plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip -plugins/modules/helm_repository.py compile-2.6!skip -plugins/modules/helm_repository.py compile-2.7!skip -plugins/modules/helm_repository.py compile-3.5!skip -plugins/modules/helm_repository.py future-import-boilerplate!skip -plugins/modules/helm_repository.py import-2.6!skip -plugins/modules/helm_repository.py import-2.7!skip -plugins/modules/helm_repository.py import-3.5!skip -plugins/modules/helm_repository.py metaclass-boilerplate!skip -plugins/modules/helm_template.py compile-2.6!skip -plugins/modules/helm_template.py compile-2.7!skip -plugins/modules/helm_template.py compile-3.5!skip -plugins/modules/helm_template.py future-import-boilerplate!skip -plugins/modules/helm_template.py import-2.6!skip -plugins/modules/helm_template.py import-2.7!skip -plugins/modules/helm_template.py import-3.5!skip -plugins/modules/helm_template.py metaclass-boilerplate!skip -plugins/modules/k8s.py compile-2.6!skip -plugins/modules/k8s.py compile-2.7!skip -plugins/modules/k8s.py compile-3.5!skip -plugins/modules/k8s.py future-import-boilerplate!skip -plugins/modules/k8s.py import-2.6!skip -plugins/modules/k8s.py import-2.7!skip -plugins/modules/k8s.py import-3.5!skip -plugins/modules/k8s.py metaclass-boilerplate!skip plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s.py validate-modules:return-syntax-error -plugins/modules/k8s_cluster_info.py compile-2.6!skip -plugins/modules/k8s_cluster_info.py compile-2.7!skip -plugins/modules/k8s_cluster_info.py compile-3.5!skip -plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip -plugins/modules/k8s_cluster_info.py import-2.6!skip -plugins/modules/k8s_cluster_info.py import-2.7!skip -plugins/modules/k8s_cluster_info.py import-3.5!skip -plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip -plugins/modules/k8s_exec.py compile-2.6!skip -plugins/modules/k8s_exec.py compile-2.7!skip -plugins/modules/k8s_exec.py compile-3.5!skip -plugins/modules/k8s_exec.py future-import-boilerplate!skip -plugins/modules/k8s_exec.py import-2.6!skip -plugins/modules/k8s_exec.py import-2.7!skip -plugins/modules/k8s_exec.py import-3.5!skip -plugins/modules/k8s_exec.py metaclass-boilerplate!skip -plugins/modules/k8s_info.py compile-2.6!skip -plugins/modules/k8s_info.py compile-2.7!skip -plugins/modules/k8s_info.py compile-3.5!skip -plugins/modules/k8s_info.py future-import-boilerplate!skip -plugins/modules/k8s_info.py import-2.6!skip -plugins/modules/k8s_info.py import-2.7!skip -plugins/modules/k8s_info.py import-3.5!skip -plugins/modules/k8s_info.py metaclass-boilerplate!skip -plugins/modules/k8s_json_patch.py compile-2.6!skip -plugins/modules/k8s_json_patch.py compile-2.7!skip -plugins/modules/k8s_json_patch.py compile-3.5!skip -plugins/modules/k8s_json_patch.py future-import-boilerplate!skip -plugins/modules/k8s_json_patch.py import-2.6!skip -plugins/modules/k8s_json_patch.py import-2.7!skip -plugins/modules/k8s_json_patch.py import-3.5!skip -plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip -plugins/modules/k8s_log.py compile-2.6!skip -plugins/modules/k8s_log.py compile-2.7!skip -plugins/modules/k8s_log.py compile-3.5!skip -plugins/modules/k8s_log.py future-import-boilerplate!skip -plugins/modules/k8s_log.py import-2.6!skip -plugins/modules/k8s_log.py import-2.7!skip -plugins/modules/k8s_log.py import-3.5!skip -plugins/modules/k8s_log.py metaclass-boilerplate!skip -plugins/modules/k8s_rollback.py compile-2.6!skip -plugins/modules/k8s_rollback.py compile-2.7!skip -plugins/modules/k8s_rollback.py compile-3.5!skip -plugins/modules/k8s_rollback.py future-import-boilerplate!skip -plugins/modules/k8s_rollback.py import-2.6!skip -plugins/modules/k8s_rollback.py import-2.7!skip -plugins/modules/k8s_rollback.py import-3.5!skip -plugins/modules/k8s_rollback.py metaclass-boilerplate!skip -plugins/modules/k8s_scale.py compile-2.6!skip -plugins/modules/k8s_scale.py compile-2.7!skip -plugins/modules/k8s_scale.py compile-3.5!skip -plugins/modules/k8s_scale.py future-import-boilerplate!skip -plugins/modules/k8s_scale.py import-2.6!skip -plugins/modules/k8s_scale.py import-2.7!skip -plugins/modules/k8s_scale.py import-3.5!skip -plugins/modules/k8s_scale.py metaclass-boilerplate!skip plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_scale.py validate-modules:return-syntax-error -plugins/modules/k8s_service.py compile-2.6!skip -plugins/modules/k8s_service.py compile-2.7!skip -plugins/modules/k8s_service.py compile-3.5!skip -plugins/modules/k8s_service.py future-import-boilerplate!skip -plugins/modules/k8s_service.py import-2.6!skip -plugins/modules/k8s_service.py import-2.7!skip -plugins/modules/k8s_service.py import-3.5!skip -plugins/modules/k8s_service.py metaclass-boilerplate!skip plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_service.py validate-modules:return-syntax-error +tests/unit/module_utils/fixtures/definitions.yml yamllint!skip +tests/unit/module_utils/fixtures/deployments.yml yamllint!skip +tests/unit/module_utils/fixtures/pods.yml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip tests/sanity/refresh_ignore_files shebang!skip -tests/unit/module_utils/test_discoverer.py future-import-boilerplate!skip -tests/unit/module_utils/test_discoverer.py metaclass-boilerplate!skip -plugins/modules/k8s_cp.py compile-2.6!skip -plugins/modules/k8s_cp.py compile-2.7!skip -plugins/modules/k8s_cp.py import-2.6!skip -plugins/modules/k8s_cp.py import-2.7!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-2.6!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-2.7!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-3.5!skip -tests/unit/module_utils/test_selector.py future-import-boilerplate!skip -tests/unit/module_utils/test_selector.py metaclass-boilerplate!skip -plugins/module_utils/selector.py future-import-boilerplate!skip -plugins/module_utils/selector.py metaclass-boilerplate!skip -plugins/lookup/kustomize.py future-import-boilerplate!skip -plugins/lookup/kustomize.py metaclass-boilerplate!skip -tests/integration/targets/helm/library/helm_test_version.py metaclass-boilerplate!skip -tests/integration/targets/helm/library/helm_test_version.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py compile-2.7!skip -plugins/modules/k8s_taint.py compile-3.5!skip -plugins/modules/k8s_taint.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py import-2.7!skip -plugins/modules/k8s_taint.py import-3.5!skip -plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/k8s_scale.py validate-modules:return-syntax-error +plugins/modules/k8s_service.py validate-modules:return-syntax-error plugins/modules/k8s_taint.py validate-modules:return-syntax-error +plugins/doc_fragments/k8s_name_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_auth_options.py future-import-boilerplate!skip +plugins/doc_fragments/helm_common_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_state_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_wait_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_scale_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_delete_options.py future-import-boilerplate!skip +plugins/doc_fragments/__init__.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_resource_options.py future-import-boilerplate!skip +plugins/module_utils/helm.py future-import-boilerplate!skip +plugins/module_utils/apply.py future-import-boilerplate!skip +plugins/module_utils/hashes.py future-import-boilerplate!skip +plugins/module_utils/version.py future-import-boilerplate!skip +plugins/module_utils/_version.py future-import-boilerplate!skip plugins/module_utils/copy.py future-import-boilerplate!skip +plugins/module_utils/args_common.py future-import-boilerplate!skip +plugins/module_utils/__init__.py future-import-boilerplate!skip +plugins/module_utils/selector.py future-import-boilerplate!skip +plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip +plugins/module_utils/common.py future-import-boilerplate!skip +plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip +plugins/module_utils/exceptions.py future-import-boilerplate!skip +plugins/module_utils/client/resource.py future-import-boilerplate!skip +plugins/module_utils/client/discovery.py future-import-boilerplate!skip +plugins/module_utils/k8s/resource.py future-import-boilerplate!skip +plugins/module_utils/k8s/core.py future-import-boilerplate!skip +plugins/module_utils/k8s/waiter.py future-import-boilerplate!skip +plugins/module_utils/k8s/client.py future-import-boilerplate!skip +plugins/module_utils/k8s/runner.py future-import-boilerplate!skip +plugins/module_utils/k8s/service.py future-import-boilerplate!skip +plugins/module_utils/k8s/exceptions.py future-import-boilerplate!skip +plugins/connection/kubectl.py future-import-boilerplate!skip +plugins/inventory/k8s.py future-import-boilerplate!skip +plugins/lookup/k8s.py future-import-boilerplate!skip +plugins/lookup/kustomize.py future-import-boilerplate!skip +plugins/modules/k8s_scale.py future-import-boilerplate!skip +plugins/modules/helm_template.py future-import-boilerplate!skip +plugins/modules/k8s_exec.py future-import-boilerplate!skip +plugins/modules/helm.py future-import-boilerplate!skip +plugins/modules/helm_plugin_info.py future-import-boilerplate!skip +plugins/modules/helm_info.py future-import-boilerplate!skip +plugins/modules/helm_repository.py future-import-boilerplate!skip +plugins/modules/k8s_rollback.py future-import-boilerplate!skip +plugins/modules/k8s_log.py future-import-boilerplate!skip +plugins/modules/k8s_drain.py future-import-boilerplate!skip +plugins/modules/helm_plugin.py future-import-boilerplate!skip +plugins/modules/k8s_taint.py future-import-boilerplate!skip +plugins/modules/k8s.py future-import-boilerplate!skip +plugins/modules/k8s_service.py future-import-boilerplate!skip +plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip +plugins/modules/k8s_info.py future-import-boilerplate!skip +plugins/modules/k8s_cp.py future-import-boilerplate!skip +plugins/modules/__init__.py future-import-boilerplate!skip +plugins/modules/k8s_json_patch.py future-import-boilerplate!skip +plugins/action/k8s_info.py future-import-boilerplate!skip +plugins/filter/k8s.py future-import-boilerplate!skip +tests/unit/conftest.py future-import-boilerplate!skip +tests/unit/utils/ansible_module_mock.py future-import-boilerplate!skip +tests/unit/module_utils/test_helm.py future-import-boilerplate!skip +tests/unit/module_utils/test_marshal.py future-import-boilerplate!skip +tests/unit/module_utils/test_discoverer.py future-import-boilerplate!skip +tests/unit/module_utils/test_hashes.py future-import-boilerplate!skip +tests/unit/module_utils/test_resource.py future-import-boilerplate!skip +tests/unit/module_utils/test_service.py future-import-boilerplate!skip +tests/unit/module_utils/test_waiter.py future-import-boilerplate!skip +tests/unit/module_utils/test_common.py future-import-boilerplate!skip +tests/unit/module_utils/test_selector.py future-import-boilerplate!skip +tests/unit/module_utils/test_apply.py future-import-boilerplate!skip +tests/unit/module_utils/test_runner.py future-import-boilerplate!skip +tests/unit/module_utils/test_client.py future-import-boilerplate!skip +tests/unit/module_utils/test_core.py future-import-boilerplate!skip +tests/unit/modules/test_helm_template_module.py future-import-boilerplate!skip +tests/unit/modules/test_helm_template.py future-import-boilerplate!skip +tests/unit/modules/test_module_helm.py future-import-boilerplate!skip +tests/unit/action/test_remove_omit.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_name_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_auth_options.py metaclass-boilerplate!skip +plugins/doc_fragments/helm_common_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_state_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_wait_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_scale_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_delete_options.py metaclass-boilerplate!skip +plugins/doc_fragments/__init__.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_resource_options.py metaclass-boilerplate!skip +plugins/module_utils/helm.py metaclass-boilerplate!skip +plugins/module_utils/apply.py metaclass-boilerplate!skip +plugins/module_utils/hashes.py metaclass-boilerplate!skip +plugins/module_utils/version.py metaclass-boilerplate!skip +plugins/module_utils/_version.py metaclass-boilerplate!skip plugins/module_utils/copy.py metaclass-boilerplate!skip -plugins/module_utils/copy.py compile-2.6!skip -plugins/module_utils/copy.py compile-2.7!skip -plugins/module_utils/copy.py import-2.6!skip -plugins/module_utils/copy.py import-2.7!skip +plugins/module_utils/args_common.py metaclass-boilerplate!skip +plugins/module_utils/__init__.py metaclass-boilerplate!skip +plugins/module_utils/selector.py metaclass-boilerplate!skip +plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip +plugins/module_utils/common.py metaclass-boilerplate!skip +plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip +plugins/module_utils/exceptions.py metaclass-boilerplate!skip +plugins/module_utils/client/resource.py metaclass-boilerplate!skip +plugins/module_utils/client/discovery.py metaclass-boilerplate!skip +plugins/module_utils/k8s/resource.py metaclass-boilerplate!skip +plugins/module_utils/k8s/core.py metaclass-boilerplate!skip +plugins/module_utils/k8s/waiter.py metaclass-boilerplate!skip +plugins/module_utils/k8s/client.py metaclass-boilerplate!skip +plugins/module_utils/k8s/runner.py metaclass-boilerplate!skip +plugins/module_utils/k8s/service.py metaclass-boilerplate!skip +plugins/module_utils/k8s/exceptions.py metaclass-boilerplate!skip +plugins/connection/kubectl.py metaclass-boilerplate!skip +plugins/inventory/k8s.py metaclass-boilerplate!skip +plugins/lookup/k8s.py metaclass-boilerplate!skip +plugins/lookup/kustomize.py metaclass-boilerplate!skip +plugins/modules/k8s_scale.py metaclass-boilerplate!skip +plugins/modules/helm_template.py metaclass-boilerplate!skip +plugins/modules/k8s_exec.py metaclass-boilerplate!skip +plugins/modules/helm.py metaclass-boilerplate!skip +plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip +plugins/modules/helm_info.py metaclass-boilerplate!skip +plugins/modules/helm_repository.py metaclass-boilerplate!skip +plugins/modules/k8s_rollback.py metaclass-boilerplate!skip +plugins/modules/k8s_log.py metaclass-boilerplate!skip +plugins/modules/k8s_drain.py metaclass-boilerplate!skip +plugins/modules/helm_plugin.py metaclass-boilerplate!skip +plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/modules/k8s.py metaclass-boilerplate!skip +plugins/modules/k8s_service.py metaclass-boilerplate!skip +plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip +plugins/modules/k8s_info.py metaclass-boilerplate!skip +plugins/modules/k8s_cp.py metaclass-boilerplate!skip +plugins/modules/__init__.py metaclass-boilerplate!skip +plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip +plugins/action/k8s_info.py metaclass-boilerplate!skip +plugins/filter/k8s.py metaclass-boilerplate!skip +tests/unit/conftest.py metaclass-boilerplate!skip +tests/unit/utils/ansible_module_mock.py metaclass-boilerplate!skip +tests/unit/module_utils/test_helm.py metaclass-boilerplate!skip +tests/unit/module_utils/test_marshal.py metaclass-boilerplate!skip +tests/unit/module_utils/test_discoverer.py metaclass-boilerplate!skip +tests/unit/module_utils/test_hashes.py metaclass-boilerplate!skip +tests/unit/module_utils/test_resource.py metaclass-boilerplate!skip +tests/unit/module_utils/test_service.py metaclass-boilerplate!skip +tests/unit/module_utils/test_waiter.py metaclass-boilerplate!skip +tests/unit/module_utils/test_common.py metaclass-boilerplate!skip +tests/unit/module_utils/test_selector.py metaclass-boilerplate!skip +tests/unit/module_utils/test_apply.py metaclass-boilerplate!skip +tests/unit/module_utils/test_runner.py metaclass-boilerplate!skip +tests/unit/module_utils/test_client.py metaclass-boilerplate!skip +tests/unit/module_utils/test_core.py metaclass-boilerplate!skip +tests/unit/modules/test_helm_template_module.py metaclass-boilerplate!skip +tests/unit/modules/test_helm_template.py metaclass-boilerplate!skip +tests/unit/modules/test_module_helm.py metaclass-boilerplate!skip +tests/unit/action/test_remove_omit.py metaclass-boilerplate!skip diff --git a/tests/sanity/ignore-2.12.txt b/tests/sanity/ignore-2.12.txt index 73fa1b70..8572453e 100644 --- a/tests/sanity/ignore-2.12.txt +++ b/tests/sanity/ignore-2.12.txt @@ -1,248 +1,31 @@ -tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip -plugins/module_utils/__init__.py compile-2.6!skip -plugins/module_utils/__init__.py compile-2.7!skip -plugins/module_utils/__init__.py compile-3.5!skip -plugins/module_utils/__init__.py future-import-boilerplate!skip -plugins/module_utils/__init__.py import-2.6!skip -plugins/module_utils/__init__.py import-2.7!skip -plugins/module_utils/__init__.py import-3.5!skip -plugins/module_utils/__init__.py metaclass-boilerplate!skip -plugins/module_utils/ansiblemodule.py compile-2.6!skip -plugins/module_utils/ansiblemodule.py compile-2.7!skip -plugins/module_utils/ansiblemodule.py compile-3.5!skip -plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip -plugins/module_utils/ansiblemodule.py import-2.6!skip -plugins/module_utils/ansiblemodule.py import-2.7!skip -plugins/module_utils/ansiblemodule.py import-3.5!skip -plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip -plugins/module_utils/apply.py compile-2.6!skip -plugins/module_utils/apply.py compile-2.7!skip -plugins/module_utils/apply.py compile-3.5!skip -plugins/module_utils/apply.py future-import-boilerplate!skip -plugins/module_utils/apply.py import-2.6!skip -plugins/module_utils/apply.py import-2.7!skip -plugins/module_utils/apply.py import-3.5!skip -plugins/module_utils/apply.py metaclass-boilerplate!skip -plugins/module_utils/args_common.py compile-2.6!skip -plugins/module_utils/args_common.py compile-2.7!skip -plugins/module_utils/args_common.py compile-3.5!skip -plugins/module_utils/args_common.py future-import-boilerplate!skip -plugins/module_utils/args_common.py import-2.6!skip -plugins/module_utils/args_common.py import-2.7!skip -plugins/module_utils/args_common.py import-3.5!skip -plugins/module_utils/args_common.py metaclass-boilerplate!skip -plugins/module_utils/client/discovery.py future-import-boilerplate!skip -plugins/module_utils/client/discovery.py import-2.6!skip -plugins/module_utils/client/discovery.py import-2.7!skip -plugins/module_utils/client/discovery.py import-3.5!skip plugins/module_utils/client/discovery.py import-3.6!skip plugins/module_utils/client/discovery.py import-3.7!skip plugins/module_utils/client/discovery.py import-3.8!skip plugins/module_utils/client/discovery.py import-3.9!skip plugins/module_utils/client/discovery.py import-3.10!skip -plugins/module_utils/client/discovery.py metaclass-boilerplate!skip -plugins/module_utils/client/resource.py import-2.6!skip -plugins/module_utils/client/resource.py import-2.7!skip -plugins/module_utils/client/resource.py import-3.5!skip plugins/module_utils/client/resource.py import-3.6!skip plugins/module_utils/client/resource.py import-3.7!skip plugins/module_utils/client/resource.py import-3.8!skip plugins/module_utils/client/resource.py import-3.9!skip plugins/module_utils/client/resource.py import-3.10!skip -plugins/module_utils/common.py compile-2.6!skip -plugins/module_utils/common.py compile-2.7!skip -plugins/module_utils/common.py compile-3.5!skip -plugins/module_utils/common.py future-import-boilerplate!skip -plugins/module_utils/common.py import-2.6!skip -plugins/module_utils/common.py import-2.7!skip -plugins/module_utils/common.py import-3.5!skip -plugins/module_utils/common.py metaclass-boilerplate!skip -plugins/module_utils/exceptions.py compile-2.6!skip -plugins/module_utils/exceptions.py compile-2.7!skip -plugins/module_utils/exceptions.py compile-3.5!skip -plugins/module_utils/exceptions.py future-import-boilerplate!skip -plugins/module_utils/exceptions.py import-2.6!skip -plugins/module_utils/exceptions.py import-2.7!skip -plugins/module_utils/exceptions.py import-3.5!skip -plugins/module_utils/exceptions.py metaclass-boilerplate!skip -plugins/module_utils/hashes.py compile-2.6!skip -plugins/module_utils/hashes.py compile-2.7!skip -plugins/module_utils/hashes.py compile-3.5!skip -plugins/module_utils/hashes.py future-import-boilerplate!skip -plugins/module_utils/hashes.py import-2.6!skip -plugins/module_utils/hashes.py import-2.7!skip -plugins/module_utils/hashes.py import-3.5!skip -plugins/module_utils/hashes.py metaclass-boilerplate!skip -plugins/module_utils/helm.py compile-2.6!skip -plugins/module_utils/helm.py compile-2.7!skip -plugins/module_utils/helm.py compile-3.5!skip -plugins/module_utils/helm.py future-import-boilerplate!skip -plugins/module_utils/helm.py import-2.6!skip -plugins/module_utils/helm.py import-2.7!skip -plugins/module_utils/helm.py import-3.5!skip -plugins/module_utils/helm.py metaclass-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py compile-2.6!skip -plugins/module_utils/k8sdynamicclient.py compile-2.7!skip -plugins/module_utils/k8sdynamicclient.py compile-3.5!skip -plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py import-2.6!skip -plugins/module_utils/k8sdynamicclient.py import-2.7!skip -plugins/module_utils/k8sdynamicclient.py import-3.5!skip plugins/module_utils/k8sdynamicclient.py import-3.6!skip plugins/module_utils/k8sdynamicclient.py import-3.7!skip plugins/module_utils/k8sdynamicclient.py import-3.8!skip plugins/module_utils/k8sdynamicclient.py import-3.9!skip plugins/module_utils/k8sdynamicclient.py import-3.10!skip -plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip -plugins/modules/__init__.py compile-2.6!skip -plugins/modules/__init__.py compile-2.7!skip -plugins/modules/__init__.py compile-3.5!skip -plugins/modules/__init__.py future-import-boilerplate!skip -plugins/modules/__init__.py import-2.6!skip -plugins/modules/__init__.py import-2.7!skip -plugins/modules/__init__.py import-3.5!skip -plugins/modules/__init__.py metaclass-boilerplate!skip -plugins/modules/helm.py compile-2.6!skip -plugins/modules/helm.py compile-2.7!skip -plugins/modules/helm.py compile-3.5!skip -plugins/modules/helm.py future-import-boilerplate!skip -plugins/modules/helm.py import-2.6!skip -plugins/modules/helm.py import-2.7!skip -plugins/modules/helm.py import-3.5!skip -plugins/modules/helm.py metaclass-boilerplate!skip -plugins/modules/helm_info.py compile-2.6!skip -plugins/modules/helm_info.py compile-2.7!skip -plugins/modules/helm_info.py compile-3.5!skip -plugins/modules/helm_info.py future-import-boilerplate!skip -plugins/modules/helm_info.py import-2.6!skip -plugins/modules/helm_info.py import-2.7!skip -plugins/modules/helm_info.py import-3.5!skip -plugins/modules/helm_info.py metaclass-boilerplate!skip -plugins/modules/helm_plugin.py compile-2.6!skip -plugins/modules/helm_plugin.py compile-2.7!skip -plugins/modules/helm_plugin.py compile-3.5!skip -plugins/modules/helm_plugin.py future-import-boilerplate!skip -plugins/modules/helm_plugin.py import-2.6!skip -plugins/modules/helm_plugin.py import-2.7!skip -plugins/modules/helm_plugin.py import-3.5!skip -plugins/modules/helm_plugin.py metaclass-boilerplate!skip -plugins/modules/helm_plugin_info.py compile-2.6!skip -plugins/modules/helm_plugin_info.py compile-2.7!skip -plugins/modules/helm_plugin_info.py compile-3.5!skip -plugins/modules/helm_plugin_info.py future-import-boilerplate!skip -plugins/modules/helm_plugin_info.py import-2.6!skip -plugins/modules/helm_plugin_info.py import-2.7!skip -plugins/modules/helm_plugin_info.py import-3.5!skip -plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip -plugins/modules/helm_repository.py compile-2.6!skip -plugins/modules/helm_repository.py compile-2.7!skip -plugins/modules/helm_repository.py compile-3.5!skip -plugins/modules/helm_repository.py future-import-boilerplate!skip -plugins/modules/helm_repository.py import-2.6!skip -plugins/modules/helm_repository.py import-2.7!skip -plugins/modules/helm_repository.py import-3.5!skip -plugins/modules/helm_repository.py metaclass-boilerplate!skip -plugins/modules/helm_template.py compile-2.6!skip -plugins/modules/helm_template.py compile-2.7!skip -plugins/modules/helm_template.py compile-3.5!skip -plugins/modules/helm_template.py future-import-boilerplate!skip -plugins/modules/helm_template.py import-2.6!skip -plugins/modules/helm_template.py import-2.7!skip -plugins/modules/helm_template.py import-3.5!skip -plugins/modules/helm_template.py metaclass-boilerplate!skip -plugins/modules/k8s.py compile-2.6!skip -plugins/modules/k8s.py compile-2.7!skip -plugins/modules/k8s.py compile-3.5!skip -plugins/modules/k8s.py future-import-boilerplate!skip -plugins/modules/k8s.py import-2.6!skip -plugins/modules/k8s.py import-2.7!skip -plugins/modules/k8s.py import-3.5!skip -plugins/modules/k8s.py metaclass-boilerplate!skip plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s.py validate-modules:return-syntax-error -plugins/modules/k8s_cluster_info.py compile-2.6!skip -plugins/modules/k8s_cluster_info.py compile-2.7!skip -plugins/modules/k8s_cluster_info.py compile-3.5!skip -plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip -plugins/modules/k8s_cluster_info.py import-2.6!skip -plugins/modules/k8s_cluster_info.py import-2.7!skip -plugins/modules/k8s_cluster_info.py import-3.5!skip -plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip -plugins/modules/k8s_exec.py compile-2.6!skip -plugins/modules/k8s_exec.py compile-2.7!skip -plugins/modules/k8s_exec.py compile-3.5!skip -plugins/modules/k8s_exec.py future-import-boilerplate!skip -plugins/modules/k8s_exec.py import-2.6!skip -plugins/modules/k8s_exec.py import-2.7!skip -plugins/modules/k8s_exec.py import-3.5!skip -plugins/modules/k8s_exec.py metaclass-boilerplate!skip -plugins/modules/k8s_info.py compile-2.6!skip -plugins/modules/k8s_info.py compile-2.7!skip -plugins/modules/k8s_info.py compile-3.5!skip -plugins/modules/k8s_info.py future-import-boilerplate!skip -plugins/modules/k8s_info.py import-2.6!skip -plugins/modules/k8s_info.py import-2.7!skip -plugins/modules/k8s_info.py import-3.5!skip -plugins/modules/k8s_info.py metaclass-boilerplate!skip -plugins/modules/k8s_json_patch.py compile-2.6!skip -plugins/modules/k8s_json_patch.py compile-2.7!skip -plugins/modules/k8s_json_patch.py compile-3.5!skip -plugins/modules/k8s_json_patch.py future-import-boilerplate!skip -plugins/modules/k8s_json_patch.py import-2.6!skip -plugins/modules/k8s_json_patch.py import-2.7!skip -plugins/modules/k8s_json_patch.py import-3.5!skip -plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip -plugins/modules/k8s_log.py compile-2.6!skip -plugins/modules/k8s_log.py compile-2.7!skip -plugins/modules/k8s_log.py compile-3.5!skip -plugins/modules/k8s_log.py future-import-boilerplate!skip -plugins/modules/k8s_log.py import-2.6!skip -plugins/modules/k8s_log.py import-2.7!skip -plugins/modules/k8s_log.py import-3.5!skip -plugins/modules/k8s_log.py metaclass-boilerplate!skip -plugins/modules/k8s_rollback.py compile-2.6!skip -plugins/modules/k8s_rollback.py compile-2.7!skip -plugins/modules/k8s_rollback.py compile-3.5!skip -plugins/modules/k8s_rollback.py future-import-boilerplate!skip -plugins/modules/k8s_rollback.py import-2.6!skip -plugins/modules/k8s_rollback.py import-2.7!skip -plugins/modules/k8s_rollback.py import-3.5!skip -plugins/modules/k8s_rollback.py metaclass-boilerplate!skip -plugins/modules/k8s_scale.py compile-2.6!skip -plugins/modules/k8s_scale.py compile-2.7!skip -plugins/modules/k8s_scale.py compile-3.5!skip -plugins/modules/k8s_scale.py future-import-boilerplate!skip -plugins/modules/k8s_scale.py import-2.6!skip -plugins/modules/k8s_scale.py import-2.7!skip -plugins/modules/k8s_scale.py import-3.5!skip -plugins/modules/k8s_scale.py metaclass-boilerplate!skip plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_scale.py validate-modules:return-syntax-error -plugins/modules/k8s_service.py compile-2.6!skip -plugins/modules/k8s_service.py compile-2.7!skip -plugins/modules/k8s_service.py compile-3.5!skip -plugins/modules/k8s_service.py future-import-boilerplate!skip -plugins/modules/k8s_service.py import-2.6!skip -plugins/modules/k8s_service.py import-2.7!skip -plugins/modules/k8s_service.py import-3.5!skip -plugins/modules/k8s_service.py metaclass-boilerplate!skip plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_service.py validate-modules:return-syntax-error +tests/unit/module_utils/fixtures/definitions.yml yamllint!skip +tests/unit/module_utils/fixtures/deployments.yml yamllint!skip +tests/unit/module_utils/fixtures/pods.yml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip tests/sanity/refresh_ignore_files shebang!skip -plugins/modules/k8s_cp.py compile-2.6!skip -plugins/modules/k8s_cp.py compile-2.7!skip -plugins/modules/k8s_cp.py import-2.6!skip -plugins/modules/k8s_cp.py import-2.7!skip -plugins/module_utils/selector.py future-import-boilerplate!skip -plugins/module_utils/selector.py metaclass-boilerplate!skip -plugins/modules/k8s_taint.py compile-2.7!skip -plugins/modules/k8s_taint.py compile-3.5!skip -plugins/modules/k8s_taint.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py import-2.7!skip -plugins/modules/k8s_taint.py import-3.5!skip -plugins/modules/k8s_taint.py metaclass-boilerplate!skip -plugins/modules/k8s_taint.py validate-modules:return-syntax-error \ No newline at end of file +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/k8s_scale.py validate-modules:return-syntax-error +plugins/modules/k8s_service.py validate-modules:return-syntax-error +plugins/modules/k8s_taint.py validate-modules:return-syntax-error diff --git a/tests/sanity/ignore-2.13.txt b/tests/sanity/ignore-2.13.txt index cde97150..8572453e 100644 --- a/tests/sanity/ignore-2.13.txt +++ b/tests/sanity/ignore-2.13.txt @@ -1,196 +1,31 @@ -tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip -plugins/module_utils/__init__.py compile-2.7!skip -plugins/module_utils/__init__.py compile-3.5!skip -plugins/module_utils/__init__.py future-import-boilerplate!skip -plugins/module_utils/__init__.py import-2.7!skip -plugins/module_utils/__init__.py import-3.5!skip -plugins/module_utils/__init__.py metaclass-boilerplate!skip -plugins/module_utils/ansiblemodule.py compile-2.7!skip -plugins/module_utils/ansiblemodule.py compile-3.5!skip -plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip -plugins/module_utils/ansiblemodule.py import-2.7!skip -plugins/module_utils/ansiblemodule.py import-3.5!skip -plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip -plugins/module_utils/apply.py compile-2.7!skip -plugins/module_utils/apply.py compile-3.5!skip -plugins/module_utils/apply.py future-import-boilerplate!skip -plugins/module_utils/apply.py import-2.7!skip -plugins/module_utils/apply.py import-3.5!skip -plugins/module_utils/apply.py metaclass-boilerplate!skip -plugins/module_utils/args_common.py compile-2.7!skip -plugins/module_utils/args_common.py compile-3.5!skip -plugins/module_utils/args_common.py future-import-boilerplate!skip -plugins/module_utils/args_common.py import-2.7!skip -plugins/module_utils/args_common.py import-3.5!skip -plugins/module_utils/args_common.py metaclass-boilerplate!skip -plugins/module_utils/client/discovery.py future-import-boilerplate!skip -plugins/module_utils/client/discovery.py import-2.7!skip -plugins/module_utils/client/discovery.py import-3.5!skip plugins/module_utils/client/discovery.py import-3.6!skip plugins/module_utils/client/discovery.py import-3.7!skip plugins/module_utils/client/discovery.py import-3.8!skip plugins/module_utils/client/discovery.py import-3.9!skip plugins/module_utils/client/discovery.py import-3.10!skip -plugins/module_utils/client/discovery.py metaclass-boilerplate!skip -plugins/module_utils/client/resource.py import-2.7!skip -plugins/module_utils/client/resource.py import-3.5!skip plugins/module_utils/client/resource.py import-3.6!skip plugins/module_utils/client/resource.py import-3.7!skip plugins/module_utils/client/resource.py import-3.8!skip plugins/module_utils/client/resource.py import-3.9!skip plugins/module_utils/client/resource.py import-3.10!skip -plugins/module_utils/common.py compile-2.7!skip -plugins/module_utils/common.py compile-3.5!skip -plugins/module_utils/common.py future-import-boilerplate!skip -plugins/module_utils/common.py import-2.7!skip -plugins/module_utils/common.py import-3.5!skip -plugins/module_utils/common.py metaclass-boilerplate!skip -plugins/module_utils/exceptions.py compile-2.7!skip -plugins/module_utils/exceptions.py compile-3.5!skip -plugins/module_utils/exceptions.py future-import-boilerplate!skip -plugins/module_utils/exceptions.py import-2.7!skip -plugins/module_utils/exceptions.py import-3.5!skip -plugins/module_utils/exceptions.py metaclass-boilerplate!skip -plugins/module_utils/hashes.py compile-2.7!skip -plugins/module_utils/hashes.py compile-3.5!skip -plugins/module_utils/hashes.py future-import-boilerplate!skip -plugins/module_utils/hashes.py import-2.7!skip -plugins/module_utils/hashes.py import-3.5!skip -plugins/module_utils/hashes.py metaclass-boilerplate!skip -plugins/module_utils/helm.py compile-2.7!skip -plugins/module_utils/helm.py compile-3.5!skip -plugins/module_utils/helm.py future-import-boilerplate!skip -plugins/module_utils/helm.py import-2.7!skip -plugins/module_utils/helm.py import-3.5!skip -plugins/module_utils/helm.py metaclass-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py compile-2.7!skip -plugins/module_utils/k8sdynamicclient.py compile-3.5!skip -plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py import-2.7!skip -plugins/module_utils/k8sdynamicclient.py import-3.5!skip plugins/module_utils/k8sdynamicclient.py import-3.6!skip plugins/module_utils/k8sdynamicclient.py import-3.7!skip plugins/module_utils/k8sdynamicclient.py import-3.8!skip plugins/module_utils/k8sdynamicclient.py import-3.9!skip plugins/module_utils/k8sdynamicclient.py import-3.10!skip -plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip -plugins/modules/__init__.py compile-2.7!skip -plugins/modules/__init__.py compile-3.5!skip -plugins/modules/__init__.py future-import-boilerplate!skip -plugins/modules/__init__.py import-2.7!skip -plugins/modules/__init__.py import-3.5!skip -plugins/modules/__init__.py metaclass-boilerplate!skip -plugins/modules/helm.py compile-2.7!skip -plugins/modules/helm.py compile-3.5!skip -plugins/modules/helm.py future-import-boilerplate!skip -plugins/modules/helm.py import-2.7!skip -plugins/modules/helm.py import-3.5!skip -plugins/modules/helm.py metaclass-boilerplate!skip -plugins/modules/helm_info.py compile-2.7!skip -plugins/modules/helm_info.py compile-3.5!skip -plugins/modules/helm_info.py future-import-boilerplate!skip -plugins/modules/helm_info.py import-2.7!skip -plugins/modules/helm_info.py import-3.5!skip -plugins/modules/helm_info.py metaclass-boilerplate!skip -plugins/modules/helm_plugin.py compile-2.7!skip -plugins/modules/helm_plugin.py compile-3.5!skip -plugins/modules/helm_plugin.py future-import-boilerplate!skip -plugins/modules/helm_plugin.py import-2.7!skip -plugins/modules/helm_plugin.py import-3.5!skip -plugins/modules/helm_plugin.py metaclass-boilerplate!skip -plugins/modules/helm_plugin_info.py compile-2.7!skip -plugins/modules/helm_plugin_info.py compile-3.5!skip -plugins/modules/helm_plugin_info.py future-import-boilerplate!skip -plugins/modules/helm_plugin_info.py import-2.7!skip -plugins/modules/helm_plugin_info.py import-3.5!skip -plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip -plugins/modules/helm_repository.py compile-2.7!skip -plugins/modules/helm_repository.py compile-3.5!skip -plugins/modules/helm_repository.py future-import-boilerplate!skip -plugins/modules/helm_repository.py import-2.7!skip -plugins/modules/helm_repository.py import-3.5!skip -plugins/modules/helm_repository.py metaclass-boilerplate!skip -plugins/modules/helm_template.py compile-2.7!skip -plugins/modules/helm_template.py compile-3.5!skip -plugins/modules/helm_template.py future-import-boilerplate!skip -plugins/modules/helm_template.py import-2.7!skip -plugins/modules/helm_template.py import-3.5!skip -plugins/modules/helm_template.py metaclass-boilerplate!skip -plugins/modules/k8s.py compile-2.7!skip -plugins/modules/k8s.py compile-3.5!skip -plugins/modules/k8s.py future-import-boilerplate!skip -plugins/modules/k8s.py import-2.7!skip -plugins/modules/k8s.py import-3.5!skip -plugins/modules/k8s.py metaclass-boilerplate!skip plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s.py validate-modules:return-syntax-error -plugins/modules/k8s_cluster_info.py compile-2.7!skip -plugins/modules/k8s_cluster_info.py compile-3.5!skip -plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip -plugins/modules/k8s_cluster_info.py import-2.7!skip -plugins/modules/k8s_cluster_info.py import-3.5!skip -plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip -plugins/modules/k8s_exec.py compile-2.7!skip -plugins/modules/k8s_exec.py compile-3.5!skip -plugins/modules/k8s_exec.py future-import-boilerplate!skip -plugins/modules/k8s_exec.py import-2.7!skip -plugins/modules/k8s_exec.py import-3.5!skip -plugins/modules/k8s_exec.py metaclass-boilerplate!skip -plugins/modules/k8s_info.py compile-2.7!skip -plugins/modules/k8s_info.py compile-3.5!skip -plugins/modules/k8s_info.py future-import-boilerplate!skip -plugins/modules/k8s_info.py import-2.7!skip -plugins/modules/k8s_info.py import-3.5!skip -plugins/modules/k8s_info.py metaclass-boilerplate!skip -plugins/modules/k8s_json_patch.py compile-2.7!skip -plugins/modules/k8s_json_patch.py compile-3.5!skip -plugins/modules/k8s_json_patch.py future-import-boilerplate!skip -plugins/modules/k8s_json_patch.py import-2.7!skip -plugins/modules/k8s_json_patch.py import-3.5!skip -plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip -plugins/modules/k8s_log.py compile-2.7!skip -plugins/modules/k8s_log.py compile-3.5!skip -plugins/modules/k8s_log.py future-import-boilerplate!skip -plugins/modules/k8s_log.py import-2.7!skip -plugins/modules/k8s_log.py import-3.5!skip -plugins/modules/k8s_log.py metaclass-boilerplate!skip -plugins/modules/k8s_rollback.py compile-2.7!skip -plugins/modules/k8s_rollback.py compile-3.5!skip -plugins/modules/k8s_rollback.py future-import-boilerplate!skip -plugins/modules/k8s_rollback.py import-2.7!skip -plugins/modules/k8s_rollback.py import-3.5!skip -plugins/modules/k8s_rollback.py metaclass-boilerplate!skip -plugins/modules/k8s_scale.py compile-2.7!skip -plugins/modules/k8s_scale.py compile-3.5!skip -plugins/modules/k8s_scale.py future-import-boilerplate!skip -plugins/modules/k8s_scale.py import-2.7!skip -plugins/modules/k8s_scale.py import-3.5!skip -plugins/modules/k8s_scale.py metaclass-boilerplate!skip plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_scale.py validate-modules:return-syntax-error -plugins/modules/k8s_service.py compile-2.7!skip -plugins/modules/k8s_service.py compile-3.5!skip -plugins/modules/k8s_service.py future-import-boilerplate!skip -plugins/modules/k8s_service.py import-2.7!skip -plugins/modules/k8s_service.py import-3.5!skip -plugins/modules/k8s_service.py metaclass-boilerplate!skip plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_service.py validate-modules:return-syntax-error +tests/unit/module_utils/fixtures/definitions.yml yamllint!skip +tests/unit/module_utils/fixtures/deployments.yml yamllint!skip +tests/unit/module_utils/fixtures/pods.yml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip tests/sanity/refresh_ignore_files shebang!skip -plugins/modules/k8s_cp.py compile-2.7!skip -plugins/modules/k8s_cp.py import-2.7!skip -plugins/module_utils/selector.py future-import-boilerplate!skip -plugins/module_utils/selector.py metaclass-boilerplate!skip -plugins/modules/k8s_taint.py compile-2.7!skip -plugins/modules/k8s_taint.py compile-3.5!skip -plugins/modules/k8s_taint.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py import-2.7!skip -plugins/modules/k8s_taint.py import-3.5!skip -plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/k8s_scale.py validate-modules:return-syntax-error +plugins/modules/k8s_service.py validate-modules:return-syntax-error plugins/modules/k8s_taint.py validate-modules:return-syntax-error -plugins/module_utils/copy.py future-import-boilerplate!skip -plugins/module_utils/copy.py metaclass-boilerplate!skip diff --git a/tests/sanity/ignore-2.14.txt b/tests/sanity/ignore-2.14.txt index cde97150..8572453e 100644 --- a/tests/sanity/ignore-2.14.txt +++ b/tests/sanity/ignore-2.14.txt @@ -1,196 +1,31 @@ -tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip -tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip -plugins/module_utils/__init__.py compile-2.7!skip -plugins/module_utils/__init__.py compile-3.5!skip -plugins/module_utils/__init__.py future-import-boilerplate!skip -plugins/module_utils/__init__.py import-2.7!skip -plugins/module_utils/__init__.py import-3.5!skip -plugins/module_utils/__init__.py metaclass-boilerplate!skip -plugins/module_utils/ansiblemodule.py compile-2.7!skip -plugins/module_utils/ansiblemodule.py compile-3.5!skip -plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip -plugins/module_utils/ansiblemodule.py import-2.7!skip -plugins/module_utils/ansiblemodule.py import-3.5!skip -plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip -plugins/module_utils/apply.py compile-2.7!skip -plugins/module_utils/apply.py compile-3.5!skip -plugins/module_utils/apply.py future-import-boilerplate!skip -plugins/module_utils/apply.py import-2.7!skip -plugins/module_utils/apply.py import-3.5!skip -plugins/module_utils/apply.py metaclass-boilerplate!skip -plugins/module_utils/args_common.py compile-2.7!skip -plugins/module_utils/args_common.py compile-3.5!skip -plugins/module_utils/args_common.py future-import-boilerplate!skip -plugins/module_utils/args_common.py import-2.7!skip -plugins/module_utils/args_common.py import-3.5!skip -plugins/module_utils/args_common.py metaclass-boilerplate!skip -plugins/module_utils/client/discovery.py future-import-boilerplate!skip -plugins/module_utils/client/discovery.py import-2.7!skip -plugins/module_utils/client/discovery.py import-3.5!skip plugins/module_utils/client/discovery.py import-3.6!skip plugins/module_utils/client/discovery.py import-3.7!skip plugins/module_utils/client/discovery.py import-3.8!skip plugins/module_utils/client/discovery.py import-3.9!skip plugins/module_utils/client/discovery.py import-3.10!skip -plugins/module_utils/client/discovery.py metaclass-boilerplate!skip -plugins/module_utils/client/resource.py import-2.7!skip -plugins/module_utils/client/resource.py import-3.5!skip plugins/module_utils/client/resource.py import-3.6!skip plugins/module_utils/client/resource.py import-3.7!skip plugins/module_utils/client/resource.py import-3.8!skip plugins/module_utils/client/resource.py import-3.9!skip plugins/module_utils/client/resource.py import-3.10!skip -plugins/module_utils/common.py compile-2.7!skip -plugins/module_utils/common.py compile-3.5!skip -plugins/module_utils/common.py future-import-boilerplate!skip -plugins/module_utils/common.py import-2.7!skip -plugins/module_utils/common.py import-3.5!skip -plugins/module_utils/common.py metaclass-boilerplate!skip -plugins/module_utils/exceptions.py compile-2.7!skip -plugins/module_utils/exceptions.py compile-3.5!skip -plugins/module_utils/exceptions.py future-import-boilerplate!skip -plugins/module_utils/exceptions.py import-2.7!skip -plugins/module_utils/exceptions.py import-3.5!skip -plugins/module_utils/exceptions.py metaclass-boilerplate!skip -plugins/module_utils/hashes.py compile-2.7!skip -plugins/module_utils/hashes.py compile-3.5!skip -plugins/module_utils/hashes.py future-import-boilerplate!skip -plugins/module_utils/hashes.py import-2.7!skip -plugins/module_utils/hashes.py import-3.5!skip -plugins/module_utils/hashes.py metaclass-boilerplate!skip -plugins/module_utils/helm.py compile-2.7!skip -plugins/module_utils/helm.py compile-3.5!skip -plugins/module_utils/helm.py future-import-boilerplate!skip -plugins/module_utils/helm.py import-2.7!skip -plugins/module_utils/helm.py import-3.5!skip -plugins/module_utils/helm.py metaclass-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py compile-2.7!skip -plugins/module_utils/k8sdynamicclient.py compile-3.5!skip -plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py import-2.7!skip -plugins/module_utils/k8sdynamicclient.py import-3.5!skip plugins/module_utils/k8sdynamicclient.py import-3.6!skip plugins/module_utils/k8sdynamicclient.py import-3.7!skip plugins/module_utils/k8sdynamicclient.py import-3.8!skip plugins/module_utils/k8sdynamicclient.py import-3.9!skip plugins/module_utils/k8sdynamicclient.py import-3.10!skip -plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip -plugins/modules/__init__.py compile-2.7!skip -plugins/modules/__init__.py compile-3.5!skip -plugins/modules/__init__.py future-import-boilerplate!skip -plugins/modules/__init__.py import-2.7!skip -plugins/modules/__init__.py import-3.5!skip -plugins/modules/__init__.py metaclass-boilerplate!skip -plugins/modules/helm.py compile-2.7!skip -plugins/modules/helm.py compile-3.5!skip -plugins/modules/helm.py future-import-boilerplate!skip -plugins/modules/helm.py import-2.7!skip -plugins/modules/helm.py import-3.5!skip -plugins/modules/helm.py metaclass-boilerplate!skip -plugins/modules/helm_info.py compile-2.7!skip -plugins/modules/helm_info.py compile-3.5!skip -plugins/modules/helm_info.py future-import-boilerplate!skip -plugins/modules/helm_info.py import-2.7!skip -plugins/modules/helm_info.py import-3.5!skip -plugins/modules/helm_info.py metaclass-boilerplate!skip -plugins/modules/helm_plugin.py compile-2.7!skip -plugins/modules/helm_plugin.py compile-3.5!skip -plugins/modules/helm_plugin.py future-import-boilerplate!skip -plugins/modules/helm_plugin.py import-2.7!skip -plugins/modules/helm_plugin.py import-3.5!skip -plugins/modules/helm_plugin.py metaclass-boilerplate!skip -plugins/modules/helm_plugin_info.py compile-2.7!skip -plugins/modules/helm_plugin_info.py compile-3.5!skip -plugins/modules/helm_plugin_info.py future-import-boilerplate!skip -plugins/modules/helm_plugin_info.py import-2.7!skip -plugins/modules/helm_plugin_info.py import-3.5!skip -plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip -plugins/modules/helm_repository.py compile-2.7!skip -plugins/modules/helm_repository.py compile-3.5!skip -plugins/modules/helm_repository.py future-import-boilerplate!skip -plugins/modules/helm_repository.py import-2.7!skip -plugins/modules/helm_repository.py import-3.5!skip -plugins/modules/helm_repository.py metaclass-boilerplate!skip -plugins/modules/helm_template.py compile-2.7!skip -plugins/modules/helm_template.py compile-3.5!skip -plugins/modules/helm_template.py future-import-boilerplate!skip -plugins/modules/helm_template.py import-2.7!skip -plugins/modules/helm_template.py import-3.5!skip -plugins/modules/helm_template.py metaclass-boilerplate!skip -plugins/modules/k8s.py compile-2.7!skip -plugins/modules/k8s.py compile-3.5!skip -plugins/modules/k8s.py future-import-boilerplate!skip -plugins/modules/k8s.py import-2.7!skip -plugins/modules/k8s.py import-3.5!skip -plugins/modules/k8s.py metaclass-boilerplate!skip plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s.py validate-modules:return-syntax-error -plugins/modules/k8s_cluster_info.py compile-2.7!skip -plugins/modules/k8s_cluster_info.py compile-3.5!skip -plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip -plugins/modules/k8s_cluster_info.py import-2.7!skip -plugins/modules/k8s_cluster_info.py import-3.5!skip -plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip -plugins/modules/k8s_exec.py compile-2.7!skip -plugins/modules/k8s_exec.py compile-3.5!skip -plugins/modules/k8s_exec.py future-import-boilerplate!skip -plugins/modules/k8s_exec.py import-2.7!skip -plugins/modules/k8s_exec.py import-3.5!skip -plugins/modules/k8s_exec.py metaclass-boilerplate!skip -plugins/modules/k8s_info.py compile-2.7!skip -plugins/modules/k8s_info.py compile-3.5!skip -plugins/modules/k8s_info.py future-import-boilerplate!skip -plugins/modules/k8s_info.py import-2.7!skip -plugins/modules/k8s_info.py import-3.5!skip -plugins/modules/k8s_info.py metaclass-boilerplate!skip -plugins/modules/k8s_json_patch.py compile-2.7!skip -plugins/modules/k8s_json_patch.py compile-3.5!skip -plugins/modules/k8s_json_patch.py future-import-boilerplate!skip -plugins/modules/k8s_json_patch.py import-2.7!skip -plugins/modules/k8s_json_patch.py import-3.5!skip -plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip -plugins/modules/k8s_log.py compile-2.7!skip -plugins/modules/k8s_log.py compile-3.5!skip -plugins/modules/k8s_log.py future-import-boilerplate!skip -plugins/modules/k8s_log.py import-2.7!skip -plugins/modules/k8s_log.py import-3.5!skip -plugins/modules/k8s_log.py metaclass-boilerplate!skip -plugins/modules/k8s_rollback.py compile-2.7!skip -plugins/modules/k8s_rollback.py compile-3.5!skip -plugins/modules/k8s_rollback.py future-import-boilerplate!skip -plugins/modules/k8s_rollback.py import-2.7!skip -plugins/modules/k8s_rollback.py import-3.5!skip -plugins/modules/k8s_rollback.py metaclass-boilerplate!skip -plugins/modules/k8s_scale.py compile-2.7!skip -plugins/modules/k8s_scale.py compile-3.5!skip -plugins/modules/k8s_scale.py future-import-boilerplate!skip -plugins/modules/k8s_scale.py import-2.7!skip -plugins/modules/k8s_scale.py import-3.5!skip -plugins/modules/k8s_scale.py metaclass-boilerplate!skip plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_scale.py validate-modules:return-syntax-error -plugins/modules/k8s_service.py compile-2.7!skip -plugins/modules/k8s_service.py compile-3.5!skip -plugins/modules/k8s_service.py future-import-boilerplate!skip -plugins/modules/k8s_service.py import-2.7!skip -plugins/modules/k8s_service.py import-3.5!skip -plugins/modules/k8s_service.py metaclass-boilerplate!skip plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_service.py validate-modules:return-syntax-error +tests/unit/module_utils/fixtures/definitions.yml yamllint!skip +tests/unit/module_utils/fixtures/deployments.yml yamllint!skip +tests/unit/module_utils/fixtures/pods.yml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip +tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip +tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip tests/sanity/refresh_ignore_files shebang!skip -plugins/modules/k8s_cp.py compile-2.7!skip -plugins/modules/k8s_cp.py import-2.7!skip -plugins/module_utils/selector.py future-import-boilerplate!skip -plugins/module_utils/selector.py metaclass-boilerplate!skip -plugins/modules/k8s_taint.py compile-2.7!skip -plugins/modules/k8s_taint.py compile-3.5!skip -plugins/modules/k8s_taint.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py import-2.7!skip -plugins/modules/k8s_taint.py import-3.5!skip -plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/k8s_scale.py validate-modules:return-syntax-error +plugins/modules/k8s_service.py validate-modules:return-syntax-error plugins/modules/k8s_taint.py validate-modules:return-syntax-error -plugins/module_utils/copy.py future-import-boilerplate!skip -plugins/module_utils/copy.py metaclass-boilerplate!skip diff --git a/tests/sanity/ignore-2.9.txt b/tests/sanity/ignore-2.9.txt index 0a58a934..ce09f79c 100644 --- a/tests/sanity/ignore-2.9.txt +++ b/tests/sanity/ignore-2.9.txt @@ -1,255 +1,171 @@ -tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip +plugins/module_utils/client/discovery.py import-3.6!skip +plugins/module_utils/client/discovery.py import-3.7!skip +plugins/module_utils/client/discovery.py import-3.8!skip +plugins/module_utils/client/resource.py import-3.6!skip +plugins/module_utils/client/resource.py import-3.7!skip +plugins/module_utils/client/resource.py import-3.8!skip +plugins/module_utils/k8sdynamicclient.py import-3.6!skip +plugins/module_utils/k8sdynamicclient.py import-3.7!skip +plugins/module_utils/k8sdynamicclient.py import-3.8!skip +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc +tests/unit/module_utils/fixtures/definitions.yml yamllint!skip +tests/unit/module_utils/fixtures/deployments.yml yamllint!skip +tests/unit/module_utils/fixtures/pods.yml yamllint!skip tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml yamllint!skip tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml yamllint!skip tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml yamllint!skip tests/integration/targets/helm/files/test-chart/templates/configmap.yaml yamllint!skip -plugins/module_utils/__init__.py compile-2.6!skip -plugins/module_utils/__init__.py compile-2.7!skip -plugins/module_utils/__init__.py compile-3.5!skip -plugins/module_utils/__init__.py future-import-boilerplate!skip -plugins/module_utils/__init__.py import-2.6!skip -plugins/module_utils/__init__.py import-2.7!skip -plugins/module_utils/__init__.py import-3.5!skip -plugins/module_utils/__init__.py metaclass-boilerplate!skip -plugins/module_utils/ansiblemodule.py compile-2.6!skip -plugins/module_utils/ansiblemodule.py compile-2.7!skip -plugins/module_utils/ansiblemodule.py compile-3.5!skip -plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip -plugins/module_utils/ansiblemodule.py import-2.6!skip -plugins/module_utils/ansiblemodule.py import-2.7!skip -plugins/module_utils/ansiblemodule.py import-3.5!skip -plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip -plugins/module_utils/apply.py compile-2.6!skip -plugins/module_utils/apply.py compile-2.7!skip -plugins/module_utils/apply.py compile-3.5!skip -plugins/module_utils/apply.py future-import-boilerplate!skip -plugins/module_utils/apply.py import-2.6!skip -plugins/module_utils/apply.py import-2.7!skip -plugins/module_utils/apply.py import-3.5!skip -plugins/module_utils/apply.py metaclass-boilerplate!skip -plugins/module_utils/args_common.py compile-2.6!skip -plugins/module_utils/args_common.py compile-2.7!skip -plugins/module_utils/args_common.py compile-3.5!skip -plugins/module_utils/args_common.py future-import-boilerplate!skip -plugins/module_utils/args_common.py import-2.6!skip -plugins/module_utils/args_common.py import-2.7!skip -plugins/module_utils/args_common.py import-3.5!skip -plugins/module_utils/args_common.py metaclass-boilerplate!skip -plugins/module_utils/client/discovery.py future-import-boilerplate!skip -plugins/module_utils/client/discovery.py import-2.6!skip -plugins/module_utils/client/discovery.py import-2.7!skip -plugins/module_utils/client/discovery.py import-3.5!skip -plugins/module_utils/client/discovery.py import-3.6!skip -plugins/module_utils/client/discovery.py import-3.7!skip -plugins/module_utils/client/discovery.py import-3.8!skip -plugins/module_utils/client/discovery.py metaclass-boilerplate!skip -plugins/module_utils/client/resource.py import-2.6!skip -plugins/module_utils/client/resource.py import-2.7!skip -plugins/module_utils/client/resource.py import-3.5!skip -plugins/module_utils/client/resource.py import-3.6!skip -plugins/module_utils/client/resource.py import-3.7!skip -plugins/module_utils/client/resource.py import-3.8!skip -plugins/module_utils/common.py compile-2.6!skip -plugins/module_utils/common.py compile-2.7!skip -plugins/module_utils/common.py compile-3.5!skip -plugins/module_utils/common.py future-import-boilerplate!skip -plugins/module_utils/common.py import-2.6!skip -plugins/module_utils/common.py import-2.7!skip -plugins/module_utils/common.py import-3.5!skip -plugins/module_utils/common.py metaclass-boilerplate!skip -plugins/module_utils/exceptions.py compile-2.6!skip -plugins/module_utils/exceptions.py compile-2.7!skip -plugins/module_utils/exceptions.py compile-3.5!skip -plugins/module_utils/exceptions.py future-import-boilerplate!skip -plugins/module_utils/exceptions.py import-2.6!skip -plugins/module_utils/exceptions.py import-2.7!skip -plugins/module_utils/exceptions.py import-3.5!skip -plugins/module_utils/exceptions.py metaclass-boilerplate!skip -plugins/module_utils/hashes.py compile-2.6!skip -plugins/module_utils/hashes.py compile-2.7!skip -plugins/module_utils/hashes.py compile-3.5!skip -plugins/module_utils/hashes.py future-import-boilerplate!skip -plugins/module_utils/hashes.py import-2.6!skip -plugins/module_utils/hashes.py import-2.7!skip -plugins/module_utils/hashes.py import-3.5!skip -plugins/module_utils/hashes.py metaclass-boilerplate!skip -plugins/module_utils/helm.py compile-2.6!skip -plugins/module_utils/helm.py compile-2.7!skip -plugins/module_utils/helm.py compile-3.5!skip -plugins/module_utils/helm.py future-import-boilerplate!skip -plugins/module_utils/helm.py import-2.6!skip -plugins/module_utils/helm.py import-2.7!skip -plugins/module_utils/helm.py import-3.5!skip -plugins/module_utils/helm.py metaclass-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py compile-2.6!skip -plugins/module_utils/k8sdynamicclient.py compile-2.7!skip -plugins/module_utils/k8sdynamicclient.py compile-3.5!skip -plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip -plugins/module_utils/k8sdynamicclient.py import-2.6!skip -plugins/module_utils/k8sdynamicclient.py import-2.7!skip -plugins/module_utils/k8sdynamicclient.py import-3.5!skip -plugins/module_utils/k8sdynamicclient.py import-3.6!skip -plugins/module_utils/k8sdynamicclient.py import-3.7!skip -plugins/module_utils/k8sdynamicclient.py import-3.8!skip -plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip -plugins/modules/__init__.py compile-2.6!skip -plugins/modules/__init__.py compile-2.7!skip -plugins/modules/__init__.py compile-3.5!skip -plugins/modules/__init__.py future-import-boilerplate!skip -plugins/modules/__init__.py import-2.6!skip -plugins/modules/__init__.py import-2.7!skip -plugins/modules/__init__.py import-3.5!skip -plugins/modules/__init__.py metaclass-boilerplate!skip -plugins/modules/helm.py compile-2.6!skip -plugins/modules/helm.py compile-2.7!skip -plugins/modules/helm.py compile-3.5!skip -plugins/modules/helm.py future-import-boilerplate!skip -plugins/modules/helm.py import-2.6!skip -plugins/modules/helm.py import-2.7!skip -plugins/modules/helm.py import-3.5!skip -plugins/modules/helm.py metaclass-boilerplate!skip -plugins/modules/helm_info.py compile-2.6!skip -plugins/modules/helm_info.py compile-2.7!skip -plugins/modules/helm_info.py compile-3.5!skip -plugins/modules/helm_info.py future-import-boilerplate!skip -plugins/modules/helm_info.py import-2.6!skip -plugins/modules/helm_info.py import-2.7!skip -plugins/modules/helm_info.py import-3.5!skip -plugins/modules/helm_info.py metaclass-boilerplate!skip -plugins/modules/helm_plugin.py compile-2.6!skip -plugins/modules/helm_plugin.py compile-2.7!skip -plugins/modules/helm_plugin.py compile-3.5!skip -plugins/modules/helm_plugin.py future-import-boilerplate!skip -plugins/modules/helm_plugin.py import-2.6!skip -plugins/modules/helm_plugin.py import-2.7!skip -plugins/modules/helm_plugin.py import-3.5!skip -plugins/modules/helm_plugin.py metaclass-boilerplate!skip -plugins/modules/helm_plugin_info.py compile-2.6!skip -plugins/modules/helm_plugin_info.py compile-2.7!skip -plugins/modules/helm_plugin_info.py compile-3.5!skip -plugins/modules/helm_plugin_info.py future-import-boilerplate!skip -plugins/modules/helm_plugin_info.py import-2.6!skip -plugins/modules/helm_plugin_info.py import-2.7!skip -plugins/modules/helm_plugin_info.py import-3.5!skip -plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip -plugins/modules/helm_repository.py compile-2.6!skip -plugins/modules/helm_repository.py compile-2.7!skip -plugins/modules/helm_repository.py compile-3.5!skip -plugins/modules/helm_repository.py future-import-boilerplate!skip -plugins/modules/helm_repository.py import-2.6!skip -plugins/modules/helm_repository.py import-2.7!skip -plugins/modules/helm_repository.py import-3.5!skip -plugins/modules/helm_repository.py metaclass-boilerplate!skip -plugins/modules/helm_template.py compile-2.6!skip -plugins/modules/helm_template.py compile-2.7!skip -plugins/modules/helm_template.py compile-3.5!skip -plugins/modules/helm_template.py future-import-boilerplate!skip -plugins/modules/helm_template.py import-2.6!skip -plugins/modules/helm_template.py import-2.7!skip -plugins/modules/helm_template.py import-3.5!skip -plugins/modules/helm_template.py metaclass-boilerplate!skip -plugins/modules/k8s.py compile-2.6!skip -plugins/modules/k8s.py compile-2.7!skip -plugins/modules/k8s.py compile-3.5!skip -plugins/modules/k8s.py future-import-boilerplate!skip -plugins/modules/k8s.py import-2.6!skip -plugins/modules/k8s.py import-2.7!skip -plugins/modules/k8s.py import-3.5!skip -plugins/modules/k8s.py metaclass-boilerplate!skip -plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_cluster_info.py compile-2.6!skip -plugins/modules/k8s_cluster_info.py compile-2.7!skip -plugins/modules/k8s_cluster_info.py compile-3.5!skip -plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip -plugins/modules/k8s_cluster_info.py import-2.6!skip -plugins/modules/k8s_cluster_info.py import-2.7!skip -plugins/modules/k8s_cluster_info.py import-3.5!skip -plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip -plugins/modules/k8s_exec.py compile-2.6!skip -plugins/modules/k8s_exec.py compile-2.7!skip -plugins/modules/k8s_exec.py compile-3.5!skip -plugins/modules/k8s_exec.py future-import-boilerplate!skip -plugins/modules/k8s_exec.py import-2.6!skip -plugins/modules/k8s_exec.py import-2.7!skip -plugins/modules/k8s_exec.py import-3.5!skip -plugins/modules/k8s_exec.py metaclass-boilerplate!skip -plugins/modules/k8s_info.py compile-2.6!skip -plugins/modules/k8s_info.py compile-2.7!skip -plugins/modules/k8s_info.py compile-3.5!skip -plugins/modules/k8s_info.py future-import-boilerplate!skip -plugins/modules/k8s_info.py import-2.6!skip -plugins/modules/k8s_info.py import-2.7!skip -plugins/modules/k8s_info.py import-3.5!skip -plugins/modules/k8s_info.py metaclass-boilerplate!skip -plugins/modules/k8s_json_patch.py compile-2.6!skip -plugins/modules/k8s_json_patch.py compile-2.7!skip -plugins/modules/k8s_json_patch.py compile-3.5!skip -plugins/modules/k8s_json_patch.py future-import-boilerplate!skip -plugins/modules/k8s_json_patch.py import-2.6!skip -plugins/modules/k8s_json_patch.py import-2.7!skip -plugins/modules/k8s_json_patch.py import-3.5!skip -plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip -plugins/modules/k8s_log.py compile-2.6!skip -plugins/modules/k8s_log.py compile-2.7!skip -plugins/modules/k8s_log.py compile-3.5!skip -plugins/modules/k8s_log.py future-import-boilerplate!skip -plugins/modules/k8s_log.py import-2.6!skip -plugins/modules/k8s_log.py import-2.7!skip -plugins/modules/k8s_log.py import-3.5!skip -plugins/modules/k8s_log.py metaclass-boilerplate!skip -plugins/modules/k8s_rollback.py compile-2.6!skip -plugins/modules/k8s_rollback.py compile-2.7!skip -plugins/modules/k8s_rollback.py compile-3.5!skip -plugins/modules/k8s_rollback.py future-import-boilerplate!skip -plugins/modules/k8s_rollback.py import-2.6!skip -plugins/modules/k8s_rollback.py import-2.7!skip -plugins/modules/k8s_rollback.py import-3.5!skip -plugins/modules/k8s_rollback.py metaclass-boilerplate!skip -plugins/modules/k8s_scale.py compile-2.6!skip -plugins/modules/k8s_scale.py compile-2.7!skip -plugins/modules/k8s_scale.py compile-3.5!skip -plugins/modules/k8s_scale.py future-import-boilerplate!skip -plugins/modules/k8s_scale.py import-2.6!skip -plugins/modules/k8s_scale.py import-2.7!skip -plugins/modules/k8s_scale.py import-3.5!skip -plugins/modules/k8s_scale.py metaclass-boilerplate!skip -plugins/modules/k8s_scale.py validate-modules:parameter-type-not-in-doc -plugins/modules/k8s_service.py compile-2.6!skip -plugins/modules/k8s_service.py compile-2.7!skip -plugins/modules/k8s_service.py compile-3.5!skip -plugins/modules/k8s_service.py future-import-boilerplate!skip -plugins/modules/k8s_service.py import-2.6!skip -plugins/modules/k8s_service.py import-2.7!skip -plugins/modules/k8s_service.py import-3.5!skip -plugins/modules/k8s_service.py metaclass-boilerplate!skip -plugins/modules/k8s_service.py validate-modules:parameter-type-not-in-doc +tests/integration/targets/k8s_scale/files/deployment.yaml yamllint!skip tests/sanity/refresh_ignore_files shebang!skip -tests/unit/module_utils/test_discoverer.py future-import-boilerplate!skip -tests/unit/module_utils/test_discoverer.py metaclass-boilerplate!skip -plugins/modules/k8s_cp.py compile-2.6!skip -plugins/modules/k8s_cp.py compile-2.7!skip -plugins/modules/k8s_cp.py import-2.6!skip -plugins/modules/k8s_cp.py import-2.7!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-2.6!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-2.7!skip -tests/integration/targets/k8s_copy/library/kubectl_file_compare.py compile-3.5!skip -tests/unit/module_utils/test_selector.py future-import-boilerplate!skip -tests/unit/module_utils/test_selector.py metaclass-boilerplate!skip -plugins/module_utils/selector.py future-import-boilerplate!skip -plugins/module_utils/selector.py metaclass-boilerplate!skip -plugins/lookup/kustomize.py future-import-boilerplate!skip -plugins/lookup/kustomize.py metaclass-boilerplate!skip -tests/integration/targets/helm/library/helm_test_version.py metaclass-boilerplate!skip -tests/integration/targets/helm/library/helm_test_version.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py compile-2.7!skip -plugins/modules/k8s_taint.py compile-3.5!skip -plugins/modules/k8s_taint.py future-import-boilerplate!skip -plugins/modules/k8s_taint.py import-2.7!skip -plugins/modules/k8s_taint.py import-3.5!skip -plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_name_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_auth_options.py future-import-boilerplate!skip +plugins/doc_fragments/helm_common_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_state_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_wait_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_scale_options.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_delete_options.py future-import-boilerplate!skip +plugins/doc_fragments/__init__.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_resource_options.py future-import-boilerplate!skip +plugins/module_utils/helm.py future-import-boilerplate!skip +plugins/module_utils/apply.py future-import-boilerplate!skip +plugins/module_utils/hashes.py future-import-boilerplate!skip +plugins/module_utils/version.py future-import-boilerplate!skip +plugins/module_utils/_version.py future-import-boilerplate!skip plugins/module_utils/copy.py future-import-boilerplate!skip +plugins/module_utils/args_common.py future-import-boilerplate!skip +plugins/module_utils/__init__.py future-import-boilerplate!skip +plugins/module_utils/selector.py future-import-boilerplate!skip +plugins/module_utils/k8sdynamicclient.py future-import-boilerplate!skip +plugins/module_utils/common.py future-import-boilerplate!skip +plugins/module_utils/ansiblemodule.py future-import-boilerplate!skip +plugins/module_utils/exceptions.py future-import-boilerplate!skip +plugins/module_utils/client/resource.py future-import-boilerplate!skip +plugins/module_utils/client/discovery.py future-import-boilerplate!skip +plugins/module_utils/k8s/resource.py future-import-boilerplate!skip +plugins/module_utils/k8s/core.py future-import-boilerplate!skip +plugins/module_utils/k8s/waiter.py future-import-boilerplate!skip +plugins/module_utils/k8s/client.py future-import-boilerplate!skip +plugins/module_utils/k8s/runner.py future-import-boilerplate!skip +plugins/module_utils/k8s/service.py future-import-boilerplate!skip +plugins/module_utils/k8s/exceptions.py future-import-boilerplate!skip +plugins/connection/kubectl.py future-import-boilerplate!skip +plugins/inventory/k8s.py future-import-boilerplate!skip +plugins/lookup/k8s.py future-import-boilerplate!skip +plugins/lookup/kustomize.py future-import-boilerplate!skip +plugins/modules/k8s_scale.py future-import-boilerplate!skip +plugins/modules/helm_template.py future-import-boilerplate!skip +plugins/modules/k8s_exec.py future-import-boilerplate!skip +plugins/modules/helm.py future-import-boilerplate!skip +plugins/modules/helm_plugin_info.py future-import-boilerplate!skip +plugins/modules/helm_info.py future-import-boilerplate!skip +plugins/modules/helm_repository.py future-import-boilerplate!skip +plugins/modules/k8s_rollback.py future-import-boilerplate!skip +plugins/modules/k8s_log.py future-import-boilerplate!skip +plugins/modules/k8s_drain.py future-import-boilerplate!skip +plugins/modules/helm_plugin.py future-import-boilerplate!skip +plugins/modules/k8s_taint.py future-import-boilerplate!skip +plugins/modules/k8s.py future-import-boilerplate!skip +plugins/modules/k8s_service.py future-import-boilerplate!skip +plugins/modules/k8s_cluster_info.py future-import-boilerplate!skip +plugins/modules/k8s_info.py future-import-boilerplate!skip +plugins/modules/k8s_cp.py future-import-boilerplate!skip +plugins/modules/__init__.py future-import-boilerplate!skip +plugins/modules/k8s_json_patch.py future-import-boilerplate!skip +plugins/action/k8s_info.py future-import-boilerplate!skip +plugins/filter/k8s.py future-import-boilerplate!skip +tests/unit/conftest.py future-import-boilerplate!skip +tests/unit/utils/ansible_module_mock.py future-import-boilerplate!skip +tests/unit/module_utils/test_helm.py future-import-boilerplate!skip +tests/unit/module_utils/test_marshal.py future-import-boilerplate!skip +tests/unit/module_utils/test_discoverer.py future-import-boilerplate!skip +tests/unit/module_utils/test_hashes.py future-import-boilerplate!skip +tests/unit/module_utils/test_resource.py future-import-boilerplate!skip +tests/unit/module_utils/test_service.py future-import-boilerplate!skip +tests/unit/module_utils/test_waiter.py future-import-boilerplate!skip +tests/unit/module_utils/test_common.py future-import-boilerplate!skip +tests/unit/module_utils/test_selector.py future-import-boilerplate!skip +tests/unit/module_utils/test_apply.py future-import-boilerplate!skip +tests/unit/module_utils/test_runner.py future-import-boilerplate!skip +tests/unit/module_utils/test_client.py future-import-boilerplate!skip +tests/unit/module_utils/test_core.py future-import-boilerplate!skip +tests/unit/modules/test_helm_template_module.py future-import-boilerplate!skip +tests/unit/modules/test_helm_template.py future-import-boilerplate!skip +tests/unit/modules/test_module_helm.py future-import-boilerplate!skip +tests/unit/action/test_remove_omit.py future-import-boilerplate!skip +plugins/doc_fragments/k8s_name_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_auth_options.py metaclass-boilerplate!skip +plugins/doc_fragments/helm_common_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_state_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_wait_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_scale_options.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_delete_options.py metaclass-boilerplate!skip +plugins/doc_fragments/__init__.py metaclass-boilerplate!skip +plugins/doc_fragments/k8s_resource_options.py metaclass-boilerplate!skip +plugins/module_utils/helm.py metaclass-boilerplate!skip +plugins/module_utils/apply.py metaclass-boilerplate!skip +plugins/module_utils/hashes.py metaclass-boilerplate!skip +plugins/module_utils/version.py metaclass-boilerplate!skip +plugins/module_utils/_version.py metaclass-boilerplate!skip plugins/module_utils/copy.py metaclass-boilerplate!skip -plugins/module_utils/copy.py compile-2.6!skip -plugins/module_utils/copy.py compile-2.7!skip -plugins/module_utils/copy.py import-2.6!skip -plugins/module_utils/copy.py import-2.7!skip +plugins/module_utils/args_common.py metaclass-boilerplate!skip +plugins/module_utils/__init__.py metaclass-boilerplate!skip +plugins/module_utils/selector.py metaclass-boilerplate!skip +plugins/module_utils/k8sdynamicclient.py metaclass-boilerplate!skip +plugins/module_utils/common.py metaclass-boilerplate!skip +plugins/module_utils/ansiblemodule.py metaclass-boilerplate!skip +plugins/module_utils/exceptions.py metaclass-boilerplate!skip +plugins/module_utils/client/resource.py metaclass-boilerplate!skip +plugins/module_utils/client/discovery.py metaclass-boilerplate!skip +plugins/module_utils/k8s/resource.py metaclass-boilerplate!skip +plugins/module_utils/k8s/core.py metaclass-boilerplate!skip +plugins/module_utils/k8s/waiter.py metaclass-boilerplate!skip +plugins/module_utils/k8s/client.py metaclass-boilerplate!skip +plugins/module_utils/k8s/runner.py metaclass-boilerplate!skip +plugins/module_utils/k8s/service.py metaclass-boilerplate!skip +plugins/module_utils/k8s/exceptions.py metaclass-boilerplate!skip +plugins/connection/kubectl.py metaclass-boilerplate!skip +plugins/inventory/k8s.py metaclass-boilerplate!skip +plugins/lookup/k8s.py metaclass-boilerplate!skip +plugins/lookup/kustomize.py metaclass-boilerplate!skip +plugins/modules/k8s_scale.py metaclass-boilerplate!skip +plugins/modules/helm_template.py metaclass-boilerplate!skip +plugins/modules/k8s_exec.py metaclass-boilerplate!skip +plugins/modules/helm.py metaclass-boilerplate!skip +plugins/modules/helm_plugin_info.py metaclass-boilerplate!skip +plugins/modules/helm_info.py metaclass-boilerplate!skip +plugins/modules/helm_repository.py metaclass-boilerplate!skip +plugins/modules/k8s_rollback.py metaclass-boilerplate!skip +plugins/modules/k8s_log.py metaclass-boilerplate!skip +plugins/modules/k8s_drain.py metaclass-boilerplate!skip +plugins/modules/helm_plugin.py metaclass-boilerplate!skip +plugins/modules/k8s_taint.py metaclass-boilerplate!skip +plugins/modules/k8s.py metaclass-boilerplate!skip +plugins/modules/k8s_service.py metaclass-boilerplate!skip +plugins/modules/k8s_cluster_info.py metaclass-boilerplate!skip +plugins/modules/k8s_info.py metaclass-boilerplate!skip +plugins/modules/k8s_cp.py metaclass-boilerplate!skip +plugins/modules/__init__.py metaclass-boilerplate!skip +plugins/modules/k8s_json_patch.py metaclass-boilerplate!skip +plugins/action/k8s_info.py metaclass-boilerplate!skip +plugins/filter/k8s.py metaclass-boilerplate!skip +tests/unit/conftest.py metaclass-boilerplate!skip +tests/unit/utils/ansible_module_mock.py metaclass-boilerplate!skip +tests/unit/module_utils/test_helm.py metaclass-boilerplate!skip +tests/unit/module_utils/test_marshal.py metaclass-boilerplate!skip +tests/unit/module_utils/test_discoverer.py metaclass-boilerplate!skip +tests/unit/module_utils/test_hashes.py metaclass-boilerplate!skip +tests/unit/module_utils/test_resource.py metaclass-boilerplate!skip +tests/unit/module_utils/test_service.py metaclass-boilerplate!skip +tests/unit/module_utils/test_waiter.py metaclass-boilerplate!skip +tests/unit/module_utils/test_common.py metaclass-boilerplate!skip +tests/unit/module_utils/test_selector.py metaclass-boilerplate!skip +tests/unit/module_utils/test_apply.py metaclass-boilerplate!skip +tests/unit/module_utils/test_runner.py metaclass-boilerplate!skip +tests/unit/module_utils/test_client.py metaclass-boilerplate!skip +tests/unit/module_utils/test_core.py metaclass-boilerplate!skip +tests/unit/modules/test_helm_template_module.py metaclass-boilerplate!skip +tests/unit/modules/test_helm_template.py metaclass-boilerplate!skip +tests/unit/modules/test_module_helm.py metaclass-boilerplate!skip +tests/unit/action/test_remove_omit.py metaclass-boilerplate!skip diff --git a/tests/sanity/refresh_ignore_files b/tests/sanity/refresh_ignore_files index 6640baa5..85afa676 100644 --- a/tests/sanity/refresh_ignore_files +++ b/tests/sanity/refresh_ignore_files @@ -1,47 +1,124 @@ #!/usr/bin/env python3 + +import itertools + from pathlib import Path -target_dir = Path('.') -ignore_dir = target_dir / "tests" / "sanity" -module_dir = target_dir / "plugins" / "modules" -module_utils_dir = target_dir / "plugins" / "module_utils" -ignore_dir.mkdir(parents=True, exist_ok=True) +# Mapping of Ansible versions to supported Python versions +ANSIBLE_VERSIONS = { + "2.9": ["3.6", "3.7", "3.8"], + "2.10": ["3.6", "3.7", "3.8", "3.9"], + "2.11": ["3.6", "3.7", "3.8", "3.9"], + "2.12": ["3.6", "3.7", "3.8", "3.9", "3.10"], + "2.13": ["3.6", "3.7", "3.8", "3.9", "3.10"], + "2.14": ["3.6", "3.7", "3.8", "3.9", "3.10"], +} -skip_list_2_6 = [ - "compile-2.6!skip", # Py3.8+ - "import-2.6!skip", # Py3.8+ +IMPORT_SKIPS = [ + "plugins/module_utils/client/discovery.py", + "plugins/module_utils/client/resource.py", + "plugins/module_utils/k8sdynamicclient.py", ] -skip_list_3 = [ - "compile-2.7!skip", # Py3.8+ - "compile-3.5!skip", # Py3.8+ - "import-2.7!skip", # Py3.8+ - "import-3.5!skip", # Py3.8+ - "future-import-boilerplate!skip", # Py2 only - "metaclass-boilerplate!skip", # Py2 only +# Adds validate-modules:parameter-type-not-in-doc +PARAM_TYPE_SKIPS = [ + "plugins/modules/k8s.py", + "plugins/modules/k8s_scale.py", + "plugins/modules/k8s_service.py", ] -for version in ["2.9", "2.10", "2.11", "2.12", "2.13"]: - ignore_file = ignore_dir / f"ignore-{version}.txt" - ignore_content = ignore_file.read_text().split("\n") - ignore_content.append(f"tests/sanity/refresh_ignore_files shebang!skip") +# Adds validate-modules:return-syntax-error +RETURN_SYNTAX_SKIPS = [ + "plugins/modules/k8s.py", + "plugins/modules/k8s_scale.py", + "plugins/modules/k8s_service.py", + "plugins/modules/k8s_taint.py", +] - if version == "2.13": - skip_list = skip_list_3 +YAML_LINT_SKIPS = [ + "tests/unit/module_utils/fixtures/definitions.yml", + "tests/unit/module_utils/fixtures/deployments.yml", + "tests/unit/module_utils/fixtures/pods.yml", + "tests/integration/targets/helm/files/appversionless-chart-v2/templates/configmap.yaml", + "tests/integration/targets/helm/files/appversionless-chart/templates/configmap.yaml", + "tests/integration/targets/helm/files/test-chart-v2/templates/configmap.yaml", + "tests/integration/targets/helm/files/test-chart/templates/configmap.yaml", + "tests/integration/targets/k8s_scale/files/deployment.yaml", +] + +# Add shebang!skip +SHEBANG_SKIPS = [ + "tests/sanity/refresh_ignore_files", +] + + +def import_skips(*versions): + for f in IMPORT_SKIPS: + for v in versions: + yield f"{f} import-{v}!skip" + +def param_type_skips(): + for f in PARAM_TYPE_SKIPS: + yield f"{f} validate-modules:parameter-type-not-in-doc" + + +def return_syntax_skips(ansible_version): + if ansible_version != "2.9": + for f in RETURN_SYNTAX_SKIPS: + yield f"{f} validate-modules:return-syntax-error" else: - skip_list = skip_list_2_6 + skip_list_3 + yield - for f in module_dir.glob("**/*.py"): - if f.is_symlink(): - continue - for test in skip_list: - ignore_content.append(f"{f} {test}") - for f in module_utils_dir.glob("**/*.py"): - if f.is_symlink(): - continue - for test in skip_list: - ignore_content.append(f"{f} {test}") - ignore_file = ignore_dir / f"ignore-{version}.txt" - ignore_file.write_text("\n".join(sorted(set(ignore_content))).lstrip("\n")) + +def yaml_lint_skips(): + for f in YAML_LINT_SKIPS: + yield f"{f} yamllint!skip" + + +def shebang_skips(): + for f in SHEBANG_SKIPS: + yield f"{f} shebang!skip" + + +def import_boilerplate(path, ansible_version): + if ansible_version in ("2.9", "2.10", "2.11"): + for f in (p for p in path.glob("**/*.py") if not p.is_symlink()): + yield f"{f} future-import-boilerplate!skip" + else: + yield + + +def metaclass_boilerplate(path, ansible_version): + if ansible_version in ("2.9", "2.10", "2.11"): + for f in (p for p in path.glob("**/*.py") if not p.is_symlink()): + yield f"{f} metaclass-boilerplate!skip" + else: + yield + + +def main(): + target_dir = Path('.') + sanity_dir = target_dir / "tests" / "sanity" + plugins = target_dir / "plugins" + units = target_dir / "tests" / "unit" + + for ansible, python in ANSIBLE_VERSIONS.items(): + with open(sanity_dir / f"ignore-{ansible}.txt", "w") as fp: + ignores = itertools.chain( + import_skips(*python), + param_type_skips(), + yaml_lint_skips(), + shebang_skips(), + return_syntax_skips(ansible), + import_boilerplate(plugins, ansible), + import_boilerplate(units, ansible), + metaclass_boilerplate(plugins, ansible), + metaclass_boilerplate(units, ansible)) + for f in filter(None, ignores): + fp.write(f + "\n") + + +if __name__ == "__main__": + main()