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 __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()
Example #3
0
 def __init__(self, module, host, login_account, login_password):
     self.check_hpe_ilorest(module)
     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.get_resource_directory(module)
     self.MESSAGE_REGISTRIES = self.get_base_registry(module)
Example #4
0
    def getgen(self, gen=None, url=None, username=None, password=None, logger=None):
        """Function designed to verify the servers platform

        :param url: The URL to perform the request on.
        :type url: str.
        :param logger: The logger handler.
        :type logger: str.

        """

        self.url = url
        if not gen:
            try:
                redfishclient = redfish_client(base_url=self.url, \
                                   username=username, password=password, \
                                   default_prefix="/redfish/v1/", is_redfish=True,\
                                   cache=False)
                rootresp = redfishclient.root
                redfishclient.logout()
            except SecurityStateError as excp:
                raise excp
            except InvalidCredentialsError:
                raise
            except Exception:
                excep = None
                try:
                    restclient = rest_client(base_url=self.url, username=username, \
                                     password=password, default_prefix="/rest/v1")
                    rootresp = restclient.root
                    restclient.logout()
                except Exception as excep:
                    logger = logger if not logger else LOGGER
                    logger.error("Gen get rest error:"+str(excep)+"\n")
                if excep:
                    raise

            self.ilogen = None

            try:
                self.ilogen = rootresp["Oem"]["Hp"]["Manager"][0]["ManagerType"]
            except:
                self.ilogen = rootresp["Oem"]["Hpe"]["Manager"][0]["ManagerType"]
        else:
            self.ilogen = int(gen)
        try:
            if not isinstance(self.ilogen, int):
                self.ilogen = self.ilogen.split(' ')[-1]
                self.flagiften = False
            if int(self.ilogen) >= 5:
                self.flagiften = True
        except:
            raise UnableToObtainIloVersionError("Unable to find the iloversion")

        if self.flagiften:
            self.defs = Definevalstenplus()
        else:
            self.defs = DefinevalsNine()
Example #5
0
 def login(self):
     '''Login to iLO.
     
     Call this method right after iLO() and before any iLO.get_xxx().
     '''
     self.rest_obj = redfish.rest_client( \
         base_url = self.ilo_host, \
         username = self.ilo_user, \
         password = self.ilo_password, \
         default_prefix = '/rest/v1')
     self.rest_obj.login(auth='session')
Example #6
0
    def get_ilorest_client(self, server_hardware):
        """Generate an instance of the iLORest library client.

        :param: server_hardware: a dict representing the server hardware
        :returns: an instance of the iLORest client
        """
        remote_console = (
            self.hponeview_client.server_hardware.get_remote_console_url(
                server_hardware.get('uri')))
        host_ip, ilo_token = common.get_ilo_access(remote_console)
        base_url = "https://%s:%s" % (host_ip, ILOREST_BASE_PORT)
        return redfish.rest_client(base_url=base_url, sessionkey=ilo_token)
    def getgen(self, url=None, logger=None):
        """Function designed to verify the servers platform

        :param url: The URL to perform the request on.
        :type url: str.
        :param logger: The logger handler.
        :type logger: str.

        """
        self.url = url

        try:
            redfishclient = redfish_client(base_url=self.url, \
                               username=None, password=None, \
                               default_prefix="/redfish/v1/", is_redfish=True)
            response = redfishclient.get(path="/redfish/v1/")
        except SecurityStateError as excp:
            raise excp
        except Exception as excp:
            try:
                restclient = rest_client(base_url=self.url, username=None, \
                                 password=None, default_prefix="/rest/v1")
                response = restclient.get(path="/rest/v1")
            except Exception as excep:
                logger = logger if not logger else LOGGER
                if type(excep) != type(excp):
                    logger.error("Gen get rest error:" + str(excep) + "\n")
                raise excp

        self.ilogen = None

        try:
            self.ilogen = response.dict["Oem"]["Hp"]["Manager"][0]\
                                                                ["ManagerType"]
        except:
            self.ilogen = response.dict["Oem"]["Hpe"]["Manager"][0]\
                                                                ["ManagerType"]

        try:
            self.ilogen = self.ilogen.split(' ')[-1]
            self.flagiften = False
            if int(self.ilogen) >= 5:
                self.flagiften = True
        except:
            raise UnableToObtainIloVersionError(
                "Unable to find the iloversion")

        if self.flagiften:
            self.defs = Definevalstenplus()
        else:
            self.defs = DefinevalsNine()
Example #8
0
import sys
import redfish

# When running on the server locally use the following commented values
# iLO_host = "blobstore://."
# iLO_account = "None"
# iLO_password = "******"

# When running remotely connect using the iLO address, iLO account name,
# and password to send https requests
iLO_host = "https://10.0.0.100"
login_account = "admin"
login_password = "******"

# Create a REST object
REST_OBJ = redfish.rest_client(base_url=iLO_host,username=login_account, \
                      password=login_password, default_prefix='/rest/v1')

# Login into the server and create a session
REST_OBJ.login(auth="session")

# Do a GET on a given path
response = REST_OBJ.get("/rest/v1/systems/1", None)

# Print out the response
sys.stdout.write("%s\n" % response)

# Logout of the current session
REST_OBJ.logout()
import sys
import redfish

# When running on the server locally use the following commented values
# iLO_host = "blobstore://."
# iLO_account = "None"
# iLO_password = "******"

# When running remotely connect using the iLO address, iLO account name, 
# and password to send https requests
iLO_host = "https://10.0.0.100"
login_account = "admin"
login_password = "******"

# Create a REST object
REST_OBJ = redfish.rest_client(base_url=iLO_host,username=login_account, \
                      password=login_password, default_prefix='/rest/v1')

# Login into the server and create a session
REST_OBJ.login(auth="session")

# Do a GET on a given path
response = REST_OBJ.get("/rest/v1/systems/1", None)

# Print out the response
sys.stdout.write("%s\n" % response)

# Logout of the current session
REST_OBJ.logout()
Example #10
0
 def __init__(self, host, login_account, login_password):
     self.rest_client = rest_client(base_url=host, \
                       username=login_account, password=login_password, \
                       default_prefix="/redfish/v1")
     self.rest_client.login(auth=AuthMethod.SESSION)
import sys
import redfish

# When running on the server locally use the following commented values
# iLO_host = "blobstore://."
# iLO_account = "None"
# iLO_password = "******"

# When running remotely connect using the iLO address, iLO account name,
# and password to send https requests
iLO_host = "https://10.0.0.100"
login_account = "admin"
login_password = "******"

# Create a REST object
REST_OBJ = redfish.rest_client(base_url=iLO_host,username=login_account, \
                      password=login_password)

# Login into the server and create a session
REST_OBJ.login(auth="session")

# Do a GET on a given path
response = REST_OBJ.get("/rest/v1/systems/1", None)

# Print out the response
sys.stdout.write("%s\n" % response)

# Logout of the current session
REST_OBJ.logout()