Пример #1
0
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
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
    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
Пример #5
0
def get_steplib_from_env_var():
    try:
        return list(filter(None, re.split("[\\s,]+", env_fallback('STEPLIB'))))
    except AnsibleFallbackNotFound:
        return None