new_username: '******' new_password: '******' ''' import sys from redfish.rest.v1 import ServerDownOrUnreachableError #import sys import logging import json from redfish import AuthMethod, redfish_logger, redfish_client #Config logger used by HPE Restful library LOGGERFILE = "RedfishApiExamples.log" LOGGERFORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" LOGGER = redfish_logger(LOGGERFILE, LOGGERFORMAT, logging.INFO) LOGGER.info("HPE Redfish API examples") class RedfishObject(object): def __init__(self, host, login_account, login_password): try: self.redfish_client = redfish_client(base_url=host, \ username=login_account, password=login_password, \ default_prefix="/redfish/v1") except: raise self.redfish_client.login(auth=AuthMethod.SESSION) self.SYSTEMS_RESOURCES = self.ex1_get_resource_directory() self.MESSAGE_REGISTRIES = self.ex2_get_base_registry() def __del__(self):
import os import sys import json import argparse from random import randint from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError import logging from redfish import redfish_logger from ilorest_util import get_resource_directory LOGGERFILE = "RedfishApiExamples.log" LOGGERFORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" LOGGER = redfish_logger(LOGGERFILE, LOGGERFORMAT, logging.DEBUG) def upload_firmware(_redfishobj, firmware_loc, comp_type, update_repo=True, update_target=False): resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #resource directory is not available so we will navigate through paths manually update_service_uri = _redfishobj.root.obj['UpdateService']['@odata.id'] else: #obtain all account instances from resource directory for instance in resource_instances:
# Copyright Notice: # Copyright 2016-2019 DMTF. All rights reserved. # License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/python-redfish-library/blob/master/LICENSE.md import os import sys import json import logging from redfish import redfish_logger from redfish.ris import RmcApp, JSONEncoder #Config logger used by Restful library LOGGERFILE = "RedfishApiExamples.log" LOGGERFORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" LOGGER = redfish_logger(LOGGERFILE, LOGGERFORMAT, logging.ERROR) LOGGER.info("Redfish API examples") # When running remotely connect using the address, account name, # and password to send https requests login_host = "https://192.168.1.100" login_account = "admin" login_password = "******" # Creating RMC object RMCOBJ = RmcApp([]) # Create cache directory config_dir = r'C:\DATA\redfish' RMCOBJ.config.set_cachedir(os.path.join(config_dir, 'cache')) cachedir = RMCOBJ.config.get_cachedir()
* HTTP status codes other than 200 OK. Can your code handle an HTTP 500 Internal Server Error with no other info? * URIs are case insensitive * HTTP header names are case insensitive * JSON Properties and Enum values are case sensitive * A client should be tolerant of any set of HTTP headers the service returns """ import sys import json import logging from redfish import AuthMethod, rest_client, redfish_logger #Config logger used by HPE Restful library LOGGERFILE = "RestfulApiExamples.log" LOGGERFORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" LOGGER = redfish_logger(LOGGERFILE, LOGGERFORMAT, logging.INFO) LOGGER.info("HPE Restful API examples") class RestObject(object): def __init__(self, host, login_account, login_password): self.rest_client = rest_client(base_url=host, \ username=login_account, password=login_password, \ default_prefix="/rest/v1") self.rest_client.login(auth=AuthMethod.SESSION) self.SYSTEMS_RESOURCES = self.ex1_get_resource_directory() self.MESSAGE_REGISTRIES = self.ex2_get_base_registry() def __del__(self): self.rest_client.logout()