Merge "Fix for MediaTypes in virtual media"

This commit is contained in:
Zuul 2018-09-15 16:50:08 +00:00 committed by Gerrit Code Review
commit 8f7251a88e
6 changed files with 21 additions and 10 deletions

View File

@ -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'

View File

@ -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,

View File

@ -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

View File

@ -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",

View File

@ -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)

View File

@ -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)