Fixing __getattribute__ def and refactor from_json
The previous commit left a __getattribute__ definition in models.OneViewObject that would enter an infinite loop when called with an argument that isn't on the attribute_map of the instance. I'm removing it since it was legacy of a test and shoudn't have remained on the code. This also refactors duplicate code on *_from_json methods. Change-Id: Ib080d58d666e39865cc7c03121d0341361c9617c
This commit is contained in:
		
				
					committed by
					
						
						Gabriel Bezerra
					
				
			
			
				
	
			
			
			
						parent
						
							caa0e7a657
						
					
				
				
					commit
					c8dd37d0a7
				
			@@ -23,29 +23,16 @@ class OneViewObject(object):
 | 
				
			|||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def from_json(cls, json):
 | 
					    def from_json(cls, json):
 | 
				
			||||||
        instance = cls()
 | 
					        instance = cls()
 | 
				
			||||||
        for attr_key in instance.attribute_map:
 | 
					        instance.update_from_json(json)
 | 
				
			||||||
            attribute_value = json.get(attr_key)
 | 
					 | 
				
			||||||
            if attribute_value:
 | 
					 | 
				
			||||||
                setattr(instance,
 | 
					 | 
				
			||||||
                        instance.attribute_map.get(attr_key),
 | 
					 | 
				
			||||||
                        attribute_value)
 | 
					 | 
				
			||||||
        return instance
 | 
					        return instance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def update_from_json(self, json):
 | 
					    def update_from_json(self, json):
 | 
				
			||||||
        for attr_key in self.attribute_map:
 | 
					        for attr_key in self.attribute_map:
 | 
				
			||||||
            attribute_value = json.get(attr_key)
 | 
					            attribute_value = json.get(attr_key)
 | 
				
			||||||
            if attribute_value:
 | 
					 | 
				
			||||||
            setattr(self,
 | 
					            setattr(self,
 | 
				
			||||||
                    self.attribute_map.get(attr_key),
 | 
					                    self.attribute_map.get(attr_key),
 | 
				
			||||||
                    attribute_value)
 | 
					                    attribute_value)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __getattribute__(self, name):
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            return super(OneViewObject, self).__getattribute__(name)
 | 
					 | 
				
			||||||
        except AttributeError:
 | 
					 | 
				
			||||||
            self.lazy_reload()
 | 
					 | 
				
			||||||
            return super(OneViewObject, self).__getattribute__(name)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class EnclosureGroup(OneViewObject):
 | 
					class EnclosureGroup(OneViewObject):
 | 
				
			||||||
    attribute_map = {
 | 
					    attribute_map = {
 | 
				
			||||||
@@ -136,9 +123,8 @@ class ServerProfile(OneViewObject):
 | 
				
			|||||||
        'sanStorage': 'san_storage',
 | 
					        'sanStorage': 'san_storage',
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    def update_from_json(self, json_body):
 | 
				
			||||||
    def from_json(cls, json_body):
 | 
					        """Updates an instance of ServerProfile with values parsed from json
 | 
				
			||||||
        """Returns an instance of ServerProfile with values parsed from json
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        This method differs from the one in OneViewObject since it adds keys in
 | 
					        This method differs from the one in OneViewObject since it adds keys in
 | 
				
			||||||
        the ServerProfile object for values that aren't on attribute_map. This
 | 
					        the ServerProfile object for values that aren't on attribute_map. This
 | 
				
			||||||
@@ -146,14 +132,12 @@ class ServerProfile(OneViewObject):
 | 
				
			|||||||
        to preserve state and required fields that aren't exploited by
 | 
					        to preserve state and required fields that aren't exploited by
 | 
				
			||||||
        python-oneviewclient
 | 
					        python-oneviewclient
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        instance = cls()
 | 
					 | 
				
			||||||
        for attr_key in json_body.keys():
 | 
					        for attr_key in json_body.keys():
 | 
				
			||||||
            attribute_value = json_body.get(attr_key)
 | 
					            attribute_value = json_body.get(attr_key)
 | 
				
			||||||
            attribute_map_value = cls.attribute_map.get(attr_key)
 | 
					            attribute_map_value = self.attribute_map.get(attr_key)
 | 
				
			||||||
            if attribute_map_value is not None:
 | 
					            if attribute_map_value is not None:
 | 
				
			||||||
                attr_key = attribute_map_value
 | 
					                attr_key = attribute_map_value
 | 
				
			||||||
            setattr(instance, attr_key, attribute_value)
 | 
					            setattr(self, attr_key, attribute_value)
 | 
				
			||||||
        return instance
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def to_oneview_dict(self):
 | 
					    def to_oneview_dict(self):
 | 
				
			||||||
        server_profile_dict = {}
 | 
					        server_profile_dict = {}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,6 +48,7 @@ class Test(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(eg.uuid, '1111-2222-3333-4444')
 | 
					        self.assertEqual(eg.uuid, '1111-2222-3333-4444')
 | 
				
			||||||
        self.assertEqual(eg.name, 'my-enclosure-group')
 | 
					        self.assertEqual(eg.name, 'my-enclosure-group')
 | 
				
			||||||
        self.assertEqual(eg.enclosure_type_uri, 'something1')
 | 
					        self.assertEqual(eg.enclosure_type_uri, 'something1')
 | 
				
			||||||
 | 
					        self.assertFalse(hasattr(eg, 'something_not_defined'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_enclosure_from_json(self):
 | 
					    def test_enclosure_from_json(self):
 | 
				
			||||||
        json = {
 | 
					        json = {
 | 
				
			||||||
@@ -68,6 +69,7 @@ class Test(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(encl.attribute_map, enclosure_attribute_map)
 | 
					        self.assertEqual(encl.attribute_map, enclosure_attribute_map)
 | 
				
			||||||
        self.assertEqual(encl.uri, 'http://something.com/1111-2222-3333-4444')
 | 
					        self.assertEqual(encl.uri, 'http://something.com/1111-2222-3333-4444')
 | 
				
			||||||
        self.assertEqual(encl.logical_enclosure_uri, 'something3')
 | 
					        self.assertEqual(encl.logical_enclosure_uri, 'something3')
 | 
				
			||||||
 | 
					        self.assertFalse(hasattr(encl, 'something_not_defined'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_serverhardwaretype_from_json(self):
 | 
					    def test_serverhardwaretype_from_json(self):
 | 
				
			||||||
        json = {
 | 
					        json = {
 | 
				
			||||||
@@ -85,6 +87,7 @@ class Test(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(sht.uri, 'http://something.com/1111-2222-3333-4444')
 | 
					        self.assertEqual(sht.uri, 'http://something.com/1111-2222-3333-4444')
 | 
				
			||||||
        self.assertEqual(sht.uuid, 'aaaa-bbbb-cccc')
 | 
					        self.assertEqual(sht.uuid, 'aaaa-bbbb-cccc')
 | 
				
			||||||
        self.assertEqual(sht.name, 'my-server-hardware-type')
 | 
					        self.assertEqual(sht.name, 'my-server-hardware-type')
 | 
				
			||||||
 | 
					        self.assertFalse(hasattr(sht, 'something_not_defined'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_serverhardware_from_json(self):
 | 
					    def test_serverhardware_from_json(self):
 | 
				
			||||||
        json = {
 | 
					        json = {
 | 
				
			||||||
@@ -92,7 +95,8 @@ class Test(unittest.TestCase):
 | 
				
			|||||||
            'uuid': '1111-2222-3333-4444',
 | 
					            'uuid': '1111-2222-3333-4444',
 | 
				
			||||||
            'name': 'my-server-profile',
 | 
					            'name': 'my-server-profile',
 | 
				
			||||||
            'powerState': 'Powered On',
 | 
					            'powerState': 'Powered On',
 | 
				
			||||||
            'serverProfileUri': 'something1',
 | 
					            # NOTE: porpusefully commented to test
 | 
				
			||||||
 | 
					            # 'serverProfileUri': 'something1',
 | 
				
			||||||
            'serverHardwareTypeUri': 'something2',
 | 
					            'serverHardwareTypeUri': 'something2',
 | 
				
			||||||
            'serverGroupUri': 'something3',
 | 
					            'serverGroupUri': 'something3',
 | 
				
			||||||
            'status': 'something4',
 | 
					            'status': 'something4',
 | 
				
			||||||
@@ -133,6 +137,8 @@ class Test(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(sh.name, 'my-server-profile')
 | 
					        self.assertEqual(sh.name, 'my-server-profile')
 | 
				
			||||||
        self.assertEqual(sh.power_state, 'Powered On')
 | 
					        self.assertEqual(sh.power_state, 'Powered On')
 | 
				
			||||||
        self.assertEqual(sh.state_reason, 'something5')
 | 
					        self.assertEqual(sh.state_reason, 'something5')
 | 
				
			||||||
 | 
					        self.assertIsNone(sh.server_profile_uri)
 | 
				
			||||||
 | 
					        self.assertFalse(hasattr(sh, 'something_not_defined'))
 | 
				
			||||||
        self.assertDictContainsSubset(
 | 
					        self.assertDictContainsSubset(
 | 
				
			||||||
            {'mpIpAddresses': [{
 | 
					            {'mpIpAddresses': [{
 | 
				
			||||||
                'address': '172.18.6.18',
 | 
					                'address': '172.18.6.18',
 | 
				
			||||||
@@ -162,6 +168,7 @@ class Test(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(spt.attribute_map, spt_attribute_map)
 | 
					        self.assertEqual(spt.attribute_map, spt_attribute_map)
 | 
				
			||||||
        self.assertEqual(spt.uri, 'http://something.com/1111-2222-3333-4444')
 | 
					        self.assertEqual(spt.uri, 'http://something.com/1111-2222-3333-4444')
 | 
				
			||||||
        self.assertEqual(spt.enclosure_group_uri, 'something2')
 | 
					        self.assertEqual(spt.enclosure_group_uri, 'something2')
 | 
				
			||||||
 | 
					        self.assertFalse(hasattr(spt, 'something_not_defined'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_serverprofile_from_json(self):
 | 
					    def test_serverprofile_from_json(self):
 | 
				
			||||||
        json = {
 | 
					        json = {
 | 
				
			||||||
@@ -194,6 +201,7 @@ class Test(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(sp.attribute_map, server_profile_attribute_map)
 | 
					        self.assertEqual(sp.attribute_map, server_profile_attribute_map)
 | 
				
			||||||
        self.assertEqual(sp.uri, 'http://something.com')
 | 
					        self.assertEqual(sp.uri, 'http://something.com')
 | 
				
			||||||
        self.assertEqual(sp.server_profile_template_uri, 'something')
 | 
					        self.assertEqual(sp.server_profile_template_uri, 'something')
 | 
				
			||||||
 | 
					        self.assertFalse(hasattr(sp, 'something_not_defined'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_serverprofile_to_oneview_dict(self):
 | 
					    def test_serverprofile_to_oneview_dict(self):
 | 
				
			||||||
        profile = ServerProfile()
 | 
					        profile = ServerProfile()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,7 @@
 | 
				
			|||||||
#    See the License for the specific language governing permissions and
 | 
					#    See the License for the specific language governing permissions and
 | 
				
			||||||
#    limitations under the License.
 | 
					#    limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import copy
 | 
				
			||||||
import json
 | 
					import json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mock
 | 
					import mock
 | 
				
			||||||
@@ -25,10 +26,9 @@ import unittest
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
from oneview_client import client
 | 
					from oneview_client import client
 | 
				
			||||||
from oneview_client import exceptions
 | 
					from oneview_client import exceptions
 | 
				
			||||||
from oneview_client.models import ServerHardware
 | 
					from oneview_client import models
 | 
				
			||||||
from oneview_client.models import ServerProfile
 | 
					 | 
				
			||||||
from oneview_client.models import ServerProfileTemplate
 | 
					 | 
				
			||||||
from oneview_client import states
 | 
					from oneview_client import states
 | 
				
			||||||
 | 
					from oneview_client.tests import fixtures
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PROPERTIES_DICT = {"cpu_arch": "x86_64",
 | 
					PROPERTIES_DICT = {"cpu_arch": "x86_64",
 | 
				
			||||||
                   "cpus": "8",
 | 
					                   "cpus": "8",
 | 
				
			||||||
@@ -403,6 +403,38 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
            self.oneview_client, uri="/rest/server-hardware/555"
 | 
					            self.oneview_client, uri="/rest/server-hardware/555"
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @mock.patch.object(client.Client, '_wait_for_task_to_complete',
 | 
				
			||||||
 | 
					                       autospec=True)
 | 
				
			||||||
 | 
					    @mock.patch.object(client.Client, '_prepare_and_do_request', autospec=True)
 | 
				
			||||||
 | 
					    @mock.patch.object(client.Client, 'get_server_profile_from_hardware',
 | 
				
			||||||
 | 
					                       autospec=True)
 | 
				
			||||||
 | 
					    @mock.patch.object(client.Client, 'get_server_hardware', autospec=True)
 | 
				
			||||||
 | 
					    def test_set_boot_device(
 | 
				
			||||||
 | 
					        self, mock_get_server_hardware, mock_get_server_profile,
 | 
				
			||||||
 | 
					        mock__prepare_do_request, mock__wait_for_task
 | 
				
			||||||
 | 
					    ):
 | 
				
			||||||
 | 
					        mock_get_server_hardware.return_value = (
 | 
				
			||||||
 | 
					            models.ServerHardware.from_json(fixtures.SERVER_HARDWARE_JSON)
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        mock_get_server_profile.return_value = (
 | 
				
			||||||
 | 
					            models.ServerProfile.from_json(fixtures.SERVER_PROFILE_JSON)
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        expected_profile = copy.deepcopy(fixtures.SERVER_PROFILE_JSON)
 | 
				
			||||||
 | 
					        expected_profile['boot'] = {
 | 
				
			||||||
 | 
					            'manageBoot': True,
 | 
				
			||||||
 | 
					            'order': ["USB", "CD", "Floppy", "HardDisk", "PXE"]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        driver_info = {"server_hardware_uri": "/any"}
 | 
				
			||||||
 | 
					        new_first_boot_device = "USB"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.oneview_client.set_boot_device(driver_info, new_first_boot_device)
 | 
				
			||||||
 | 
					        mock__prepare_do_request.assert_called_once_with(
 | 
				
			||||||
 | 
					            self.oneview_client,
 | 
				
			||||||
 | 
					            body=expected_profile,
 | 
				
			||||||
 | 
					            request_type='PUT',
 | 
				
			||||||
 | 
					            uri='/rest/server-profiles/f2160e28-8107-45f9-b4b2-3119a622a3a1'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @mock.patch.object(client.Client, '_prepare_and_do_request', autospec=True)
 | 
					    @mock.patch.object(client.Client, '_prepare_and_do_request', autospec=True)
 | 
				
			||||||
    @mock.patch.object(client.Client, 'get_server_profile_from_hardware',
 | 
					    @mock.patch.object(client.Client, 'get_server_profile_from_hardware',
 | 
				
			||||||
                       autospec=True)
 | 
					                       autospec=True)
 | 
				
			||||||
@@ -448,7 +480,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
        driver_info = {}
 | 
					        driver_info = {}
 | 
				
			||||||
        new_first_boot_device = "any_boot_device"
 | 
					        new_first_boot_device = "any_boot_device"
 | 
				
			||||||
        mock_get_boot_order.return_value = []
 | 
					        mock_get_boot_order.return_value = []
 | 
				
			||||||
        server_hardware = ServerHardware()
 | 
					        server_hardware = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware, 'server_profile_uri', None)
 | 
					        setattr(server_hardware, 'server_profile_uri', None)
 | 
				
			||||||
        mock_get_server_hardware.return_value = server_hardware
 | 
					        mock_get_server_hardware.return_value = server_hardware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -565,7 +597,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_validate_node_server_hardware_inconsistent_memorymb_value(
 | 
					    def test_validate_node_server_hardware_inconsistent_memorymb_value(
 | 
				
			||||||
        self, mock_get_server_hardware
 | 
					        self, mock_get_server_hardware
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock, "processor_core_count", 1)
 | 
					        setattr(server_hardware_mock, "processor_core_count", 1)
 | 
				
			||||||
        setattr(server_hardware_mock, "processor_count", 1)
 | 
					        setattr(server_hardware_mock, "processor_count", 1)
 | 
				
			||||||
        setattr(server_hardware_mock, "memory_mb", 1)
 | 
					        setattr(server_hardware_mock, "memory_mb", 1)
 | 
				
			||||||
@@ -596,7 +628,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_validate_node_server_hardware_inconsistent_cpus_value(
 | 
					    def test_validate_node_server_hardware_inconsistent_cpus_value(
 | 
				
			||||||
        self, mock_get_server_hardware
 | 
					        self, mock_get_server_hardware
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock, "processor_core_count", 2)
 | 
					        setattr(server_hardware_mock, "processor_core_count", 2)
 | 
				
			||||||
        setattr(server_hardware_mock, "processor_count", 3)
 | 
					        setattr(server_hardware_mock, "processor_count", 3)
 | 
				
			||||||
        setattr(server_hardware_mock, "memory_mb", 1)
 | 
					        setattr(server_hardware_mock, "memory_mb", 1)
 | 
				
			||||||
@@ -627,7 +659,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_validate_node_server_hardware_type_inconsistent_sht_uri(
 | 
					    def test_validate_node_server_hardware_type_inconsistent_sht_uri(
 | 
				
			||||||
        self, mock_get_server_hardware
 | 
					        self, mock_get_server_hardware
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock,
 | 
					        setattr(server_hardware_mock,
 | 
				
			||||||
                "server_hardware_type_uri",
 | 
					                "server_hardware_type_uri",
 | 
				
			||||||
                "/incosistent_uri")
 | 
					                "/incosistent_uri")
 | 
				
			||||||
@@ -655,7 +687,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_validate_node_enclosure_group_inconsistent(
 | 
					    def test_validate_node_enclosure_group_inconsistent(
 | 
				
			||||||
        self, mock_get_server_hardware
 | 
					        self, mock_get_server_hardware
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware = ServerHardware()
 | 
					        server_hardware = models.ServerHardware()
 | 
				
			||||||
        server_hardware.uuid = "aaaa-bbbb-cccc"
 | 
					        server_hardware.uuid = "aaaa-bbbb-cccc"
 | 
				
			||||||
        server_hardware.enclosure_group_uri = "/my-real-enclosure-group"
 | 
					        server_hardware.enclosure_group_uri = "/my-real-enclosure-group"
 | 
				
			||||||
        mock_get_server_hardware.return_value = server_hardware
 | 
					        mock_get_server_hardware.return_value = server_hardware
 | 
				
			||||||
@@ -684,7 +716,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_is_node_port_mac_compatible_with_server_hardware(
 | 
					    def test_is_node_port_mac_compatible_with_server_hardware(
 | 
				
			||||||
        self, mock_server_hardware, mock_server_hardware_by_uuid,
 | 
					        self, mock_server_hardware, mock_server_hardware_by_uuid,
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock, "uri", "/anyuri")
 | 
					        setattr(server_hardware_mock, "uri", "/anyuri")
 | 
				
			||||||
        setattr(server_hardware_mock, "uuid", "1111-2222-3333")
 | 
					        setattr(server_hardware_mock, "uuid", "1111-2222-3333")
 | 
				
			||||||
        server_hardware_mock_port_map = PORT_MAP
 | 
					        server_hardware_mock_port_map = PORT_MAP
 | 
				
			||||||
@@ -709,7 +741,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_is_node_port_mac_incompatible_with_server_hardware(
 | 
					    def test_is_node_port_mac_incompatible_with_server_hardware(
 | 
				
			||||||
        self, mock_server_hardware, mock_server_hardware_by_uuid,
 | 
					        self, mock_server_hardware, mock_server_hardware_by_uuid,
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock, "uri", "/anyuri")
 | 
					        setattr(server_hardware_mock, "uri", "/anyuri")
 | 
				
			||||||
        setattr(server_hardware_mock, "uuid", "1111-2222-3333")
 | 
					        setattr(server_hardware_mock, "uuid", "1111-2222-3333")
 | 
				
			||||||
        server_hardware_mock_port_map = PORT_MAP
 | 
					        server_hardware_mock_port_map = PORT_MAP
 | 
				
			||||||
@@ -739,7 +771,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_check_node_port_mac_incompatible_with_server_profile(
 | 
					    def test_check_node_port_mac_incompatible_with_server_profile(
 | 
				
			||||||
        self, mock_server_profile
 | 
					        self, mock_server_profile
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_profile_mock = ServerProfile()
 | 
					        server_profile_mock = models.ServerProfile()
 | 
				
			||||||
        setattr(server_profile_mock, "uri", "/anyuri")
 | 
					        setattr(server_profile_mock, "uri", "/anyuri")
 | 
				
			||||||
        server_profile_mock_connections = [
 | 
					        server_profile_mock_connections = [
 | 
				
			||||||
            {'boot': {'priority': u'Primary'},
 | 
					            {'boot': {'priority': u'Primary'},
 | 
				
			||||||
@@ -770,7 +802,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_check_node_port_mac_no_primary_boot_connection(
 | 
					    def test_check_node_port_mac_no_primary_boot_connection(
 | 
				
			||||||
        self, mock_server_profile
 | 
					        self, mock_server_profile
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_profile_mock = ServerProfile()
 | 
					        server_profile_mock = models.ServerProfile()
 | 
				
			||||||
        setattr(server_profile_mock, "uri", "/anyuri")
 | 
					        setattr(server_profile_mock, "uri", "/anyuri")
 | 
				
			||||||
        server_profile_mock_connections = [
 | 
					        server_profile_mock_connections = [
 | 
				
			||||||
            {'boot': {'priority': u'NotBootable'},
 | 
					            {'boot': {'priority': u'NotBootable'},
 | 
				
			||||||
@@ -802,13 +834,13 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_validate_node_server_profile_template_inconsistent_sht(
 | 
					    def test_validate_node_server_profile_template_inconsistent_sht(
 | 
				
			||||||
        self, mock_server_hardware, mock_server_template
 | 
					        self, mock_server_hardware, mock_server_template
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock,
 | 
					        setattr(server_hardware_mock,
 | 
				
			||||||
                "server_hardware_type_uri",
 | 
					                "server_hardware_type_uri",
 | 
				
			||||||
                "/sht_uri")
 | 
					                "/sht_uri")
 | 
				
			||||||
        setattr(server_hardware_mock, "enclosure_group_uri", "eg_uri")
 | 
					        setattr(server_hardware_mock, "enclosure_group_uri", "eg_uri")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        server_profile_template_mock = ServerProfileTemplate()
 | 
					        server_profile_template_mock = models.ServerProfileTemplate()
 | 
				
			||||||
        setattr(server_profile_template_mock,
 | 
					        setattr(server_profile_template_mock,
 | 
				
			||||||
                "server_hardware_type_uri",
 | 
					                "server_hardware_type_uri",
 | 
				
			||||||
                "/inconsistent_uri")
 | 
					                "/inconsistent_uri")
 | 
				
			||||||
@@ -843,13 +875,13 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_validate_node_server_profile_template_inconsistent_eg(
 | 
					    def test_validate_node_server_profile_template_inconsistent_eg(
 | 
				
			||||||
        self, mock_server_hardware, mock_server_template
 | 
					        self, mock_server_hardware, mock_server_template
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock,
 | 
					        setattr(server_hardware_mock,
 | 
				
			||||||
                "server_hardware_type_uri",
 | 
					                "server_hardware_type_uri",
 | 
				
			||||||
                "/sht_uri")
 | 
					                "/sht_uri")
 | 
				
			||||||
        setattr(server_hardware_mock, "enclosure_group_uri", "eg_uri")
 | 
					        setattr(server_hardware_mock, "enclosure_group_uri", "eg_uri")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        server_profile_template_mock = ServerProfileTemplate()
 | 
					        server_profile_template_mock = models.ServerProfileTemplate()
 | 
				
			||||||
        setattr(server_profile_template_mock,
 | 
					        setattr(server_profile_template_mock,
 | 
				
			||||||
                "server_hardware_type_uri",
 | 
					                "server_hardware_type_uri",
 | 
				
			||||||
                "/sht_uri")
 | 
					                "/sht_uri")
 | 
				
			||||||
@@ -884,11 +916,11 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_validate_node_server_profile_template_no_primary_boot_connection(
 | 
					    def test_validate_node_server_profile_template_no_primary_boot_connection(
 | 
				
			||||||
        self, mock_server_hardware, mock_server_template
 | 
					        self, mock_server_hardware, mock_server_template
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_hardware_mock = ServerHardware()
 | 
					        server_hardware_mock = models.ServerHardware()
 | 
				
			||||||
        setattr(server_hardware_mock, "server_hardware_type_uri", "/sht_uri")
 | 
					        setattr(server_hardware_mock, "server_hardware_type_uri", "/sht_uri")
 | 
				
			||||||
        setattr(server_hardware_mock, "enclosure_group_uri", "/eg_uri")
 | 
					        setattr(server_hardware_mock, "enclosure_group_uri", "/eg_uri")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        profile_template_mock = ServerProfileTemplate()
 | 
					        profile_template_mock = models.ServerProfileTemplate()
 | 
				
			||||||
        setattr(profile_template_mock, "uri", "/template_uri")
 | 
					        setattr(profile_template_mock, "uri", "/template_uri")
 | 
				
			||||||
        setattr(profile_template_mock, "server_hardware_type_uri", "/sht_uri")
 | 
					        setattr(profile_template_mock, "server_hardware_type_uri", "/sht_uri")
 | 
				
			||||||
        setattr(profile_template_mock, "enclosure_group_uri", "/eg_uri")
 | 
					        setattr(profile_template_mock, "enclosure_group_uri", "/eg_uri")
 | 
				
			||||||
@@ -945,7 +977,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    def test_is_mac_compatible_with_server_profile(
 | 
					    def test_is_mac_compatible_with_server_profile(
 | 
				
			||||||
        self, mock_get_server_profile_from_hardware
 | 
					        self, mock_get_server_profile_from_hardware
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_profile_mock = ServerProfile()
 | 
					        server_profile_mock = models.ServerProfile()
 | 
				
			||||||
        setattr(
 | 
					        setattr(
 | 
				
			||||||
            server_profile_mock,
 | 
					            server_profile_mock,
 | 
				
			||||||
            'connections',
 | 
					            'connections',
 | 
				
			||||||
@@ -964,7 +996,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    @mock.patch.object(client.Client, 'get_server_profile_from_hardware')
 | 
					    @mock.patch.object(client.Client, 'get_server_profile_from_hardware')
 | 
				
			||||||
    def test_is_mac_compatible_with_server_profile_with_no_ports(
 | 
					    def test_is_mac_compatible_with_server_profile_with_no_ports(
 | 
				
			||||||
            self, mock_get_server_profile_from_hardware):
 | 
					            self, mock_get_server_profile_from_hardware):
 | 
				
			||||||
        server_profile_mock = ServerProfile()
 | 
					        server_profile_mock = models.ServerProfile()
 | 
				
			||||||
        setattr(
 | 
					        setattr(
 | 
				
			||||||
            server_profile_mock,
 | 
					            server_profile_mock,
 | 
				
			||||||
            'connections',
 | 
					            'connections',
 | 
				
			||||||
@@ -987,7 +1019,7 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
    @mock.patch.object(client.Client, 'get_server_profile_from_hardware')
 | 
					    @mock.patch.object(client.Client, 'get_server_profile_from_hardware')
 | 
				
			||||||
    def test_is_mac_compatible_with_server_profile_without_boot_in_connection(
 | 
					    def test_is_mac_compatible_with_server_profile_without_boot_in_connection(
 | 
				
			||||||
            self, mock_get_server_profile_from_hardware):
 | 
					            self, mock_get_server_profile_from_hardware):
 | 
				
			||||||
        server_profile_mock = ServerProfile()
 | 
					        server_profile_mock = models.ServerProfile()
 | 
				
			||||||
        setattr(server_profile_mock, 'connections', [{}])
 | 
					        setattr(server_profile_mock, 'connections', [{}])
 | 
				
			||||||
        setattr(server_profile_mock, 'uri', 'sp_uri')
 | 
					        setattr(server_profile_mock, 'uri', 'sp_uri')
 | 
				
			||||||
        mock_get_server_profile_from_hardware.return_value = \
 | 
					        mock_get_server_profile_from_hardware.return_value = \
 | 
				
			||||||
@@ -1009,12 +1041,12 @@ class OneViewClientTestCase(unittest.TestCase):
 | 
				
			|||||||
        self, mock_get_server_profile_from_hardware,
 | 
					        self, mock_get_server_profile_from_hardware,
 | 
				
			||||||
        mock_get_server_hardware, mock_get_sh_mac_from_ilo,
 | 
					        mock_get_server_hardware, mock_get_sh_mac_from_ilo,
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        server_profile = ServerProfile()
 | 
					        server_profile = models.ServerProfile()
 | 
				
			||||||
        server_profile.connections = []  # No connections, SP for DL server
 | 
					        server_profile.connections = []  # No connections, SP for DL server
 | 
				
			||||||
        server_profile.uri = 'sp_uri'
 | 
					        server_profile.uri = 'sp_uri'
 | 
				
			||||||
        mock_get_server_profile_from_hardware.return_value = server_profile
 | 
					        mock_get_server_profile_from_hardware.return_value = server_profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        server_hardware = ServerHardware()
 | 
					        server_hardware = models.ServerHardware()
 | 
				
			||||||
        server_hardware_uuid = 'aaaa-bbbb-cccc'
 | 
					        server_hardware_uuid = 'aaaa-bbbb-cccc'
 | 
				
			||||||
        server_hardware.uuid = server_hardware_uuid
 | 
					        server_hardware.uuid = server_hardware_uuid
 | 
				
			||||||
        server_hardware.mp_host_info = {
 | 
					        server_hardware.mp_host_info = {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user