tower: Handle AuthError (#53377)

Handle AuthError raised when user provides incorrect password
for Tower admin user.

Fixes: #50535

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
pull/53391/head
Abhijeet Kasurde 6 years ago committed by ansibot
parent e246e74843
commit 5b0eae75fa

@ -307,7 +307,7 @@ def main():
result = credential.delete(**params) result = credential.delete(**params)
except (exc.NotFound) as excinfo: except (exc.NotFound) as excinfo:
module.fail_json(msg='Failed to update credential, organization not found: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update credential, organization not found: {0}'.format(excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest, exc.NotFound) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.NotFound, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update credential: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update credential: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -159,7 +159,7 @@ def main():
params['fail_on_missing'] = False params['fail_on_missing'] = False
result = credential_type_res.delete(**params) result = credential_type_res.delete(**params)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json( module.fail_json(
msg='Failed to update credential type: {0}'.format(excinfo), msg='Failed to update credential type: {0}'.format(excinfo),
changed=False changed=False

@ -166,7 +166,7 @@ def main():
result = group.delete(**params) result = group.delete(**params)
except (exc.NotFound) as excinfo: except (exc.NotFound) as excinfo:
module.fail_json(msg='Failed to update the group, inventory not found: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update the group, inventory not found: {0}'.format(excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest, exc.NotFound) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.NotFound, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update the group: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update the group: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -120,7 +120,7 @@ def main():
result = host.delete(name=name, inventory=inv['id']) result = host.delete(name=name, inventory=inv['id'])
except (exc.NotFound) as excinfo: except (exc.NotFound) as excinfo:
module.fail_json(msg='Failed to update host, inventory not found: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update host, inventory not found: {0}'.format(excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update host: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update host: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -119,7 +119,7 @@ def main():
result = inventory.delete(name=name, organization=org['id']) result = inventory.delete(name=name, organization=org['id'])
except (exc.NotFound) as excinfo: except (exc.NotFound) as excinfo:
module.fail_json(msg='Failed to update inventory, organization not found: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update inventory, organization not found: {0}'.format(excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update inventory: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update inventory: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -302,7 +302,7 @@ def main():
params['fail_on_missing'] = False params['fail_on_missing'] = False
result = inventory_source.delete(**params) result = inventory_source.delete(**params)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update inventory source: \ module.fail_json(msg='Failed to update inventory source: \
{0}'.format(excinfo), changed=False) {0}'.format(excinfo), changed=False)

@ -89,7 +89,7 @@ def main():
try: try:
result = job.cancel(job_id, **params) result = job.cancel(job_id, **params)
json_output['id'] = job_id json_output['id'] = job_id
except (exc.ConnectionError, exc.BadRequest, exc.TowerCLIError) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.TowerCLIError, exc.AuthError) as excinfo:
module.fail_json(msg='Unable to cancel job_id/{0}: {1}'.format(job_id, excinfo), changed=False) module.fail_json(msg='Unable to cancel job_id/{0}: {1}'.format(job_id, excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -134,7 +134,7 @@ def main():
result = job.launch(no_input=True, **params) result = job.launch(no_input=True, **params)
json_output['id'] = result['id'] json_output['id'] = result['id']
json_output['status'] = result['status'] json_output['status'] = result['status']
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Unable to launch job: {0}'.format(excinfo), changed=False) module.fail_json(msg='Unable to launch job: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -118,7 +118,7 @@ def main():
if query: if query:
params['query'] = query.items() params['query'] = query.items()
json_output = job.list(**params) json_output = job.list(**params)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to list jobs: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to list jobs: {0}'.format(excinfo), changed=False)
module.exit_json(**json_output) module.exit_json(**json_output)

@ -326,7 +326,7 @@ def main():
json_output['id'] = result['id'] json_output['id'] = result['id']
elif state == 'absent': elif state == 'absent':
result = jt.delete(**params) result = jt.delete(**params)
except (exc.ConnectionError, exc.BadRequest, exc.NotFound) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.NotFound, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update job template: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update job template: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -132,7 +132,7 @@ def main():
json_output['timeout'] = True json_output['timeout'] = True
except exc.NotFound as excinfo: except exc.NotFound as excinfo:
fail_json = dict(msg='Unable to wait, no job_id {0} found: {1}'.format(job_id, excinfo), changed=False) fail_json = dict(msg='Unable to wait, no job_id {0} found: {1}'.format(job_id, excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
fail_json = dict(msg='Unable to wait for job: {0}'.format(excinfo), changed=False) fail_json = dict(msg='Unable to wait for job: {0}'.format(excinfo), changed=False)
if fail_json is not None: if fail_json is not None:

@ -91,7 +91,7 @@ def main():
result = label.delete(name=name, organization=org['id']) result = label.delete(name=name, organization=org['id'])
except (exc.NotFound) as excinfo: except (exc.NotFound) as excinfo:
module.fail_json(msg='Failed to update label, organization not found: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update label, organization not found: {0}'.format(excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest, exc.NotFound) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.NotFound, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update label: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update label: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -382,7 +382,7 @@ def main():
result = notification_template.delete(name=name) result = notification_template.delete(name=name)
except (exc.NotFound) as excinfo: except (exc.NotFound) as excinfo:
module.fail_json(msg='Failed to update notification template, organization not found: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update notification template, organization not found: {0}'.format(excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update notification template: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update notification template: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -84,7 +84,7 @@ def main():
json_output['id'] = result['id'] json_output['id'] = result['id']
elif state == 'absent': elif state == 'absent':
result = organization.delete(name=name) result = organization.delete(name=name)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update the organization: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update the organization: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -202,7 +202,7 @@ def main():
json_output['id'] = result['id'] json_output['id'] = result['id']
elif state == 'absent': elif state == 'absent':
result = project.delete(name=name) result = project.delete(name=name)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update project: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update project: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -164,7 +164,7 @@ def main():
result['assets'] = receiver.export_assets(all=export_all, asset_input=assets_to_export) result['assets'] = receiver.export_assets(all=export_all, asset_input=assets_to_export)
module.exit_json(**result) module.exit_json(**result)
except TowerCLIError as e: except TowerCLIError as e:
result['message'] = e result['message'] = e.message
module.fail_json(msg='Receive Failed', **result) module.fail_json(msg='Receive Failed', **result)

@ -144,7 +144,7 @@ def main():
json_output['id'] = result['id'] json_output['id'] = result['id']
elif state == 'absent': elif state == 'absent':
result = role.revoke(**params) result = role.revoke(**params)
except (exc.ConnectionError, exc.BadRequest, exc.NotFound) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.NotFound, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update role: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update role: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -148,7 +148,7 @@ def main():
if sender.changed_messages > 0: if sender.changed_messages > 0:
result['changed'] = True result['changed'] = True
except TowerCLIError as e: except TowerCLIError as e:
result['msg'] = e result['msg'] = e.message
failed = True failed = True
finally: finally:
if path is not None: if path is not None:

@ -91,7 +91,7 @@ def main():
json_output['id'] = result['id'] json_output['id'] = result['id']
json_output['value'] = result['value'] json_output['value'] = result['value']
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to modify the setting: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to modify the setting: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -96,7 +96,7 @@ def main():
result = team.delete(name=name, organization=org['id']) result = team.delete(name=name, organization=org['id'])
except (exc.NotFound) as excinfo: except (exc.NotFound) as excinfo:
module.fail_json(msg='Failed to update team, organization not found: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update team, organization not found: {0}'.format(excinfo), changed=False)
except (exc.ConnectionError, exc.BadRequest, exc.NotFound) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.NotFound, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update team: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update team: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -119,7 +119,7 @@ def main():
json_output['id'] = result['id'] json_output['id'] = result['id']
elif state == 'absent': elif state == 'absent':
result = user.delete(username=username) result = user.delete(username=username)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update the user: {0}'.format(excinfo), changed=False) module.fail_json(msg='Failed to update the user: {0}'.format(excinfo), changed=False)
json_output['changed'] = result['changed'] json_output['changed'] = result['changed']

@ -51,7 +51,7 @@ tower_version:
type: str type: str
sample: '3.4.0' sample: '3.4.0'
job_info: job_info:
description: dictionnary containing information about the workflow executed description: dictionary containing information about the workflow executed
returned: If workflow launched returned: If workflow launched
type: dict type: dict
''' '''

@ -168,7 +168,7 @@ def main():
elif state == 'absent': elif state == 'absent':
params['fail_on_missing'] = False params['fail_on_missing'] = False
result = wfjt_res.delete(**params) result = wfjt_res.delete(**params)
except (exc.ConnectionError, exc.BadRequest) as excinfo: except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
module.fail_json(msg='Failed to update workflow template: \ module.fail_json(msg='Failed to update workflow template: \
{0}'.format(excinfo), changed=False) {0}'.format(excinfo), changed=False)

Loading…
Cancel
Save