GithubHelp home page GithubHelp logo

hewlettpackard / python-ilorest-library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dmtf/python-redfish-library

181.0 41.0 88.0 3.26 MB

Python library for interacting with devices which support a Redfish Service

License: Apache License 2.0

Batchfile 0.04% Python 95.28% Makefile 3.80% PowerShell 0.85% Shell 0.03%

python-ilorest-library's Introduction

python-ilorest-library

image

image

image

image

depth

1

Description ----------The python-ilorest-library is a python library built for interacting with the Redfish API remotely to any BMC that implements a Redfish API or any HPE system locally. The library also supports HPE's legacy REST API. Go to the library documentation for more details.

HPE RESTful API for iLO is a RESTful application programming interface for the management of iLO and iLO Chassis Manager based HPE servers. REST (Representational State Transfer) is a web based software architectural style consisting of a set of constraints that focuses on a system's resources. iLO REST library performs the basic HTTP operations GET, POST, PUT, PATCH and DELETE on resources using the HATEOAS (Hypermedia as the Engine of Application State) REST architecture. The API allows the clients to manage and interact with iLO through a fixed URL and several URIs. Go to the API documentation for more details.

Installing

pip install python-ilorest-library

Building from zip file source ~~~~~~~~~~~~~~~~~~~~~~~~~

python setup.py sdist --formats=zip (this will produce a .zip file)
cd dist
pip install python-ilorest-library-x.x.x.zip

Including socks support (Version 2.5 or greater) ~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: console

pip install python-ilorest-library[socks]

python setup.py sdist --formats=zip (this will produce a .zip file)
cd dist
pip install python-ilorest-library-x.x.x.zip[socks]

Requirements

Remote communication

No special requirements.

Inband communication

To enable support for inband communications, you must download the DLL/SO for your system. By downloading, you agree to the terms and conditions of the Hewlett Packard Enterprise Software License Agreement.

It must be placed in your working environment path.

Windows Chif Driver Download: ilorest_chif.dll

Linux Chif Driver Download: ilorest_chif.so

Usage

For usage documentation: https://hewlettpackard.github.io/python-ilorest-library/API-Overview.html

Contributing ----------

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

History

  • 04/01/2016: Initial Commit
  • 06/23/2016: Release of v1.1.0
  • 07/25/2016: Release of v1.2.0
  • 08/02/2016: Release of v1.3.0
  • 09/06/2016: Release of v1.4.0
  • 11/04/2016: Release of v1.5.0
  • 12/06/2016: Release of v1.6.0
  • 01/17/2017: Release of v1.7.0
  • 02/01/2017: Release of v1.8.0
  • 03/22/2017: Release of v1.9.0
  • 04/12/2017: Release of v1.9.1
  • 07/17/2017: Release of v2.0.0
  • 10/30/2017: Release of v2.1.0
  • 02/20/2018: Release of v2.2.0
  • 06/11/2018: Release of v2.3.0
  • 07/02/2018: Release of v2.3.1
  • 03/25/2019: Release of v2.4.1
  • 05/09/2019: Release of v2.4.2
  • 07/05/2019: Release of v2.5.0
  • 07/11/2019: Release of v2.5.1
  • 08/13/2019: Release of v2.5.2
  • 11/13/2019: Release of v3.0.0
  • 09/29/2022: Release of v3.6.0
Copyright 2016 Hewlett Packard Enterprise Development LP

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

python-ilorest-library's People

Contributors

avaneesh92 avatar frederikslos avatar ghazibelaam avatar gqgunhed avatar hugonicodemos avatar jautor avatar johnazoidberg avatar lumbajack avatar prithvibs avatar pronix avatar qhyun2 avatar rajeevkallur avatar shirish-jadhav avatar skunkie avatar tijuca avatar topritchett avatar triangularcover avatar yergidy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-ilorest-library's Issues

v.2.4.1 - No timeout setting

I have noticed that in v.2.4.1 there is no option to set the timeout, maybe I'm missing something.
In v.2.3 there was a timeout hard coded in v1.py but in the latest version after the change to urllib3 there isn't .
I have done something that sets the timeout like this:
REDFISH_OBJ = redfish.rest_client(base_url=iLO_https_url, username=iLO_account, \ password=iLO_password, default_prefix='/redfish/v1', timeout=5 )
I'm not a big expert and I'm sure it can be done in a more elegant way. In the attach is how I have done it.
my_v1.py.txt

Also it would be nice to have MAX_RETRY not hard coded in v1.py and be able to set it.

iLO 5 Create Logical Drive with Redfish doesn't take effect after reboot

Hello,

iLO 5 Create Logical Drive with Redfish doesn't take effect after reboot

{
    "LogicalDrives": [
       {
          "CapacityGiB": 960,
          "Raid": "Raid0",
          "StripSizeBytes": 262144,
          "LogicalDriveName": "MyLD",
          "DataDrives": [
                "1I:1:1",
                "1I:1:2"
          ],
          "SpareDrives": [
                "1I:1:3"
          ],
          "Accelerator": "ControllerCache" 
       }
    ]
}

/redfish/v1/systems/1/smartstorageconfig/settings/ 

Return :

HTTP/1.1 200 OK
< Cache-Control: no-cache
< Content-type: application/json; charset=utf-8
< Date: Mon, 26 Mar 2018 11:21:58 GMT
< ETag: W/"9605591E"
< OData-Version: 4.0
< Transfer-Encoding: chunked
< X-Frame-Options: sameorigin
< X_HP-CHRP-Service-Version: 1.0.3
<
* Curl_http_done: called premature == 0
* Connection #0 to host left intact
{"error":{"@Message.ExtendedInfo":[{"MessageId":"Base.1.0.Success"}],"code":"iLO.0.10.ExtendedInfo","message":"See @Message.ExtendedInfo for more information."}}        

