# DCoim.cfg: Collects Oracle Identity Manager Information # $Id: DCoim.cfg,v 1.21 2015/05/09 14:57:40 RDA Exp $ # ARCS: $Header: /home/cvs/cvs/RDA_8/src/scripting/lib/collect/OFM/DCoim.cfg,v 1.21 2015/05/09 14:57:40 RDA Exp $ # # Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. # # Change history # 20150509 MSC Improve description consistency. ############################################################################### # Collect the Oracle Identity Manager setup information ############################################################################### #------------------------------------------------------------------------------ # Module definition #------------------------------------------------------------------------------ col=${B_IN_USE} dsc='Collects Oracle Identity Manager Information' pre=RDA:DCbegin req=?B_REQ_IREQ:OFM:DCireq,?B_REQ_WREQ:OFM:DCwreq rpt=B_IN_USE tgt=${I_OH/C} trg=?B_REQ_IREQ:OFM:DCireq,?B_REQ_WREQ:OFM:DCwreq var=B_IN_USE # Flow:in_use exe=sdcl { "var ${B_REQ_IREQ/T} = undef "var ${B_REQ_WREQ/T} = undef "if ${SET.RDA.BEGIN.I_ORACLE_HOME} "{var $itm = last " var $ORACLE_HOME = $itm->get_first('D_ORACLE_HOME') " if ${I_OH/M} " var ${I_OH/T} = $itm " keep $ORACLE_HOME "} "if ${PRF.B_TESTS} " var @{AUX.var} = ('in_use') " "macro is_valid_domain "{var ($nam,$dir) = @arg " require testDir('d',$dir),\ " 'The specified WebLogic Server domain directory does not exist.' " require isAbsolute($dir),\ " 'The specified WebLogic Server domain directory is not an absolute path.' " require grepFile(catFile($dir,'config','config.xml'),\ " '^${D_HOME},\ T_ORACLE_HOME=>${D_HOME},\ T_TITLE=>"OIM Server Oracle home ${D_HOME}"})) dsc='Target associated with the OIM Server Oracle home' nam=I_OH vis=false [B_INTERIM] typ=B dft=false dsc='Collect the file/directory list for the interim patches' inp='Do you want to collect the file and directory list for the interim \ patches in inventory (Y/N)?' lvl=6 #------------------------------------------------------------------------------ # Settings for AS home collections #------------------------------------------------------------------------------ [W_AS_TYPE] typ=M dft='oc4j' dsc='Application Server type' err="Enter a number from 1 to ${AUX.N_ITEMS}" inp='Enter the item number' itm=['jboss' =>'jboss',\ 'oc4j' =>'oc4j',\ 'weblogic' =>'weblogic',\ 'websphere' =>'websphere'] val=E var=oc4j:D_AS_HOME,T_OC4J_INSTANCE:\ jboss:D_JBOSS_HOME:\ weblogic:chk_install [D_AS_HOME] typ=D dft=$ORACLE_HOME dsc='Application Server home directory' err='Warning: The specified directory does not exist' inp='Enter the home directory for the Application Server' val=W [T_OC4J_INSTANCE] typ=T dft='' dsc='OC4J instance name' err='The OC4J instance name contains alphanumeric characters only' inp='Enter the OC4J instance name' ref='^\w+$' val=E [D_JBOSS_HOME] typ=D dft=${ENV.JBOSS_HOME} dsc='JBoss home directory' err='Warning: The specified directory does not exist' inp='Enter the JBoss home directory' val=W #------------------------------------------------------------------------------ # Setting definitions for Oracle WebLogic Server #------------------------------------------------------------------------------ [chk_install] typ=B dft=or(match(${I_OH}->get_first('T_PRODUCT'),'^Oracle IDM Suite'),\ testDir('d',catDir(${D_HOME},'server'))) dsc='Check for OFM 11g install' nam=- var=true:set_req_common,D_DOMAIN_HOME #------------------------------------------------------------------------------ # Setting definitions for Oracle common home #------------------------------------------------------------------------------ [set_req_common] typ=B dft=false dsc='Does OIM require Oracle instance request handler execution?' nam=B_REQ_IREQ exe=sdcl { "var $flg = false "if ${I_COMMON_HOME/P} "{var ${MOD.IREQ_OFM_OIM_CH.I_COMMON_HOME:\ " 'Target associated with the Oracle common home'} = last " var ${MOD.IREQ_OFM_OIM_CH.T_CH_FOCUS:\ " 'Focus areas for common home collection'} = 'Manifest,WlsGeneric' " var $flg = true "} "var ${AUX.dft} = $flg } #------------------------------------------------------------------------------ # Setting definitions for Oracle WebLogic Server domain #------------------------------------------------------------------------------ [D_DOMAIN_HOME] typ=D dft=${ENV.DOMAIN_HOME} dsc='Oracle WebLogic Server domain home' fmt='<',scalar(@dir = splitDir($dir)),1) "{loop $srv (findDir(catDir($dir,'servers'),'^[^\.]+$','n')) " {if ?testDir('d',catDir($dir,'servers',$srv,'logs')) " call push(@itm,$srv,$srv) " } " var ${T_TMP_NAM/T} = $nam = pop(@dir) " var @{T_TMP_ITM/T} = @itm " var ${I_DOMAIN:'Target associated with the domain'} = \ " nvl(findItem('DOM','D_DOMAIN_HOME',getShortPath($dir,true)),\ " defineTarget('DOM',{D_DOMAIN_ROOT=>$top = catNative(@dir,''),\ " T_DOMAIN_NAME=>$nam,\ " T_TITLE=>"Domain ${VAR.nam} (in ${VAR.top})"})) " var ${T_TOP_FOCUS:\ " 'Focus areas for Oracle WebLogic Server Middleware collection'} = \ " 'Generic,Manifest' " var ${T_DOM_FOCUS:\ " 'Focus areas for Oracle WebLogic Server domain collection'} = \ " 'ExtDomCfg,ExtSnmCfg,ExtSrvCfg,MinDomCfg,MinSrvCfg,NodDomCfg,NodDomLog,\ " OFM_OIM,SrvErr,WlstOn,WlstDomCfg,WlstDomClu,WlstDomRun,WlstDomSrv,\ " WlstSrvCfg,WlstSrvExp,WlstSrvImg,WlstSrvRun,WlstSrvThd' " var ${CTX.B_REQ_WREQ:\ " 'Does OIM require Oracle WebLogic request handler collection?'} = true "} } #------------------------------------------------------------------------------ # Identify the user #------------------------------------------------------------------------------ [T_USER] typ=T def='./WREQ_OFM_OIM_DOM' dsc='Oracle WebLogic server user name' val=E exe=sdcl { "var $tgt = addTarget('DOM_Setup',{B_MISSING_COMMON=>true,\ " B_MISSING_HOME=>true,\ " B_MISSING_PRODUCT=>true,\ " B_MISSING_WL_HOME=>true,\ " D_DOMAIN_HOME=>${CTX.D_DOMAIN_HOME}}) "if length($usr = $tgt->get_attr('DOMAIN_USER')) "{var ${AUX.dft} = $usr " var ${AUX.clr} = '-' " var ${AUX.err} = 'User name should not contain spacing characters.' " var ${AUX.inp} = "Enter the user name for the Oracle WebLogic Server \ " connection. If a dash (${AUX.clr}) is specified as \ " input, default user name retrieved from '${T_TMP_NAM}' \ " domain configuration file is considered." " var ${AUX.lvl} = 6 " var ${AUX.ref} = '^\S*$' "} "else "{var ${AUX.err} = 'User name cannot be empty and should not contain spacing \ " characters.' " var ${AUX.inp} = "Enter the user name for the Oracle WebLogic Server \ " connection for '${T_TMP_NAM}' domain" " var ${AUX.ref} = '^\S+$' "} } #------------------------------------------------------------------------------ # Settings for database home specific operations (SQL operations) #------------------------------------------------------------------------------ [B_RDBMS] typ=B dft=false dsc='OIM database information collection required?' inp='Do you want RDA to collect OIM Database information (Y/N)?' var=true:B_DB_AUTO [B_DB_AUTO] typ=B dft=compare('eq',${W_AS_TYPE},'weblogic') dsc='Do you want RDA to get the database connection details automatically?' inp='Do you want RDA to get the database connection details \ automatically (Y/N)?' lvl=6 var=true:set_db_target:\ I_DB [set_db_target] typ=B dsc='Determine the query target' nam=- exe=sdcl { "if !?${I_DB} "{var ($src,$usr) = () " if ?testFile('r',$fil = catFile(\ " ${D_DOMAIN_HOME},'config','jdbc','oimApplicationDBDS-jdbc.xml')) " {if xmlFind(xmlLoadFile($fil),'jdbc-data-source/jdbc-driver-params') " {var ($xml) = (last) " if xmlFind($xml,'properties/property|name *="^user$"') " {var $usr = xmlData(xmlFind(last,'value')) " var $src = concat(xmlData(xmlFind($xml,'driver-name')),'|',\ " xmlData(xmlFind($xml,'url'))) " } " } " } " " # Determine the corresponding query target " var $ttl = 'OFM.OIM queries' " if findItem('DQ',{B_DEDICATED=>true,\ " T_TITLE=>$ttl}) " var $db = defineTarget(last,{I_DRIVER=>${MOD.WREQ_OFM_OIM_DOM.I_DOMAIN},\ " T_SOURCE=>$src,\ " T_TYPE=>'JDBC',\ " T_USER=>$usr}) " else " var $db = defineTarget('DQ',{B_DEDICATED=>true,\ " I_DRIVER=>${MOD.WREQ_OFM_OIM_DOM.I_DOMAIN},\ " T_SOURCE=>$src,\ " T_TITLE=>$ttl,\ " T_TYPE=>'JDBC',\ " T_USER=>$usr}) " var ${I_DB:'Database to analyze'} = $db "} } [I_DB] typ=I cls='DQ' dft=${SET.DB.DB.I_DB} dsc='Database to analyze' exe=sdcl { "var ${RUN.CLASS.DQ.I_DRIVER} = ${MOD.WREQ_OFM_OIM_DOM.I_DOMAIN} } #------------------------------------------------------------------------------ # Settings for basic connectivity, provisioning and reconciliation tests #------------------------------------------------------------------------------ [B_TEST_CONN] typ=B dft=true dsc='Perform IT resource type-name tests using OIM diagnostic dashboard?' inp='The basic connectivity, provisioning and reconciliation tests is \ available from OIM 9.1.0.1 and later. Do you want RDA to perform these \ tests using OIM diagnostic dashboard (Y/N)?' var=true:B_USE_RESOURCES [B_USE_RESOURCES] typ=B dft=true dsc='Select the IT resources from known ones?' inp='Do you want to select the IT resources from a list of known ones (Y/N)?' var=true:T_RESOURCES:\ get_resources [T_RESOURCES] typ=M bef='IT Resource Type-Name Combination List:' dft='*' dsc='List of requested IT Resource type-name combinations' itm=[@{T_TMP_RESOURCES}] pck=true val=E exe=sdcl { "if ${B_RDBMS} "{# Get the available resources " call setDbTarget(${I_DB}) " var @itm = () " if !testDb() " {set $sql " {# SQL1 " "SELECT 'rsr=' || svd.svd_svr_type || '-' || svr.svr_name " " FROM svr,svd " " WHERE svr.svd_key = svd.svd_key " " AND svd.svd_svr_type != 'Remote Manager' " "/ " } " loop $lin (grepDb($sql,'^rsr=')) " {var $rsr = value($lin) " call push(@itm,$rsr,$rsr) " } " } " var @{T_TMP_RESOURCES/T} = @itm "} } [get_resources] typ=T dft=@{T_RESOURCES} dsc='List of requested IT Resource type-name combinations' end='.' err='IT resource type and name can only start with a alphanumeric character, \ followed by more alphanumeric characters or spaces. Use a dash (-) to \ separate the type from the name.' inp="Enter the IT resource type and IT resource name in the format \ 'type-name'. Enter a period (${AUX.end}) to terminate the list" nam=T_RESOURCES ref='^[a-zA-Z\d][a-zA-Z\d\s]+-[a-zA-Z\d][a-zA-Z\d\s]+$' val=E