Rev 3909 | Blame | Compare with Previous | Last modification | View Log | RSS feed
'====================================================='| |'| nodeSpec.vbs |'| Generate a NodeSpec file for a given OSID |'| |'=====================================================Function Quote(str)Quote = "'" & str & "'"End FunctionFunction GenerateOsSpec ( nOsId )Dim rsQry, query, returnStringDim PkgName, PkgVersion, Ext, Description, PkgHealthTag, CmdInterface, Owner, IsInterface, PkgFlag, VersionFlagOraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("NodeSpecDetails.sql"), ORADYN_DEFAULT )returnString = NULLreturnString = returnString &_"#Copyright (C) 1998-2013 Vix Technology, All rights reserved"& VBNewline &_"#----------------------------------------------------------------"& VBNewline &_"#**** Source Information ****"& VBNewline &_"#"& VBNewline &_"#Source File Name: "& rsQry("node_spec_file")& 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 &_"# "& rsQry("node_name") &" 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 & VBNewlinereturnString = returnString &_"%pkgmnt::G_NodeDmInfo = ("& VBNewLine &_" BomName => "& Quote(rsQry("bom_name")) &","& VBNewLine &_" BranchName => "& Quote(rsQry("branch_name")) &","& VBNewLine &_" NodeName => "& Quote(rsQry("node_name")) &","& VBNewLine &_" OsName => "& Quote(rsQry("os_name")) &","& VBNewLine &_" ProjectName => "& Quote(rsQry("proj_name")) &","& VBNewLine &_" _ForceVersion => "& "{}" & ","& VBNewLine &_" _NoAdd => "& "{}" & VBNewLine &_");"& VBNewLine & VBNewLinereturnString = returnString &_"$pkgmnt::G_NodeSBOMVersion = "& Quote(rsQry("sbom_version")) &";"& VBNewLine & VBNewLine &_"$pkgmnt::G_NodeName = "& Quote(rsQry("node_name")) &";"& VBNewLine & VBNewLineOraDatabase.Parameters.Remove "OS_ID"rsQry.CloseSet rsQry = NothingOraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("OsProcessConfig.sql"), ORADYN_DEFAULT )If rsQry.Recordcount <> 0 ThenreturnString = returnString &_"%pkgmnt::G_NodeProcessHash = ("& VBNewLineElsereturnString = returnString &_"%pkgmnt::G_NodeProcessHash = ("End IfWhile (NOT rsQry.BOF) AND (NOT rsQry.EOF)PkgHealthTag = rsQry("pkg_health_tag")CmdInterface = rsQry("cmd_interface")Owner = rsQry("pkg_owner")IsInterface = rsQry("is_interface")PkgName = rsQry("pkg_name")returnString = returnString &_Quote(PkgHealthTag) &" => {"& VBNewLine &_" CmdInterface => "& Quote(CmdInterface) &","& VBNewLine &_" IsInterface => "& Quote(IsInterface) &","& VBNewLine &_" Pkg => "& Quote(PkgName) &","& VBNewLine &_" PkgHealthTag => "& Quote(PkgHealthTag) &","& VBNewLine &_" PkgOnwer => "& Quote(Owner) & VBNewLine &_"},"& VBNewLinersQry.MoveNext()WEnd' Format final outputIf NOT IsNull(returnString) And rsQry.Recordcount <> 0 ThenreturnString = Left ( returnString, InStrRev( returnString, "," ) - 1 ) & VBNewLineEnd IfreturnString = returnString &_");" & VBNewLine & VBNewLineOraDatabase.Parameters.Remove "OS_ID"rsQry.CloseSet rsQry = NothingOraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ExportOsProductList.sql"), ORADYN_DEFAULT )If rsQry.Recordcount <> 0 ThenreturnString = returnString &_"%pkgmnt::G_NodePkgHash = ("& VBNewLineWhile (NOT rsQry.BOF) AND (NOT rsQry.EOF)If IsNull(rsQry("sunos_electronic_name")) ThenPkgName = rsQry("pkg_name")ElsePkgName = rsQry("sunos_electronic_name")End IfPkgVersion = rsQry("pkg_version")Ext = rsQry("v_ext")Description = rsQry("pv_description")If InStr(1, PkgName, "ERG") = 1 Or InStr(1, PkgName, "VIX") = 1 Or PkgName = "AceTao" ThenPkgFlag = "T"VersionFlag = "T"ElsePkgFlag = "F"VersionFlag = "F"End If' Format DescriptionIf NOT IsNull(Description) ThenDescription = Replace ( Description, VBNewLine, "" )Description = Replace ( Description, """", "" )End if' Format ExtensionIf NOT IsNull(Ext) Then' Remove first dot from extensionIf InStr( 1, Ext, "." ) = 1 ThenExt = Right( Ext, Len(Ext) - 1 )End IfEnd IfreturnString = returnString &_Quote(PkgName) &" => {"& VBNewLine &_" CheckVersionFlag => "& Quote(VersionFlag) &","& VBNewLine &_" ERGPkgFlag => "& Quote(PkgFlag) &","& VBNewLinereturnString = returnString &_" PkgDesc => "& Quote(Description) &","& VBNewLineIf IsNull(Ext) ThenreturnString = returnString &_" PkgProjAcronym => "& Quote("???") & ","& VBNewLine &_" PkgVersion => "& Quote(PkgVersion) & VBNewLineElsereturnString = returnString &_" PkgProjAcronym => "& Quote(Ext) &","& VBNewLine &_" PkgVersion => "& Quote(Left(PkgVersion, Len(PkgVersion) - Len(Ext) - 1 )) & VBNewLineEnd IfreturnString = returnString &_" },"& VBNewLinersQry.MoveNext()WEnd' Format final outputIf NOT IsNull(returnString) ThenreturnString = Left ( returnString, InStrRev( returnString, "," ) - 1 ) & VBNewLineEnd IfreturnString = returnString &_");" & VBNewLine & VBNewLineElsereturnString = returnString &_"%pkgmnt::G_NodePkgHash = ();"End IfOraDatabase.Parameters.Remove "OS_ID"rsQry.CloseSet rsQry = NothingreturnString = returnString & VBNewLine & VBNewLine & "1;" & VBNewLine' Return stringGenerateOsSpec = returnStringEnd Function