builder: wrap http calls

This is so that we can add retry logic when doing SSO/OAuth2.
This commit is contained in:
Christian Kellner 2022-01-19 13:13:04 +01:00
parent 1530f91794
commit ca05cc9f00

View file

@ -24,7 +24,7 @@ import time
import urllib.parse import urllib.parse
from string import Template from string import Template
from typing import Dict, List from typing import Dict, List, Optional
import requests import requests
import koji import koji
@ -209,11 +209,20 @@ class Client:
return certs return certs
def request(self, method: str, url: str, js: Optional[Dict] = None):
return self.http.request(method, url, json=js)
def get(self, url: str) -> requests.Response:
return self.request("GET", url)
def post(self, url: str, js: Optional[Dict] = None):
return self.request("POST", url, js=js)
def compose_create(self, compose_request: ComposeRequest): def compose_create(self, compose_request: ComposeRequest):
url = urllib.parse.urljoin(self.url, "compose") url = urllib.parse.urljoin(self.url, "compose")
data = compose_request.as_dict() data = compose_request.as_dict()
res = self.http.post(url, json=data) res = self.post(url, js=data)
if res.status_code != 201: if res.status_code != 201:
body = res.content.decode("utf-8").strip() body = res.content.decode("utf-8").strip()
@ -226,7 +235,7 @@ class Client:
def compose_status(self, compose_id: str): def compose_status(self, compose_id: str):
url = urllib.parse.urljoin(self.url, f"compose/{compose_id}") url = urllib.parse.urljoin(self.url, f"compose/{compose_id}")
res = self.http.get(url) res = self.get(url)
if res.status_code != 200: if res.status_code != 200:
body = res.content.decode("utf-8").strip() body = res.content.decode("utf-8").strip()
@ -238,7 +247,7 @@ class Client:
def compose_logs(self, compose_id: str): def compose_logs(self, compose_id: str):
url = urllib.parse.urljoin(self.url, f"compose/{compose_id}/logs") url = urllib.parse.urljoin(self.url, f"compose/{compose_id}/logs")
res = self.http.get(url) res = self.get(url)
if res.status_code != 200: if res.status_code != 200:
body = res.content.decode("utf-8").strip() body = res.content.decode("utf-8").strip()
@ -250,7 +259,7 @@ class Client:
def compose_manifests(self, compose_id: str): def compose_manifests(self, compose_id: str):
url = urllib.parse.urljoin(self.url, f"compose/{compose_id}/manifests") url = urllib.parse.urljoin(self.url, f"compose/{compose_id}/manifests")
res = self.http.get(url) res = self.get(url)
if res.status_code != 200: if res.status_code != 200:
body = res.content.decode("utf-8").strip() body = res.content.decode("utf-8").strip()