Make na_ontap_user idempotent (#51509)
* changes to clusteR * Revert "changes to clusteR" This reverts commit 33ee1b71e4bc8435fb315762a871f8c4cb6c5f80. * Fix Idempotent issue * Fix author * Fix author
This commit is contained in:
parent
053081a8a0
commit
bd8e75a67b
2 changed files with 10 additions and 6 deletions
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
# (c) 2018, NetApp, Inc
|
# (c) 2018-2019, NetApp, Inc
|
||||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
from __future__ import absolute_import, division, print_function
|
from __future__ import absolute_import, division, print_function
|
||||||
|
@ -304,7 +304,9 @@ class NetAppOntapUser(object):
|
||||||
except netapp_utils.zapi.NaApiError as error:
|
except netapp_utils.zapi.NaApiError as error:
|
||||||
if to_native(error.code) == '13114':
|
if to_native(error.code) == '13114':
|
||||||
return False
|
return False
|
||||||
else:
|
# if the user give the same password, instead of returning an error, return ok
|
||||||
|
if to_native(error.code) == '13214' and error.message.startswith('New password must be different than the old password.'):
|
||||||
|
return False
|
||||||
self.module.fail_json(msg='Error setting password for user %s: %s' % (self.parameters['name'], to_native(error)),
|
self.module.fail_json(msg='Error setting password for user %s: %s' % (self.parameters['name'], to_native(error)),
|
||||||
exception=traceback.format_exc())
|
exception=traceback.format_exc())
|
||||||
|
|
||||||
|
@ -324,6 +326,7 @@ class NetAppOntapUser(object):
|
||||||
if self.parameters.get('set_password') is not None:
|
if self.parameters.get('set_password') is not None:
|
||||||
self.na_helper.changed = True
|
self.na_helper.changed = True
|
||||||
current = self.get_user()
|
current = self.get_user()
|
||||||
|
if current is not None:
|
||||||
current['lock_user'] = self.na_helper.get_value_for_bool(True, current['lock_user'])
|
current['lock_user'] = self.na_helper.get_value_for_bool(True, current['lock_user'])
|
||||||
modify = self.na_helper.get_modified_attributes(current, self.parameters)
|
modify = self.na_helper.get_modified_attributes(current, self.parameters)
|
||||||
|
|
||||||
|
@ -343,7 +346,8 @@ class NetAppOntapUser(object):
|
||||||
else:
|
else:
|
||||||
self.unlock_given_user()
|
self.unlock_given_user()
|
||||||
elif not create_delete_decision and self.parameters.get('set_password') is not None:
|
elif not create_delete_decision and self.parameters.get('set_password') is not None:
|
||||||
self.change_password()
|
# if change password return false nothing has changed so we need to set changed to False
|
||||||
|
self.na_helper.changed = self.change_password()
|
||||||
self.module.exit_json(changed=self.na_helper.changed)
|
self.module.exit_json(changed=self.na_helper.changed)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ from ansible.modules.storage.netapp.na_ontap_user \
|
||||||
import NetAppOntapUser as my_module # module under test
|
import NetAppOntapUser as my_module # module under test
|
||||||
|
|
||||||
if not netapp_utils.has_netapp_lib():
|
if not netapp_utils.has_netapp_lib():
|
||||||
pytestmark = pytest.skip('skipping as missing required netapp_lib')
|
pytestmark = pytest.mark.skip('skipping as missing required netapp_lib')
|
||||||
|
|
||||||
|
|
||||||
def set_module_args(args):
|
def set_module_args(args):
|
||||||
|
|
Loading…
Reference in a new issue