import os
from pprint import pprint
import requests
url_api = "http://10.150.0.19/api/v1/"
def login(username: str, password: str) -> str:
req = {"username": username, "password": password}
res = requests.post(url_api + "login/", json=req)
if res.status_code != 200:
pprint(res.json())
raise PermissionError("Login failed")
return res.json().get("access")
def get_assets(token, filter, type):
# type = host, network, zone, tenant, account
headers = {"Authorization": f"Bearer {token}"}
req = {
"query": "",
"asset_type": "host",
"page_size": 10,
"sort_order": [],
"sort_by": [],
"page": 1,
}
res = requests.post(url_api + "jql/query", json=req, headers=headers)
if res.status_code != 200:
pprint(res.json())
raise ValueError("Query failed")
return (
res.json().get("results"),
res.json().get("count"),
res.json().get("current_page"),
res.json().get("total_pages"),
)
if __name__ == "__main__":
user = os.environ.get("USER")
password = os.environ.get("PASSWORD")
assert all([user, password]), "User or password is empty"
token = login(user, password)
assert token, "Token is empty"
assets, count, current_page, total_page = get_assets(token, "", "host")