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.
19 rsolanki 22
'	   Author:	Rupesh Solanki	
15 rsolanki 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 &_
29 jtweddle 61
		"#Copyright ERG Transit Systems (c) 1998-2008, All Rights Reserved"& vbNewLine &_
15 rsolanki 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 &_
19 rsolanki 106
		"$pkgmnt::G_NodeSBOMVersion = '"& aNetworkNodes( 11, row) &"';"& vbNewLine &_
15 rsolanki 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
19 rsolanki 127
		Call SaveFile( DateString, rsQry("version"), rsQry("branch_name"), "\\auperaunx26\releases\nodespecfiles",  ( aNetworkNodes( 6, row ) ) , NodeSpec )
15 rsolanki 128
		Call SaveFile( DateString, rsQry("version"), rsQry("branch_name"), APP_ROOT &"nodespecfiles",  ( aNetworkNodes( 6, row ) ) , NodeSpec )
129
 
130
 
131
	Next
132
 
133
 
134
 
135
 
136
 
137
End Sub
138
'-----------------------------------------------------------------------------------------------------------------
139
Function FormatFileName ( sFileName )
140
	Dim sReturn
141
 
142
	sReturn = Replace ( sFileName, "/", "" ) 	
143
	sReturn = Replace ( sReturn, "\", "" ) 	
144
	sReturn = Replace ( sReturn, "&", "And" ) 	
145
	sReturn = Replace ( sReturn, " ", "_" ) 	
146
 
147
	FormatFileName = sReturn
148
 
149
End Function
150
'-----------------------------------------------------------------------------------------------------------------
151
Function GetNodeProcessConfigDetails ( nOsId )
152
	Dim rsQry, NodeProcessString, RecNum
153
 
154
	OraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBER 
155
 
156
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("OsProcessConfig.sql"), ORADYN_DEFAULT )
157
 
158
 
159
	OraDatabase.Parameters.Remove "OS_ID"
160
 
161
	NodeProcessString = NULL
162
	RecNum = 0
163
 
164
 
19 rsolanki 165
	If rsQry.RecordCount <> 0 Then
166
		NodeProcessString = NodeProcessString &_
167
		"%pkgmnt::G_NodeProcessHash = ("& vbNewLine
168
	Else
169
		NodeProcessString = NodeProcessString &_
170
		"%pkgmnt::G_NodeProcessHash = ("
171
	End If
172
 
15 rsolanki 173
	While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
174
 
175
		RecNum = RecNum + 1
176
 
177
		'NodeProcessString for Processes.
178
		NodeProcessString = NodeProcessString &_
179
		"	"& rsQry("PKG_HEALTH_TAG") &" => {" & vbNewLine &_
180
		"		CmdInterface	=> '"& rsQry("CMD_INTERFACE") &"',"& vbNewLine &_
181
		"		IsInterface	=> '"& rsQry("IS_INTERFACE") &"',"& vbNewLine &_
182
		"		Pkg		=> '"& rsQry("PKG_NAME") &"',"& vbNewLine &_
183
		"		PkgHealthTag	=> '"& rsQry("PKG_HEALTH_TAG") &"',"& vbNewLine &_
184
		"		PkgOnwer	=> '"& rsQry("PKG_OWNER") &"'"& vbNewLine 
185
 
186
		If (rsQry.RecordCount <> RecNum) AND (rsQry.RecordCount <> 1) Then
187
			NodeProcessString = NodeProcessString &_
188
			"	},"& vbNewLine
189
		Else
190
			NodeProcessString = NodeProcessString &_
191
			"	}"& vbNewLine
192
		End If
193
 
194
 
195
		rsQry.MoveNext()
196
	Wend	
197
 
198
	NodeProcessString = NodeProcessString &_
199
	");"& vbNewLine
200
 
201
 
202
	rsQry.Close()
203
	Set rsQry = Nothing
204
 
205
	' Return string
206
	GetNodeProcessConfigDetails = NodeProcessString	
207
 
208
End Function
209
'-----------------------------------------------------------------------------------------------------------------
210
Function GetNodeProductDetails ( nOsId )
23 rsolanki 211
	Dim rsQry, NodeProcessString, RecNum, Ext, PkgName, PkgFlag, VersionFlag, PkgVersion, Description
15 rsolanki 212
 
213
	OraDatabase.Parameters.Add "OS_ID", nOsId, ORAPARM_INPUT, ORATYPE_NUMBER 
214
 
