Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3909 dpurdie 1
'=====================================================
2
'|                                                   |
3
'|			          nodeSpec.vbs	     		 	 |
4
'|  Generate a NodeSpec file for a given OSID        |
5
'|                                                   |
6
'=====================================================
7
 
8
Function Quote(str)
9
    Quote = "'" & str & "'"
10
End Function
11
 
12
Function GenerateOsSpec ( nOsId )
13
	Dim rsQry, query, returnString
14
	Dim PkgName, PkgVersion, Ext, Description, PkgHealthTag, CmdInterface, Owner, IsInterface, PkgFlag, VersionFlag
15
 
16
	OraDatabase.Parameters.Add "OS_ID", nOsId,	ORAPARM_INPUT, ORATYPE_NUMBER 
17
 
18
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("NodeSpecDetails.sql"), ORADYN_DEFAULT )		
19
 
20
	returnString = NULL
21
 
22
	returnString = returnString &_
23
	"#Copyright (C) 1998-2013 Vix Technology, All rights reserved"& VBNewline &_
24
	"#----------------------------------------------------------------"& VBNewline &_
25
	"#**** Source Information ****"& VBNewline &_
26
	"#"& VBNewline &_
27
	"#Source File Name: "& rsQry("node_spec_file")& VBNewline &_
28
	"#"& VBNewline &_
29
	"#Source File Type: PERL Module File (.pm)"& VBNewline &_
30
	"#"& VBNewline &_
31
	"#Author: Deployment Manager"& VBNewline &_
32
	"#"& VBNewline &_
33
	"#Purpose: This file contains the package specification for"& VBNewline &_ 
34
	"#	"& rsQry("node_name") &" node."& VBNewline &_
35
	"#"& VBNewline &_
36
	"#	The data is provided in the form of two PERL preinitialised"& VBNewline &_
37
	"#	HASH of HASHES"& VBNewline &_
38
	"#"& VBNewline &_
39
	"#	The first hash contains all details regarding the persistant"& VBNewline &_
40
	"#	processes running on the node. It contains the following fields,"& VBNEWline &_
41
	"#"& VBNEWline &_
42
	"#	-PkgOnwer"& VBNEWline &_
43
	"#	-PkgHealthTag"& VBNEWline &_
44
	"#	-PkgDesc"& VBNEWline &_
45
	"#	-CmdInterface"& VBNEWline &_
46
	"#"& VBNEWline &_
47
	"#	The second hash contains all details regarding the deployed"& VBNewline &_
48
	"#	packages installed on the node. It contains the following fields,"& VBNewline &_
49
	"#"& VBNEWline &_
50
	"#	-ERGPkgFlag"& VBNEWline &_
51
	"#	-CheckVersionFlag"& VBNEWline &_
52
	"#	-PkgVersion"& VBNEWline &_
53
	"#	-PkgBuildNo"& VBNEWline &_
54
	"#	-PkgDesc"& VBNEWline &_
55
	"#"& VBNEWline &_
56
	"#----------------------------------------------------------------"& VBNewline & VBNewline
57
 
58
 
59
	returnString = returnString &_
60
        "%pkgmnt::G_NodeDmInfo = ("& VBNewLine &_
61
        "        BomName       => "& Quote(rsQry("bom_name")) &","& VBNewLine &_
62
        "        BranchName    => "& Quote(rsQry("branch_name")) &","& VBNewLine &_
63
        "        NodeName      => "& Quote(rsQry("node_name")) &","& VBNewLine &_
64
        "        OsName        => "& Quote(rsQry("os_name")) &","& VBNewLine &_
65
        "        ProjectName   => "& Quote(rsQry("proj_name")) &","& VBNewLine &_
3947 dpurdie 66
        "        _ForceVersion => "& "{}" & ","& VBNewLine &_
67
        "        _NoAdd        => "& "{}" & VBNewLine &_
3909 dpurdie 68
        ");"& VBNewLine & VBNewLine 
69
 
70
	returnString = returnString &_
71
	"$pkgmnt::G_NodeSBOMVersion = "& Quote(rsQry("sbom_version")) &";"& VBNewLine & VBNewLine &_
72
	"$pkgmnt::G_NodeName = "&        Quote(rsQry("node_name")) &";"& VBNewLine & VBNewLine
73
 
74
	OraDatabase.Parameters.Remove "OS_ID"	
75
 
76
	rsQry.Close
77
	Set rsQry = Nothing
78
 
79
	OraDatabase.Parameters.Add "OS_ID", nOsId,	ORAPARM_INPUT, ORATYPE_NUMBER 
80
 
81
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("OsProcessConfig.sql"), ORADYN_DEFAULT )	
82
 
83
	If rsQry.Recordcount <> 0 Then
84
		returnString = returnString &_
85
		"%pkgmnt::G_NodeProcessHash = ("& VBNewLine 
86
	Else
87
		returnString = returnString &_
88
		"%pkgmnt::G_NodeProcessHash = ("
89
	End If
90
 
91
	While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
92
		PkgHealthTag = rsQry("pkg_health_tag")
93
		CmdInterface = rsQry("cmd_interface")
94
		Owner = rsQry("pkg_owner")
95
		IsInterface = rsQry("is_interface")
96
		PkgName = rsQry("pkg_name")
97
 
98
		returnString = returnString &_
99
			Quote(PkgHealthTag) &" => {"& VBNewLine &_
100
            "        CmdInterface  => "& Quote(CmdInterface) &","& VBNewLine &_
