34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
import logging
|
|
import httpx
|
|
|
|
def round_bytes(size_in_bytes: int) -> str:
|
|
# Helper function to convert bytes to a human-readable format
|
|
for unit in ["B", "KiB", "MiB", "GiB", "TiB", "PiB"]:
|
|
if size_in_bytes < 1024:
|
|
return f"{size_in_bytes:.2f}{unit}"
|
|
size_in_bytes /= 1024
|
|
return f"{size_in_bytes:.2f}EB"
|
|
|
|
|
|
async def get_data_from_ontap(client, logger, hostname: str, username: str, password: str, endpoint: str, query_string: str = ""):
|
|
url = f"https://{hostname}/api/{endpoint}"
|
|
if query_string:
|
|
url += f"?{query_string}"
|
|
async with client as _client:
|
|
try:
|
|
logger.debug(f"Fetching data from ONTAP: {url}")
|
|
response = await _client.get(url, auth=(username, password))
|
|
response.raise_for_status()
|
|
return response.json()
|
|
except httpx.HTTPError as e:
|
|
logger.error(f"HTTP error occurred: {e}")
|
|
return None
|
|
|
|
def setup_logging() -> None:
|
|
"""Configure logging for the application"""
|
|
logging.basicConfig(
|
|
level=logging.DEBUG,
|
|
format="[%(asctime)s] [%(levelname)5s] %(message)s"
|
|
)
|
|
print(f"Logger is initialized.")
|