From c84585e6f46fb80a99cbc5e120a6bed232cc7c89 Mon Sep 17 00:00:00 2001 From: chrisarnott86 Date: Mon, 5 Nov 2018 12:12:38 +0000 Subject: [PATCH 01/12] Create appliance_network_interfaces.py method for getting appliance network information --- .../settings/appliance_network_interfaces.py | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 hpOneView/resources/settings/appliance_network_interfaces.py diff --git a/hpOneView/resources/settings/appliance_network_interfaces.py b/hpOneView/resources/settings/appliance_network_interfaces.py new file mode 100644 index 00000000..01a4afe8 --- /dev/null +++ b/hpOneView/resources/settings/appliance_network_interfaces.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +### +# (C) Copyright (2012-2017) Hewlett Packard Enterprise Development LP +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +### + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +from future import standard_library + +standard_library.install_aliases() + +from hpOneView.resources.resource import ResourceClient + + +class ApplianceNetworkInformation(object): + """ + ApplianceNetworkInformation API client. + """ + URI = '/rest/appliance/network-interfaces' + + def __init__(self, con): + self._client = ResourceClient(con, self.URI) + + def get_all(self): + """ + Retrieves applicance network information + Returns: + dict: Appliance's network information + """ + uri = self.URI + return self._client.get(uri) + +return self._client.get(uri) From ddbdde22e65b9501a5af915aeaadd83ee0eda85a Mon Sep 17 00:00:00 2001 From: chrisarnott86 Date: Mon, 5 Nov 2018 12:14:01 +0000 Subject: [PATCH 02/12] Update appliance_network_interfaces.py tidy, remove stray return line --- hpOneView/resources/settings/appliance_network_interfaces.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hpOneView/resources/settings/appliance_network_interfaces.py b/hpOneView/resources/settings/appliance_network_interfaces.py index 01a4afe8..b35f05d1 100644 --- a/hpOneView/resources/settings/appliance_network_interfaces.py +++ b/hpOneView/resources/settings/appliance_network_interfaces.py @@ -50,5 +50,4 @@ def get_all(self): """ uri = self.URI return self._client.get(uri) - -return self._client.get(uri) + From 28b6787cd820a3c6d03c9f40d01bfec4aa8cf6d7 Mon Sep 17 00:00:00 2001 From: chrisarnott86 Date: Mon, 5 Nov 2018 12:20:27 +0000 Subject: [PATCH 03/12] Update oneview_client.py add appliance network information class link --- hpOneView/oneview_client.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/hpOneView/oneview_client.py b/hpOneView/oneview_client.py index 6c1a7bf5..b3809dcb 100755 --- a/hpOneView/oneview_client.py +++ b/hpOneView/oneview_client.py @@ -107,6 +107,7 @@ from hpOneView.resources.security.roles import Roles from hpOneView.resources.security.users import Users from hpOneView.resources.settings.appliance_node_information import ApplianceNodeInformation +from hpOneView.resources.settings.appliance_network_information import ApplianceNetworkInformation from hpOneView.resources.settings.appliance_time_and_locale_configuration import ApplianceTimeAndLocaleConfiguration from hpOneView.resources.settings.versions import Versions @@ -1129,6 +1130,19 @@ def appliance_node_information(self): self.__appliance_node_information = ApplianceNodeInformation(self.__connection) return self.__appliance_node_information + + @property + def appliance_network_information(self): + """ + Gets the ApplianceNetworkInformation API client. + + Returns: + ApplianceNetworkInformation: + """ + if not self.__appliance_network_information: + self.__appliance_network_information = ApplianceNetworkInformation(self.__connection) + return self.__appliance_network_information + @property def appliance_time_and_locale_configuration(self): """ From 94763711f574532b845ba0404bb2f28d5c3496ea Mon Sep 17 00:00:00 2001 From: chrisarnott86 Date: Mon, 5 Nov 2018 12:38:52 +0000 Subject: [PATCH 04/12] Rename appliance_network_interfaces.py to appliance_network_information.py --- ...nce_network_interfaces.py => appliance_network_information.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename hpOneView/resources/settings/{appliance_network_interfaces.py => appliance_network_information.py} (100%) diff --git a/hpOneView/resources/settings/appliance_network_interfaces.py b/hpOneView/resources/settings/appliance_network_information.py similarity index 100% rename from hpOneView/resources/settings/appliance_network_interfaces.py rename to hpOneView/resources/settings/appliance_network_information.py From 7e4f548dfc1bd5858c2ac9be021e5c2716742622 Mon Sep 17 00:00:00 2001 From: chrisarnott86 Date: Mon, 5 Nov 2018 12:48:35 +0000 Subject: [PATCH 05/12] Update oneview_client.py add appliance_network_information attribute --- hpOneView/oneview_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/hpOneView/oneview_client.py b/hpOneView/oneview_client.py index b3809dcb..f5f9e785 100755 --- a/hpOneView/oneview_client.py +++ b/hpOneView/oneview_client.py @@ -193,6 +193,7 @@ def __init__(self, config): self.__users = None self.__appliance_time_and_locale_configuration = None self.__appliance_node_information = None + self.__appliance_network_information = None self.__versions = None self.__backups = None self.__login_details = None From b0a0fe07ed3f0e4d7d7ade28d43f5258e344d711 Mon Sep 17 00:00:00 2001 From: Chris Arnott Date: Tue, 6 Nov 2018 08:45:11 +0000 Subject: [PATCH 06/12] fixing whitespace and line spaces --- hpOneView/oneview_client.py | 3 +-- hpOneView/resources/settings/appliance_network_information.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/hpOneView/oneview_client.py b/hpOneView/oneview_client.py index f5f9e785..a3be7c90 100755 --- a/hpOneView/oneview_client.py +++ b/hpOneView/oneview_client.py @@ -1131,7 +1131,6 @@ def appliance_node_information(self): self.__appliance_node_information = ApplianceNodeInformation(self.__connection) return self.__appliance_node_information - @property def appliance_network_information(self): """ @@ -1143,7 +1142,7 @@ def appliance_network_information(self): if not self.__appliance_network_information: self.__appliance_network_information = ApplianceNetworkInformation(self.__connection) return self.__appliance_network_information - + @property def appliance_time_and_locale_configuration(self): """ diff --git a/hpOneView/resources/settings/appliance_network_information.py b/hpOneView/resources/settings/appliance_network_information.py index b35f05d1..ee1757da 100644 --- a/hpOneView/resources/settings/appliance_network_information.py +++ b/hpOneView/resources/settings/appliance_network_information.py @@ -50,4 +50,3 @@ def get_all(self): """ uri = self.URI return self._client.get(uri) - From 6463bc356dcdb75df0365db16fa960ea92c79dd5 Mon Sep 17 00:00:00 2001 From: Chris Arnott Date: Tue, 6 Nov 2018 09:00:26 +0000 Subject: [PATCH 07/12] add ignores to tox.ini for line breaks after binary operator (W504) and invalid escape sequence (W605). One instance of W605 in hpOneView/resources/networking/ethernet_networks.py:175:32 --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 68c4de6c..60300cd5 100644 --- a/tox.ini +++ b/tox.ini @@ -9,7 +9,7 @@ envlist = docs, py34, py36, py27-coverage, py27-flake8 skip_missing_interpreters = true [flake8] -ignore = E402 +ignore = E402,W504,W605 max-line-length = 160 exclude = hpOneView/__init__.py max-complexity = 14 From 91a974b3afe52e8bd70efc27b1f37ff734331266 Mon Sep 17 00:00:00 2001 From: chrisarnott86 Date: Mon, 5 Nov 2018 12:12:38 +0000 Subject: [PATCH 08/12] Create appliance_network_interfaces to allow querying of GET https://{appl}/rest/appliance/network-interfaces --- hpOneView/oneview_client.py | 14 +++++ .../settings/appliance_network_information.py | 52 +++++++++++++++++++ tox.ini | 2 +- 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 hpOneView/resources/settings/appliance_network_information.py diff --git a/hpOneView/oneview_client.py b/hpOneView/oneview_client.py index 6c1a7bf5..a3be7c90 100755 --- a/hpOneView/oneview_client.py +++ b/hpOneView/oneview_client.py @@ -107,6 +107,7 @@ from hpOneView.resources.security.roles import Roles from hpOneView.resources.security.users import Users from hpOneView.resources.settings.appliance_node_information import ApplianceNodeInformation +from hpOneView.resources.settings.appliance_network_information import ApplianceNetworkInformation from hpOneView.resources.settings.appliance_time_and_locale_configuration import ApplianceTimeAndLocaleConfiguration from hpOneView.resources.settings.versions import Versions @@ -192,6 +193,7 @@ def __init__(self, config): self.__users = None self.__appliance_time_and_locale_configuration = None self.__appliance_node_information = None + self.__appliance_network_information = None self.__versions = None self.__backups = None self.__login_details = None @@ -1129,6 +1131,18 @@ def appliance_node_information(self): self.__appliance_node_information = ApplianceNodeInformation(self.__connection) return self.__appliance_node_information + @property + def appliance_network_information(self): + """ + Gets the ApplianceNetworkInformation API client. + + Returns: + ApplianceNetworkInformation: + """ + if not self.__appliance_network_information: + self.__appliance_network_information = ApplianceNetworkInformation(self.__connection) + return self.__appliance_network_information + @property def appliance_time_and_locale_configuration(self): """ diff --git a/hpOneView/resources/settings/appliance_network_information.py b/hpOneView/resources/settings/appliance_network_information.py new file mode 100644 index 00000000..ee1757da --- /dev/null +++ b/hpOneView/resources/settings/appliance_network_information.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +### +# (C) Copyright (2012-2017) Hewlett Packard Enterprise Development LP +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +### + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +from future import standard_library + +standard_library.install_aliases() + +from hpOneView.resources.resource import ResourceClient + + +class ApplianceNetworkInformation(object): + """ + ApplianceNetworkInformation API client. + """ + URI = '/rest/appliance/network-interfaces' + + def __init__(self, con): + self._client = ResourceClient(con, self.URI) + + def get_all(self): + """ + Retrieves applicance network information + Returns: + dict: Appliance's network information + """ + uri = self.URI + return self._client.get(uri) diff --git a/tox.ini b/tox.ini index 68c4de6c..60300cd5 100644 --- a/tox.ini +++ b/tox.ini @@ -9,7 +9,7 @@ envlist = docs, py34, py36, py27-coverage, py27-flake8 skip_missing_interpreters = true [flake8] -ignore = E402 +ignore = E402,W504,W605 max-line-length = 160 exclude = hpOneView/__init__.py max-complexity = 14 From 72a4ed929eb0a4851863d2980e0af2d90a1348c3 Mon Sep 17 00:00:00 2001 From: Chris Arnott Date: Tue, 6 Nov 2018 10:19:37 +0000 Subject: [PATCH 09/12] update endpoints-support.md --- endpoints-support.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/endpoints-support.md b/endpoints-support.md index d1e7df72..54a09966 100755 --- a/endpoints-support.md +++ b/endpoints-support.md @@ -27,6 +27,8 @@ |/rest/alerts/{id} |PUT | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |/rest/alerts/{id} |DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |/rest/alerts/AlertChangeLog/{id} |DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| **Appliance Network Interfaces** | +|/rest/appliance/network-interfaces |GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | **Appliance Time and Locale Configuration** | |/rest/appliance/configuration/time-locale |GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | |/rest/appliance/configuration/time-locale |POST | :white_check_mark: | :white_check_mark: | :white_check_mark: | From e5dd49e94d9a1c9e6f157fb8286143258de25769 Mon Sep 17 00:00:00 2001 From: Chris Arnott Date: Tue, 6 Nov 2018 10:38:03 +0000 Subject: [PATCH 10/12] rename network_information to network_interfaces to reflect API name --- hpOneView/oneview_client.py | 16 ++++++++-------- ...mation.py => appliance_network_interfaces.py} | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) rename hpOneView/resources/settings/{appliance_network_information.py => appliance_network_interfaces.py} (97%) diff --git a/hpOneView/oneview_client.py b/hpOneView/oneview_client.py index a3be7c90..4ab8f7e1 100755 --- a/hpOneView/oneview_client.py +++ b/hpOneView/oneview_client.py @@ -107,7 +107,7 @@ from hpOneView.resources.security.roles import Roles from hpOneView.resources.security.users import Users from hpOneView.resources.settings.appliance_node_information import ApplianceNodeInformation -from hpOneView.resources.settings.appliance_network_information import ApplianceNetworkInformation +from hpOneView.resources.settings.appliance_network_interfaces import ApplianceNetworkInterfaces from hpOneView.resources.settings.appliance_time_and_locale_configuration import ApplianceTimeAndLocaleConfiguration from hpOneView.resources.settings.versions import Versions @@ -193,7 +193,7 @@ def __init__(self, config): self.__users = None self.__appliance_time_and_locale_configuration = None self.__appliance_node_information = None - self.__appliance_network_information = None + self.__appliance_network_interfaces = None self.__versions = None self.__backups = None self.__login_details = None @@ -1132,16 +1132,16 @@ def appliance_node_information(self): return self.__appliance_node_information @property - def appliance_network_information(self): + def appliance_network_interfaces(self): """ - Gets the ApplianceNetworkInformation API client. + Gets the ApplianceNetworkInterfaces API client. Returns: - ApplianceNetworkInformation: + ApplianceNetworkInterfaces: """ - if not self.__appliance_network_information: - self.__appliance_network_information = ApplianceNetworkInformation(self.__connection) - return self.__appliance_network_information + if not self.__appliance_network_interfaces: + self.__appliance_network_interfaces = ApplianceNetworkInterfaces(self.__connection) + return self.__appliance_network_interfaces @property def appliance_time_and_locale_configuration(self): diff --git a/hpOneView/resources/settings/appliance_network_information.py b/hpOneView/resources/settings/appliance_network_interfaces.py similarity index 97% rename from hpOneView/resources/settings/appliance_network_information.py rename to hpOneView/resources/settings/appliance_network_interfaces.py index ee1757da..d1c40551 100644 --- a/hpOneView/resources/settings/appliance_network_information.py +++ b/hpOneView/resources/settings/appliance_network_interfaces.py @@ -33,7 +33,7 @@ from hpOneView.resources.resource import ResourceClient -class ApplianceNetworkInformation(object): +class ApplianceNetworkInterfaces(object): """ ApplianceNetworkInformation API client. """ From a72a0fbd2d158b65379c3bc95f8c439057c013e2 Mon Sep 17 00:00:00 2001 From: Chris Arnott Date: Tue, 6 Nov 2018 10:58:48 +0000 Subject: [PATCH 11/12] add appliance_network_interfaces to test suite --- tests/unit/test_oneview_client.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/unit/test_oneview_client.py b/tests/unit/test_oneview_client.py index f3ae5b7f..cc0c03b4 100755 --- a/tests/unit/test_oneview_client.py +++ b/tests/unit/test_oneview_client.py @@ -77,6 +77,7 @@ from hpOneView.resources.security.roles import Roles from hpOneView.resources.security.users import Users from hpOneView.resources.settings.appliance_node_information import ApplianceNodeInformation +from hpOneView.resources.settings.appliance_network_interfaces import ApplianceNetworkInterfaces from hpOneView.resources.settings.appliance_time_and_locale_configuration import ApplianceTimeAndLocaleConfiguration from hpOneView.resources.settings.versions import Versions from tests.test_utils import mock_builtin @@ -890,6 +891,14 @@ def test_lazy_loading_appliance_node_information(self): appliance_node_information = self._oneview.appliance_node_information self.assertEqual(appliance_node_information, self._oneview.appliance_node_information) + def test_appliance_network_interfaces_has_right_type(self): + self.assertIsInstance(self._oneview.appliance_network_interfaces, + ApplianceNetworkInterfaces) + + def test_lazy_loading_appliance_network_interfaces(self): + appliance_network_interfaces = self._oneview.appliance_network_interfaces + self.assertEqual(appliance_network_interfaces, self._oneview.appliance_network_interfaces) + def test_appliance_time_and_locale_configuration_has_right_type(self): self.assertIsInstance(self._oneview.appliance_time_and_locale_configuration, ApplianceTimeAndLocaleConfiguration) From 1c91a0520265f975001dc2c7d7ea02aa331636db Mon Sep 17 00:00:00 2001 From: Chris Arnott Date: Tue, 6 Nov 2018 12:17:28 +0000 Subject: [PATCH 12/12] add example for appliance_network_interfaces --- examples/appliance_network_interfaces.py | 44 +++++++++++++++++++ .../test_appliance_network_interfaces.py | 42 ++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 examples/appliance_network_interfaces.py create mode 100644 tests/unit/resources/settings/test_appliance_network_interfaces.py diff --git a/examples/appliance_network_interfaces.py b/examples/appliance_network_interfaces.py new file mode 100644 index 00000000..f1c93f74 --- /dev/null +++ b/examples/appliance_network_interfaces.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +### +# (C) Copyright (2012-2017) Hewlett Packard Enterprise Development LP +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +### + +from pprint import pprint +from hpOneView.oneview_client import OneViewClient +from config_loader import try_load_from_file + +config = { + "ip": "", + "credentials": { + "userName": "", + "password": "" + } +} + +# Try load config from a file (if there is a config file) +config = try_load_from_file(config) + +oneview_client = OneViewClient(config) + +# Get network interfaces information from appliance +print("\nnetwork interfaces information from appliance:\n ") +network_interfaces = oneview_client.appliance_network_interfaces.get_all() +pprint(network_interfaces) diff --git a/tests/unit/resources/settings/test_appliance_network_interfaces.py b/tests/unit/resources/settings/test_appliance_network_interfaces.py new file mode 100644 index 00000000..f77cbfc2 --- /dev/null +++ b/tests/unit/resources/settings/test_appliance_network_interfaces.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +### +# (C) Copyright (2012-2017) Hewlett Packard Enterprise Development LP +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +### + +import unittest + +import mock + +from hpOneView.connection import connection +from hpOneView.resources.settings.appliance_network_interfaces import ApplianceNetworkInterfaces +from hpOneView.resources.resource import ResourceClient + + +class ApplianceNetworkInterfacesTest(unittest.TestCase): + def setUp(self): + self.host = '127.0.0.1' + self.connection = connection(self.host) + self._network_interfaces = ApplianceNetworkInterfaces(self.connection) + + @mock.patch.object(ResourceClient, 'get') + def test_get_status_called_once(self, mock_get): + self._network_interfaces.get_all() + mock_get.assert_called_once_with('/rest/appliance/network-interfaces')