101
            "        IsInterface   => "& Quote(IsInterface) &","& VBNewLine &_
102
            "        Pkg           => "& Quote(PkgName) &","& VBNewLine &_
103
            "        PkgHealthTag  => "& Quote(PkgHealthTag) &","& VBNewLine &_
104
            "        PkgOnwer      => "& Quote(Owner) & VBNewLine &_
105
            "},"& VBNewLine
106
 
107
		rsQry.MoveNext()
108
	WEnd	
109
 
110
	' Format final output
111
	If NOT IsNull(returnString) And rsQry.Recordcount <> 0 Then
112
		returnString = Left ( returnString, InStrRev( returnString, "," ) - 1 ) & VBNewLine
113
	End If	
114
 
115
	returnString = returnString &_
116
	");" & VBNewLine & VBNewLine 
117
 
118
	OraDatabase.Parameters.Remove "OS_ID"	
119
 
120
	rsQry.Close
121
	Set rsQry = Nothing	
122
 
123
 
124
	OraDatabase.Parameters.Add "OS_ID", nOsId,	ORAPARM_INPUT, ORATYPE_NUMBER 
125
 
126
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ExportOsProductList.sql"), ORADYN_DEFAULT )
127
 
3947 dpurdie 128
	If rsQry.Recordcount <> 0 Then
129
		returnString = returnString &_
130
		"%pkgmnt::G_NodePkgHash = ("& VBNewLine 
3909 dpurdie 131
 
3947 dpurdie 132
	    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
133
		    If IsNull(rsQry("sunos_electronic_name")) Then
134
			    PkgName = rsQry("pkg_name")
135
		    Else
136
			    PkgName = rsQry("sunos_electronic_name")			
137
		    End If
3909 dpurdie 138
 
3947 dpurdie 139
		    PkgVersion = rsQry("pkg_version")
140
		    Ext = rsQry("v_ext")
141
		    Description = rsQry("pv_description")
3909 dpurdie 142
 
3947 dpurdie 143
		    If InStr(1, PkgName, "ERG") = 1 Or InStr(1, PkgName, "VIX") = 1 Or PkgName = "AceTao"  Then
144
			    PkgFlag = "T"
145
			    VersionFlag = "T"
146
		    Else
147
			    PkgFlag = "F"
148
			    VersionFlag = "F"		
149
		    End If
3909 dpurdie 150
 
3947 dpurdie 151
		    ' Format Description
152
		    If NOT IsNull(Description) Then
153
			    Description = Replace ( Description, VBNewLine, "" )
154
			    Description = Replace ( Description, """", "" )
155
		    End if
3909 dpurdie 156
 
3947 dpurdie 157
		    ' Format Extension
158
		    If NOT IsNull(Ext) Then
159
			    ' Remove first dot from extension
160
			    If InStr( 1, Ext, "." ) = 1 Then
161
				    Ext = Right( Ext, Len(Ext) - 1 )
162
			    End If
3909 dpurdie 163
 
3947 dpurdie 164
		    End If
3909 dpurdie 165
 
166
 
167
 
3947 dpurdie 168
		    returnString = returnString &_
169
			    Quote(PkgName) &" => {"& VBNewLine &_
170
                "          CheckVersionFlag  => "& Quote(VersionFlag) &","& VBNewLine &_
171
                "          ERGPkgFlag        => "& Quote(PkgFlag) &","& VBNewLine
3909 dpurdie 172
 
3947 dpurdie 173
		    returnString = returnString &_
174
                "          PkgDesc           => "& Quote(Description) &","& VBNewLine
3909 dpurdie 175
 
3947 dpurdie 176
		    If IsNull(Ext) Then
177
			    returnString = returnString &_
178
	                "          PkgProjAcronym    => "& Quote("???") & ","&  VBNewLine &_
179
				    "          PkgVersion        => "& Quote(PkgVersion) &  VBNewLine
180
		    Else
181
			    returnString = returnString &_
182
            	    "          PkgProjAcronym    => "& Quote(Ext) &","&  VBNewLine &_
183
				    "          PkgVersion        => "& Quote(Left(PkgVersion, Len(PkgVersion) - Len(Ext) - 1 )) &  VBNewLine
184
		    End If
3909 dpurdie 185
 
186
 
3947 dpurdie 187
               returnString = returnString &_
188
		        "	},"& VBNewLine
3909 dpurdie 189
 
190
 
191
 
3947 dpurdie 192
		    rsQry.MoveNext()
193
	    WEnd
194
 
195
	    ' Format final output
196
	    If NOT IsNull(returnString) Then
197
		    returnString = Left ( returnString, InStrRev( returnString, "," ) - 1 ) & VBNewLine
198
	    End If
3909 dpurdie 199
 
3947 dpurdie 200
	    returnString = returnString &_
201
	    ");" & VBNewLine & VBNewLine 
202
 
203
	Else
204
		returnString = returnString &_
205
		"%pkgmnt::G_NodePkgHash = ();"
206
	End If
207
 
208
 
3909 dpurdie 209
	OraDatabase.Parameters.Remove "OS_ID"
210
 
211
	rsQry.Close
212
	Set rsQry = Nothing
213
 
214
 
3947 dpurdie 215
	returnString = returnString & VBNewLine & VBNewLine & "1;" & VBNewLine 	
3909 dpurdie 216
 
217
	' Return string 
218
	GenerateOsSpec = returnString
219
 
220
End Function
221