"""Usage: power.py [-a account] [-p password] [-u iLO_https_url] Show power consumption Options: -a account ILO account -p password ILO password -u iLO_https_url ILO HTTPS URL (ie. https://X.X.X.X) """ from docopt import docopt arguments = docopt(__doc__) # Get default configuration from rf import config # Set config args if provided if 'arguments' in locals(): if arguments['-u']: config.iLO_https_url = arguments['-u'] if arguments['-p']: config.iLO_password = arguments['-p'] if arguments['-a']: config.iLO_account = arguments['-a'] # Import drill function to iterate API from rf.rf import drill drill('/redfish/v1/Chassis/*Members*/Power/', [['PowerControl', 'PowerCapacityWatts'], ['PowerControl', 'PowerConsumedWatts'], ['PowerControl', 'PowerMetrics/AverageConsumedWatts']])
from rf import config from rf.rf import drill import sys from loguru import logger from time import sleep # Monitor monitor_log = 'logs/monitor.log' monitor_frequency = 5 monitor = { '/redfish/v1/Systems/*Members*': ['Oem/Hpe/SystemUsage/CPUUtil', 'Oem/Hpe/SystemUsage/MemoryBusUtil'], '/redfish/v1/Chassis/*Members*': ['Status/Health'] } logger.remove() logger.add(sys.stdout, format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | {message}") logger.add(monitor_log, format="{time:YYYY-MM-DD HH:mm:ss} | {message}") while True: for key, value in monitor.items(): result = drill(key, value, output=False) for k, v in result.items(): logger.info(f"{k}, {v}") sleep(monitor_frequency)
from rf.rf import drill drill('/redfish/v1/Chassis/*Members*/*Links/Drives*/', [ 'Oem/Hpe/TemperatureStatus/Health', 'Oem/Hpe/TemperatureStatus/State', ])
if 'arguments' in locals(): if arguments['-u']: config.iLO_https_url = arguments['-u'] if arguments['-p']: config.iLO_password = arguments['-p'] if arguments['-a']: config.iLO_account = arguments['-a'] # Import drill function to iterate API from rf.rf import drill # Get host assets drill('/redfish/v1/Systems/*Members*', [ 'Model', 'Manufacturer', 'SerialNumber', 'BiosVersion', 'Oem/Hpe/PowerOnMinutes', # 'Oem/Hpe/HostOS/OsName', # 'Oem/Hpe/HostOS/OsVersion', 'MemorySummary/TotalSystemMemoryGiB', 'ProcessorSummary/Count', 'ProcessorSummary/Model', 'Oem/Hpe/SystemUsage/CPUUtil' ]) print("\nEthernet Interfaces:") drill('/redfish/v1/Systems/*Members*/*EthernetInterfaces*/*Members*', [ 'Name', ['IPv4Addresses', 'Address'], 'MACAddress', 'SpeedMbps' ]) print("\nStorage:") drill('/redfish/v1/Chassis/*Members*/*Links/Drives*', [
Show fan data Options: -a account ILO account -p password ILO password -u iLO_https_url ILO HTTPS URL (ie. https://X.X.X.X) """ from docopt import docopt arguments = docopt(__doc__) # Get default configuration from rf import config # Set config args if provided if 'arguments' in locals(): if arguments['-u']: config.iLO_https_url = arguments['-u'] if arguments['-p']: config.iLO_password = arguments['-p'] if arguments['-a']: config.iLO_account = arguments['-a'] # Import drill function to iterate API from rf.rf import drill drill('/redfish/v1/Chassis/*Members*/Thermal/', [ ['Fans', 'Name'], ['Fans', 'Status/Health'], ['Fans', 'Status/State'] ])