After reboot, nothing...

Tracking the power status of server

Is there an api call which can be used to track power status of an HP server.

Idea is to do BIOS configuration and reboot host (which worked fine) and once powered back on, proceed with RAID setup.

Document how to pass args to get

The iLO5 REST API Docs say that iLO5 supports the OData $expand syntax (https://hewlettpackard.github.io/ilo-rest-api-docs/ilo5/#odata-expand-syntax).

Could you write an example or somehow document how to pass args to get, such as:

response = REDFISH_OBJ.get('/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/DiskDrives/', args={'$expand':'.'})

It took me a while to figure this out, and having an example might help folks.

This seems like a good idea if you're using iLO5 and have a lot of items of the same type (e.g. a DL380 populated with 24 drives) rather than having to get the Members list and then do a get on each individual one.

[Question] is it possible to provide local file for firmware upgrade

Sorry if this is not the appropriate place to ask this question,

The firmware examples take a url argument, I am assuming that is for some file server somewhere. I was just wanting to make sure it is not possible to use a local file for that?

In other words, to upgrade the firmware from the Rest or Redfish, we will need to setup a file server that the ilos can pull the .bin file from?

virtualmedia command not working

Trying to tell the HP server to boot from the virtual media ISO file, but it doesn't seem to be working... see below. The virtualmedia command should say something image is inserted.

iLOrest > virtualmedia
[200] The operation completed successfully.
Available Virtual Media Options:
[1] Media Types Available: Floppy USBStick  Image Inserted: None
[2] Media Types Available: CD DVD  Image Inserted: None
iLOrest > virtualmedia 2 --url=file:///C://ISO/test.iso --bootnextreset
[200] The operation completed successfully.
iLOrest > virtualmedia
[200] The operation completed successfully.
Available Virtual Media Options:
[1] Media Types Available: Floppy USBStick  Image Inserted: None
[2] Media Types Available: CD DVD  Image Inserted: None
iLOrest >

[Question] configure Raid on Gen 9 DL360?

This is similar to my other question in issue #51, something we want to automate is setting up raid. However, the docs here I only see examples of getting the smart array configuration in the docs:
https://hewlettpackard.github.io/ilo-rest-api-docs/ilo4/?python#arraycount

things like getting number of arrays etc, nothing that seems like it would actually configure the array. I could be missing something though.

I also looked at python-redfish-utility, anytime i run any of the smartarray commands, I am getting an error saying "Unable to locate instance for smartstorageconfig".

So it seems that gen9 DL360 do not support configuring the smart array through rest is that correct or am I missing something (which I suspect I am)?

Remove unused old library dependency - urlparse2

get_cache_dirname() is never used outside of helper. Anyway, it depends on very old, unmaintained library urlparse2 - last commit is 6 years old. Library is not python3 compatible (at least it's dependecy - recordtype library).

Please, remove this dependency and change get_cache_dirname() to use built-in functions to parse URL.

What about to use this?
from urllib.parse import urlparse
o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html', params='', query='', fragment='')

BootOrder not showing correctly

I need to validate the bootorder is set correctly on hundreds of servers in my organization and trying to use the Restful Interface Tool to do this. Unfortunately when I use the bootorder command or select type ComputerSystem i do not see the same boot order as when i manually login through ilo and look at current settings in BIOS. all of my servers are set to Legacy Bootmode if that helps determine what the issue is.

Lime package installation done, but not able to import module in jupyter notebook

The following things appear when i try pip installing lime on command prompt, but jupyter throws an error stating " No module found" when i try importing the lime module. Below is the output of the lime installation

C:\Users\TUSHAR\Anaconda3\anaconda_new>pip install lime
Collecting lime
Requirement already satisfied: scikit-learn>=0.18 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from lime) (0.18.1)
Requirement already satisfied: scikit-image>=0.12 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from lime) (0.12.3)
Requirement already satisfied: scipy in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from lime) (0.18.1)
Requirement already satisfied: numpy in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from lime) (1.11.3)
Requirement already satisfied: six>=1.7.3 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from scikit-image>=0.12->lime) (1.11.0)
Requirement already satisfied: networkx>=1.8 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from scikit-image>=0.12->lime) (1.11)
Requirement already satisfied: pillow>=2.1.0 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from scikit-image>=0.12->lime) (4.0.0)
No metadata found in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages
Requirement already satisfied: dask[array]>=0.5.0 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from scikit-image>=0.12->lime) (0.13.0)
Requirement already satisfied: decorator>=3.4.0 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from networkx>=1.8->scikit-image>=0.12->lime) (4.0.11)
Requirement already satisfied: toolz>=0.7.2 in c:\users\tushar\anaconda3\anaconda_new\lib\site-packages (from dask[array]>=0.5.0->scikit-image>=0.12->lime) (0.8.2)
Installing collected packages: lime
Successfully installed lime-0.1.1.32

The output of the installation also shows that there was no metadata found, what could be the reason behind it ?

RetriesExhaustedError

While running the quickstart.py example i am getting the following error.

