From eb2aea9d646880ca64615d24336d2300f8d0f25c Mon Sep 17 00:00:00 2001 From: Matthias Dellweg <2500@gmx.de> Date: Sun, 26 Jan 2025 17:04:18 +0100 Subject: [PATCH] Cleanout pre glue code --- plugins/doc_fragments/pulp.py | 32 +- plugins/module_utils/openapi.py | 246 ---- plugins/module_utils/pulp.py | 1173 -------------------- plugins/modules/access_policy.py | 1 - plugins/modules/ansible_distribution.py | 1 - plugins/modules/ansible_remote.py | 1 - plugins/modules/ansible_repository.py | 1 - plugins/modules/ansible_role.py | 1 - plugins/modules/ansible_sync.py | 1 - plugins/modules/api_call.py | 1 - plugins/modules/artifact.py | 1 - plugins/modules/container_distribution.py | 1 - plugins/modules/container_remote.py | 1 - plugins/modules/container_repository.py | 1 - plugins/modules/container_sync.py | 1 - plugins/modules/deb_distribution.py | 1 - plugins/modules/deb_publication.py | 1 - plugins/modules/deb_remote.py | 1 - plugins/modules/deb_repository.py | 1 - plugins/modules/deb_sync.py | 1 - plugins/modules/delete_orphans.py | 1 - plugins/modules/file_content.py | 1 - plugins/modules/file_distribution.py | 1 - plugins/modules/file_publication.py | 1 - plugins/modules/file_remote.py | 1 - plugins/modules/file_repository.py | 1 - plugins/modules/file_repository_content.py | 1 - plugins/modules/file_sync.py | 1 - plugins/modules/purge_tasks.py | 1 - plugins/modules/python_distribution.py | 1 - plugins/modules/python_publication.py | 1 - plugins/modules/python_remote.py | 1 - plugins/modules/python_repository.py | 1 - plugins/modules/python_sync.py | 1 - plugins/modules/repair.py | 1 - plugins/modules/rpm_distribution.py | 1 - plugins/modules/rpm_publication.py | 1 - plugins/modules/rpm_remote.py | 1 - plugins/modules/rpm_repository.py | 1 - plugins/modules/rpm_sync.py | 1 - plugins/modules/status.py | 1 - plugins/modules/task.py | 1 - plugins/modules/x509_cert_guard.py | 1 - 43 files changed, 12 insertions(+), 1479 deletions(-) delete mode 100644 plugins/module_utils/openapi.py delete mode 100644 plugins/module_utils/pulp.py diff --git a/plugins/doc_fragments/pulp.py b/plugins/doc_fragments/pulp.py index 67d96122..62d18d55 100644 --- a/plugins/doc_fragments/pulp.py +++ b/plugins/doc_fragments/pulp.py @@ -23,13 +23,23 @@ class ModuleDocFragment(object): - Username of api user. - If no value is specified, the value of the environment variable C(SQUEEZER_USERNAME) will be used as a fallback. type: str - required: true + required: false password: description: - Password of api user. - If no value is specified, the value of the environment variable C(SQUEEZER_PASSWORD) will be used as a fallback. type: str - required: true + required: false + user_cert: + description: + - Client certificate of api user. + type: str + required: false + user_key: + description: + - Client certificate key of api user. + type: str + required: false validate_certs: description: - Whether SSL certificates should be verified. @@ -49,24 +59,6 @@ class ModuleDocFragment(object): default: 10 """ - GLUE = r""" -options: - username: - required: false - password: - required: false - user_cert: - description: - - Client certificate of api user. - type: str - required: false - user_key: - description: - - Client certificate key of api user. - type: str - required: false -""" - ENTITY_STATE = r""" options: state: diff --git a/plugins/module_utils/openapi.py b/plugins/module_utils/openapi.py deleted file mode 100644 index 6264f549..00000000 --- a/plugins/module_utils/openapi.py +++ /dev/null @@ -1,246 +0,0 @@ -# -*- coding: utf-8 -*- - -# copyright (c) 2020, Matthias Dellweg -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -import errno -import json -import os -import uuid - -from ansible.module_utils import six -from ansible.module_utils._text import to_bytes -from ansible.module_utils.six.moves.urllib.parse import urlencode, urljoin -from ansible.module_utils.urls import Request - -if six.PY2: - - def makedirs(path, exist_ok=False): - try: - os.makedirs(path) - except OSError as exc: - # emulate 'mkdir -p' - if not (exist_ok and exc.errno == errno.EEXIST and os.path.isdir(path)): - raise - -else: - makedirs = os.makedirs - - -class OpenAPI: - def __init__( - self, - base_url, - doc_path, - username=None, - password=None, - validate_certs=True, - refresh_cache=False, - timeout=10, - ): - self.doc_path = doc_path - - if base_url.startswith("unix:"): - self.unix_socket = base_url.replace("unix:", "") - self.base_url = "http://localhost/" - else: - self.unix_socket = None - self.base_url = base_url - - headers = { - "Content-Type": "application/json", - "Accept": "application/json", - } - self._session = Request( - url_username=username, - url_password=password, - headers=headers, - validate_certs=validate_certs, - force_basic_auth=True, - timeout=timeout, - ) - - self.load_api(refresh_cache=refresh_cache) - - def load_api(self, refresh_cache=False): - # TODO: Find a way to invalidate caches on upstream change - xdg_cache_home = os.environ.get("XDG_CACHE_HOME") or "~/.cache" - apidoc_cache = os.path.join( - os.path.expanduser(xdg_cache_home), - "squeezer", - self.base_url.replace(":", "_").replace("/", "_"), - "api.json", - ) - try: - if refresh_cache: - raise IOError() - with open(apidoc_cache, "rb") as f: - data = f.read() - self._parse_api(data) - except Exception: - # Try again with a freshly downloaded version - data = self._download_api() - self._parse_api(data) - # Write to cache as it seems to be valid - makedirs(os.path.dirname(apidoc_cache), exist_ok=True) - with open(apidoc_cache, "wb") as f: - f.write(data) - - def _parse_api(self, data): - self.api_spec = json.loads(data) - if self.api_spec.get("swagger") == "2.0": - self.openapi_version = 2 - elif self.api_spec.get("openapi", "").startswith("3."): - self.openapi_version = 3 - else: - raise NotImplementedError("Unknown schema version") - self.operations = { - method_entry["operationId"]: (method, path) - for path, path_entry in self.api_spec["paths"].items() - for method, method_entry in path_entry.items() - if method in {"get", "put", "post", "delete", "options", "head", "patch", "trace"} - } - - def _download_api(self): - return self._session.open( - "GET", urljoin(self.base_url, self.doc_path), unix_socket=self.unix_socket - ).read() - - def extract_params(self, param_type, path_spec, method_spec, params): - param_spec = { - entry["name"]: entry - for entry in path_spec.get("parameters", []) - if entry["in"] == param_type - } - param_spec.update( - { - entry["name"]: entry - for entry in method_spec.get("parameters", []) - if entry["in"] == param_type - } - ) - result = {} - for name in list(params.keys()): - if name in param_spec: - param_spec.pop(name) - result[name] = params.pop(name) - remaining_required = [ - item["name"] for item in param_spec.values() if item.get("required", False) - ] - if any(remaining_required): - raise Exception( - "Required parameters [{0}] missing for {1}.".format( - ", ".join(remaining_required), param_type - ) - ) - return result - - def render_body(self, path_spec, method_spec, headers, body=None, uploads=None): - if not (body or uploads): - return None - if self.openapi_version == 2: - content_types = ( - method_spec.get("consumes") - or path_spec.get("consumes") - or self.api_spec.get("consumes") - ) - else: - content_types = list(method_spec["requestBody"]["content"].keys()) - if uploads: - body = body or {} - if any( - (content_type.startswith("multipart/form-data") for content_type in content_types) - ): - boundary = uuid.uuid4().hex - part_boundary = b"--" + to_bytes(boundary, errors="surrogate_or_strict") - - form = [] - for key, value in body.items(): - b_key = to_bytes(key, errors="surrogate_or_strict") - form.extend( - [ - part_boundary, - b'Content-Disposition: form-data; name="%s"' % b_key, - b"", - to_bytes(value, errors="surrogate_or_strict"), - ] - ) - for key, file_data in uploads.items(): - b_key = to_bytes(key, errors="surrogate_or_strict") - form.extend( - [ - part_boundary, - b'Content-Disposition: file; name="%s"; filename="%s"' % (b_key, b_key), - b"Content-Type: application/octet-stream", - b"", - file_data, - ] - ) - form.append(part_boundary + b"--") - data = b"\r\n".join(form) - headers["Content-Type"] = "multipart/form-data; boundary={boundary}".format( - boundary=boundary - ) - else: - raise Exception("No suitable content type for file upload specified.") - elif body: - if any((content_type.startswith("application/json") for content_type in content_types)): - data = json.dumps(body) - headers["Content-Type"] = "application/json" - elif any( - ( - content_type.startswith("application/x-www-form-urlencoded") - for content_type in content_types - ) - ): - data = urlencode(body) - headers["Content-Type"] = "application/x-www-form-urlencoded" - else: - raise Exception("No suitable content type for file upload specified.") - headers["Content-Length"] = len(data) - return data - - def call(self, operation_id, parameters=None, body=None, uploads=None): - method, path = self.operations[operation_id] - path_spec = self.api_spec["paths"][path] - method_spec = path_spec[method] - - if parameters is None: - parameters = {} - else: - parameters = parameters.copy() - - if any(self.extract_params("cookie", path_spec, method_spec, parameters)): - raise NotImplementedError("Cookie parameters are not implemented.") - - headers = self.extract_params("header", path_spec, method_spec, parameters) - - for name, value in self.extract_params("path", path_spec, method_spec, parameters).items(): - path = path.replace("{" + name + "}", value) - - query_string = urlencode( - self.extract_params("query", path_spec, method_spec, parameters), doseq=True - ) - - if any(parameters): - raise Exception( - "Parameter [{names}] not available for {operation_id}.".format( - names=", ".join(parameters.keys()), operation_id=operation_id - ) - ) - url = urljoin(self.base_url, path) - if query_string: - url += "?" + query_string - - data = self.render_body(path_spec, method_spec, headers, body, uploads) - - result = self._session.open( - method, url, data=data, headers=headers, unix_socket=self.unix_socket - ).read() - if result: - return json.loads(result) - return None diff --git a/plugins/module_utils/pulp.py b/plugins/module_utils/pulp.py deleted file mode 100644 index f322424e..00000000 --- a/plugins/module_utils/pulp.py +++ /dev/null @@ -1,1173 +0,0 @@ -# -*- coding: utf-8 -*- - -# copyright (c) 2019, Matthias Dellweg -# GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) - -# pylint: disable=super-with-arguments - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -import os -import re -import traceback -from time import sleep - -from ansible.module_utils.basic import AnsibleModule, env_fallback - -# from ansible.module_utils.common import yaml -from ansible.module_utils.six.moves.urllib.error import HTTPError -from ansible_collections.pulp.squeezer.plugins.module_utils.openapi import OpenAPI - -PAGE_LIMIT = 20 -CONTENT_CHUNK_SIZE = 512 * 1024 # 1/2 MB - - -class SqueezerException(Exception): - pass - - -def pulp_parse_version(version_str): - """Return a version string as a list of ints or strings.""" - # Examples: - # "1.2.3" -> [1, 2, 3] - # "1.2.3-dev" -> [1, 2, 3, "dev"] - - def try_convert_int(i): - try: - return int(i) - except ValueError: - return i - - return [try_convert_int(i) for i in re.split(r"[\.\-]", version_str)] - - -class PulpAnsibleModule(AnsibleModule): - def __init__(self, **kwargs): - argument_spec = { - "pulp_url": {"required": True, "fallback": (env_fallback, ["SQUEEZER_PULP_URL"])}, - "username": {"required": True, "fallback": (env_fallback, ["SQUEEZER_USERNAME"])}, - "password": { - "required": True, - "no_log": True, - "fallback": (env_fallback, ["SQUEEZER_PASSWORD"]), - }, - "validate_certs": { - "type": "bool", - "default": True, - "fallback": (env_fallback, ["SQUEEZER_VALIDATE_CERTS"]), - }, - "refresh_api_cache": {"type": "bool", "default": False}, - "timeout": {"type": "int", "required": False, "default": 10}, - } - argument_spec.update(kwargs.pop("argument_spec", {})) - supports_check_mode = kwargs.pop("supports_check_mode", True) - super(PulpAnsibleModule, self).__init__( - argument_spec=argument_spec, supports_check_mode=supports_check_mode, **kwargs - ) - - def __enter__(self): - self._changed = False - self._results = {} - self.pulp_api = OpenAPI( - base_url=self.params["pulp_url"], - doc_path="/pulp/api/v3/docs/api.json", - username=self.params["username"], - password=self.params["password"], - validate_certs=self.params["validate_certs"], - refresh_cache=self.params["refresh_api_cache"], - timeout=self.params["timeout"], - ) - - return self - - def __exit__(self, exc_class, exc_value, tb): - if exc_class is None: - self.exit_json(changed=self._changed, **self._results) - else: - if issubclass(exc_class, SqueezerException): - self.fail_json(msg=str(exc_value), changed=self._changed) - return True - elif issubclass(exc_class, HTTPError): - self.fail_json( - msg="{0} {1}".format(str(exc_value), str(exc_value.fp.read())), - changed=self._changed, - ) - return True - elif issubclass(exc_class, Exception): - self.fail_json( - msg=str(exc_value), - changed=self._changed, - exception="\n".join(traceback.format_exception(exc_class, exc_value, tb)), - ) - return True - - def set_changed(self): - self._changed = True - - def set_result(self, key, value): - self._results[key] = value - - -class PulpEntityAnsibleModule(PulpAnsibleModule): - def __init__(self, **kwargs): - argument_spec = { - "state": { - "choices": ["present", "absent"], - }, - } - argument_spec.update(kwargs.pop("argument_spec", {})) - super(PulpEntityAnsibleModule, self).__init__(argument_spec=argument_spec, **kwargs) - - -class PulpRemoteAnsibleModule(PulpEntityAnsibleModule): - def __init__(self, **kwargs): - argument_spec = { - "name": {}, - "url": {}, - "remote_username": {"no_log": True}, - "remote_password": {"no_log": True}, - "ca_cert": {}, - "client_cert": {}, - "client_key": {"no_log": True}, - "tls_validation": {"type": "bool"}, - "proxy_url": {}, - "proxy_username": {"no_log": True}, - "proxy_password": {"no_log": True}, - "download_concurrency": {"type": "int"}, - "rate_limit": {"type": "int"}, - "total_timeout": {"type": "float"}, - "connect_timeout": {"type": "float"}, - "sock_connect_timeout": {"type": "float"}, - "sock_read_timeout": {"type": "float"}, - "max_retries": {"type": "int"}, - } - argument_spec.update(kwargs.pop("argument_spec", {})) - super(PulpRemoteAnsibleModule, self).__init__(argument_spec=argument_spec, **kwargs) - - -class PulpEntity(object): - def __init__(self, module, natural_key=None, desired_attributes=None, uploads=None): - self.module = module - self.entity = None - self.natural_key = natural_key - self.desired_attributes = desired_attributes or {} - self.uploads = uploads - - @property - def href(self): - return self.entity["pulp_href"] - - @property - def primary_key(self): - return {self._href: self.entity["pulp_href"]} - - def find(self, failsafe=True, parameters=None): - if not hasattr(self, "_list_id"): - raise SqueezerException("This entity is not enumeratable.") - if parameters is None: - parameters = {} - parameters["limit"] = 1 - parameters.update(self.natural_key) - search_result = self.module.pulp_api.call(self._list_id, parameters=parameters) - if search_result["count"] == 1: - self.entity = search_result["results"][0] - elif search_result["count"] > 1: - # While we limit to one result, the count may be more than one. - # This may happen for models with an insufficient or non-existent "natural key" - # e.g. for a publication. - raise SqueezerException( - "Found multiple matches for {entity_type} ({entity_key}).".format( - entity_type=self._name_singular, - entity_key=self.natural_key, - ) - ) - elif failsafe: - self.entity = None - else: - raise SqueezerException( - "Failed to find {entity_type} ({entity_key}).".format( - entity_type=self._name_singular, - entity_key=self.natural_key, - ) - ) - - def list(self): - if not hasattr(self, "_list_id"): - raise SqueezerException("This entity is not enumeratable.") - entities = [] - offset = 0 - search_result = {"next": True} - while search_result["next"]: - search_result = self.module.pulp_api.call( - self._list_id, parameters={"limit": PAGE_LIMIT, "offset": offset} - ) - entities.extend(search_result["results"]) - offset += PAGE_LIMIT - return entities - - def read(self): - if not hasattr(self, "_read_id"): - raise SqueezerException("This entity is not readable.") - self.entity = self.module.pulp_api.call(self._read_id, parameters=self.primary_key) - - def create(self): - if not hasattr(self, "_create_id"): - raise SqueezerException("This entity is not creatable.") - self.entity = dict() - self.entity.update(self.natural_key) - self.entity.update(self.desired_attributes) - if not self.module.check_mode: - response = self.module.pulp_api.call( - self._create_id, body=self.entity, uploads=self.uploads - ) - if response and "task" in response: - task = PulpTask(self.module, {"pulp_href": response["task"]}).wait_for() - self.entity = {"pulp_href": task["created_resources"][0]} - self.read() - else: - self.entity = response - self.module.set_changed() - - def update(self): - changes = {} - for key, value in self.desired_attributes.items(): - if self.entity.get(key) != value: - self.entity[key] = value - changes[key] = value - if changes: - if hasattr(self, "_partial_update_id"): - if not self.module.check_mode: - response = self.module.pulp_api.call( - self._partial_update_id, - parameters=self.primary_key, - body=changes, - ) - if response and "task" in response: - PulpTask(self.module, {"pulp_href": response["task"]}).wait_for() - self.read() - else: - self.entity = response - elif hasattr(self, "_update_id"): - if not self.module.check_mode: - response = self.module.pulp_api.call( - self._update_id, parameters=self.primary_key, body=self.entity - ) - if response and "task" in response: - PulpTask(self.module, {"pulp_href": response["task"]}).wait_for() - self.read() - else: - self.entity = response - else: - raise SqueezerException("This entity is immutable.") - self.module.set_changed() - - def delete(self): - if not hasattr(self, "_delete_id"): - raise SqueezerException("This entity is not deletable.") - if not self.module.check_mode: - response = self.module.pulp_api.call(self._delete_id, parameters=self.primary_key) - if response and "task" in response: - PulpTask(self.module, {"pulp_href": response["task"]}).wait_for() - self.entity = None - self.module.set_changed() - - def sync(self, remote_href, parameters=None): - if not hasattr(self, "_sync_id"): - raise SqueezerException("This entity is not syncable.") - body = {"remote": remote_href} - if parameters: - body.update(parameters) - response = self.module.pulp_api.call(self._sync_id, parameters=self.primary_key, body=body) - return PulpTask(self.module, {"pulp_href": response["task"]}).wait_for() - - def process_special(self): - raise SqueezerException( - "Invalid state ({0}) for entity.".format(self.module.params["state"]) - ) - - def presentation(self, entity): - return entity - - def process(self): - if None not in self.natural_key.values(): - self.find() - if self.module.params["state"] is None: - pass - elif self.module.params["state"] == "present": - if self.entity is None: - self.create() - else: - self.update() - elif self.module.params["state"] == "absent": - if self.entity is not None: - self.delete() - else: - self.process_special() - - self.module.set_result(self._name_singular, self.presentation(self.entity)) - else: - entities = self.list() - self.module.set_result( - self._name_plural, [self.presentation(entity) for entity in entities] - ) - - -class PulpRepository(PulpEntity): - def process_sync(self, remote, parameters=None): - repository_version = self.entity["latest_version_href"] - # In check_mode, assume nothing changed - if not self.module.check_mode: - sync_task = self.sync(remote.href, parameters) - - if sync_task["created_resources"]: - self.module.set_changed() - repository_version = sync_task["created_resources"][0] - - self.module.set_result("repository_version", repository_version) - - def modify(self, content_to_add, content_to_remove, base_version): - if not self.module.check_mode: - payload = { - "add_content_units": content_to_add, - "remove_content_units": content_to_remove, - } - if base_version: - payload["base_version"] = base_version - response = self.module.pulp_api.call( - self._modify_id, parameters=self.primary_key, body=payload - ) - task = PulpTask(self.module, {"pulp_href": response["task"]}).wait_for() - repository_version = task["created_resources"][0] - else: - repository_version = base_version - self.module.set_changed() - return repository_version - - -class PulpRemote(PulpEntity): - def presentation(self, entity): - if entity is not None: - entity.pop("remote_username", None) - entity.pop("remote_password", None) - entity.pop("proxy_username", None) - entity.pop("proxy_password", None) - entity.pop("client_key", None) - return entity - - -class PulpArtifact(PulpEntity): - _href = "artifact_href" - _list_id = "artifacts_list" - _read_id = "artifacts_read" - _create_id = "artifacts_create" - _delete_id = "artifacts_delete" - - _name_singular = "artifact" - _name_plural = "artifacts" - - def create(self): - filename = self.uploads["file"] - size = os.stat(filename).st_size - if size > CONTENT_CHUNK_SIZE: - if not self.module.check_mode: - artifact_href = PulpUpload.chunked_upload( - self.module, filename, self.natural_key["sha256"], size - ) - self.entity = {"pulp_href": artifact_href} - self.read() - else: - self.entity = self.natural_key - self.module.set_changed() - return self.entity - with open(filename, "rb") as f: - self.uploads["file"] = f.read() - return super(PulpArtifact, self).create() - - -class PulpOrphans(PulpEntity): - _delete_id = "orphans_delete" - - def delete(self): - if not self.module.check_mode: - response = self.module.pulp_api.call(self._delete_id) - task = PulpTask(self.module, {"pulp_href": response["task"]}).wait_for() - response = task["progress_reports"] - response = {item["message"].split(" ")[-1].lower(): item["total"] for item in response} - else: - response = { - "artifacts": 0, - "content": 0, - } - self.module.set_changed() - return response - - -class PulpAccessPolicy(PulpEntity): - _href = "access_policy_href" - _list_id = "access_policies_list" - _read_id = "access_policies_read" - _partial_update_id = "access_policies_partial_update" - - _name_singular = "access_policy" - _name_plural = "access_policies" - - def find(self): - self.entity = next( - ( - entity - for entity in self.list() - if entity["viewset_name"] == self.natural_key["viewset_name"] - ), - None, - ) - - -class PulpTask(PulpEntity): - _href = "task_href" - _list_id = "tasks_list" - _read_id = "tasks_read" - _delete_id = "tasks_delete" - _cancel_id = "tasks_cancel" - - _name_singular = "task" - _name_plural = "tasks" - - def find(self): - parameters = {"task_href": self.natural_key["pulp_href"]} - self.entity = self.module.pulp_api.call(self._read_id, parameters=parameters) - - def process_special(self): - if self.module.params["state"] in ["canceled", "completed"]: - if self.entity is None: - raise SqueezerException("Entity not found.") - if self.entity["state"] in ["waiting", "running"]: - self.module.set_changed() - self.entity["state"] = self.module.params["state"] - if not self.module.check_mode: - if self.module.params["state"] == "canceled": - self.module.pulp_api.call( - self._cancel_id, - parameters=self.primary_key, - body=self.entity, - ) - self.wait_for(desired_state=self.module.params["state"]) - else: - super(PulpTask, self).process_special() - - def wait_for(self, desired_state="completed"): - self.find() - while self.entity["state"] not in ["completed", "failed", "canceled"]: - sleep(2) - self.read() - if self.entity["state"] != desired_state: - if self.entity["state"] == "failed": - raise Exception( - "Task failed to complete. ({0}; {1})".format( - self.entity["state"], self.entity["error"]["description"] - ) - ) - raise Exception("Task did not reach {0} state".format(desired_state)) - return self.entity - - -class PulpUpload(PulpEntity): - _href = "upload_href" - _create_id = "uploads_create" - _update_id = "uploads_update" - _delete_id = "uploads_delete" - _commit_id = "uploads_commit" - - @classmethod - def chunked_upload(cls, module, path, sha256, size): - offset = 0 - - upload = cls(module, natural_key={}, desired_attributes={"size": size}) - upload.create() - try: - with open(path, "rb") as f: - for chunk in iter(lambda: f.read(CONTENT_CHUNK_SIZE), b""): - actual_chunk_size = len(chunk) - content_range = "bytes {start}-{end}/{size}".format( - start=offset, - end=offset + actual_chunk_size - 1, - size=size, - ) - parameters = upload.primary_key - parameters["Content-Range"] = content_range - uploads = {"file": chunk} - module.pulp_api.call(cls._update_id, parameters=parameters, uploads=uploads) - offset += actual_chunk_size - - response = module.pulp_api.call( - cls._commit_id, - parameters=upload.primary_key, - body={"sha256": sha256}, - ) - task = PulpTask(module, {"pulp_href": response["task"]}).wait_for() - except Exception: - module.pulp_api.call(cls._delete_id, parameters=upload.primary_key) - raise - - artifact_href = task["created_resources"][0] - return artifact_href - - -# Content Guards - - -class PulpContentGuard(PulpEntity): - _list_id = "contentguards_list" - - _name_singular = "content_guard" - _name_plural = "content_guards" - - -class PulpX509CertGuard(PulpEntity): - _list_id = "contentguards_certguard_x509_list" - _read_id = "contentguards_certguard_x509_read" - _create_id = "contentguards_certguard_x509_create" - _update_id = "contentguards_certguard_x509_update" - _partial_update_id = "contentguards_certguard_x509_partial_update" - _delete_id = "contentguards_certguard_x509_delete" - - _name_singular = "content_guard" - _name_plural = "content_guards" - - @property - def _href(self): - return ( - "x509_cert_guard_href" - if self.module.pulp_api.openapi_version == 2 - else "certguard_x509_cert_guard_href" - ) - - -# File entities - - -class PulpFileContent(PulpEntity): - _list_id = "content_file_files_list" - _read_id = "content_file_files_read" - _create_id = "content_file_files_create" - - _name_singular = "content" - _name_plural = "contents" - - @property - def _href(self): - return ( - "file_content_href" - if self.module.pulp_api.openapi_version == 2 - else "file_file_content_href" - ) - - def create(self): - sha256_digest = self.natural_key.pop("sha256") - artifact = PulpArtifact(self.module, {"sha256": sha256_digest}) - artifact.find() - self.natural_key["artifact"] = artifact.href - super(PulpFileContent, self).create() - - if self.module.check_mode: - # Repair the fake result - self.entity.pop("artifact") - self.entity["sha256"] = sha256_digest - - -class PulpFileDistribution(PulpEntity): - _list_id = "distributions_file_file_list" - _read_id = "distributions_file_file_read" - _create_id = "distributions_file_file_create" - _update_id = "distributions_file_file_update" - _partial_update_id = "distributions_file_file_partial_update" - _delete_id = "distributions_file_file_delete" - - _name_singular = "distribution" - _name_plural = "distributions" - - @property - def _href(self): - return ( - "file_distribution_href" - if self.module.pulp_api.openapi_version == 2 - else "file_file_distribution_href" - ) - - -class PulpFilePublication(PulpEntity): - _list_id = "publications_file_file_list" - _read_id = "publications_file_file_read" - _create_id = "publications_file_file_create" - _delete_id = "publications_file_file_delete" - - _name_singular = "publication" - _name_plural = "publications" - - @property - def _href(self): - return ( - "file_publication_href" - if self.module.pulp_api.openapi_version == 2 - else "file_file_publication_href" - ) - - -class PulpFileRemote(PulpRemote): - _list_id = "remotes_file_file_list" - _read_id = "remotes_file_file_read" - _create_id = "remotes_file_file_create" - _update_id = "remotes_file_file_update" - _partial_update_id = "remotes_file_file_partial_update" - _delete_id = "remotes_file_file_delete" - - _name_singular = "remote" - _name_plural = "remotes" - - @property - def _href(self): - return ( - "file_remote_href" - if self.module.pulp_api.openapi_version == 2 - else "file_file_remote_href" - ) - - -class PulpFileRepository(PulpRepository): - _list_id = "repositories_file_file_list" - _read_id = "repositories_file_file_read" - _create_id = "repositories_file_file_create" - _update_id = "repositories_file_file_update" - _partial_update_id = "repositories_file_file_partial_update" - _delete_id = "repositories_file_file_delete" - _sync_id = "repositories_file_file_sync" - _modify_id = "repositories_file_file_modify" - - _name_singular = "repository" - _name_plural = "repositories" - - @property - def _href(self): - return ( - "file_repository_href" - if self.module.pulp_api.openapi_version == 2 - else "file_file_repository_href" - ) - - -class PulpFileRepositoryVersion(PulpEntity): - _list_id = "repositories_file_file_versions_list" - _read_id = "repositories_file_file_versions_read" - _delete_id = "repositories_file_file_versions_delete" - _repair_id = "repositories_file_file_versions_repair" - - _name_singular = "repository_version" - _name_plural = "repository_versions" - - @property - def _href(self): - return ( - "file_repository_version_href" - if self.module.pulp_api.openapi_version == 2 - else "file_file_repository_version_href" - ) - - -# Debian entities - - -class PulpDebDistribution(PulpEntity): - _list_id = "distributions_deb_apt_list" - _read_id = "distributions_deb_apt_read" - _create_id = "distributions_deb_apt_create" - _update_id = "distributions_deb_apt_update" - _partial_update_id = "distributions_deb_apt_partial_update" - _delete_id = "distributions_deb_apt_delete" - - _name_singular = "distribution" - _name_plural = "distributions" - - @property - def _href(self): - return ( - "deb_distribution_href" - if self.module.pulp_api.openapi_version == 2 - else "deb_apt_distribution_href" - ) - - -class PulpDebPublication(PulpEntity): - _list_id = "publications_deb_apt_list" - _read_id = "publications_deb_apt_read" - _create_id = "publications_deb_apt_create" - _delete_id = "publications_deb_apt_delete" - - _name_singular = "publication" - _name_plural = "publications" - - @property - def _href(self): - return ( - "deb_publication_href" - if self.module.pulp_api.openapi_version == 2 - else "deb_apt_publication_href" - ) - - -class PulpDebVerbatimPublication(PulpEntity): - _href = "deb_verbatim_publication_href" - _list_id = "publications_deb_verbatim_list" - _read_id = "publications_deb_verbatim_read" - _create_id = "publications_deb_verbatim_create" - _delete_id = "publications_deb_verbatim_delete" - - _name_singular = "publication" - _name_plural = "publications" - - -class PulpDebRemote(PulpRemote): - _list_id = "remotes_deb_apt_list" - _read_id = "remotes_deb_apt_read" - _create_id = "remotes_deb_apt_create" - _update_id = "remotes_deb_apt_update" - _partial_update_id = "remotes_deb_apt_partial_update" - _delete_id = "remotes_deb_apt_delete" - - _name_singular = "remote" - _name_plural = "remotes" - - @property - def _href(self): - return ( - "deb_remote_href" - if self.module.pulp_api.openapi_version == 2 - else "deb_apt_remote_href" - ) - - -class PulpDebRepository(PulpRepository): - _list_id = "repositories_deb_apt_list" - _read_id = "repositories_deb_apt_read" - _create_id = "repositories_deb_apt_create" - _update_id = "repositories_deb_apt_update" - _partial_update_id = "repositories_deb_apt_partial_update" - _delete_id = "repositories_deb_apt_delete" - _sync_id = "repositories_deb_apt_sync" - _modify_id = "repositories_deb_apt_modify" - - _name_singular = "repository" - _name_plural = "repositories" - - @property - def _href(self): - return ( - "deb_repository_href" - if self.module.pulp_api.openapi_version == 2 - else "deb_apt_repository_href" - ) - - -# Ansible entities - - -class PulpAnsibleDistribution(PulpEntity): - _list_id = "distributions_ansible_ansible_list" - _read_id = "distributions_ansible_ansible_read" - _create_id = "distributions_ansible_ansible_create" - _update_id = "distributions_ansible_ansible_update" - _partial_update_id = "distributions_ansible_ansible_partial_update" - _delete_id = "distributions_ansible_ansible_delete" - - _name_singular = "distribution" - _name_plural = "distributions" - - @property - def _href(self): - return ( - "ansible_distribution_href" - if self.module.pulp_api.openapi_version == 2 - else "ansible_ansible_distribution_href" - ) - - -class PulpAnsibleCollectionRemote(PulpRemote): - _list_id = "remotes_ansible_collection_list" - _read_id = "remotes_ansible_collection_read" - _create_id = "remotes_ansible_collection_create" - _update_id = "remotes_ansible_collection_update" - _partial_update_id = "remotes_ansible_collection_partial_update" - _delete_id = "remotes_ansible_collection_delete" - _href = "ansible_collection_remote_href" - - _name_singular = "remote" - _name_plural = "remotes" - - def __init__(self, *args, **kwargs): - super(PulpAnsibleCollectionRemote, self).__init__(*args, **kwargs) - if self.desired_attributes: - collections = self.desired_attributes.pop("collections", None) - if collections is not None: - collection_list = "\n".join( - (" - " + collection for collection in sorted(collections)) - ) - self.desired_attributes["requirements_file"] = "collections:\n" + collection_list - - def presentation(self, entity): - if entity: - requirements_file = entity.pop("requirements_file", None) - if requirements_file is not None: - entity["collections"] = sorted( - ( - collection.strip("- ") - for collection in requirements_file.split("\n") - if "collections:" not in collection - ) - ) - return entity - - # def __init__(self, *args, **kwargs): - # super(PulpAnsibleCollectionRemote, self).__init__(*args, **kwargs) - # if self.desired_attributes: - # collections = self.desired_attributes.pop("collections", None) - # if collections is not None: - # self.desired_attributes["requirements_file"] = yaml.yaml_dump( - # {"collections": sorted(collections)} - # ).removesuffix("\n") - - # def presentation(self, entity): - # if entity: - # requirements_file = entity.pop("requirements_file", None) - # if requirements_file is not None: - # entity["collections"] = sorted( - # yaml.yaml_load(requirements_file)["collections"] - # ) - # return entity - - -class PulpAnsibleRoleRemote(PulpRemote): - _name_singular = "remote" - _name_plural = "remotes" - - def __init__(self, *args, **kwargs): - super(PulpAnsibleRoleRemote, self).__init__(*args, **kwargs) - if self.module.pulp_api.openapi_version == 2: - self._list_id = "remotes_ansible_ansible_list" - self._read_id = "remotes_ansible_ansible_read" - self._create_id = "remotes_ansible_ansible_create" - self._update_id = "remotes_ansible_ansible_update" - self._partial_update_id = "remotes_ansible_ansible_partial_update" - self._delete_id = "remotes_ansible_ansible_delete" - self._href = "ansible_remote_href" - else: - self._list_id = "remotes_ansible_role_list" - self._read_id = "remotes_ansible_role_read" - self._create_id = "remotes_ansible_role_create" - self._update_id = "remotes_ansible_role_update" - self._partial_update_id = "remotes_ansible_role_partial_update" - self._delete_id = "remotes_ansible_role_delete" - self._href = "ansible_role_remote_href" - - -class PulpAnsibleRepository(PulpRepository): - _list_id = "repositories_ansible_ansible_list" - _read_id = "repositories_ansible_ansible_read" - _create_id = "repositories_ansible_ansible_create" - _update_id = "repositories_ansible_ansible_update" - _partial_update_id = "repositories_ansible_ansible_partial_update" - _delete_id = "repositories_ansible_ansible_delete" - _sync_id = "repositories_ansible_ansible_sync" - - _name_singular = "repository" - _name_plural = "repositories" - - @property - def _href(self): - return ( - "ansible_repository_href" - if self.module.pulp_api.openapi_version == 2 - else "ansible_ansible_repository_href" - ) - - -# Python entities - - -class PulpPythonDistribution(PulpEntity): - _list_id = "distributions_python_pypi_list" - _read_id = "distributions_python_pypi_read" - _create_id = "distributions_python_pypi_create" - _update_id = "distributions_python_pypi_update" - _partial_update_id = "distributions_python_pypi_partial_update" - _delete_id = "distributions_python_pypi_delete" - - _name_singular = "distribution" - _name_plural = "distributions" - - @property - def _href(self): - return ( - "python_distribution_href" - if self.module.pulp_api.openapi_version == 2 - else "python_python_distribution_href" - ) - - -class PulpPythonPublication(PulpEntity): - _list_id = "publications_python_pypi_list" - _read_id = "publications_python_pypi_read" - _create_id = "publications_python_pypi_create" - _delete_id = "publications_python_pypi_delete" - - _name_singular = "publication" - _name_plural = "publications" - - @property - def _href(self): - return ( - "python_publication_href" - if self.module.pulp_api.openapi_version == 2 - else "python_python_publication_href" - ) - - -class PulpPythonRemote(PulpRemote): - _list_id = "remotes_python_python_list" - _read_id = "remotes_python_python_read" - _create_id = "remotes_python_python_create" - _update_id = "remotes_python_python_update" - _partial_update_id = "remotes_python_python_partial_update" - _delete_id = "remotes_python_python_delete" - - _name_singular = "remote" - _name_plural = "remotes" - - @property - def _href(self): - return ( - "python_remote_href" - if self.module.pulp_api.openapi_version == 2 - else "python_python_remote_href" - ) - - @classmethod - def _backport_specifier(cls, specifier): - match_result = re.fullmatch(r"([-\w]*)(.*)", specifier) - return { - "name": match_result.group(1), - "version_specifier": match_result.group(2), - } - - def __init__(self, *args, **kwargs): - super(PulpPythonRemote, self).__init__(*args, **kwargs) - if self.desired_attributes and self.module.pulp_api.openapi_version == 2: - # Hack to support the old format - if "includes" in self.desired_attributes: - self.desired_attributes["includes"] = [ - self._backport_specifier(specifier) - for specifier in self.desired_attributes["includes"] - ] - if "excludes" in self.desired_attributes: - self.desired_attributes["excludes"] = [ - self._backport_specifier(specifier) - for specifier in self.desired_attributes["excludes"] - ] - - def presentation(self, entity): - if entity and self.module.pulp_api.openapi_version == 2: - if "includes" in entity: - entity["includes"] = [ - specifier["name"] + specifier["version_specifier"] - for specifier in entity["includes"] - ] - if "excludes" in entity: - entity["excludes"] = [ - specifier["name"] + specifier["version_specifier"] - for specifier in entity["excludes"] - ] - return entity - - -class PulpPythonRepository(PulpRepository): - _list_id = "repositories_python_python_list" - _read_id = "repositories_python_python_read" - _create_id = "repositories_python_python_create" - _update_id = "repositories_python_python_update" - _partial_update_id = "repositories_python_python_partial_update" - _delete_id = "repositories_python_python_delete" - _sync_id = "repositories_python_python_sync" - - _name_singular = "repository" - _name_plural = "repositories" - - @property - def _href(self): - return ( - "python_repository_href" - if self.module.pulp_api.openapi_version == 2 - else "python_python_repository_href" - ) - - -# RPM entities - - -class PulpRpmDistribution(PulpEntity): - _list_id = "distributions_rpm_rpm_list" - _read_id = "distributions_rpm_rpm_read" - _create_id = "distributions_rpm_rpm_create" - _update_id = "distributions_rpm_rpm_update" - _partial_update_id = "distributions_rpm_rpm_partial_update" - _delete_id = "distributions_rpm_rpm_delete" - - _name_singular = "distribution" - _name_plural = "distributions" - - @property - def _href(self): - return ( - "rpm_distribution_href" - if self.module.pulp_api.openapi_version == 2 - else "rpm_rpm_distribution_href" - ) - - -class PulpRpmPublication(PulpEntity): - _list_id = "publications_rpm_rpm_list" - _read_id = "publications_rpm_rpm_read" - _create_id = "publications_rpm_rpm_create" - _delete_id = "publications_rpm_rpm_delete" - - _name_singular = "publication" - _name_plural = "publications" - - @property - def _href(self): - return ( - "rpm_publication_href" - if self.module.pulp_api.openapi_version == 2 - else "rpm_rpm_publication_href" - ) - - -class PulpRpmRemote(PulpRemote): - _list_id = "remotes_rpm_rpm_list" - _read_id = "remotes_rpm_rpm_read" - _create_id = "remotes_rpm_rpm_create" - _update_id = "remotes_rpm_rpm_update" - _partial_update_id = "remotes_rpm_rpm_partial_update" - _delete_id = "remotes_rpm_rpm_delete" - - _name_singular = "remote" - _name_plural = "remotes" - - @property - def _href(self): - return ( - "rpm_remote_href" - if self.module.pulp_api.openapi_version == 2 - else "rpm_rpm_remote_href" - ) - - -class PulpRpmRepository(PulpRepository): - _list_id = "repositories_rpm_rpm_list" - _read_id = "repositories_rpm_rpm_read" - _create_id = "repositories_rpm_rpm_create" - _update_id = "repositories_rpm_rpm_update" - _partial_update_id = "repositories_rpm_rpm_partial_update" - _delete_id = "repositories_rpm_rpm_delete" - _sync_id = "repositories_rpm_rpm_sync" - - _name_singular = "repository" - _name_plural = "repositories" - - @property - def _href(self): - return ( - "rpm_repository_href" - if self.module.pulp_api.openapi_version == 2 - else "rpm_rpm_repository_href" - ) - - -# Container entities - - -class PulpContainerDistribution(PulpEntity): - _list_id = "distributions_container_container_list" - _read_id = "distributions_container_container_read" - _create_id = "distributions_container_container_create" - _update_id = "distributions_container_container_update" - _partial_update_id = "distributions_container_container_partial_update" - _delete_id = "distributions_container_container_delete" - - _name_singular = "distribution" - _name_plural = "distributions" - - @property - def _href(self): - return ( - "container_distribution_href" - if self.module.pulp_api.openapi_version == 2 - else "container_container_distribution_href" - ) - - -class PulpContainerPublication(PulpEntity): - _list_id = "publications_container_container_list" - _read_id = "publications_container_container_read" - _create_id = "publications_container_container_create" - _delete_id = "publications_container_container_delete" - - _name_singular = "publication" - _name_plural = "publications" - - @property - def _href(self): - return ( - "container_publication_href" - if self.module.pulp_api.openapi_version == 2 - else "container_container_publication_href" - ) - - -class PulpContainerRemote(PulpRemote): - _list_id = "remotes_container_container_list" - _read_id = "remotes_container_container_read" - _create_id = "remotes_container_container_create" - _update_id = "remotes_container_container_update" - _partial_update_id = "remotes_container_container_partial_update" - _delete_id = "remotes_container_container_delete" - - _name_singular = "remote" - _name_plural = "remotes" - - @property - def _href(self): - return ( - "container_remote_href" - if self.module.pulp_api.openapi_version == 2 - else "container_container_remote_href" - ) - - -class PulpContainerRepository(PulpRepository): - _list_id = "repositories_container_container_list" - _read_id = "repositories_container_container_read" - _create_id = "repositories_container_container_create" - _update_id = "repositories_container_container_update" - _partial_update_id = "repositories_container_container_partial_update" - _delete_id = "repositories_container_container_delete" - _sync_id = "repositories_container_container_sync" - - _name_singular = "repository" - _name_plural = "repositories" - - @property - def _href(self): - return ( - "container_repository_href" - if self.module.pulp_api.openapi_version == 2 - else "container_container_repository_href" - ) diff --git a/plugins/modules/access_policy.py b/plugins/modules/access_policy.py index 28268802..4cdc60ca 100644 --- a/plugins/modules/access_policy.py +++ b/plugins/modules/access_policy.py @@ -65,7 +65,6 @@ elements: str extends_documentation_fragment: - pulp.squeezer.pulp.readonly_entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/ansible_distribution.py b/plugins/modules/ansible_distribution.py index 592457de..e77c03a1 100644 --- a/plugins/modules/ansible_distribution.py +++ b/plugins/modules/ansible_distribution.py @@ -40,7 +40,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/ansible_remote.py b/plugins/modules/ansible_remote.py index 7813be83..9f182dd8 100644 --- a/plugins/modules/ansible_remote.py +++ b/plugins/modules/ansible_remote.py @@ -51,7 +51,6 @@ extends_documentation_fragment: - pulp.squeezer.pulp.remote - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/ansible_repository.py b/plugins/modules/ansible_repository.py index 14cfee26..cd0e63f8 100644 --- a/plugins/modules/ansible_repository.py +++ b/plugins/modules/ansible_repository.py @@ -21,7 +21,6 @@ type: str extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/ansible_role.py b/plugins/modules/ansible_role.py index a048a2ef..63f7e36c 100644 --- a/plugins/modules/ansible_role.py +++ b/plugins/modules/ansible_role.py @@ -31,7 +31,6 @@ - digest extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/ansible_sync.py b/plugins/modules/ansible_sync.py index 9d0f041e..78ff30d7 100644 --- a/plugins/modules/ansible_sync.py +++ b/plugins/modules/ansible_sync.py @@ -33,7 +33,6 @@ timeout: default: 3600 extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/api_call.py b/plugins/modules/api_call.py index 0a9b390f..d5592351 100644 --- a/plugins/modules/api_call.py +++ b/plugins/modules/api_call.py @@ -34,7 +34,6 @@ type: str required: false extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/artifact.py b/plugins/modules/artifact.py index a1712fa5..a2203f2a 100644 --- a/plugins/modules/artifact.py +++ b/plugins/modules/artifact.py @@ -27,7 +27,6 @@ default: 33554432 extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/container_distribution.py b/plugins/modules/container_distribution.py index e4d4d078..2f8bafb0 100644 --- a/plugins/modules/container_distribution.py +++ b/plugins/modules/container_distribution.py @@ -45,7 +45,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Mark Goddard (@markgoddard) diff --git a/plugins/modules/container_remote.py b/plugins/modules/container_remote.py index 1c61e234..22c62ee3 100644 --- a/plugins/modules/container_remote.py +++ b/plugins/modules/container_remote.py @@ -36,7 +36,6 @@ extends_documentation_fragment: - pulp.squeezer.pulp.remote - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Mark Goddard (@markgoddard) diff --git a/plugins/modules/container_repository.py b/plugins/modules/container_repository.py index 2ea5bd1a..5f1ab2ed 100644 --- a/plugins/modules/container_repository.py +++ b/plugins/modules/container_repository.py @@ -21,7 +21,6 @@ type: str extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Mark Goddard (@markgoddard) diff --git a/plugins/modules/container_sync.py b/plugins/modules/container_sync.py index 2b43878a..043224e6 100644 --- a/plugins/modules/container_sync.py +++ b/plugins/modules/container_sync.py @@ -25,7 +25,6 @@ timeout: default: 3600 extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Mark Goddard (@markgoddard) diff --git a/plugins/modules/deb_distribution.py b/plugins/modules/deb_distribution.py index 36c3300b..48644abb 100644 --- a/plugins/modules/deb_distribution.py +++ b/plugins/modules/deb_distribution.py @@ -34,7 +34,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/deb_publication.py b/plugins/modules/deb_publication.py index d8b7424e..44452098 100644 --- a/plugins/modules/deb_publication.py +++ b/plugins/modules/deb_publication.py @@ -28,7 +28,6 @@ choices: ["structured", "simple", "simple_and_structured", "verbatim"] extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/deb_remote.py b/plugins/modules/deb_remote.py index 6d0f1eab..acac3b8d 100644 --- a/plugins/modules/deb_remote.py +++ b/plugins/modules/deb_remote.py @@ -53,7 +53,6 @@ extends_documentation_fragment: - pulp.squeezer.pulp.remote - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/deb_repository.py b/plugins/modules/deb_repository.py index d423e63f..52eebb24 100644 --- a/plugins/modules/deb_repository.py +++ b/plugins/modules/deb_repository.py @@ -21,7 +21,6 @@ type: str extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/deb_sync.py b/plugins/modules/deb_sync.py index 1b964b0a..5c6d266f 100644 --- a/plugins/modules/deb_sync.py +++ b/plugins/modules/deb_sync.py @@ -29,7 +29,6 @@ required: false default: false extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/delete_orphans.py b/plugins/modules/delete_orphans.py index aa734f7e..60fe433c 100644 --- a/plugins/modules/delete_orphans.py +++ b/plugins/modules/delete_orphans.py @@ -17,7 +17,6 @@ for cleanup task type: int extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/file_content.py b/plugins/modules/file_content.py index ad8ccc66..700c58b0 100644 --- a/plugins/modules/file_content.py +++ b/plugins/modules/file_content.py @@ -36,7 +36,6 @@ type: str extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/file_distribution.py b/plugins/modules/file_distribution.py index 0840bffa..ed5e1d6b 100644 --- a/plugins/modules/file_distribution.py +++ b/plugins/modules/file_distribution.py @@ -34,7 +34,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/file_publication.py b/plugins/modules/file_publication.py index a44678d8..91bfcd7e 100644 --- a/plugins/modules/file_publication.py +++ b/plugins/modules/file_publication.py @@ -28,7 +28,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/file_remote.py b/plugins/modules/file_remote.py index d0e58935..36bba1fe 100644 --- a/plugins/modules/file_remote.py +++ b/plugins/modules/file_remote.py @@ -22,7 +22,6 @@ extends_documentation_fragment: - pulp.squeezer.pulp.remote - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/file_repository.py b/plugins/modules/file_repository.py index b146705e..a883ded9 100644 --- a/plugins/modules/file_repository.py +++ b/plugins/modules/file_repository.py @@ -21,7 +21,6 @@ type: str extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/file_repository_content.py b/plugins/modules/file_repository_content.py index f29c0df0..ffcc518f 100644 --- a/plugins/modules/file_repository_content.py +++ b/plugins/modules/file_repository_content.py @@ -60,7 +60,6 @@ type: str required: true extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/file_sync.py b/plugins/modules/file_sync.py index 6de3b307..90aff376 100644 --- a/plugins/modules/file_sync.py +++ b/plugins/modules/file_sync.py @@ -23,7 +23,6 @@ type: str required: false extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/purge_tasks.py b/plugins/modules/purge_tasks.py index 2eb6002d..c976c0e0 100644 --- a/plugins/modules/purge_tasks.py +++ b/plugins/modules/purge_tasks.py @@ -25,7 +25,6 @@ - completed - failed extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/python_distribution.py b/plugins/modules/python_distribution.py index f693b886..9542ec1d 100644 --- a/plugins/modules/python_distribution.py +++ b/plugins/modules/python_distribution.py @@ -45,7 +45,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/python_publication.py b/plugins/modules/python_publication.py index 05617191..eae4a72b 100644 --- a/plugins/modules/python_publication.py +++ b/plugins/modules/python_publication.py @@ -23,7 +23,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/python_remote.py b/plugins/modules/python_remote.py index 6c607b4d..65228e3d 100644 --- a/plugins/modules/python_remote.py +++ b/plugins/modules/python_remote.py @@ -36,7 +36,6 @@ extends_documentation_fragment: - pulp.squeezer.pulp.remote - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/python_repository.py b/plugins/modules/python_repository.py index 984f5be7..d78e532c 100644 --- a/plugins/modules/python_repository.py +++ b/plugins/modules/python_repository.py @@ -21,7 +21,6 @@ type: str extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/python_sync.py b/plugins/modules/python_sync.py index 087e0ea6..636583f1 100644 --- a/plugins/modules/python_sync.py +++ b/plugins/modules/python_sync.py @@ -23,7 +23,6 @@ type: str required: true extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/repair.py b/plugins/modules/repair.py index 18338618..2222d9f2 100644 --- a/plugins/modules/repair.py +++ b/plugins/modules/repair.py @@ -22,7 +22,6 @@ type: int required: false extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/rpm_distribution.py b/plugins/modules/rpm_distribution.py index f3aca9a8..56c18828 100644 --- a/plugins/modules/rpm_distribution.py +++ b/plugins/modules/rpm_distribution.py @@ -53,7 +53,6 @@ version_added: "0.0.16" extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Jacob Floyd (@cognifloyd) diff --git a/plugins/modules/rpm_publication.py b/plugins/modules/rpm_publication.py index 54364b5d..712ac81c 100644 --- a/plugins/modules/rpm_publication.py +++ b/plugins/modules/rpm_publication.py @@ -23,7 +23,6 @@ required: false extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Jacob Floyd (@cognifloyd) diff --git a/plugins/modules/rpm_remote.py b/plugins/modules/rpm_remote.py index 408667c7..03b10baa 100644 --- a/plugins/modules/rpm_remote.py +++ b/plugins/modules/rpm_remote.py @@ -23,7 +23,6 @@ extends_documentation_fragment: - pulp.squeezer.pulp.remote - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Jacob Floyd (@cognifloyd) diff --git a/plugins/modules/rpm_repository.py b/plugins/modules/rpm_repository.py index b77e109b..759e918b 100644 --- a/plugins/modules/rpm_repository.py +++ b/plugins/modules/rpm_repository.py @@ -48,7 +48,6 @@ version_added: "0.0.16" extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Jacob Floyd (@cognifloyd) diff --git a/plugins/modules/rpm_sync.py b/plugins/modules/rpm_sync.py index 4e1a547e..2f204fa6 100644 --- a/plugins/modules/rpm_sync.py +++ b/plugins/modules/rpm_sync.py @@ -46,7 +46,6 @@ default: true extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Jacob Floyd (@cognifloyd) diff --git a/plugins/modules/status.py b/plugins/modules/status.py index ffa805fa..beff4b67 100644 --- a/plugins/modules/status.py +++ b/plugins/modules/status.py @@ -12,7 +12,6 @@ - "This module queries a pulp api server instance for installed plugins and service connectivity." options: {} extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/task.py b/plugins/modules/task.py index 9558dcee..0b0a87be 100644 --- a/plugins/modules/task.py +++ b/plugins/modules/task.py @@ -24,7 +24,6 @@ - canceled - completed extends_documentation_fragment: - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg) diff --git a/plugins/modules/x509_cert_guard.py b/plugins/modules/x509_cert_guard.py index 22a732be..59a2613f 100644 --- a/plugins/modules/x509_cert_guard.py +++ b/plugins/modules/x509_cert_guard.py @@ -25,7 +25,6 @@ type: str extends_documentation_fragment: - pulp.squeezer.pulp.entity_state - - pulp.squeezer.pulp.glue - pulp.squeezer.pulp author: - Matthias Dellweg (@mdellweg)