diff --git a/sushy/resources/manager/constants.py b/sushy/resources/manager/constants.py index 69941c8f..9c1cf187 100644 --- a/sushy/resources/manager/constants.py +++ b/sushy/resources/manager/constants.py @@ -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' diff --git a/sushy/resources/manager/mappings.py b/sushy/resources/manager/mappings.py index c8ea5cb9..a544115d 100644 --- a/sushy/resources/manager/mappings.py +++ b/sushy/resources/manager/mappings.py @@ -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, diff --git a/sushy/resources/manager/virtual_media.py b/sushy/resources/manager/virtual_media.py index d84d86fc..6c05d322 100644 --- a/sushy/resources/manager/virtual_media.py +++ b/sushy/resources/manager/virtual_media.py @@ -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 diff --git a/sushy/tests/unit/json_samples/virtual_media.json b/sushy/tests/unit/json_samples/virtual_media.json index e0728724..d4e7e55f 100644 --- a/sushy/tests/unit/json_samples/virtual_media.json +++ b/sushy/tests/unit/json_samples/virtual_media.json @@ -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", diff --git a/sushy/tests/unit/resources/manager/test_manager.py b/sushy/tests/unit/resources/manager/test_manager.py index e1a093eb..7276209c 100644 --- a/sushy/tests/unit/resources/manager/test_manager.py +++ b/sushy/tests/unit/resources/manager/test_manager.py @@ -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) diff --git a/sushy/tests/unit/resources/manager/test_virtual_media.py b/sushy/tests/unit/resources/manager/test_virtual_media.py index 22eb9dd3..c9245f6c 100644 --- a/sushy/tests/unit/resources/manager/test_virtual_media.py +++ b/sushy/tests/unit/resources/manager/test_virtual_media.py @@ -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)