Traceback (most recent call last):
File "quickstart.py", line 16, in
REDFISH_OBJ = redfish.redfish_client(base_url=login_host, username=login_account,password=login_password, default_prefix='/redfish/v1')
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 1027, in redfish_client
max_retry=max_retry)
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 952, in init
max_retry=max_retry)
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 422, in init
self.get_root_object()
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 553, in get_root_object
raise excp
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 551, in get_root_object
resp = self.get('%s%s' % (self.__url.path, self.default_prefix))
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 585, in get
headers=headers)
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 979, in _rest_request
args=args, body=body, headers=headers)
File "/home/vkchlt0163/.local/lib/python3.5/site-packages/redfish/rest/v1.py", line 844, in _rest_request
raise RetriesExhaustedError()
redfish.rest.v1.RetriesExhaustedError

Can anyone please help me out.

Unable to change UEFI boot settings

I am trying to change the UEFI boot order with the code from example 07. But I am getting the following:

EXAMPLE 7: Change Boot Order (UEFI)
'ServerBootSettings.' resource or feature is not supported on this system

Other examples are working .

My system is a DL380G9 .

checkincurrentdirectory(libname) will not find ilorest_chif.so

In redfish/hpilo/risblobstore2.py: checkincurrdirectory(libname) you are searching for path where the library is placed. For the ilorest_chif.so it is:

$ dpkg -L ilorest 
/usr/lib/x86_64-linux-gnu/ilorest_chif.so

on line 897 you can find:

os.getenv("LD_LIBRARY_PATH",  'ilorest_chif.so').split(';')
['ilorest_chif.so']

This not the path you should use to find the library in. As the result the library was not found, because other 2 checks are returning - /usr/bin/ilorest_chif.so and /root/ilorest_chif.so

unable to integrated with gevent

I tried to use gevent speed up scan ilo on thousands of machines.
but the library of http client seems not support gevent.

Is it possible to use gevent with python-ilorest-library?

[Question] finding more information about firmware upgrade failures

I have set up a web server for the firmware *.bin file, I can wget the file so that appears to be working. However, when trying to run the example for the firmware upgrade, the HTTP post is successful, but then when I check the status I get a message saying There was an error in the previous attempt but it is ready to try again. The event log in the web application just says that there was an error upgrading firmware from the web. If I am on the web application I can upload and upgrade the firmware from that same .bin file with no issues.

I was wondering if there is any way to get more information about what might actually be going on? if there was some sort of error endpoint that would have more detailed information. This is for Gen 9 DL360's using the rest interface.

Thanks

EDIT:
It looks like I need to be looking in message registries for more details. But I am having trouble looking up info on how to do that with the api.

installation succeed, but Python says module not found

Trying to install the library in CentOS7 & python2.7.5 with no success.
Try multiple procedures:

Eventually, every time I'm trying to import ilorest or RedfishObject I get the error:

>>> import ilorest
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named ilorest
>>> from _redfishobject import RedfishObject
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named _redfishobject

The library looks like it installed successfully:

[]# pip show python-ilorest-library
---
Metadata-Version: 1.1
Name: python-ilorest-library
Version: 2.3.1
Summary: iLO Rest Python Library
Home-page: https://github.com/HewlettPackard/python-ilorest-library
Author: Hewlett Packard Enterprise
Author-email: [email protected]
License: UNKNOWN
Location: /usr/lib/python2.7/site-packages
Requires: jsonpatch, jsonpath-rw, jsonpointer, validictory, urlparse2, six
Classifiers:
  Development Status :: 3 - Alpha
  License :: OSI Approved :: Apache Software License
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Topic :: Communications

python-ilorest-library doesn't support py35

I use python-ilorest-library with a python package created by my team and its configured with tox py27 and py35. So, when running tox -epy27 everything goes fine, but with tox -epy35 the follow error occurs. Is there a plan to python-ilorest-library supports py35 and fix that?

E File "/root/ironic-oneviewd/.tox/py35/lib/python3.5/site-packages/redfish/rest/v1.py", line 643
E       except ValueError, excp:
E                        ^
E   SyntaxError: invalid syntax

Py35 support broken again.

After the commit 5966b26 the supports to py35 breaks again. I recommend using library six instead of httplib and StringIO libraries, as these are not supported in py35.

redfish.rest.v1.RetriesExhaustedError

REST_OBJ = RestObject(iLO_host, iLO_user, iLO_password)
File "/root/server_restart_ilo/_restobject.py", line 88, in init
default_prefix="/rest/v1")
File "build/bdist.linux-x86_64/egg/redfish/rest/v1.py", line 1489, in rest_client
File "build/bdist.linux-x86_64/egg/redfish/rest/v1.py", line 1531, in get_client_instance
File "build/bdist.linux-x86_64/egg/redfish/rest/v1.py", line 1109, in init
File "build/bdist.linux-x86_64/egg/redfish/rest/v1.py", line 524, in init
File "build/bdist.linux-x86_64/egg/redfish/rest/v1.py", line 652, in get_root_object
redfish.rest.v1.RetriesExhaustedError
Exception AttributeError: "'RestObject' object has no attribute 'rest_client'" in <bound method RestObject.del of <_restobject.RestObject object at 0x1329710>> ignored

What am I missing that it is not working????

iLOREST presumes /tmp has execute privilege

  1. Install iLOREST
  2. Confirm iLOREST runs
  3. Remount /tmp without exec privilege
  4. Confirm iLOREST no longer runs
  5. Create a new "temp" directory
  6. Define an environment variable TMP (or TMPDIR) with that new "temp" directory
  7. Confirm iLOREST now executes properly

