Add idempotency to mongodb_user module

reviewable/pr18780/r1
George Miroshnykov 11 years ago
parent 3ddfc8d471
commit 58e34edce3

@ -188,19 +188,28 @@ def main():
try: try:
client = MongoClient(login_host, int(login_port)) client = MongoClient(login_host, int(login_port))
if login_user is None and login_password is None:
mongocnf_creds = load_mongocnf()
if mongocnf_creds is not False:
login_user = mongocnf_creds['user']
login_password = mongocnf_creds['password']
elif login_password is None and login_user is not None:
module.fail_json(msg='when supplying login arguments, both login_user and login_password must be provided')
if login_user is not None and login_password is not None:
client.admin.authenticate(login_user, login_password)
except ConnectionFailure, e: except ConnectionFailure, e:
module.fail_json(msg='unable to connect to database, check login_user and login_password are correct') module.fail_json(msg='unable to connect to database, check login_host and login_port are correct')
# try to authenticate as a target user to check if it already exists
try:
client[db_name].authenticate(user, password)
if state == 'present':
module.exit_json(changed=False, user=user)
except OperationFailure:
if state == 'absent':
module.exit_json(changed=False, user=user)
if login_user is None and login_password is None:
mongocnf_creds = load_mongocnf()
if mongocnf_creds is not False:
login_user = mongocnf_creds['user']
login_password = mongocnf_creds['password']
elif login_password is None and login_user is not None:
module.fail_json(msg='when supplying login arguments, both login_user and login_password must be provided')
if login_user is not None and login_password is not None:
client.admin.authenticate(login_user, login_password)
if state == 'present': if state == 'present':
if password is None: if password is None:

Loading…
Cancel
Save