215
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery ("ExportOsProductList.sql"), ORADYN_DEFAULT )
216
 
217
	OraDatabase.Parameters.Remove "OS_ID"
218
 
219
	NodeProcessString = NULL
220
	RecNum = 0
221
 
222
 
223
 
224
	NodeProcessString = NodeProcessString &_
225
	"%pkgmnt::G_NodePkgHash = ("& vbNewLine
226
 
227
 
228
	While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
229
 
230
		RecNum = RecNum + 1
231
 
232
 
233
		Ext = rsQry("v_ext")
234
		PkgVersion = rsQry("pkg_version")
235
 
236
		If IsNull(rsQry("sunos_electronic_name")) Then
237
			PkgName = rsQry("pkg_name")
238
		Else
239
			PkgName = rsQry("sunos_electronic_name")			
240
		End If
241
 
242
		' Format Extension
243
		If NOT IsNull(Ext) Then
244
			' Remove first dot from extension
245
			If InStr( 1, Ext, "." ) = 1 Then
246
				Ext = Right( Ext, Len(Ext) - 1 )
247
				PkgVersion = Left(PkgVersion, Len(PkgVersion) - Len(Ext) - 1 )
248
			End If
23 rsolanki 249
		Else
250
			Ext="???"
15 rsolanki 251
		End If
252
 
23 rsolanki 253
		' Format Description
254
		Description = rsQry("pv_description")
255
		If NOT IsNull(Description) Then
256
			Description = Replace ( Description, VBNewLine, "" )
257
			Description = Replace ( Description, """", "" )
258
		End if
15 rsolanki 259
 
260
 
23 rsolanki 261
 
15 rsolanki 262
 
263
 
264
 
265
 
266
		'Hard-coded AceTao as it has been identified as an ERG product.
267
		If InStr(1, PkgName, "ERG") = 1 Or PkgName = "AceTao"  Then
268
			PkgFlag = "T"
269
			VersionFlag = "T"
270
		Else
271
			PkgFlag = "F"
272
			VersionFlag = "F"		
273
		End If
274
 
275
		'NodeProcessString for packages.
276
		NodeProcessString = NodeProcessString &_
277
		"	"& rsQry("PKG_NAME") &" => {" & vbNewLine &_
278
		"		CheckVersionFlag		=> '"& VersionFlag &"',"& vbNewLine &_
279
		"		ERGPkgFlag		=> '"& PkgFlag &"',"& vbNewLine &_
23 rsolanki 280
		"		PkgDesc			=> '"& Description &"',"& vbNewLine &_
15 rsolanki 281
		"		PkgProjAcronym		=> '"& Ext &"',"& vbNewLine &_
282
		"		PkgVersion		=> '"& PkgVersion &"'"& vbNewLine 
283
 
284
		If (rsQry.RecordCount <> RecNum) AND (rsQry.RecordCount <> 1) Then
285
			NodeProcessString = NodeProcessString &_
286
			"	},"& vbNewLine
287
		Else
288
			NodeProcessString = NodeProcessString &_
289
			"	}"& vbNewLine
290
		End If
291
 
292
 
293
 
294
 
295
 
296
		rsQry.MoveNext()
297
	Wend	
298
 
299
	NodeProcessString = NodeProcessString &_
300
	");"& vbNewLine
301
 
302
	rsQry.Close()
303
	Set rsQry = Nothing
304
 
305
	' Return string
306
	GetNodeProductDetails = NodeProcessString	
307
 
308
End Function
309
'-----------------------------------------------------------------------------------------------------------------
310
 
311
 
312
 
313
'=================================== MAIN LINE ======================================
314
WScript.Echo "==================== job:GenerateNodesSpecDefinitons ===================="
315
 
316
Set objArgs = WScript.Arguments
317
 
318
If (objArgs.Unnamed.Count > 0) Then
319
	Wscript.Echo "ERROR: Unnamed parameters!"
320
	objArgs.ShowUsage
321
   	WScript.Quit
322
 
323
Else
324
	BomId = objArgs.Named.Item("bom_id")
325
 
326
	If ( BomId <> "" ) Then
327
		Call GenerateNodesSpecDefinitons( BomId )
328
 
329
   	Else
330
   		objArgs.ShowUsage
331
   		WScript.Quit
332
 
333
   	End If
334
 
335
End If
336
 
337
 
338
WScript.Echo "Job completed successfully!"
339
 
340
'====================================================================================
341
 
342
 
343
]]>
344
		</script>
345
	</job>
346
</package>