def run_module(): from ansible.module_utils.basic import AnsibleModule module = AnsibleModule(argument_spec=module_args, supports_check_mode=False) # New resource required arguments checks missing_args = [] if module.params['id'] is None: for arg, _ in TL_REQUIRED_PARAMETERS: if module.params[arg] is None: missing_args.append(arg) if missing_args: module.fail_json(msg=("missing required arguments: " + ", ".join(missing_args))) conflicts = {} if len(TL_CONFLICTS_MAP) != 0: for arg in TL_CONFLICTS_MAP: if module.params[arg]: for conflict in TL_CONFLICTS_MAP[arg]: try: if module.params[conflict]: conflicts[arg] = conflict except KeyError: pass if len(conflicts): module.fail_json(msg=("conflicts exist: {}".format(conflicts))) # VPC required arguments checks if module.params['generation'] == 1: missing_args = [] if module.params['iaas_classic_username'] is None: missing_args.append('iaas_classic_username') if module.params['iaas_classic_api_key'] is None: missing_args.append('iaas_classic_api_key') if missing_args: module.fail_json( msg=("VPC generation=1 missing required arguments: " + ", ".join(missing_args))) elif module.params['generation'] == 2: if module.params['ibmcloud_api_key'] is None: module.fail_json( msg=("VPC generation=2 missing required argument: " "ibmcloud_api_key")) result_ds = ibmcloud_terraform( resource_type='ibm_is_lb', tf_type='data', parameters=module.params, ibm_provider_version='1.13.1', tl_required_params=TL_REQUIRED_PARAMETERS_DS, tl_all_params=TL_ALL_PARAMETERS_DS) if result_ds['rc'] != 0 or (result_ds['rc'] == 0 and (module.params['id'] is not None or module.params['state'] == 'absent')): result = ibmcloud_terraform(resource_type='ibm_is_lb', tf_type='resource', parameters=module.params, ibm_provider_version='1.13.1', tl_required_params=TL_REQUIRED_PARAMETERS, tl_all_params=TL_ALL_PARAMETERS) if result['rc'] > 0: module.fail_json(msg=Terraform.parse_stderr(result['stderr']), **result) module.exit_json(**result) else: module.exit_json(**result_ds)