diff --git a/lib/ansible/modules/storage/netapp/na_ontap_igroup_initiator.py b/lib/ansible/modules/storage/netapp/na_ontap_igroup_initiator.py index 510945924fe..1f784767e7e 100644 --- a/lib/ansible/modules/storage/netapp/na_ontap_igroup_initiator.py +++ b/lib/ansible/modules/storage/netapp/na_ontap_igroup_initiator.py @@ -119,7 +119,8 @@ class NetAppOntapIgroupInitiator(object): :rtype: list() or None """ igroup_info = netapp_utils.zapi.NaElement('igroup-get-iter') - attributes = dict(query={'initiator-group-info': {'initiator-group-name': self.parameters['initiator_group']}}) + attributes = dict(query={'initiator-group-info': {'initiator-group-name': self.parameters['initiator_group'], + 'vserver': self.parameters['vserver']}}) igroup_info.translate_struct(attributes) result, current = None, [] @@ -156,8 +157,9 @@ class NetAppOntapIgroupInitiator(object): def apply(self): self.autosupport_log() - initiators, present = self.get_initiators(), None + initiators = self.get_initiators() for initiator in self.parameters['names']: + present = None if initiator in initiators: present = True cd_action = self.na_helper.get_cd_action(present, self.parameters) diff --git a/test/units/modules/storage/netapp/test_na_ontap_igroup_initiator.py b/test/units/modules/storage/netapp/test_na_ontap_igroup_initiator.py index 04c696b6fa1..e0962735554 100644 --- a/test/units/modules/storage/netapp/test_na_ontap_igroup_initiator.py +++ b/test/units/modules/storage/netapp/test_na_ontap_igroup_initiator.py @@ -64,6 +64,8 @@ class MockONTAPConnection(object): self.xml_in = xml if self.kind == 'initiator': xml = self.build_igroup_initiator() + elif self.kind == 'initiator_fail': + raise netapp_utils.zapi.NaApiError(code='TEST', message="This exception is from the unit test") self.xml_out = xml return xml @@ -202,3 +204,14 @@ class TestMyModule(unittest.TestCase): obj.apply() assert data['name'] not in current_list assert not exc.value.args[0]['changed'] + + def test_if_all_methods_catch_exception(self): + data = self.mock_args() + set_module_args(data) + my_obj = self.get_initiator_mock_object('initiator_fail') + with pytest.raises(AnsibleFailJson) as exc: + my_obj.get_initiators() + assert 'Error fetching igroup info ' in exc.value.args[0]['msg'] + with pytest.raises(AnsibleFailJson) as exc: + my_obj.modify_initiator(data['name'], 'igroup-add') + assert 'Error modifying igroup initiator ' in exc.value.args[0]['msg']