Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
15 rsolanki 1
<?xml version="1.0" ?>
2
<package>
3
	<comment>
4
	PrimalCode wizard generated file.
5
	</comment>
6
	<job id="GenerateNodesSpecDefinitons" args="/bom_id:2864" prompt="no">
7
		<?job error="false" debug="false" ?>
8
		<runtime>
9
			<named helpstring="Bom ID" name="bom_id" required="false" type="string"/>
10
		</runtime>
11
		<object id="Oracle_Objects_For_OLE" progid="OracleInProcServer.XOraServer" events="true"/>
12
		<script language="VBScript" src="common_subs.vbs"/>
13
		<script language="VBScript" src="config.vbs"/>
14
		<script id="GenerateNodeSpecFiles" language="VBScript">
15
<![CDATA[
16
Option Explicit
17
'=====================================================
18
'        Name: 	GetNodesSpecFiles
19
' Description:	Gets the nodes specification files for 
20
' 				nodes that have an existing node spec 	
21
' 				filename.
22
'				
23
' 				
24
' 				
25
' 		INPUT:  bom_id
26
 
27
'=====================================================
28
 
29
'== Variable Definition ==============================
30
Dim BomId
31
Dim objArgs
32
'== Constants Declaration ============================
33
'== Variable Init ====================================
34
'=====================================================
35
 
36
 
37
'-----------------------------------------------------------------------------------------------------------------
38
Sub GenerateNodesSpecDefinitons ( nBomId )
39
	Dim rsQry, aNetworkNodes, NodeSpec, DateString
40
	Dim lastRow, row
41
 
42
	OraDatabase.Parameters.Add "BOM_ID", nBomId, ORAPARM_INPUT, ORATYPE_NUMBER 
43
 
44
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("NodesSpecFileNames.sql"), ORADYN_DEFAULT )
45
 
46
	OraDatabase.Parameters.Remove "BOM_ID"
47
 
48
	If rsQry.RecordCount > 0 Then
49
		aNetworkNodes = rsQry.GetRows()
50
 
51
	End If
52
 
53
	lastRow = UBound( aNetworkNodes, 2 )
54
	DateString = DateReversed( Date )
55
 
56
	For row = 0 To lastRow
57
 
58
		NodeSpec = Null
59
 
60
		NodeSpec = NodeSpec &_
61
		"#Copyright ERG Transit Systems (c) 1998-2006, All Rights Reserved"& vbNewLine &_
62
		"#----------------------------------------------------------------"& vbNewLine &_
63
  		"#**** Source Information ****"& vbNewLine &_
64
	  	"#"& vbNewLine &_
65
	  	"#Source File Name: "& aNetworkNodes( 6, row ) & vbNewLine &_
66
		"#"& vbNewLine &_
67
		"#Source File Type: PERL Module File (.pm)"& vbNewLine &_
68
		"#"& vbNewLine &_
69
		"#Author: Deployment Manager"& vbNewLine &_
70
		"#"& vbNewLine &_
71
		"#Purpose: This file contains the package specification for"& vbNewLine &_
72
		"#	"& aNetworkNodes( 1, row ) & " node."& vbNewLine &_
73
		"#"& vbNewLine &_
74
		"#	The data is provided in the form of two PERL preinitialised"& vbNewLine &_
75
		"#	HASH of HASHES"& vbNewLine &_
76
		"#"& vbNewLine &_
77
		"#	The first hash contains all details regarding the persistant"& vbNewLine &_
78
		"#	processes running on the node. It contains the following fields,"& vbNewLine &_
79
		"#"& vbNewLine &_
80
		"#	-PkgOnwer"& vbNewLine &_
81
		"#	-PkgHealthTag"& vbNewLine &_
82
		"#	-PkgDesc"& vbNewLine &_
83
		"#	-CmdInterface"& vbNewLine &_
84
		"#"& vbNewLine &_
85
		"#	The second hash contains all details regarding the deployed"& vbNewLine &_
86
		"#	packages installed on the node. It contains the following fields,"& vbNewLine &_
87
		"#"& vbNewLine &_
88
		"#	-ERGPkgFlag"& vbNewLine &_
89
		"#	-CheckVersionFlag"& vbNewLine &_
90
		"#	-PkgVersion"& vbNewLine &_
91
		"#	-PkgBuildNo"& vbNewLine &_
92
		"#	-PkgDesc"& vbNewLine &_
93
		"#"& vbNewLine &_
94
		"#----------------------------------------------------------------"& vbNewLine &_
95
		""& vbNewLine &_
96
		"%pkgmnt::G_NodeDmInfo = (" & vbNewLine &_
97
		"	BomName		=> '"& aNetworkNodes( 8, row ) &"',"& vbNewLine &_
98
		"	BranchName	=> '"& aNetworkNodes( 4, row ) &"',"& vbNewLine &_
99
		"	NodeName	=> '"& aNetworkNodes( 1, row ) &"',"& vbNewLine &_
100
		"	OsName		=> '"& aNetworkNodes( 7, row ) &"',"& vbNewLine &_
101
		"	ProjectName	=> '"& aNetworkNodes( 9, row ) &"',"& vbNewLine &_
102
		"	_ForceVersion	=> {},"& vbNewLine &_
103
		"	_NoAdd		=> {}"& vbNewLine &_
104
		");"& vbNewLine &_
105
		""& vbNewLine &_
106
		"$pkgmnt::G_NodeSBOMVersion = '"& aNetworkNodes( 5, row) &"';"& vbNewLine &_
107
		""& vbNewLine &_
108
		"$pkgmnt::G_NodeName = '"& aNetworkNodes( 1, row) &"';"& vbNewLine &_
109
		""& vbNewLine 	
110
 
111
 
112
		'-- Get Node Process Hash Details --
113
		NodeSpec = NodeSpec & GetNodeProcessConfigDetails ( aNetworkNodes( 10, row ) ) & vbNewLine 
114
 
115
 
116
		'-- Get Node Product/Package Details --
117
		NodeSpec = NodeSpec & GetNodeProductDetails ( aNetworkNodes( 10, row ) ) & vbNewLine 
118
 
119
 
120
		' Close node spec before saving
121
		NodeSpec = NodeSpec & vbNewLine & "1;"
122
 
123
		'WScript.Echo XMLNode
124
 
125
 
126
		' Save to a file
127
		Call SaveFile( DateString, rsQry("version"), rsQry("branch_name"), APP_ROOT &"nodespecfiles",  ( aNetworkNodes( 6, row ) ) , NodeSpec )
128
 
129
 
130
	Next
131
 
132
 
133
 
134
 
135
 
136
End Sub
137
'-----------------------------------------------------------------------------------------------------------------
138
Function FormatFileName ( sFileName )
139
	Dim sReturn
140
 
141
	sReturn = Replace ( sFileName, "/", "" ) 	
142
	sReturn = Replace ( sReturn, "\", "" ) 	
143
	sReturn = Replace ( sReturn, "&", "And" ) 	
144
	sReturn = Replace ( sReturn, " ", "_" ) 	
145
 
146
	FormatFileName = sReturn
147
 
148
End Function
149
'-----------------------------------------------------------------------------------------------------------------
150
Function GetNodeProcessConfigDetails ( nOsId )
151
	Dim rsQry, NodeProcessString, RecNum
152
 
153
	OraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBER 
154
 
155
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("OsProcessConfig.sql"), ORADYN_DEFAULT )
156
 
157
 
158
	OraDatabase.Parameters.Remove "OS_ID"
159
 
160
	NodeProcessString = NULL
161
	RecNum = 0
162
 
163
	NodeProcessString = NodeProcessString &_
164
	"%pkgmnt::G_NodeProcessHash = ("& vbNewLine
165
 
166
	While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
167
 
168
		RecNum = RecNum + 1
169
 
170
		'NodeProcessString for Processes.
171
		NodeProcessString = NodeProcessString &_
172
		"	"& rsQry("PKG_HEALTH_TAG") &" => {" & vbNewLine &_
173
		"		CmdInterface	=> '"& rsQry("CMD_INTERFACE") &"',"& vbNewLine &_
174
		"		IsInterface	=> '"& rsQry("IS_INTERFACE") &"',"& vbNewLine &_
175
		"		Pkg		=> '"& rsQry("PKG_NAME") &"',"& vbNewLine &_
176
		"		PkgHealthTag	=> '"& rsQry("PKG_HEALTH_TAG") &"',"& vbNewLine &_
177
		"		PkgOnwer	=> '"& rsQry("PKG_OWNER") &"'"& vbNewLine 
178
 
179
		If (rsQry.RecordCount <> RecNum) AND (rsQry.RecordCount <> 1) Then
180
			NodeProcessString = NodeProcessString &_
181
			"	},"& vbNewLine
182
		Else
183
			NodeProcessString = NodeProcessString &_
184
			"	}"& vbNewLine
185
		End If
186
 
187
 
188
		rsQry.MoveNext()
189
	Wend	
190
 
191
	NodeProcessString = NodeProcessString &_
192
	");"& vbNewLine
193
 
194
 
195
	rsQry.Close()
196
	Set rsQry = Nothing
197
 
198
	' Return string
199
	GetNodeProcessConfigDetails = NodeProcessString	
200
 
201
End Function
202
'-----------------------------------------------------------------------------------------------------------------
203
Function GetNodeProductDetails ( nOsId )
204
	Dim rsQry, NodeProcessString, RecNum, Ext, PkgName, PkgFlag, VersionFlag, PkgVersion
205
 
206
	OraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBER 
207
 
208
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ExportOsProductList.sql"), ORADYN_DEFAULT )
209
 
210
	OraDatabase.Parameters.Remove "OS_ID"
211
 
212
	NodeProcessString = NULL
213
	RecNum = 0
214
 
215
 
216
 
217
	NodeProcessString = NodeProcessString &_
218
	"%pkgmnt::G_NodePkgHash = ("& vbNewLine
219
 
220
 
221
	While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
222
 
223
		RecNum = RecNum + 1
224
 
225
 
226
		Ext = rsQry("v_ext")
227
		PkgVersion = rsQry("pkg_version")
228
 
229
		If IsNull(rsQry("sunos_electronic_name")) Then
230
			PkgName = rsQry("pkg_name")
231
		Else
232
			PkgName = rsQry("sunos_electronic_name")			
233
		End If
234
 
235
		' Format Extension
236
		If NOT IsNull(Ext) Then
237
			' Remove first dot from extension
238
			If InStr( 1, Ext, "." ) = 1 Then
239
				Ext = Right( Ext, Len(Ext) - 1 )
240
				PkgVersion = Left(PkgVersion, Len(PkgVersion) - Len(Ext) - 1 )
241
			End If
242
		End If
243
 
244
 
245
 
246
 
247
 
248
 
249
 
250
		'Hard-coded AceTao as it has been identified as an ERG product.
251
		If InStr(1, PkgName, "ERG") = 1 Or PkgName = "AceTao"  Then
252
			PkgFlag = "T"
253
			VersionFlag = "T"
254
		Else
255
			PkgFlag = "F"
256
			VersionFlag = "F"		
257
		End If
258
 
259
		'NodeProcessString for packages.
260
		NodeProcessString = NodeProcessString &_
261
		"	"& rsQry("PKG_NAME") &" => {" & vbNewLine &_
262
		"		CheckVersionFlag		=> '"& VersionFlag &"',"& vbNewLine &_
263
		"		ERGPkgFlag		=> '"& PkgFlag &"',"& vbNewLine &_
264
		"		PkgDesc			=> '"& rsQry("PV_DESCRIPTION") &"',"& vbNewLine &_
265
		"		PkgProjAcronym		=> '"& Ext &"',"& vbNewLine &_
266
		"		PkgVersion		=> '"& PkgVersion &"'"& vbNewLine 
267
 
268
		If (rsQry.RecordCount <> RecNum) AND (rsQry.RecordCount <> 1) Then
269
			NodeProcessString = NodeProcessString &_
270
			"	},"& vbNewLine
271
		Else
272
			NodeProcessString = NodeProcessString &_
273
			"	}"& vbNewLine
274
		End If
275
 
276
 
277
 
278
 
279
 
280
		rsQry.MoveNext()
281
	Wend	
282
 
283
	NodeProcessString = NodeProcessString &_
284
	");"& vbNewLine
285
 
286
	rsQry.Close()
287
	Set rsQry = Nothing
288
 
289
	' Return string
290
	GetNodeProductDetails = NodeProcessString	
291
 
292
End Function
293
'-----------------------------------------------------------------------------------------------------------------
294
 
295
 
296
 
297
'=================================== MAIN LINE ======================================
298
WScript.Echo "==================== job:GenerateNodesSpecDefinitons ===================="
299
 
300
Set objArgs = WScript.Arguments
301
 
302
If (objArgs.Unnamed.Count > 0) Then
303
	Wscript.Echo "ERROR: Unnamed parameters!"
304
	objArgs.ShowUsage
305
   	WScript.Quit
306
 
307
Else
308
	BomId = objArgs.Named.Item("bom_id")
309
 
310
	If ( BomId <> "" ) Then
311
		Call GenerateNodesSpecDefinitons( BomId )
312
 
313
   	Else
314
   		objArgs.ShowUsage
315
   		WScript.Quit
316
 
317
   	End If
318
 
319
End If
320
 
321
 
322
WScript.Echo "Job completed successfully!"
323
 
324
'====================================================================================
325
 
326
 
327
]]>
328
		</script>
329
	</job>
330
</package>