Skip to content
Snippets Groups Projects
Commit d9c05675 authored by Fahrudin Halilovic's avatar Fahrudin Halilovic
Browse files

get max page size and use it in API calls to AWX

parent dfd65692
No related branches found
No related tags found
1 merge request!17get max page size and use it in API calls to AWX
Pipeline #205121 failed
...@@ -57,14 +57,30 @@ class AWXInventory(NetBoxModel): ...@@ -57,14 +57,30 @@ class AWXInventory(NetBoxModel):
else: else:
return None return None
def get_max_page_size(self):
url = urljoin(
self.awx.url,
f"/api/v2/inventories/{self.inventory_id}/hosts/",
)
r = requests.options(
url=url,
headers=self.awx.get_headers(),
verify=False,
)
r.raise_for_status()
data = r.json()
return data.get("max_page_size")
def get_all_hosts(self): def get_all_hosts(self):
""" """
Retrieves all hosts from the AWX inventory. Retrieves all hosts from the AWX inventory.
""" """
hosts = {} hosts = {}
page = 1 page = 1
max_page_size = self.get_max_page_size()
while True: while True:
params = {"page": page} params = {"page": page, "page_size": max_page_size}
r = requests.get( r = requests.get(
url=urljoin( url=urljoin(
self.awx.url, self.awx.url,
...@@ -141,8 +157,9 @@ class AWXInventory(NetBoxModel): ...@@ -141,8 +157,9 @@ class AWXInventory(NetBoxModel):
""" """
groups = {} groups = {}
page = 1 page = 1
max_page_size = self.get_max_page_size()
while True: while True:
params = {"page": page} params = {"page": page, "page_size": max_page_size}
r = requests.get( r = requests.get(
url=urljoin( url=urljoin(
self.awx.url, self.awx.url,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment