# DCwc.cfg: Collects Oracle WebCenter Suite Information # $Id: DCwc.cfg,v 1.30 2015/09/25 00:35:35 RDA Exp $ # ARCS: $Header: /home/cvs/cvs/RDA_8/src/scripting/lib/collect/OFM/DCwc.cfg,v 1.30 2015/09/25 00:35:35 RDA Exp $ # # Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. # # Change history # 20150924 MSC Eliminate trailing spaces. ############################################################################### # Collect the Oracle WebCenter setup information ############################################################################### #------------------------------------------------------------------------------ # Module definition #------------------------------------------------------------------------------ col=${B_IN_USE} dsc='Collects Oracle WebCenter Suite Information' man='Applies to Oracle WebCenter Suite 11g and later' 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 use=Xml var=not_used # Flow:in_use,B_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 "} "var @{AUX.var} = (cond(${PRF.B_TESTS},'in_use','B_IN_USE')) " "macro is_valid_home "{var ($nam,$dir) = @arg " require testDir('d',$dir),\ " 'The specified WebCenter Suite directory does not exist.' " require isAbsolute($dir),\ " 'The specified WebCenter Suite directory is not an absolute path.' " require testDir('d',catDir($dir,'webcenter')),\ " 'The specified WebCenter Suite directory does not contain some WebCenter \ " Suite installation related-files. Without a valid directory, the \ " collection will be disabled.' " var ${AUX.nam} = $nam " return true "} " "macro is_valid_domain "{var ($nam,$dir) = @arg " require testDir('d',$dir),\ " 'The specified WebCenter domain directory does not exist.' " require isAbsolute($dir),\ " 'The specified WebCenter domain directory is not an absolute path.' " require grepFile(catFile($dir,'config','config.xml'),\ " '^${D_ORACLE_HOME},\ T_ORACLE_HOME=>${D_ORACLE_HOME},\ T_TITLE=>"WC Oracle home ${D_ORACLE_HOME}"})) dsc='Target associated with the Oracle WebCenter Suite Oracle home' nam=I_OH vis=false [B_INTERIM] typ=B dsc='Collect the file/directory list for the interim patches' dft=false inp='Do you want to collect the file and directory list for the interim \ patches in inventory (Y/N)?' lvl=6 #------------------------------------------------------------------------------ # Setting definitions for Oracle common home #------------------------------------------------------------------------------ [set_req_common] typ=B dft=false dsc='Does WC require Oracle instance request handler execution?' nam=B_REQ_IREQ exe=sdcl { "var $flg = false "if ${I_COMMON_HOME/P} "{var ${MOD.IREQ_OFM_WC_CH.I_COMMON_HOME:\ " 'Target associated with the Oracle common home'} = last " var ${MOD.IREQ_OFM_WC_CH.T_CH_FOCUS:\ " 'Focus areas for common home collection'} = 'Generic,WlsGeneric' " var $flg = true "} "var ${AUX.dft} = $flg } #------------------------------------------------------------------------------ # Setting definitions for Oracle WebLogic Server #------------------------------------------------------------------------------ [D_DOMAIN_HOME] typ=D dsc='Oracle WebCenter 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 " if ${PRF/N_OFM_LEVEL} " {var $cnt = scalar(@itm) " if or(expr('==',$cnt,2),\ " and(expr('==',$cnt,4),grep(@itm,'^AdminServer$','if'))) " {var ${AUX.lvl} = ${PRF/N_OFM_LEVEL} " call unshift(@{AUX.W_NEXT},'server_comment') " } " else " var ${AUX.bef} = "\nServer list for '${T_TMP_NAM}' - domain home \ " (in ${CTX.D_DOMAIN_HOME}):\n\ " Two or more managed servers have been discovered." " } " var ${I_DOMAIN:'Target associated with the domain'} = \ " nvl(findItem('DOM','D_DOMAIN_HOME',getShortPath($dir,true)),\ " defineTarget('DOM',{D_DOMAIN_ROOT=>$top = cleanNative([@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' " var ${T_DOM_FOCUS:\ " 'Focus areas for Oracle WebLogic Server domain collection'} = \ " 'ExtDomCfg,ExtSnmCfg,ExtSrvCfg,MinDomCfg,MinSrvCfg,NodDomCfg,NodDomLog,\ " OFM_WC,SrvErr,WlstOn,WlstDomCfg,WlstDomClu,WlstDomRun,WlstDomSrv,\ " WlstSrvCfg,WlstSrvExp,WlstSrvImg,WlstSrvRun,WlstSrvThd' " var ${CTX.B_REQ_WREQ:\ " 'Does WC require Oracle WebLogic request handler collection?'} = true "} } [server_comment] typ=C def='./WREQ_OFM_WC_DOM' dsc='Report RDA has determined the server(s) to collect' inp="\nServer list for '${T_TMP_NAM}' - domain home (in ${CTX.D_DOMAIN_HOME}):\ \nWhen RDA discovers only one managed server and/or an AdminServer, \ server list selection is suppressed.\n\ RDA will target the server(s):\n\ ${T_TMP_SERVERS}" # stopwords AdminServer vis=false exe=sdcl { "var ($cnt,$str) = (0) "loop $srv (@{T_SERVERS}) " var $str = join("\n",$str,sprintf(" %d %s",incr($cnt),$srv)) "var ${T_TMP_SERVERS/T} = $str } #------------------------------------------------------------------------------ # Identify the user #------------------------------------------------------------------------------ [T_USER] typ=T def='./WREQ_OFM_WC_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+$' "} "if ?testDir('d',$tgt->get_attr('JAVA_HOME')) " var ${RUN.OFM.WC.D_JDK} = last } #------------------------------------------------------------------------------ # Identify the application name #------------------------------------------------------------------------------ [W_APP_TYPE] typ=M bef="\nOracle WebCenter Application Type:" def='./WREQ_OFM_WC_DOM' dft='WCP' dsc='Oracle WebCenter application type' itm=['WCF'=>'Oracle WebCenter Framework Application',\ 'WCP'=>'Oracle WebCenter Portal Application (formerly Spaces)'] pck=true val=F [sel_application] typ=M def='./WREQ_OFM_WC_DOM' dft=@{T_APPLICATION} dsc='Select Oracle WebCenter applications' itm=[@{T_TMP_SEL_ITM}] nam=-T_TMP_SEL_APP pck=true val=E exe=sdcl { "var ($wcp,@app,@dft,%app) = ('webcenter') "var $bef = "\nOracle WebCenter application list for '${T_TMP_NAM}' - domain \ " home (in ${CTX.D_DOMAIN_HOME}):" "if member('WCP',@{W_APP_TYPE}) "{var $bef = concat("The application '",$wcp,"' has been selected \ " automatically and will not be shown in the list of \ " applications to be selected.\n",$bef) " call push(@dft,$wcp) "} "if member('WCF',@{W_APP_TYPE}) "{if ?testFile('fr',catFile(${CTX.D_DOMAIN_HOME},'config','config.xml')) " {var $obj = xmlLoadFile(last,xmlDisable(xmlParser(),'BCDEPR')) " if compare('EQ',${T_TMP_NAM},xmlData(xmlFind($obj,'domain/name'))) " {loop $xml ($obj->find('domain/app-deployment')) " {var $pat = join('|',map(split('\s*,\s*',$xml->find('target')->get_data),\ " code(verbatim(last,'e')))) " if grep(@{T_SERVERS},$pat,'f') " incr $app{replace($xml->find('name')->get_data,'\#.*$')} " } " } " } " delete $app{$wcp} " loop $key (keys(%app)) " call push(@app,$key,$key) "} "var ${AUX.bef} = $bef "var @{T_TMP_SEL_ITM/T} = @app "var @{T_TMP_DFT_APP/T} = @dft } [set_application] typ=B def='./WREQ_OFM_WC_DOM' nam=- exe=sdcl { "var @{T_APPLICATION:'Oracle WebCenter applications'} = \ " sort([@{T_TMP_DFT_APP},@{T_TMP_SEL_APP}]) } #------------------------------------------------------------------------------ # SES settings #------------------------------------------------------------------------------ [B_SES_COLLECT] typ=B dft=false dsc='Collect Oracle Secure Enterprise Search instance information' inp='Do you want RDA to collect Oracle Secure Enterprise Search (SES) \ instance-related information (Y/N)?' var=true:T_SES_HOST,N_SES_PORT [T_SES_HOST] typ=T dsc='Oracle Secure Enterprise Search host name' err='Invalid character found in the host name' inp='Enter the fully qualified host name for Oracle Secure Enterprise Search \ instance' ref='^[\w\-\.]+$' val=E [N_SES_PORT] typ=N dsc='Oracle Secure Enterprise Search port number' err='The port number must be an integer number between 1 and 65535' inp='Enter the Oracle Secure Enterprise Search port number' ref='I[1,65535]' val=F #------------------------------------------------------------------------------ # Other 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:T_DB_USER,set_target:\ I_DB [T_DB_USER] typ=M bef='Oracle WebCenter database user name list:' dft='*' dsc='Oracle WebCenter database user names' itm=[@{T_TMP_DB_ITM}] pck=true val=E exe=sdcl { "var ($dir,@itm,%DS) = (${D_DOMAIN_HOME}) "keep %DS "if ?testFile('r',catFile($dir,'config','config.xml')) "{var $obj = xmlLoadFile(last,xmlDisable(xmlParser(),'BCDEPR')) " loop $xml ($obj->find('domain/jdbc-system-resource|name \ " *="^WebCenter(-Custom(Portal|ServicesProducer))?DS$"')) " {next !??$xml->find('descriptor-file-name')->get_data " if !isAbsolute($pth = catFile(last)) " {if ?nvl(testFile('f',catFile($dir,'config',$pth)),\ " testFile('f',catFile($dir,$pth))) " var $pth = last " } " loop $drv (xmlFind(xmlLoadFile($pth),'jdbc-data-source/jdbc-driver-params')) " {next !?$drv->find('properties/property|\ " name *="^user$"')->find('value')->get_data " var $DS{$usr = last} = concat($drv->find('driver-name')->get_data,'|',\ " $drv->find('url')->get_data) " call push(@itm,$usr,$usr) " } " } "} "var @{T_TMP_DB_ITM/T} = @itm } [set_target] typ=B dsc='Determine the query target' nam=- exe=sdcl { "# Determine the corresponding query target "var @db = () "loop $usr (@{T_DB_USER}) "{var $ttl = 'OFM.WC queries' " if findItem('DQ',{B_DEDICATED=>true,\ " T_TITLE=>$ttl,\ " T_USER=>$usr}) " var $db = defineTarget(last,{I_DRIVER=>${MOD.WREQ_OFM_WC_DOM.I_DOMAIN},\ " T_SOURCE=>$DS{$usr},\ " T_TYPE=>'JDBC'}) " else " var $db = defineTarget('DQ',{B_DEDICATED=>true,\ " I_DRIVER=>${MOD.WREQ_OFM_WC_DOM.I_DOMAIN},\ " T_SOURCE=>$DS{$usr},\ " T_TITLE=>$ttl,\ " T_TYPE=>'JDBC',\ " T_USER=>$usr}) " call push(@db,$db) "} "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_WC_DOM.I_DOMAIN} } #------------------------------------------------------------------------------ # Common setting definitions #------------------------------------------------------------------------------ [B_ALT_JDK] typ=B dft=false dsc="Is an alternative JDK used other than '${RUN.OFM.WC.D_JDK}'?" inp="Is an alternative JDK used other than '${RUN.OFM.WC.D_JDK}' (Y/N)?" var=false:jdk:\ D_JDK exe=sdcl { "if ${RUN.OFM.WC.D_JDK/M} "{if findDir(testParent('d',${D_ORACLE_HOME}),'^(jdk\d+|jrockit_\d+)','fp') " var ${RUN.OFM.WC.D_JDK} = first " else " var ${RUN.OFM.WC.D_JDK} = catDir(${D_ORACLE_HOME},'jdk') "} } [jdk] typ=D dft=${RUN.OFM.WC.D_JDK} dsc='Location for the JDK used for the Oracle WebCenter' nam=D_JDK [D_JDK] typ=D dft=${RUN.OFM.WC.D_JDK} dsc='Location for the JDK used for the Oracle WebCenter' err='Warning: The specified directory does not -yet- exist' inp='Enter the location of the JDK used for Oracle WebCenter' val=W [R_LOG_AGE] typ=N dft=5 dsc='Age limit (in days) for the log files to collect' err='The number of days must be a positive number' inp='Specify the age limit (in days) for the log files you want RDA to collect' lvl=6 ref='R[0,[' val=F