From 30ee3440ff6588d1d1f5ef35fd557cda4e167a88 Mon Sep 17 00:00:00 2001 From: Marco Lucarelli Date: Mon, 17 Nov 2025 08:48:10 +0100 Subject: [PATCH] test hpe redfish implementation --- python/redfish-api/get_power_redfishapi.py | 34 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/python/redfish-api/get_power_redfishapi.py b/python/redfish-api/get_power_redfishapi.py index 563700c..4a4577b 100644 --- a/python/redfish-api/get_power_redfishapi.py +++ b/python/redfish-api/get_power_redfishapi.py @@ -4,13 +4,41 @@ import urllib3 urllib3.disable_warnings() -username = "" -password = "" +username = "marco.lucarelli@abacus.ch" +password = "secret" # host = sys.argv[1] def get_power_data(host): """Redfish API Chassis Power""" + url = f"https://{host}.mgmt.wtb1.ch.abainfra.net/redfish/v1/" + response = requests.get(url, verify=False) + response.raise_for_status() + data = response.json() + vendor = data.get("Vendor", "") + is_hpe = vendor.strip().upper().startswith("HPE") + if is_hpe: + response = "" # just to be sure + login_url = f"https://{host}.mgmt.wtb1.ch.abainfra.net/redfish/v1/SessionService/Sessions" + payload = {"UserName": username, "Password": password} + response = requests.post(login_url, json=payload, verify=False, timeout=10) + print(response) + response.raise_for_status() + if response.status_code == 201: + token = response.headers.get("X-Auth-Token") + if not token: + raise RuntimeError("No X-Auth-Token in login response") + headers = {"X-Auth-Token": token} + url = f"https://{host}.mgmt.wtb1.ch.abainfra.net/redfish/v1/Chassis/1/Power" + response = requests.get(url, verify=False, headers=headers) + if response.status_code == 200: + data = response.json() + print(data) + print(response) + print(vendor) + print(is_hpe) + quit() + url = f"https://{host}.mgmt.wtb1.ch.abainfra.net/redfish/v1/Chassis/1/Power" response = requests.get(url, auth=(username, password), verify=False) @@ -29,7 +57,7 @@ def get_power_data(host): # loop over each hosts hosts = [ - "srv1-112", + "srv1-110", ] for host in hosts: get_power_data(host)