From f234ef2015d95a33fb622c86e84ab0c45dc1442b Mon Sep 17 00:00:00 2001 From: Gentile G Date: Thu, 25 Apr 2024 10:49:47 +0200 Subject: [PATCH] Adding generic requests method --- main.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/main.py b/main.py index 3b46d3e..846fb42 100644 --- a/main.py +++ b/main.py @@ -25,16 +25,26 @@ class PortainerClient: "X-API-Key": self.access_token } - def list_stacks(self): - response = requests.get(f"{self.api_url}/stacks", headers=self._get_headers()) + def _get(self, uri): + response = requests.get(f"{self.api_url}/{uri}", headers=self._get_headers()) return response.json() + def list_stacks(self): + return self._get('stacks') + def get_stack(self, stack_id): - response = requests.get(f"{self.api_url}/stacks/{stack_id}", headers=self._get_headers()) - return response.json() + return self._get(f'stacks/{stack_id}') def get_stack_file(self, stack_id): - response = requests.get(f"{self.api_url}/stacks/{stack_id}/file", headers=self._get_headers()) + return self._get(f'stacks/{stack_id}/file') + + def _put(self, uri, payload): + response = requests.put( + f"{self.api_url}/uri", + headers=self._get_headers(), + json=payload + ) + return response.json() def upgrade_stack(self, stack): @@ -45,22 +55,12 @@ class PortainerClient: "StackFileContent": file_response["StackFileContent"], "Env": stack["Env"] } - response = requests.put( - f"{self.api_url}/stacks/{stack['Id']}?endpointId={stack['EndpointId']}", - headers=self._get_headers(), - json=payload - ) - return response.json() + return self._put(f"stacks/{stack['Id']}?endpointId={stack['EndpointId']}", payload) def list_stack_containers(self, endpoint, stack_name): filters = '{"label":["com.docker.compose.project=' + stack_name + '"]}' - response = requests.get( - f"{self.api_url}/endpoints/{endpoint}/docker/containers/json?all=1&filters={filters}", - headers=self._get_headers() - ) - - return response.json() + return self._get(f'endpoints/{endpoint}/docker/containers/json?all=1&filters={filters}') def update_image(self, endpoint, image): response = requests.post(