From 32f10e1c43d7d62bcca0cfd494f8066c591967c5 Mon Sep 17 00:00:00 2001 From: Vladimir Sedmik Date: Wed, 13 Mar 2024 17:31:27 +0100 Subject: [PATCH] Add support for the reclaim_space endpoint --- nailgun/entities.py | 20 ++++++++++++++++++++ tests/test_entities.py | 2 ++ 2 files changed, 22 insertions(+) diff --git a/nailgun/entities.py b/nailgun/entities.py index 359ff640..2f9d59de 100644 --- a/nailgun/entities.py +++ b/nailgun/entities.py @@ -1004,6 +1004,24 @@ def content_update_counts(self, synchronous=True, timeout=None, **kwargs): response = client.post(self.path('content_update_counts'), **kwargs) return _handle_response(response, self._server_config, synchronous, timeout) + def content_reclaim_space(self, synchronous=True, timeout=None, **kwargs): + """Reclaim space for all on_demand repos synced on the Capsule. + + :param synchronous: What should happen if the server returns an HTTP + 202 (accepted) status code? Wait for the task to complete if + ``True``. Immediately return the server's response otherwise. + :param timeout: Maximum number of seconds to wait until timing out. + Defaults to ``nailgun.entity_mixins.TASK_TIMEOUT``. + :param kwargs: Arguments to pass to requests. + :returns: The server's response, with all JSON decoded. + :raises: ``requests.exceptions.HTTPError`` If the server responds with + an HTTP 4XX or 5XX message. + """ + kwargs = kwargs.copy() + kwargs.update(self._server_config.get_client_kwargs()) + response = client.post(self.path('content_reclaim_space'), **kwargs) + return _handle_response(response, self._server_config, synchronous, timeout) + def path(self, which=None): """Extend ``nailgun.entity_mixins.Entity.path``. @@ -1017,6 +1035,8 @@ def path(self, which=None): /capsules//content/counts content_update_counts /capsules//content/update_counts + content_reclaim_space + /capsules//content/reclaim_space ``super`` is called otherwise. diff --git a/tests/test_entities.py b/tests/test_entities.py index d61718e4..dd22fada 100644 --- a/tests/test_entities.py +++ b/tests/test_entities.py @@ -568,6 +568,7 @@ def test_capsule(self): 'content_sync', 'content_counts', 'content_update_counts', + 'content_reclaim_space', ): with self.subTest(which): path = capsule.path(which) @@ -2108,6 +2109,7 @@ def setUpClass(cls): (entities.Capsule(**generic).content_sync, 'post'), (entities.Capsule(**generic).content_counts, 'get'), (entities.Capsule(**generic).content_update_counts, 'post'), + (entities.Capsule(**generic).content_reclaim_space, 'post'), (entities.Role(**generic).clone, 'post'), (entities.ProvisioningTemplate(**generic).build_pxe_default, 'post'), (entities.ProvisioningTemplate(**generic).clone, 'post'),