def main(): global results suma_params = {} module = AnsibleModule(argument_spec=dict( action=dict(required=False, choices=[ 'download', 'preview', 'list', 'edit', 'unschedule', 'delete', 'config', 'default' ], type='str', default='preview'), targets=dict(required=False, type='list', elements='str'), oslevel=dict(required=False, type='str', default='Latest'), lpp_source_name=dict(required=False, type='str'), download_dir=dict(required=False, type='path'), download_only=dict(required=False, type='bool', default=False), extend_fs=dict(required=False, type='bool', default=True), task_id=dict(required=False, type='str'), sched_time=dict(required=False, type='str'), description=dict(required=False, type='str'), metadata_dir=dict(required=False, type='path', default='/var/adm/ansible/metadata'), ), required_if=[ ['action', 'edit', ['task_id']], ['action', 'delete', ['task_id']], ['action', 'unschedule', ['task_id']], ['action', 'preview', ['oslevel']], ['action', 'download', ['oslevel']], ], supports_check_mode=True) results = dict( changed=False, msg='', stdout='', stderr='', meta={'messages': []}, target_list=(), ) module.debug('*** START ***') # Get Module params action = module.params['action'] suma_params['action'] = action suma_params['LppSource'] = '' suma_params['target_clients'] = () # switch action if action == 'list': suma_params['task_id'] = module.params['task_id'] suma_list(module, suma_params) elif action == 'edit': suma_params['task_id'] = module.params['task_id'] suma_params['sched_time'] = module.params['sched_time'] suma_edit(module, suma_params) elif action == 'unschedule': suma_params['task_id'] = module.params['task_id'] suma_unschedule(module) elif action == 'delete': suma_params['task_id'] = module.params['task_id'] suma_delete(module, suma_params) elif action == 'config': suma_config(module) elif action == 'default': suma_default(module) elif action == 'download' or action == 'preview': suma_params['targets'] = module.params['targets'] suma_params['download_dir'] = module.params['download_dir'] suma_params['download_only'] = module.params['download_only'] suma_params['lpp_source_name'] = module.params['lpp_source_name'] suma_params['extend_fs'] = module.params['extend_fs'] if suma_params['req_oslevel'].upper() == 'LATEST': suma_params['req_oslevel'] = 'Latest' else: suma_params['req_oslevel'] = module.params['oslevel'] if module.params['description']: suma_params['description'] = module.params['description'] else: suma_params['description'] = "{} request for oslevel {}".format( action, suma_params['req_oslevel']) suma_params['metadata_dir'] = module.params['metadata_dir'] suma_download(module, suma_params) # Exit msg = 'Suma {} completed successfully'.format(action) module.info(msg) results['msg'] = msg results['lpp_source_name'] = suma_params['LppSource'] results['target_list'] = suma_params['target_clients'] module.exit_json(**results)