diff --git a/lib/ansible/modules/network/onyx/onyx_pfc_interface.py b/lib/ansible/modules/network/onyx/onyx_pfc_interface.py index 9b342cb28f5..0dacc1d7a77 100644 --- a/lib/ansible/modules/network/onyx/onyx_pfc_interface.py +++ b/lib/ansible/modules/network/onyx/onyx_pfc_interface.py @@ -140,12 +140,20 @@ class OnyxPfcInterfaceModule(BaseOnyxModule): def load_current_config(self): # called in base class in run function + self._os_version = self._get_os_version() self._current_config = dict() pfc_config = self._get_pfc_config() if not pfc_config: return - if 'Table 2' in pfc_config: - pfc_config = pfc_config['Table 2'] + if self._os_version >= self.ONYX_API_VERSION: + if len(pfc_config) >= 3: + pfc_config = pfc_config[2] + else: + pfc_config = dict() + else: + if 'Table 2' in pfc_config: + pfc_config = pfc_config['Table 2'] + for if_name, if_pfc_data in iteritems(pfc_config): match = self.PFC_IF_REGEX.match(if_name) if not match: diff --git a/test/units/modules/network/onyx/test_onyx_pfc_interface.py b/test/units/modules/network/onyx/test_onyx_pfc_interface.py index 670d416a504..25c456d69bb 100644 --- a/test/units/modules/network/onyx/test_onyx_pfc_interface.py +++ b/test/units/modules/network/onyx/test_onyx_pfc_interface.py @@ -27,11 +27,15 @@ class TestOnyxPfcInterfaceModule(TestOnyxModule): self.mock_load_config = patch( 'ansible.module_utils.network.onyx.onyx.load_config') self.load_config = self.mock_load_config.start() + self.mock_get_version = patch.object( + onyx_pfc_interface.OnyxPfcInterfaceModule, "_get_os_version") + self.get_version = self.mock_get_version.start() def tearDown(self): super(TestOnyxPfcInterfaceModule, self).tearDown() self.mock_get_config.stop() self.mock_load_config.stop() + self.mock_get_version.stop() def load_fixtures(self, commands=None, transport='cli'): if self._pfc_enabled: @@ -42,6 +46,7 @@ class TestOnyxPfcInterfaceModule(TestOnyxModule): self.get_config.return_value = load_fixture(config_file) self.load_config.return_value = None + self.get_version.return_value = "3.6.5000" def _test_pfc_if(self, if_name, enabled, changed, commands): state = 'enabled' if enabled else 'disabled'