diff --git a/cbcmgr/cb_capella.py b/cbcmgr/cb_capella.py index 009b08c..9abca6a 100644 --- a/cbcmgr/cb_capella.py +++ b/cbcmgr/cb_capella.py @@ -431,7 +431,7 @@ def list_users(self): return results def get_user(self, name: str = None, email: str = None): - results = self.api_get(f"/v4/organizations/{self.organization_id}/users").json() + results = self.capella_get(f"/v4/organizations/{self.organization_id}/users") return next((u for u in results if u.get('name') == name or u.get('email') == email), None) diff --git a/cbcmgr/httpsessionmgr.py b/cbcmgr/httpsessionmgr.py index 204649a..278081b 100644 --- a/cbcmgr/httpsessionmgr.py +++ b/cbcmgr/httpsessionmgr.py @@ -266,6 +266,19 @@ def api_get(self, endpoint, items=None): self._response = response_text return self + def capella_get(self, endpoint): + page = 1 + items = [] + while True: + url = f"{self.url_prefix}{endpoint}?page={page}&perPage=100" + response = self.session.get(url, auth=self.auth_class, verify=False, timeout=self.timeout) + response_json = json.loads(response.text) + items.extend(response_json.get('data')) + page = response_json.get('cursor', {}).get('pages', {}).get('next', 0) + if page == 0: + break + return items + def api_post(self, endpoint, body): response = self.session.post(self.url_prefix + endpoint, auth=self.auth_class,