Rev 19 | Rev 29 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?xml version="1.0" ?><package><comment>PrimalCode wizard generated file.</comment><job id="GenerateNodesSpecDefinitons" args="/bom_id:2864" prompt="no"><?job error="false" debug="false" ?><runtime><named helpstring="Bom ID" name="bom_id" required="false" type="string"/></runtime><object id="Oracle_Objects_For_OLE" progid="OracleInProcServer.XOraServer" events="true"/><script language="VBScript" src="common_subs.vbs"/><script language="VBScript" src="config.vbs"/><script id="GenerateNodeSpecFiles" language="VBScript"><![CDATA[Option Explicit'=====================================================' Name: GetNodesSpecFiles' Description: Gets the nodes specification files for' nodes that have an existing node spec' filename.' Author: Rupesh Solanki''' INPUT: bom_id'====================================================='== Variable Definition ==============================Dim BomIdDim objArgs'== Constants Declaration ============================'== Variable Init ===================================='====================================================='-----------------------------------------------------------------------------------------------------------------Sub GenerateNodesSpecDefinitons ( nBomId )Dim rsQry, aNetworkNodes, NodeSpec, DateStringDim lastRow, rowOraDatabase.Parameters.Add "BOM_ID", nBomId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NodesSpecFileNames.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "BOM_ID"If rsQry.RecordCount > 0 ThenaNetworkNodes = rsQry.GetRows()End IflastRow = UBound( aNetworkNodes, 2 )DateString = DateReversed( Date )For row = 0 To lastRowNodeSpec = NullNodeSpec = NodeSpec &_"#Copyright ERG Transit Systems (c) 1998-2006, All Rights Reserved"& vbNewLine &_"#----------------------------------------------------------------"& vbNewLine &_"#**** Source Information ****"& vbNewLine &_"#"& vbNewLine &_"#Source File Name: "& aNetworkNodes( 6, row ) & vbNewLine &_"#"& vbNewLine &_"#Source File Type: PERL Module File (.pm)"& vbNewLine &_"#"& vbNewLine &_"#Author: Deployment Manager"& vbNewLine &_"#"& vbNewLine &_"#Purpose: This file contains the package specification for"& vbNewLine &_"# "& aNetworkNodes( 1, row ) & " node."& vbNewLine &_"#"& vbNewLine &_"# The data is provided in the form of two PERL preinitialised"& vbNewLine &_"# HASH of HASHES"& vbNewLine &_"#"& vbNewLine &_"# The first hash contains all details regarding the persistant"& vbNewLine &_"# processes running on the node. It contains the following fields,"& vbNewLine &_"#"& vbNewLine &_"# -PkgOnwer"& vbNewLine &_"# -PkgHealthTag"& vbNewLine &_"# -PkgDesc"& vbNewLine &_"# -CmdInterface"& vbNewLine &_"#"& vbNewLine &_"# The second hash contains all details regarding the deployed"& vbNewLine &_"# packages installed on the node. It contains the following fields,"& vbNewLine &_"#"& vbNewLine &_"# -ERGPkgFlag"& vbNewLine &_"# -CheckVersionFlag"& vbNewLine &_"# -PkgVersion"& vbNewLine &_"# -PkgBuildNo"& vbNewLine &_"# -PkgDesc"& vbNewLine &_"#"& vbNewLine &_"#----------------------------------------------------------------"& vbNewLine &_""& vbNewLine &_"%pkgmnt::G_NodeDmInfo = (" & vbNewLine &_" BomName => '"& aNetworkNodes( 8, row ) &"',"& vbNewLine &_" BranchName => '"& aNetworkNodes( 4, row ) &"',"& vbNewLine &_" NodeName => '"& aNetworkNodes( 1, row ) &"',"& vbNewLine &_" OsName => '"& aNetworkNodes( 7, row ) &"',"& vbNewLine &_" ProjectName => '"& aNetworkNodes( 9, row ) &"',"& vbNewLine &_" _ForceVersion => {},"& vbNewLine &_" _NoAdd => {}"& vbNewLine &_");"& vbNewLine &_""& vbNewLine &_"$pkgmnt::G_NodeSBOMVersion = '"& aNetworkNodes( 11, row) &"';"& vbNewLine &_""& vbNewLine &_"$pkgmnt::G_NodeName = '"& aNetworkNodes( 1, row) &"';"& vbNewLine &_""& vbNewLine'-- Get Node Process Hash Details --NodeSpec = NodeSpec & GetNodeProcessConfigDetails ( aNetworkNodes( 10, row ) ) & vbNewLine'-- Get Node Product/Package Details --NodeSpec = NodeSpec & GetNodeProductDetails ( aNetworkNodes( 10, row ) ) & vbNewLine' Close node spec before savingNodeSpec = NodeSpec & vbNewLine & "1;"'WScript.Echo XMLNode' Save to a fileCall SaveFile( DateString, rsQry("version"), rsQry("branch_name"), "\\auperaunx26\releases\nodespecfiles", ( aNetworkNodes( 6, row ) ) , NodeSpec )Call SaveFile( DateString, rsQry("version"), rsQry("branch_name"), APP_ROOT &"nodespecfiles", ( aNetworkNodes( 6, row ) ) , NodeSpec )NextEnd Sub'-----------------------------------------------------------------------------------------------------------------Function FormatFileName ( sFileName )Dim sReturnsReturn = Replace ( sFileName, "/", "" )sReturn = Replace ( sReturn, "\", "" )sReturn = Replace ( sReturn, "&", "And" )sReturn = Replace ( sReturn, " ", "_" )FormatFileName = sReturnEnd Function'-----------------------------------------------------------------------------------------------------------------Function GetNodeProcessConfigDetails ( nOsId )Dim rsQry, NodeProcessString, RecNumOraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("OsProcessConfig.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "OS_ID"NodeProcessString = NULLRecNum = 0If rsQry.RecordCount <> 0 ThenNodeProcessString = NodeProcessString &_"%pkgmnt::G_NodeProcessHash = ("& vbNewLineElseNodeProcessString = NodeProcessString &_"%pkgmnt::G_NodeProcessHash = ("End IfWhile (NOT rsQry.BOF) AND (NOT rsQry.EOF)RecNum = RecNum + 1'NodeProcessString for Processes.NodeProcessString = NodeProcessString &_" "& rsQry("PKG_HEALTH_TAG") &" => {" & vbNewLine &_" CmdInterface => '"& rsQry("CMD_INTERFACE") &"',"& vbNewLine &_" IsInterface => '"& rsQry("IS_INTERFACE") &"',"& vbNewLine &_" Pkg => '"& rsQry("PKG_NAME") &"',"& vbNewLine &_" PkgHealthTag => '"& rsQry("PKG_HEALTH_TAG") &"',"& vbNewLine &_" PkgOnwer => '"& rsQry("PKG_OWNER") &"'"& vbNewLineIf (rsQry.RecordCount <> RecNum) AND (rsQry.RecordCount <> 1) ThenNodeProcessString = NodeProcessString &_" },"& vbNewLineElseNodeProcessString = NodeProcessString &_" }"& vbNewLineEnd IfrsQry.MoveNext()WendNodeProcessString = NodeProcessString &_");"& vbNewLinersQry.Close()Set rsQry = Nothing' Return stringGetNodeProcessConfigDetails = NodeProcessStringEnd Function'-----------------------------------------------------------------------------------------------------------------Function GetNodeProductDetails ( nOsId )Dim rsQry, NodeProcessString, RecNum, Ext, PkgName, PkgFlag, VersionFlag, PkgVersion, DescriptionOraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ExportOsProductList.sql"), ORADYN_DEFAULT )OraDatabase.Parameters.Remove "OS_ID"NodeProcessString = NULLRecNum = 0NodeProcessString = NodeProcessString &_"%pkgmnt::G_NodePkgHash = ("& vbNewLineWhile (NOT rsQry.BOF) AND (NOT rsQry.EOF)RecNum = RecNum + 1Ext = rsQry("v_ext")PkgVersion = rsQry("pkg_version")If IsNull(rsQry("sunos_electronic_name")) ThenPkgName = rsQry("pkg_name")ElsePkgName = rsQry("sunos_electronic_name")End If' Format ExtensionIf NOT IsNull(Ext) Then' Remove first dot from extensionIf InStr( 1, Ext, "." ) = 1 ThenExt = Right( Ext, Len(Ext) - 1 )PkgVersion = Left(PkgVersion, Len(PkgVersion) - Len(Ext) - 1 )End IfElseExt="???"End If' Format DescriptionDescription = rsQry("pv_description")If NOT IsNull(Description) ThenDescription = Replace ( Description, VBNewLine, "" )Description = Replace ( Description, """", "" )End if'Hard-coded AceTao as it has been identified as an ERG product.If InStr(1, PkgName, "ERG") = 1 Or PkgName = "AceTao" ThenPkgFlag = "T"VersionFlag = "T"ElsePkgFlag = "F"VersionFlag = "F"End If'NodeProcessString for packages.NodeProcessString = NodeProcessString &_" "& rsQry("PKG_NAME") &" => {" & vbNewLine &_" CheckVersionFlag => '"& VersionFlag &"',"& vbNewLine &_" ERGPkgFlag => '"& PkgFlag &"',"& vbNewLine &_" PkgDesc => '"& Description &"',"& vbNewLine &_" PkgProjAcronym => '"& Ext &"',"& vbNewLine &_" PkgVersion => '"& PkgVersion &"'"& vbNewLineIf (rsQry.RecordCount <> RecNum) AND (rsQry.RecordCount <> 1) ThenNodeProcessString = NodeProcessString &_" },"& vbNewLineElseNodeProcessString = NodeProcessString &_" }"& vbNewLineEnd IfrsQry.MoveNext()WendNodeProcessString = NodeProcessString &_");"& vbNewLinersQry.Close()Set rsQry = Nothing' Return stringGetNodeProductDetails = NodeProcessStringEnd Function'-----------------------------------------------------------------------------------------------------------------'=================================== MAIN LINE ======================================WScript.Echo "==================== job:GenerateNodesSpecDefinitons ===================="Set objArgs = WScript.ArgumentsIf (objArgs.Unnamed.Count > 0) ThenWscript.Echo "ERROR: Unnamed parameters!"objArgs.ShowUsageWScript.QuitElseBomId = objArgs.Named.Item("bom_id")If ( BomId <> "" ) ThenCall GenerateNodesSpecDefinitons( BomId )ElseobjArgs.ShowUsageWScript.QuitEnd IfEnd IfWScript.Echo "Job completed successfully!"'====================================================================================]]></script></job></package>