Fix for MediaTypes in virtual media
According to Redfish schema the value type of `MediaTypes` is `array`[1]. This is a fix to accomodate that and along with that some more fixes as: - to maintain consistency across mapping variables, renamed the following mapping variables as: MEDIA_TYPE_VALUE_MAP (from MEDIA_TYPE_MAP) and CONNECTED_VIA_VALUE_MAP (from CONNECTED_VIA_MAP) - In manager test case, invoke get_member() on the empirical identity of virtual media resource. [1] As a reference search for `MediaTypes` in http://redfish.dmtf.org/schemas/v1/VirtualMedia.v1_2_0.json Change-Id: Ie370b4dde8196ae5e9b2a245d37c737296f54f16
This commit is contained in:
parent
a0fc71f60a
commit
9e8396a13c
|
@ -77,7 +77,7 @@ COMMAND_SHELL_IPMI = 'command shell ipmi'
|
|||
COMMAND_SHELL_OEM = 'command shell oem'
|
||||
"""Command Shell connection using an OEM-specific protocol"""
|
||||
|
||||
# Virtual Media Type constants
|
||||
# Supported Virtual Media Type constants
|
||||
|
||||
VIRTUAL_MEDIA_CD = 'cd'
|
||||
VIRTUAL_MEDIA_DVD = 'dvd'
|
||||
|
|
|
@ -60,14 +60,14 @@ COMMAND_SHELL_VALUE_MAP = {
|
|||
COMMAND_SHELL_VALUE_MAP_REV = (
|
||||
utils.revert_dictionary(COMMAND_SHELL_VALUE_MAP))
|
||||
|
||||
MEDIA_TYPE_MAP = {
|
||||
MEDIA_TYPE_VALUE_MAP = {
|
||||
'CD': mgr_cons.VIRTUAL_MEDIA_CD,
|
||||
'DVD': mgr_cons.VIRTUAL_MEDIA_DVD,
|
||||
'Floppy': mgr_cons.VIRTUAL_MEDIA_FLOPPY,
|
||||
'USBStick': mgr_cons.VIRTUAL_MEDIA_USBSTICK
|
||||
}
|
||||
|
||||
CONNECTED_VIA_MAP = {
|
||||
CONNECTED_VIA_VALUE_MAP = {
|
||||
"Applet": mgr_cons.CONNECTED_VIA_APPLET,
|
||||
"NotConnected": mgr_cons.CONNECTED_VIA_NOT_CONNECTED,
|
||||
"Oem": mgr_cons.CONNECTED_VIA_OEM,
|
||||
|
|
|
@ -45,11 +45,15 @@ class VirtualMedia(base.ResourceBase):
|
|||
write_protected = base.Field('WriteProtected')
|
||||
"""Indicates the media is write protected"""
|
||||
|
||||
media_types = base.MappedField('MediaTypes', mgr_maps.MEDIA_TYPE_MAP)
|
||||
"""This is the media types supported as virtual media"""
|
||||
media_types = base.Field(
|
||||
'MediaTypes', adapter=(
|
||||
lambda x: [mgr_maps.MEDIA_TYPE_VALUE_MAP[v] for v in x
|
||||
if v in mgr_maps.MEDIA_TYPE_VALUE_MAP]),
|
||||
default=[])
|
||||
"""List of supported media types as virtual media"""
|
||||
|
||||
connected_via = base.MappedField('ConnectedVia',
|
||||
mgr_maps.CONNECTED_VIA_MAP)
|
||||
mgr_maps.CONNECTED_VIA_VALUE_MAP)
|
||||
"""Current virtual media connection methods
|
||||
|
||||
Applet: Connected to a client application
|
||||
|
|
|
@ -2,7 +2,10 @@
|
|||
"@odata.type": "#VirtualMedia.v1_1_0.VirtualMedia",
|
||||
"Id": "Floppy1",
|
||||
"Name": "Virtual Removable Media",
|
||||
"MediaTypes": "Floppy",
|
||||
"MediaTypes": [
|
||||
"Floppy",
|
||||
"USBStick"
|
||||
],
|
||||
"Actions": {
|
||||
"#VirtualMedia.EjectMedia": {
|
||||
"target": "/redfish/v1/Managers/BMC/VirtualMedia/Floppy1/Actions/VirtualMedia.EjectMedia",
|
||||
|
|
|
@ -229,7 +229,8 @@ class ManagerTestCase(base.TestCase):
|
|||
virtual_media.VirtualMediaCollection)
|
||||
self.assertEqual(actual_virtual_media.name, 'Virtual Media Services')
|
||||
|
||||
member = actual_virtual_media.get_member('Floppy1')
|
||||
member = actual_virtual_media.get_member(
|
||||
'/redfish/v1/Managers/BMC/VirtualMedia/Floppy1')
|
||||
|
||||
self.assertEqual(member.image_name, "Sardine2.1.43.35.6a")
|
||||
self.assertTrue(member.inserted)
|
||||
|
|
|
@ -16,6 +16,7 @@ import json
|
|||
|
||||
import mock
|
||||
|
||||
import sushy
|
||||
from sushy import exceptions
|
||||
from sushy.resources.manager import virtual_media
|
||||
from sushy.tests.unit import base
|
||||
|
@ -42,8 +43,10 @@ class VirtualMediaTestCase(base.TestCase):
|
|||
self.sys_virtual_media.image)
|
||||
self.assertEqual('Sardine2.1.43.35.6a',
|
||||
self.sys_virtual_media.image_name)
|
||||
self.assertEqual('uri', self.sys_virtual_media.connected_via)
|
||||
self.assertEqual('floppy',
|
||||
self.assertEqual(sushy.CONNECTED_VIA_URI,
|
||||
self.sys_virtual_media.connected_via)
|
||||
self.assertEqual([sushy.VIRTUAL_MEDIA_FLOPPY,
|
||||
sushy.VIRTUAL_MEDIA_USBSTICK],
|
||||
self.sys_virtual_media.media_types)
|
||||
self.assertEqual(True, self.sys_virtual_media.inserted)
|
||||
self.assertEqual(False, self.sys_virtual_media.write_protected)
|
||||
|
|
Loading…
Reference in New Issue