def main(): module_arg_spec = { 'enable_log': { 'type': 'bool', 'required': False, 'default': False }, 'workspace_locking_adom': { 'type': 'str', 'required': False }, 'workspace_locking_timeout': { 'type': 'int', 'required': False, 'default': 300 }, 'rc_succeeded': { 'required': False, 'type': 'list' }, 'rc_failed': { 'required': False, 'type': 'list' }, 'method': { 'type': 'str', 'required': False }, 'params': { 'type': 'list', 'required': False }, 'json': { 'type': 'str', 'required': False } } module = AnsibleModule(argument_spec=module_arg_spec, supports_check_mode=False) if not module._socket_path: module.fail_json(msg='Only Httpapi plugin is supported in this module.') connection = Connection(module._socket_path) connection.set_option('enable_log', module.params['enable_log'] if 'enable_log' in module.params else False) fmgr = NAPIManager(None, None, None, None, module, connection) method = None params = None if module.params['json']: raw_json_params = None try: raw_json_params = json.loads(module.params['json']) method = raw_json_params['method'] params = raw_json_params['params'] except Exception as e: module.fail_json(msg='invalid json content: %s' % (e)) else: if not module.params['method'] or not module.params['params']: raise AssertionError('method and params must be given!') method = module.params['method'] params = module.params['params'] if method not in ['get', 'add', 'set', 'update', 'delete', 'move', 'clone', 'exec']: module.fail_json(msg='method:%s not supported' % (method)) if not isinstance(params, list): module.fail_json(msg='parameter:params must be an array') for param_block in params: if 'url' not in param_block: module.fail_json(msg='url must be specified in params') try: fmgr.process_generic(method, params) except Exception as e: module.fail_json(msg='error sending request: %s' % (e))