[root@ml150g9d39u12l ~]# grep PRETTY /etc/os-release
PRETTY_NAME="Red Hat Enterprise Linux Server 7.2 (Maipo)"
[root@ml150g9d39u12l ~]# rpm -ivh /FileUpload/jpcustin/ilorest-2.1-73.x86_64.rpm
warning: /FileUpload/jpcustin/ilorest-2.1-73.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 26c2b797: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:ilorest-2.1-73 ################################# [100%]
[root@ml150g9d39u12l ~]# ilorest
iLOrest : RESTful Interface Tool version 2.1
Copyright (c) 2014, 2017 Hewlett Packard Enterprise Development Company

iLOrest > quit
Logging session out.
Bye for now
You have new mail in /var/spool/mail/root
[root@ml150g9d39u12l ~]# mount -o bind /tmp /tmp
[root@ml150g9d39u12l ~]# mount -o remount,noexec /tmp
[root@ml150g9d39u12l ~]# ilorest
ilorest: error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
[root@ml150g9d39u12l ~]# mkdir ~/mytemp
[root@ml150g9d39u12l ]# export TMP=/mytemp
[root@ml150g9d39u12l ~]# ilorest
iLOrest : RESTful Interface Tool version 2.1
Copyright (c) 2014, 2017 Hewlett Packard Enterprise Development Company

iLOrest > quit
Logging session out.
Bye for now
[root@ml150g9d39u12l ~]# unset TMP
[root@ml150g9d39u12l ~]# ilorest
ilorest: error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
[root@ml150g9d39u12l ]# export TMPDIR=/mytemp
[root@ml150g9d39u12l ~]# ilorest
iLOrest : RESTful Interface Tool version 2.1
Copyright (c) 2014, 2017 Hewlett Packard Enterprise Development Company

iLOrest > quit
Logging session out.
Bye for now

strace execution with /tmp having exec privilege the child process returns a 0 status

