def run_module(): module_args = dict(domain=dict(type='str', required=True), action=dict(type='str', required=True, aliases=['name']), parameters=dict(type='dict', required=False)) module = AnsibleModule(argument_spec=module_args, supports_check_mode=False) connection = Connection(module._socket_path) result = {} domain = module.params.get('domain') action = module.params.get('action') if action in excluded_actions: mods = ', '.join(excluded_actions[action]) warning_message = 'The action \'' + action + \ '\' has a module(s) that specifically target these actions, please see modules ' + mods module.warn(warning_message) module.fail_json(msg=warning_message, **result) parameters = module.params.get('parameters') dp_req = ActionQueueRequest(domain, action, parameters) try: response = connection.execute_action(**dp_req.post()) clean_dp_dict(response) except ConnectionError as e: response = to_text(e) result['changed'] = False module.fail_json(msg=response, **result) result['response'] = response result['changed'] = True module.exit_json(**result)
def run_module(): module_args = dict(export_path=dict(type='path', required=True), overwrite_objects=dict(type='bool', required=False, default=False), overwrite_files=dict(type='bool', required=False, default=False), rewrite_local_ip=dict(type='bool', required=False, default=False), domains=dict(type='list', required=False, elements='dict'), files=dict(type='list', required=False, elements='dict')) module = AnsibleModule(argument_spec=module_args, supports_check_mode=False) connection = Connection(module._socket_path) result = {} action = "Import" params = deepcopy(module.params) # Convert booleans in the domain dictionaries if params['domains']: for domain in params['domains']: convert_bool_to_on_or_off(domain) params = map_module_args_to_datapower_keys(params) params = convert_bool_to_on_or_off(params) params['Format'] = 'ZIP' try: with open(module.params['export_path'], 'rb') as f: data = f.read() except (IOError, OSError) as e: module.fail_json( msg='Error while reading export zip file from disk: {0}'.format(e)) params['InputFile'] = base64.b64encode(data).decode() action_req = ActionQueueRequest('default', action, params) try: response = connection.execute_action(**action_req.post()) except ConnectionError as e: response = to_text(e) result['parameters'] = params result['changed'] = False module.fail_json(msg=response, **result) del params['InputFile'] result['response'] = response result['changed'] = True module.exit_json(**result)
def run_module(): module_args = dict(domain=dict(type='str', required=True), export_path=dict(type='path', required=True)) module = AnsibleModule(argument_spec=module_args, supports_check_mode=False) connection = Connection(module._socket_path) result = {} domain = module.params.get('domain') action = "Import" params = deepcopy(module.params) params['OverwriteFiles'] = 'on' params['OverwriteObjects'] = 'on' params = convert_bool_to_on_or_off(params) params['Format'] = 'ZIP' try: with open(module.params['export_path'], 'rb') as f: data = f.read() except (IOError, OSError) as e: module.fail_json( msg='Error while reading export zip file from disk: {0}'.format(e)) params['InputFile'] = base64.b64encode(data).decode() action_req = ActionQueueRequest(domain, action, params) try: response = connection.execute_action(**action_req.post()) except ConnectionError as e: response = to_text(e) result['changed'] = False module.fail_json(msg=response, **result) result['response'] = response result['changed'] = True module.exit_json(**result)
def run_module(): # https://www.ibm.com/docs/en/datapower-gateways/10.0.x?topic=actions-export-action module_args = dict( dest=dict(type='path', required=True), domains=dict(type='list', required=False, elements='str', default='all-domains'), ref_objects=dict(type='bool', required=False, default=False), ref_files=dict(type='bool', required=False, default=True), include_debug=dict(type='bool', required=False), user_comment=dict(type='str', required=False), all_files=dict(type='bool', required=False, default=False), persisted=dict(type='bool', required=False, default=False), include_internal_files=dict(type='bool', required=False, default=True), deployment_policy=dict(type='str', required=False), ) module = AnsibleModule(argument_spec=module_args, supports_check_mode=False) connection = Connection(module._socket_path) result = {} action = "Export" parameters = map_module_args_to_datapower_keys(module.params) parameters = convert_bool_to_on_or_off(parameters) parameters['Format'] = 'ZIP' domains = [] if module.params['domains']: for domain in module.params['domains']: domain_dict = { 'name': domain, 'ref-objects': module.params['ref_objects'], 'ref-files': module.params['ref_files'], 'include-debug': module.params['include_debug'] } domains.append(domain_dict) parameters['Domain'] = domains action_req = ActionQueueRequest('default', action, parameters) filename = get_random_file_name('zip') try: response = connection.execute_action(**action_req.post()) except ConnectionError as e: response = to_text(e) result['changed'] = False module.fail_json(msg=response, **result) dest = module.params['dest'] path = os.path.join(dest, filename) try: create_file_from_base64(path, response['result']['file']) except (IOError, OSError) as e: module.fail_json(msg='Error while writing file to disk: {0}'.format(e)) result['path'] = path result['changed'] = True module.exit_json(**result)