# DCofap.cfg: Collects Oracle Fusion Applications Provisioning Information # $Id: DCofap.cfg,v 1.4 2015/02/03 12:32:38 RDA Exp $ # ARCS: $Header: /home/cvs/cvs/RDA_8/src/scripting/lib/collect/APPS/DCofap.cfg,v 1.4 2015/02/03 12:32:38 RDA Exp $ # # Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. # # Change history # 20150202 KRA Include database settings. ############################################################################### # Collect the Oracle Fusion Applications Provisioning setup information ############################################################################### #------------------------------------------------------------------------------ # Module definition #------------------------------------------------------------------------------ col=${B_IN_USE} dsc='Collects Oracle Fusion Applications Provisioning Information' pre=RDA:DCbegin req=?B_REQ_IREQ:OFM:DCireq,?B_REQ_WREQ:OFM:DCwreq rpt=B_IN_USE trg=?B_REQ_IREQ:OFM:DCireq,?B_REQ_WREQ:OFM:DCwreq var=not_used # Flow:in_use,B_IN_USE exe=sdcl { "if ${AUX.N_DEPTH} " var @{AUX.var} = ('get_oracle_home') "else "{var ${B_REQ_IREQ/T} = undef " var ${B_REQ_WREQ/T} = undef " var @{AUX.var} = (cond(${PRF.B_TESTS},'in_use','B_IN_USE')) "} " "macro check_home "{loop $nod (findDir(catDir($arg[0],'instance','domains'),'^\.+$','npv')) " {loop $dom (findDir($nod,'^\.+$','npv')) " {if grepFile(catFile($dom,'config','config.xml'),'^${D_ORACLE_HOME},\ 'T_ORACLE_HOME'=>${T_ORACLE_HOME},\ 'T_TITLE'=>"ATGPF home ${D_ORACLE_HOME}"})) dsc='Target associated with the ATGPF Oracle home' nam=I_ORACLE_HOME vis=false exe=sdcl { "call initTargets() } #------------------------------------------------------------------------------ # Setting definitions for OFAP-based setup #------------------------------------------------------------------------------ [in_use] typ=B dft=true dsc='Is Oracle Fusion Applications Provisioning information requested?' nam=B_IN_USE var=D_ROOT [not_used] typ=B dft=false dsc='Is Oracle Fusion Applications Provisioning information requested?' nam=B_IN_USE [B_IN_USE] typ=B dft=${AUX.B_SELECTED} dsc='Is Oracle Fusion Applications Provisioning information requested?' inp='Do you want RDA to analyze Oracle Fusion Applications Provisioning (Y/N)?' var=true:D_ROOT [D_ROOT] typ=D dsc='Oracle Fusion Applications APPLICATIONS_BASE home directory' fmt='<$dir,\ " T_TITLE=>"Instance home ${VAR.dir}"}))) "var ${AUX.dft} = [@itm] } [set_req_instance] typ=B dsc='Does OFAP require Oracle instance request handler execution?' nam=B_REQ_IREQ exe=sdcl { "var ($flg,%tgt) = (false) "loop $tgt (@{I_ORACLE_INSTANCES}) "{var $dir = $tgt->get_first('D_ORACLE_INSTANCE') " next !?testFile('f',catFile($dir,'bin',${AS.BATCH:'opmnctl'})) " var $oid = $tgt->get_oid " var ${MOD.IREQ_APPS_OFAP_${VAR.oid}.I_ORACLE_INSTANCE:\ " 'Target associated with the Oracle instance home'} = $tgt " var ${MOD.IREQ_APPS_OFAP_${VAR.oid}.T_OH_FOCUS:\ " 'Focus areas for Oracle home associated to the instance home'} = \ " 'HTTP,OPMN' " var ${MOD.IREQ_APPS_OFAP_${VAR.oid}.T_OI_FOCUS:\ " 'Focus areas for instance home'} = 'HTTP,OPMN' " var ${MOD.IREQ_APPS_OFAP_${VAR.oid}.D_EXTRA_TNSADMIN:\ " 'List of extra TNS_ADMIN directories'} = catDir($dir,'config') " if ?$tgt->get_first('I_ORACLE_HOME')->get_prime('I_COMMON_HOME') " var $tgt{last->get_oid} = last " var $flg = true "} "var ${AUX.dft} = $flg } #------------------------------------------------------------------------------ # Select the node(s) #------------------------------------------------------------------------------ [T_NODES] typ=M bef='Node list:' dft='*' dsc='Node list' itm=[@{T_TMP_ITM_NOD}] pck=true val=E exe=sdcl { "var ($hom,@itm) = (catDir(${D_ROOT},'instance','domains')) "if ${PRF/B_OFM_IPS} " call push(@itm,${PRF/T_NODE},${PRF/T_NODE}) "elsif findDir($hom,'^\.+$','nv') "{loop $nod (last) " {loop $dom (findDir(catDir($hom,$nod),'^\.+$','npv')) " {if grepFile(catFile($dom,'config','config.xml'),'^true,\ " B_MISSING_HOME=>true,\ " B_MISSING_PRODUCT=>true,\ " B_MISSING_WL_HOME=>true,\ " D_DOMAIN_HOME=>$key,\ " D_DOMAIN_ROOT=>$top,\ " T_DOMAIN_NAME=>$sub}) " next !?$tgt->get_attr('BEA_HOME') " next !?testFile('f',catFile(last,'domain-registry.xml')) " next exists($dup{$reg = last}) " loop $xml (xmlFind(xmlLoadFile($reg),'domain-registry/domain')) " {var @dir = splitDir($dir = cleanNative([xmlValue($xml,'location'),''])) " next !grep(@{T_NODES},verbatim($dir[-2],'e'),'fi') " if grepFile(catFile($dir,'config','config.xml'),'^',length($dir),length($dom{$key}->[2]))) " {if expr('>',scalar(@dir),1) " {var $nam = pop(@dir) " var $dom{getShortPath($dir,true)} = [catNative(@dir,''),$nam,$dir] " } " } " } " } " var $dup{$reg} = true " } " } "} "loop $dir (keys(%dom)) " call push(@itm,\ " nvl(findItem('DOM','D_DOMAIN_HOME',$dir),\ " defineTarget('DOM',{D_DOMAIN_ROOT=>$top = $dom{$dir}->[0],\ " T_DOMAIN_NAME=>$nam = $dom{$dir}->[1],\ " T_TITLE=>"Domain ${VAR.nam} (in ${VAR.top})"}))) "var ${AUX.dft} = [@itm] } [set_req_domain] typ=B dft=false dsc='Does OFAP require Oracle WebLogic request handler execution?' nam=B_REQ_WREQ exe=sdcl { "var ($flg,%DOMAINS) = (false) "keep %DOMAINS "loop $tgt (@{I_DOMAINS}) "{var $dir = $tgt->get_first('D_DOMAIN_HOME') " next !grepFile(catFile($dir,'config','config.xml'),'^get_oid " var ${MOD.WREQ_APPS_OFAP_${VAR.oid}.I_DOMAIN:\ " 'Target associated with the domain'} = $tgt " var ${MOD.WREQ_APPS_OFAP_${VAR.oid}.T_TOP_FOCUS:\ " 'Focus areas for Oracle WebLogic Server Middleware collection'} = \ " 'Basic,Generic' " var ${MOD.WREQ_APPS_OFAP_${VAR.oid}.T_DOM_FOCUS:\ " 'Focus areas for Oracle WebLogic Server domain collection'} = \ " 'APPS_OFA,ExtSnmCfg,NodDomCfg,NodDomLog,OFM_SOA,SrvErr' " var $DOMAINS{${MOD.WREQ_APPS_OFAP_${VAR.oid}/I}->get_path} = $tgt " var $flg = true "} "var ${AUX.dft} = $flg } [loop_domains] typ=L dft=keys(%DOMAINS) dsc='Iterate on each domain' nam=-RUN/SDSL.K_OID var=loop:T_SERVERS #------------------------------------------------------------------------------ # Select the server(s) #------------------------------------------------------------------------------ [T_SERVERS] typ=M bef="Server list for '${T_TMP_NAM}' domain:" def="COL/${RUN.SDSL.K_OID}" dft='*' dsc='Domain server list' itm=[@{T_TMP_ITM}] pck=true val=E exe=sdcl { "var ($tgt,@itm) = ($DOMAINS{${RUN.SDSL.K_OID}}) "if ${PRF/B_OFM_IPS} " call push(@itm,${PRF/T_SERVER},${PRF/T_SERVER}) "else "{var $top = $tgt->get_first('D_DOMAIN_HOME') " loop $srv (findDir(catDir($top,'servers'),'^\.+$','nv')) " {if ?testDir('d',catDir($top,'servers',$srv,'logs')) " call push(@itm,$srv,$srv) " } "} "var ${T_TMP_NAM/T} = $tgt->get_first('T_DOMAIN_NAME') "var @{T_TMP_ITM/T} = @itm } #------------------------------------------------------------------------------ # Database settings #------------------------------------------------------------------------------ [B_DB_AUTO] typ=B dft=true 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_target:\ I_APPS [set_target] typ=B dsc='Determine the query target' nam=- exe=sdcl { "if !?${I_APPS} "{var ($src,$tgt,$usr,%ds) = () " loop $key (keys(%DOMAINS)) " {var $tgt = $DOMAINS{$key} " var $dir = $tgt->get_first('D_DOMAIN_HOME') " next !?$fil = testFile('r',catFile($dir,'config','config.xml')) " call find_datasource(\%ds,$dir,$fil,'ApplicationDB') " var ($usr,$src) = get_db_details($obj = xmlLoadFile($ds{'ApplicationDB'})) " break $usr " if xmlFind($obj,'jdbc-data-source/jdbc-data-source-params/data-source-list') " {loop $nam (split(',',xmlData(last))) " {call find_datasource(\%ds,$dir,$fil,$nam) " var ($usr,$src) = get_db_details(xmlLoadFile($ds{$nam})) " break $usr " } " } " } " " # Determine the corresponding query target " var $ttl = 'APPS.OFAP queries' " if findItem('DQ',{B_DEDICATED=>true,\ " T_TITLE=>$ttl}) " var $db = defineTarget(last,{I_DRIVER=>$tgt,\ " T_SOURCE=>$src,\ " T_TYPE=>'JDBC',\ " T_USER=>$usr}) " else " var $db = defineTarget('DQ',{B_DEDICATED=>true,\ " I_DRIVER=>$tgt,\ " T_SOURCE=>$src,\ " T_TITLE=>$ttl,\ " T_TYPE=>'JDBC',\ " T_USER=>$usr}) " var ${I_APPS:'Database to analyze'} = $db "} } [I_APPS] typ=I cls='DQ' dft=${SET.DB.DB.I_DB} dsc='Database to analyze' exe=sdcl { "var ${RUN.CLASS.DQ.I_DRIVER} = ${MOD.WREQ_APPS_OFAP_DOM_T0001.I_DOMAIN} }