def get_step_lib_from_environment_var(): try: step_lib_list = list( filter(None, re.split("[\\s,]+", env_fallback('STEPLIB')))) result['steplibber'] = step_lib_list return step_lib_list except AnsibleFallbackNotFound: return None
def _env_then_dns_fallback(*args, **kwargs): ''' Load value from environment or DNS in that order''' try: return env_fallback(*args, **kwargs) except AnsibleFallbackNotFound: # If no host was given, we try to guess it from IPA. # The ipa-ca entry is a standard entry that IPA will have set for # the CA. try: return socket.gethostbyaddr(socket.gethostbyname('ipa-ca'))[0] except Exception: raise AnsibleFallbackNotFound
def run_module(): global module module_args = dict( command_input=dict(type="str", required=True, choices=["build", "BUILD", "delete", "DELETE"]), compression=dict(type="str", required=False, choices=[ "precomp", "postcomp", "precomp,postcomp", "PRECOMP", "POSTCOMP", "PRECOMP,POSTCOMP" ]), psb_name=dict(type="list", elements="str", required=False), dbd_name=dict(type="list", elements="str", required=False), acb_lib=dict(type="str", required=True), psb_lib=dict(type="list", required=True), dbd_lib=dict(type="list", required=True), reslib=dict(type="list", required=False), steplib=dict(type="list", required=False), build_psb=dict(type="bool", required=False, default=True), ) result = dict(changed=True, msg='', content='', rc='', debug='') module = AnsibleModule(argument_spec=module_args, supports_check_mode=True) # Retrieve properties set by the user module_defs = dict( command_input=dict(arg_type="str", required=True), compression=dict(arg_type="str", required=False, default=""), psb_name=dict(arg_type=str_or_list_of_str, required=False), dbd_name=dict(arg_type=str_or_list_of_str, required=False), acb_lib=dict(arg_type="str", required=True), psb_lib=dict(arg_type="list", elements="str", required=True), dbd_lib=dict(arg_type="list", elements="str", required=True), reslib=dict(arg_type="list", elements="str", required=False), steplib=dict(arg_type="list", elements="str", required=False), build_psb=dict(arg_type="bool", required=False, default=True), ) # Parse the properties parser = BetterArgParser(module_defs) parsed_args = parser.parse_args(module.params) command_input = parsed_args.get("command_input") compression = parsed_args.get("compression") psb_name = parsed_args.get("psb_name") dbd_name = parsed_args.get("dbd_name") acb_lib = parsed_args.get("acb_lib") psb_lib = parsed_args.get("psb_lib") dbd_lib = parsed_args.get("dbd_lib") reslib = parsed_args.get("reslib") steplib = parsed_args.get("steplib") build_psb = parsed_args.get("build_psb") if not steplib: try: steplib = [] steplib_str = env_fallback('STEPLIB') list_str = steplib_str.split(" ") steplib += list_str except AnsibleFallbackNotFound as e: module.fail_json( msg= "The input option 'steplib' is not provided. Please provide it in the environment " "variables 'STEPLIB', or in the module input option 'steplib'. ", **result) try: acbgen_obj = acbgen(command_input, compression, psb_name, dbd_name, acb_lib, psb_lib, dbd_lib, reslib, steplib, build_psb) response = acbgen_obj.execute() if response.get('rc') and int(response.get('rc')) > 4: result['changed'] = False result['content'] = response.get('output', "") result['msg'] = em.FAILURE_MSG result['debug'] = response.get('error', "") result['rc'] = response.get('rc') else: result['changed'] = True result['content'] = response.get('output', "") result['debug'] = response.get('error', "") result['msg'] = em.SUCCESS_MSG if response.get('rc', 8) <= 4: result['rc'] = 0 except Exception as e: result['msg'] = repr(e) module.fail_json(**result) finally: pass module.exit_json(**result)
def _constructCommonDDStatements(self): #DD statement Generation dDStatementList = [] imsDatasetList = [] if self.parsed_args.get('buffer_pool_param_dataset') is not None: dfsvsampDDStatement = DDStatement( "DFSVSAMP", DatasetDefinition( self.parsed_args.get('buffer_pool_param_dataset'))) dDStatementList.append(dfsvsampDDStatement) if self.parsed_args.get('primary_log_dataset') is not None: iefrderDDStatement = DDStatement( "IEFRDER", DatasetDefinition( **{ k: v for k, v in self.parsed_args.get( 'primary_log_dataset').items() if v is not None })) dDStatementList.append(iefrderDDStatement) #Generate DD statements for DBD and PSB libs. If they exist, we attach to an ims dd statement. if self.parsed_args.get('psb_lib') is not None: for i in self.parsed_args.get('psb_lib'): imsDatasetList.append(DatasetDefinition(i)) if self.parsed_args.get('dbd_lib') is not None: for i in self.parsed_args.get('dbd_lib'): imsDatasetList.append(DatasetDefinition(i)) if imsDatasetList is not None: imsDDStatement = DDStatement("IMS", imsDatasetList) dDStatementList.append(imsDDStatement) proclibList = [] if self.parsed_args.get('proclib') is not None: for i in self.parsed_args.get('proclib'): proclibList.append(DatasetDefinition(i)) proclibDDStatement = DDStatement("PROCLIB", proclibList) dDStatementList.append(proclibDDStatement) steplibDatasets = [] if self.parsed_args.get('steplib') is not None: for i in self.parsed_args.get('steplib'): steplibDatasets.append(DatasetDefinition(i)) else: try: steplib_str = env_fallback('STEPLIB') list_str = steplib_str.split(" ") for i in list_str: steplibDatasets.append(DatasetDefinition(i)) except AnsibleFallbackNotFound as e: self.module.fail_json( msg= "The input option 'steplib' is not provided. Please provide it in the environment " "variables 'STEPLIB', or in the module input option 'steplib'. ", **self.result) steplibDDStatement = DDStatement("STEPLIB", steplibDatasets) dDStatementList.append(steplibDDStatement) reslibDatasets = [] if self.parsed_args.get('reslib') is not None: for i in self.parsed_args.get('reslib'): reslibDatasets.append(DatasetDefinition(i)) reslibDDStatement = DDStatement("DFSRESLB", reslibDatasets) else: reslibDDStatement = DDStatement("DFSRESLB", steplibDatasets) dDStatementList.append(reslibDDStatement) #Add sysprint dd statement if self.parsed_args.get('sysprint') is None: sysDefinition = StdoutDefinition() else: sysDefinition = DatasetDefinition(self.parsed_args.get('sysprint')) sysprintDDStatement = DDStatement("SYSPRINT", sysDefinition) dDStatementList.append(sysprintDDStatement) self.dDStatements = dDStatementList
def get_steplib_from_env_var(): try: return list(filter(None, re.split("[\\s,]+", env_fallback('STEPLIB')))) except AnsibleFallbackNotFound: return None