Use specific system class for RSD 2.2

SystemCollection in 2.2 sub-module should use RSD 2.2 System class.

Change-Id: Ib4421cd8f381044658027fa0fd928fa54dbc05ad
This commit is contained in:
Lin Yang 2018-02-13 15:19:02 -08:00
parent d18747a3de
commit e3044f81d2
3 changed files with 31 additions and 15 deletions

View File

@ -41,3 +41,13 @@ class RSDLibV2_2(v2_1.RSDLibV2_1):
""" """
return system.System(self._conn, identity, return system.System(self._conn, identity,
redfish_version=self.redfish_version) redfish_version=self.redfish_version)
def get_system_collection(self):
"""Get the SystemCollection object
:raises: MissingAttributeError, if the collection attribute is
not found
:returns: a SystemCollection object
"""
return system.SystemCollection(self._conn, self._systems_path,
redfish_version=self.redfish_version)

View File

@ -66,3 +66,10 @@ class System(system.System):
super(System, self).refresh() super(System, self).refresh()
self._metrics = None self._metrics = None
self._processors = None self._processors = None
class SystemCollection(system.SystemCollection):
@property
def _resource_type(self):
return System

View File

@ -17,12 +17,11 @@ import json
import mock import mock
import testtools import testtools
from sushy.resources.system import system from rsd_lib.resources.v2_1.chassis import chassis as v2_1_chassis
from rsd_lib.resources.v2_1.fabric import fabric as v2_1_fabric
from rsd_lib.resources.v2_1.chassis import chassis from rsd_lib.resources.v2_1.node import node as v2_1_node
from rsd_lib.resources.v2_1.fabric import fabric from rsd_lib.resources.v2_1.storage_service import storage_service \
from rsd_lib.resources.v2_1.node import node as v2_1_storage_service
from rsd_lib.resources.v2_1.storage_service import storage_service
from rsd_lib.resources import v2_2 from rsd_lib.resources import v2_2
from rsd_lib.resources.v2_2.system import system as v2_2_system from rsd_lib.resources.v2_2.system import system as v2_2_system
@ -49,7 +48,7 @@ class RSDLibV2_2TestCase(testtools.TestCase):
self.assertEqual("/redfish/v1/TelemetryService", self.assertEqual("/redfish/v1/TelemetryService",
self.rsd._telemetry_service_path) self.rsd._telemetry_service_path)
@mock.patch.object(system, 'SystemCollection', autospec=True) @mock.patch.object(v2_2_system, 'SystemCollection', autospec=True)
def test_get_system_collection(self, mock_system_collection): def test_get_system_collection(self, mock_system_collection):
self.rsd.get_system_collection() self.rsd.get_system_collection()
mock_system_collection.assert_called_once_with( mock_system_collection.assert_called_once_with(
@ -63,49 +62,49 @@ class RSDLibV2_2TestCase(testtools.TestCase):
self.rsd._conn, 'fake-system-id', self.rsd._conn, 'fake-system-id',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(node, 'NodeCollection', autospec=True) @mock.patch.object(v2_1_node, 'NodeCollection', autospec=True)
def test_get_node_collection(self, mock_node_collection): def test_get_node_collection(self, mock_node_collection):
self.rsd.get_node_collection() self.rsd.get_node_collection()
mock_node_collection.assert_called_once_with( mock_node_collection.assert_called_once_with(
self.rsd._conn, '/redfish/v1/Nodes', self.rsd._conn, '/redfish/v1/Nodes',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(node, 'Node', autospec=True) @mock.patch.object(v2_1_node, 'Node', autospec=True)
def test_get_node(self, mock_node): def test_get_node(self, mock_node):
self.rsd.get_node('fake-node-id') self.rsd.get_node('fake-node-id')
mock_node.assert_called_once_with( mock_node.assert_called_once_with(
self.rsd._conn, 'fake-node-id', self.rsd._conn, 'fake-node-id',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(fabric, 'FabricCollection', autospec=True) @mock.patch.object(v2_1_fabric, 'FabricCollection', autospec=True)
def test_get_fabric_collection(self, mock_fabric_collection): def test_get_fabric_collection(self, mock_fabric_collection):
self.rsd.get_fabric_collection() self.rsd.get_fabric_collection()
mock_fabric_collection.assert_called_once_with( mock_fabric_collection.assert_called_once_with(
self.rsd._conn, '/redfish/v1/Fabrics', self.rsd._conn, '/redfish/v1/Fabrics',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(fabric, 'Fabric', autospec=True) @mock.patch.object(v2_1_fabric, 'Fabric', autospec=True)
def test_get_fabric(self, mock_fabric): def test_get_fabric(self, mock_fabric):
self.rsd.get_fabric('fake-fabric-id') self.rsd.get_fabric('fake-fabric-id')
mock_fabric.assert_called_once_with( mock_fabric.assert_called_once_with(
self.rsd._conn, 'fake-fabric-id', self.rsd._conn, 'fake-fabric-id',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(chassis, 'ChassisCollection', autospec=True) @mock.patch.object(v2_1_chassis, 'ChassisCollection', autospec=True)
def test_get_chassis_collection(self, mock_chassis_collection): def test_get_chassis_collection(self, mock_chassis_collection):
self.rsd.get_chassis_collection() self.rsd.get_chassis_collection()
mock_chassis_collection.assert_called_once_with( mock_chassis_collection.assert_called_once_with(
self.rsd._conn, '/redfish/v1/Chassis', self.rsd._conn, '/redfish/v1/Chassis',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(chassis, 'Chassis', autospec=True) @mock.patch.object(v2_1_chassis, 'Chassis', autospec=True)
def test_get_chassis(self, mock_chassis): def test_get_chassis(self, mock_chassis):
self.rsd.get_chassis('fake-chassis-id') self.rsd.get_chassis('fake-chassis-id')
mock_chassis.assert_called_once_with( mock_chassis.assert_called_once_with(
self.rsd._conn, 'fake-chassis-id', self.rsd._conn, 'fake-chassis-id',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(storage_service, 'StorageServiceCollection', @mock.patch.object(v2_1_storage_service, 'StorageServiceCollection',
autospec=True) autospec=True)
def test_get_storage_service_collection(self, def test_get_storage_service_collection(self,
mock_storage_service_collection): mock_storage_service_collection):
@ -114,7 +113,7 @@ class RSDLibV2_2TestCase(testtools.TestCase):
self.rsd._conn, '/redfish/v1/Services', self.rsd._conn, '/redfish/v1/Services',
redfish_version=self.rsd.redfish_version) redfish_version=self.rsd.redfish_version)
@mock.patch.object(storage_service, 'StorageService', autospec=True) @mock.patch.object(v2_1_storage_service, 'StorageService', autospec=True)
def test_get_storage_service(self, mock_storage_service): def test_get_storage_service(self, mock_storage_service):
self.rsd.get_storage_service('fake-storage-service-id') self.rsd.get_storage_service('fake-storage-service-id')
mock_storage_service.assert_called_once_with( mock_storage_service.assert_called_once_with(