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:
		 Thiago Paiva
					Thiago Paiva
				
			
				
					committed by
					
						 Gabriel Bezerra
						Gabriel Bezerra
					
				
			
			
				
	
			
			
			 Gabriel Bezerra
						Gabriel Bezerra
					
				
			
						parent
						
							caa0e7a657
						
					
				
				
					commit
					c8dd37d0a7
				
			| @@ -23,28 +23,15 @@ 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): | ||||||
| @@ -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