2
0
mirror of https://opendev.org/x/pyghmi synced 2025-10-26 17:05:30 +00:00

Add redfish list_media

Use redfish mechanism to list all
remote media in a system.

Change-Id: I254ef71f025fdb6272fcf1fbf8ed0c099e2c2467
This commit is contained in:
Jarrod Johnson
2019-05-31 15:17:55 -04:00
parent ea5309ce54
commit 9b9c37277b

View File

@@ -27,6 +27,7 @@ import struct
import time
import pyghmi.exceptions as exc
import pyghmi.constants as const
import pyghmi.media as media
import pyghmi.util.webclient as webclient
from pyghmi.util.parse import parse_time
import pyghmi.redfish.oem.lookup as oem
@@ -1153,6 +1154,17 @@ class Command(object):
if volt['Name'] == sensor['name'] and 'ReadingVolts' in volt:
return SensorReading(None, sensor, value=volt['ReadingVolts'], units='V')
def list_media(self):
bmcinfo = self._do_web_request(self._bmcurl)
vmcoll = bmcinfo.get('VirtualMedia', {}).get('@odata.id', None)
if vmcoll:
vmlist = self._do_web_request(vmcoll)
vmurls = [x['@odata.id'] for x in vmlist.get('Members', [])]
for vminfo in self._do_bulk_requests(vmurls):
vminfo = vminfo[0]
if vminfo['Image']:
imageurl = vminfo['Image'].replace('/' + vminfo['ImageName'], '')
yield media.Media(vminfo['ImageName'], imageurl)
if __name__ == '__main__':
import os