<>
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f0653171a10) = 26413
rt_sigaction(SIGINT, {0x4041d0, [INT], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGKILL, {0x4041d0, [KILL], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, {SIG_DFL, [], 0}, 8) = -1 EINVAL (Invalid argument)
rt_sigaction(SIGTERM, {0x4041d0, [TERM], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, {SIG_DFL, [], 0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 26413
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=26413, si_status=0, si_utime=71, si_stime=60} ---
rt_sigaction(SIGINT, {SIG_DFL, [INT], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, {0x4041d0, [INT], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, 8) = 0
rt_sigaction(SIGKILL, {SIG_DFL, [KILL], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, {0x4041d0, [INT], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, 8) = -1 EINVAL (Invalid argument)
rt_sigaction(SIGTERM, {SIG_DFL, [TERM], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, {0x4041d0, [TERM], SA_RESTORER|SA_RESTART, 0x7f06531a8670}, 8) = 0
<>
exit_group(0) = ?
+++ exited with 0 +++

And /tmp without exec privilege it returns 127

<>
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1259e3ea10) = 15676
rt_sigaction(SIGINT, {0x4041d0, [INT], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGKILL, {0x4041d0, [KILL], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, {SIG_DFL, [], 0}, 8) = -1 EINVAL (Invalid argument)
rt_sigaction(SIGTERM, {0x4041d0, [TERM], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, {SIG_DFL, [], 0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], 0, NULL) = 15676
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=15676, si_status=127, si_utime=0, si_stime=0} ---
rt_sigaction(SIGINT, {SIG_DFL, [INT], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, {0x4041d0, [INT], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, 8) = 0
rt_sigaction(SIGKILL, {SIG_DFL, [KILL], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, {0x4041d0, [INT], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, 8) = -1 EINVAL (Invalid argument)
rt_sigaction(SIGTERM, {SIG_DFL, [TERM], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, {0x4041d0, [TERM], SA_RESTORER|SA_RESTART, 0x7f1259e75670}, 8) = 0
<>
exit_group(127) = ?
+++ exited with 127 +++

pass-thro disks

Hey,
How can I check how much disks and size I have with rest API if i have only pass-through disks?

BIOS date and time

I would like to use the REST API to change the server BIOS date and time.
The server model is BL460c Gen 9, but is it possible to change with the REST API?

I actually try a lot, but I am not doing well.
I would be happy if anyone could help me.

"FederationConfig": "MulticastDiscovery": "Enabled"

I want to set the "MulticastDiscovery": "Enabled" to "Disabled" . Can you please give me the example code for that in python?

"FederationConfig": {
"IPv6MulticastScope": "Site",
"MulticastAnnouncementInterval": 600,
"MulticastDiscovery": "Enabled"

ILO5 redfish API with Gen10 showing SyntaxError: invalid syntax

while i am trying to use ex03_change_bios_setting.py getting below error. I have installed pip install python-ilorest-library and tried to execute sample script in python-ilorest-library-master/examples/Redfish

[root@AtomBuildServer Redfish]# python ex03_change_bios_setting.py
Traceback (most recent call last):
  File "ex03_change_bios_setting.py", line 16, in <module>
    from _redfishobject import RedfishObject
  File "/root/python-ilorest-library-master/examples/Redfish/_redfishobject.py", line 74, in <module>
    import redfish.ris.tpdefs
  File "/usr/lib/python2.6/site-packages/redfish/ris/__init__.py", line 36, in <module>
    from .rmc import (
  File "/usr/lib/python2.6/site-packages/redfish/ris/rmc.py", line 35, in <module>
    import redfish.ris.validation
  File "/usr/lib/python2.6/site-packages/redfish/ris/validation.py", line 313
    ttdict = {ki:val for ki, val in list(tdict.items()) if not isinstance(val, (dict, list))}
                       ^
SyntaxError: invalid syntax

I am doing something wrong here ?

  1. i have tried with Rest and Gen9 hardware with sane script change_bios_setting.py from /python-ilorest-library-master/examples/Rest and its works charm .But Gen10 is not working with same script hence I tried with Redfish but no luck ,

[Question] Set Legacy Boot mode order on Gen 9 DL360?

I am trying to automate some setup we do with out servers. One step is setting the boot order, we have our servers in legacy boot mode as opposed to UEFI. We have Gen 9 ProLaint DL360 servers on firmware 2.61 Jul 27 2018.

The examples in this repo only seem to set boot mode for UEFI (based on comments and by testing it out my self - I was able to run the set boot order requests, but when I log into the ilo through the bowser the legacy mode boot order is unchanged).

I also found the python-redfish-utility, and had a similar experience, where I was able to go through the example, find the persistent boot order, change and commit it, but there was no effect on the actual legacy boot mode when I log into the ilo through browser.

I also was able to find this post: https://community.hpe.com/t5/HPE-OneView/REST-change-boot-order/m-p/6843029#M864, however, I am unable to find the server-profiles anywhere. So I am thinking that the server-profile is deprecated at this point.

So I am just wanting to make sure I am not missing anything, if I am and it is possible to set the legacy boot mode on this server version through the REST API please point me in the right direction.

Values Missing after GET

Here is my Python Script:

`import sys
import getopt
#import redfish
from pprint import pprint

When running remotely connect using the iLO address, iLO account name,

and password to send https requests

iLO_ip = ''
base= 'https://'
login_account = ''
login_password = ''
redValue = '' #Value to serach in Redfish db
searchString = ''

from _redfishobject import RedfishObject

try:
opts, args = getopt.getopt(sys.argv[1:], 's:u:p:r:a:h', ['iLO_ip=', 'login_account=','login_password=', 'redValue', 'searchString', 'help'])
except getopt.GetoptError as err:
print(err)
usage("-s ilo Host, -u iLo User, -p iLo Password")
sys.exit(2)

for opt, arg in opts:
if opt in ('-h', '--help'):
usage("-s ilo Host, -u iLo User, -p iLo Password")
sys.exit(2)
elif opt in ('-s', '--server'):
iLO_ip = arg
elif opt in ('-p', '--password'):
login_password = arg
elif opt in ('-r', '--redValue'):
redValue = arg
elif opt in ('-a', '--searchString'):
searchString = arg
elif opt in ('-u', '--user'):
login_account = arg
else:
usage("-s ilo Host, -u iLo User, -p iLo Password")
sys.exit(2)

dictionary with Url extensions

pathDic = {"System" : "Systems/1/", "Raid0" : "Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/0", "Raid1" : "Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1", "Health" : "Chassis/1/" }

build base https://IP

iLO_host = base + iLO_ip

search in Array for -r Value

match = pathDic[redValue]

Create a REDFISH object

#REDFISH_OBJ = redfish.redfish_client(base_url=iLO_host,username=login_account,
# password=login_password, default_prefix='/redfish/v1')

REDFISH_OBJ = RedfishObject(iLO_host, login_account, login_password)

Login into the server and create a session

REDFISH_OBJ.login(auth="session")

Print Search URi

Link = iLO_host + "/redfish/v1/" + match
print ( Link )

Do a GET on a given path

response = REDFISH_OBJ.get("/redfish/v1/" +match, None)

outputList = response

outputList = str(outputList)

Split string on "," and put in list element

outputList = outputList.split(',')

#pprint(outputList)

search for -a string in list element

status = [s for s in outputList if searchString in s]

Print out the response

print ( status )
#sys.stdout.write("%s\n" % response)

Logout of the current session

REDFISH_OBJ.logout()
`

When i do a get on "/redfish/v1/Systems/1/" then e.g the Values after ""HostCorrelation" are missing.
What is wrong with my Script? I am really new to Python and i need a portable Script (pyinstaller), that i can copy to servers, to perform GET operations against remote ILO Interfaces.

Kind Regards

Smart Storage Config support in iLO4

Is smart storage configuration (Create/Delete Logical drives) supported in iLO4/Gen9 hosts?

If not, is there an alternate way to implement this?

SSL CA cert verification

redfish_client() does not have a cafile argument, unlike in the latest upstream. The RestClientBase::__init_connection() here just uses _create_unverified_context(), so I think it means there is no SSL certificate verification.

Are there plans to enable SSL certificate verification, e.g. by catching up to a more recent version of the upstream repo?

Get the list of pending changes

Is there an api call that gives the list of pending changes? Primarily for iLO4.
Otherwise I'd have to iterate over all current vs settings and look for differences.

local variable 'excp' referenced before assignment

File "/usr/lib/python3/dist-packages/redfish/hpilo/risblobstore2.py", line 806, in _send_receive_raw
if excp:
UnboundLocalError: local variable 'excp' referenced before assignment

    def _send_receive_raw(self, indata):
        """Send and receive raw function for blob operations

        :param indata: The data to be sent to blob operation.
        :type indata: str.

        """
        excp = None
        for _ in range(0, 3): # channel loop for iLO
            try:
                resp = self.channel.send_receive_raw(indata, 10)
                return resp
            except Exception as excp:
                self.channel.close()
                lib = self.gethprestchifhandle()
                self.channel = HpIlo(dll=lib)
        if excp:
            raise excp

Cannot use logout call from redfish object

Hello,
I cannot use the REDFISHOBJ.logout() call, it fails with a "Code: 405 Method Not Allowed".

`2019-03-04 11:34:10,030 - redfish.rest.v1 - DEBUG - HTTP REQUEST: DELETE
PATH: https:/server-ilo/redfish/v1/SessionService/Sessions/emerg000000005c7cff096de37618/
BODY: None
2019-03-04 11:34:10,031 - redfish.rest.v1 - INFO - Attempt 2 of https://server-ilo/redfish/v1/SessionService/Sessions/emerg000000005c7cff096de37618/

2019-03-04 11:34:10,121 - redfish.rest.v1 - INFO - Response Time to https:/server-ilo/redfish/v1/SessionService/Sessions/emerg000000005c7cff096de37618/: 0.0007129999999999637 seconds.

2019-03-04 11:34:10,414 - redfish.rest.v1 - INFO - Response Time to https:/server-ilo/redfish/v1/SessionService/Sessions/emerg000000005c7cff096de37618/: 0.0040160000000000196 seconds.

2019-03-04 11:34:10,415 - redfish.rest.v1 - DEBUG - HTTP RESPONSE for https:/server-ilo/redfish/v1/SessionService/Sessions/emerg000000005c7cff096de37618/:
Code: 405 Method Not Allowed
Headers:
Content-Type: text/plain
Allow: GET
Connection: keep-alive
Date: Mon, 04 Mar 2019 10:34:07 GMT
X-Frame-Options: sameorigin
Content-Length: 0`

How should I properly delete sessions without going to Ilo WebUI ?

'RestObject' object has no attribute 'rest_client'

When I ran ex10_add_ilo_user_account.py on DL380 Gen10 server, i got below error.
Could you help me to figure out what did I miss here?

Traceback (most recent call last):
  File "C:/Users/lenovo/PycharmProjects/untitled1/ilo5_test.py", line 43, in <module>
    REST_OBJ = RestObject(iLO_https_url, iLO_account, iLO_password)
  File "C:\Users\lenovo\PycharmProjects\untitled1\_restobject.py", line 88, in __init__
    default_prefix="/rest/v1")
  File "C:\Python27\lib\site-packages\redfish\rest\v1.py", line 1489, in rest_client
    sessionkey=sessionkey, is_redfish=is_redfish, cache=cache)
  File "C:\Python27\lib\site-packages\redfish\rest\v1.py", line 1531, in get_client_instance
    is_redfish=is_redfish, cache=cache)
  File "C:\Python27\lib\site-packages\redfish\rest\v1.py", line 1114, in __init__
    self.login_url = self.root.links.Sessions.href
KeyError: 'links'
Exception AttributeError: "'RestObject' object has no attribute 'rest_client'" in <bound method RestObject.__del__ of <_restobject.RestObject object at 0x05AD2E10>> ignored

Process finished with exit code 1

Here's the version I have:

C:\Users\lenovo>pip2 show python-ilorest-library
Name: python-ilorest-library
Version: 2.2.0
Summary: iLO Rest Python Library
Home-page: https://github.com/HewlettPackard/python-ilorest-library
Author: Hewlett Packard Enterprise
Author-email: [email protected]
License: UNKNOWN
Location: c:\python27\lib\site-packages
Requires: jsonpatch, jsonpath-rw, jsonpointer, validictory, urlparse2, six

iLO 4 (2.42) RestObject' object has no attribute 'rest_client' (I can access the ILO interface from this host)

Hi there

I am currently testing the example Python script "ex53_update_ilo_firmware.py", however I continually run into the following error:

Traceback (most recent call last):
File "ex53_update_ilo_firmware.py", line 51, in
REST_OBJ = RestObject(iLO_https_url, iLO_account, iLO_password)
File "/tmp/python/examples/Rest/_restobject.py", line 88, in init
default_prefix="/rest/v1")
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 1514, in rest_client
sessionkey=sessionkey, is_redfish=is_redfish, cache=cache)
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 1556, in get_client_instance
is_redfish=is_redfish, cache=cache)
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 1116, in init
cache=cache)
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 523, in init
self.get_root_object()
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 651, in get_root_object
raise excp
redfish.rest.v1.RetriesExhaustedError
Exception AttributeError: "'RestObject' object has no attribute 'rest_client'" in <bound method RestObject.del of <_restobject.RestObject object at 0x7fc7f06bad10>> ignored

This is being executed from a host on the same subnet, with full access, to the ILO interface I am testing this against (ILO 4 Gen 9 FW 2.42)

Am I doing something stupid here?

Thanks

Setup NTP Servers

Hi there,

we would like to setup NTP Servers, however by default it is managed by DHCP.
iLO return code iLO.2.0.SNTPConfigurationManagedByDHCPAndIsReadOnly: SNTP configuration is currently managed by DHCP and is therefore read-only.

So how could we first disable DHCP and then setup NTP Servers? Thanks a lot for your help.

Support for iLO 5

Hi guys, does the library work for iLO 5? As an initial Test, it does not seem to work somehow. I got the following error messages:

15:22:30 Traceback (most recent call last):
15:22:30 File "create_ilo_settings_for_new_blades.py", line 194, in
15:22:30 REST_OBJ = RestObject("https://" + url, iLO_account, iLO_password)
15:22:30 File "/var/lib/jenkins/workspace/tip/hpe_ilo_operation/configure_ilo_for_new_blades/hpe_ilo_operation/libs/_restobject.py", line 87, in init
15:22:30 default_prefix="/rest/v1")
15:22:30 File "/var/lib/jenkins/.local/lib/python2.7/site-packages/redfish/rest/v1.py", line 1489, in rest_client
15:22:30 sessionkey=sessionkey, is_redfish=is_redfish, cache=cache)
15:22:30 File "/var/lib/jenkins/.local/lib/python2.7/site-packages/redfish/rest/v1.py", line 1531, in get_client_instance
15:22:30 is_redfish=is_redfish, cache=cache)
15:22:30 File "/var/lib/jenkins/.local/lib/python2.7/site-packages/redfish/rest/v1.py", line 1114, in init
15:22:30 self.login_url = self.root.links.Sessions.href
15:22:30 KeyError: 'links'
15:22:30 Exception AttributeError: "'RestObject' object has no attribute 'rest_client'" in <bound method RestObject.del of <libs._restobject.RestObject object at 0x7f8854626190>> ignored

iLO 5 Delete Logical Drive with Redfish doesn't take effect

Just tried to delete logical drive using Redfish API, the response was successful. but the logical drive was not deleted after reboot. Did I miss anything here?

Here's the script:

def ex3_delete_logical_drives(redfishobj, volid, bios_password=None):
    sys.stdout.write("\nEXAMPLE 3: delete a logical drive\n")
    instances = redfishobj.search_for_type("SmartStorageConfig.")
    if not len(instances) and redfishobj.typepath.defs.isgen9:
        sys.stderr.write("\nNOTE: This example requires the Redfish schema "\
                 "version TBD in the managed iLO. It will fail against iLOs"\
                 " with the 2.50 firmware or earlier. \n")

    for instance in instances:
        if redfishobj.typepath.defs.isgen9:
			#body = {ld_property: property_value}
        else:
            body = {
                        "LogicalDrives": [
                            {
                                "Actions": [{"Action": "LogicalDriveDelete"}],
                                "VolumeUniqueIdentifier": volid
                            }
                        ],
                        "DataGuard": "Permissive"
                    }
            response = redfishobj.redfish_put(instance["@odata.id"], body, \
                                            optionalpassword=bios_password)
            redfishobj.error_handler(response)                                                 

Response:

PUT {'DataGuard': 'Permissive', 'LogicalDrives': [{'VolumeUniqueIdentifier': '600508B1001C25DAE96E0612F3957EA2', 'Actions': [{'Action': 'LogicalDriveDelete'}]}]} to /redfish/v1/systems/1/smartstorageconfig/settings/
PUT response = 200
	iLO return code Base.1.0.Success: The operation completed successfully.

Change Bios Attributes doesn't work with example ex03_change_bios_setting.py

The "ex03_change_bios_setting.py" Redfish example doesn't work with HPE Proliant DL380 gen10 model for updading Bios attributes
I needed to change "body = {bios_property: property_value}" to "body = {"Attributes": {bios_property: property_value}}" otherwise the PATCH request doesn't commit the change.
When using body = {bios_property: property_value} , the PATCH request is done with no error but the value is not changed even after reset.

I don't known if this behavior is normal or not
Thank's

error importing restobject

When i try to import the restobject I got anerror message.
Could you help me to figure out what did I miss here?

This is how I import it:
from _restobject import RestObject

This is the error message:

raceback (most recent call last):
  File "./ilo.py", line 18, in <module>
    from _restobject import RestObject
ImportError: No module named '_restobject'

I installed the ilorest library as well:

pip install python-ilorest-library
Collecting python-ilorest-library
  Downloading python-ilorest-library-1.9.2.zip (78kB)
    100% |████████████████████████████████| 81kB 129kB/s
Collecting jsonpatch (from python-ilorest-library)
  Downloading jsonpatch-1.16-py2.py3-none-any.whl
Collecting jsonpath_rw (from python-ilorest-library)
  Downloading jsonpath-rw-1.4.0.tar.gz
Collecting jsonpointer (from python-ilorest-library)
  Downloading jsonpointer-1.10.tar.gz
Collecting validictory (from python-ilorest-library)
  Downloading validictory-1.1.1.tar.gz
Collecting urlparse2 (from python-ilorest-library)
  Downloading urlparse2-1.1.1.tar.gz
Collecting ply (from jsonpath_rw->python-ilorest-library)
  Downloading ply-3.10.tar.gz (150kB)
    100% |████████████████████████████████| 153kB 283kB/s
Collecting decorator (from jsonpath_rw->python-ilorest-library)
  Downloading decorator-4.0.11-py2.py3-none-any.whl
Requirement already satisfied: six in /usr/lib/python3.4/site-packages (from jsonpath_rw->python-ilorest-library)
Collecting recordtype (from urlparse2->python-ilorest-library)
  Downloading recordtype-1.1.tar.gz
Building wheels for collected packages: python-ilorest-library, jsonpath-rw, jsonpointer, validictory, urlparse2, ply, recordtype
  Running setup.py bdist_wheel for python-ilorest-library ... done
  Stored in directory: /root/.cache/pip/wheels/f6/09/94/270372428edee741558a548a2b376ff93fc1391f7f6b7026b8
  Running setup.py bdist_wheel for jsonpath-rw ... done
  Stored in directory: /root/.cache/pip/wheels/ff/80/3d/6d630248dd938306a8691b9658ee91e07fb794076d714f8ce8
  Running setup.py bdist_wheel for jsonpointer ... done
  Stored in directory: /root/.cache/pip/wheels/c6/63/b3/64aa830fca63497c9098d7a7b08058d261f7709727c7d93767
  Running setup.py bdist_wheel for validictory ... done
  Stored in directory: /root/.cache/pip/wheels/ae/96/32/1e175a036b68889ac08b1802219618bea8a3a020e376e3bc98
  Running setup.py bdist_wheel for urlparse2 ... done
  Stored in directory: /root/.cache/pip/wheels/d0/08/0e/1bb071cd176e00fcbc1dc7aba3e0f649b4f54c0e8c3203c7ac
  Running setup.py bdist_wheel for ply ... done
  Stored in directory: /root/.cache/pip/wheels/ad/dd/ad/8ce1991a7b380dfe23d6cc81a4de5c2775bc728b5a0a7721aa
  Running setup.py bdist_wheel for recordtype ... done
  Stored in directory: /root/.cache/pip/wheels/0e/52/54/c5f783e96e2b1f5364d360716b47768c21d84efa73d3745b45
Successfully built python-ilorest-library jsonpath-rw jsonpointer validictory urlparse2 ply recordtype
Installing collected packages: jsonpointer, jsonpatch, ply, decorator, jsonpath-rw, validictory, recordtype, urlparse2, python-ilorest-library
Successfully installed decorator-4.0.11 jsonpatch-1.16 jsonpath-rw-1.4.0 jsonpointer-1.10 ply-3.10 python-ilorest-library-1.9.2 recordtype-1.1 urlparse2-1.1.1 validictory-1.1.

SetBiosPassword

I have not been able to get this to work on either a G9 or G10. Please help!!

ssl certificat verfication issue

Hi,
i got the following error:
File "test.py", line 17, in
password=login_password)
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 1486, in redfish_client
sessionkey=sessionkey, is_redfish=is_redfish, cache=cache)
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 1556, in get_client_instance
is_redfish=is_redfish, cache=cache)
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 1116, in init
cache=cache)
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 523, in init
self.get_root_object()
File "/usr/lib/python2.7/site-packages/redfish/rest/v1.py", line 651, in get_root_object
raise excp
redfish.rest.v1.RetriesExhaustedError

Current System:
CentOS Linux release 7.5.1804 (Core)
Python 2.7.5

refered to this:
https://docs.python.org/2/library/httplib.html#httplib.HTTPSConnection
if i change change it to less the version 2.7.5 if works.

537 if sys.version_info < (2, 7, 5):
538 self._conn = http_client.HTTPSConnection(url.netloc, timeout=30)
539 else:
540 self._conn = http_client.HTTPSConnection(url.netloc,
541 context=ssl._create_unverified_context(), timeout=30)
542 elif url.scheme.upper() == "HTTP":
543 self._conn = http_client.HTTPConnection(url.netloc)
544 else:
545 pass

raise excp : redfish.rest.v1.RetriesExhaustedError

while i am trying to use ex03_change_bios_setting.py getting below error. I have installed pip install python-ilorest-library and tried to execute sample script in python-ilorest-library-master/examples/Redfish

[root@AtomBuildServer Redfish]# python ex03_change_bios_setting.py

Tried now on both Gen9 and Gne10 hardware throwing new error as below . ILO is accessible from the machine where I am running the script

root@test /etc/yum.repos.d/python-ilorest-library-master/examples/Redfish]# python ex03_change_bios_setting.py
Traceback (most recent call last):
  File "ex03_change_bios_setting.py", line 61, in <module>
    raise excp
redfish.rest.v1.RetriesExhaustedError

virtualmedia command parameters not correctly described

The parameters for the 'virtualmedia' command in the ilorest REST CLI are not described correctly. See below... it says to use

 virtualmedia 2 http://xx.xx.xx.xx/vm.iso --bootnextreset

But you should use...

 virtualmedia 2 --url=http://xx.xx.xx.xx/vm.iso --bootnextreset

See below...
Additionally, it returns "[200] The operation completed successfully." but it eventually still fails! Not good.

iLOrest > help virtualmedia
Usage: virtualmedia [ID] [URI] [OPTIONS]

        Run without arguments to view the available virtual media sources.
        example: virtualmedia

        Insert virtual media and set to boot on next restart.
        example: virtualmedia 2 http://xx.xx.xx.xx/vm.iso --bootnextreset

        Remove current inserted media.
        example: virtualmedia 2 --remove

Options:
  -h, --help            show this help message and exit
  --url=URL             Use the provided iLO URL to login.
  -u USER, --user=USER  If you are not logged in yet, including this flag
                        along with the password and URL flags can be used to
                        log into a server in the same command.
  -p PASSWORD, --password=PASSWORD
                        Use the provided iLO password to log in.
  --reboot=REBOOT       Use this flag to perform a reboot command function
                        after completion of operations.  For help with
                        parameters and descriptions regarding the reboot flag,
                        run help reboot.
  --remove              Use this flag to remove the media from the selection.
  --bootnextreset       Use this flag if you wish to boot from the image on
                        next server reboot. NOTE: The image will be ejected
                        automatically on the second server reboot so that the
                        server does not boot to this image twice.
iLOrest > virtualmedia 2 file:///C:/ISO/test.iso --bootnextreset
[200] The operation completed successfully.
iLO response with code [400]: The value type is correct, but the format is not supported or the size/length is exceeded.
Traceback (most recent call last):
  File "<string>", line 856, in <module>
  File "<string>", line 265, in run
  File "<string>", line 325, in cmdloop
  File "<string>", line 488, in handle_exceptions
AttributeError: 'module' object has no attribute 'SecurityStateError'
rdmc returned -1

Running Diagnostics without OS(remotely)?

Is there anyway to run diagnostics with ilorest? To run diagnostics(HVT) remotely on Gen9/10 servers, you have to have the server installed. I'm wondering if there is a way to do this with REST without an OS installed.

support for python 3

The original redfish repo ( DMTF/python-redfish-library) got recentlu updated to support latest 3.x
Can you please make this compatible

Thanks in Advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.