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 &_
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 &_
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 )
211
	Dim rsQry, NodeProcessString, RecNum, Ext, PkgName, PkgFlag, VersionFlag, PkgVersion
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
249
		End If
250
 
251
 
252
 
253
 
254
 
255
 
256
 
257
		'Hard-coded AceTao as it has been identified as an ERG product.
258
		If InStr(1, PkgName, "ERG") = 1 Or PkgName = "AceTao"  Then
259
			PkgFlag = "T"
260
			VersionFlag = "T"
261
		Else
262
			PkgFlag = "F"
263
			VersionFlag = "F"		
264
		End If
265
 
266
		'NodeProcessString for packages.
267
		NodeProcessString = NodeProcessString &_
268
		"	"& rsQry("PKG_NAME") &" => {" & vbNewLine &_
269
		"		CheckVersionFlag		=> '"& VersionFlag &"',"& vbNewLine &_
270
		"		ERGPkgFlag		=> '"& PkgFlag &"',"& vbNewLine &_
271
		"		PkgDesc			=> '"& rsQry("PV_DESCRIPTION") &"',"& vbNewLine &_
272
		"		PkgProjAcronym		=> '"& Ext &"',"& vbNewLine &_
273
		"		PkgVersion		=> '"& PkgVersion &"'"& vbNewLine 
274
 
275
		If (rsQry.RecordCount <> RecNum) AND (rsQry.RecordCount <> 1) Then
276
			NodeProcessString = NodeProcessString &_
277
			"	},"& vbNewLine
278
		Else
279
			NodeProcessString = NodeProcessString &_
280
			"	}"& vbNewLine
281
		End If
282
 
283
 
284
 
285
 
286
 
287
		rsQry.MoveNext()
288
	Wend	
289
 
290
	NodeProcessString = NodeProcessString &_
291
	");"& vbNewLine
292
 
293
	rsQry.Close()
294
	Set rsQry = Nothing
295
 
296
	' Return string
297
	GetNodeProductDetails = NodeProcessString	
298
 
299
End Function
300
'-----------------------------------------------------------------------------------------------------------------
301
 
302
 
303
 
304
'=================================== MAIN LINE ======================================
305
WScript.Echo "==================== job:GenerateNodesSpecDefinitons ===================="
306
 
307
Set objArgs = WScript.Arguments
308
 
309
If (objArgs.Unnamed.Count > 0) Then
310
	Wscript.Echo "ERROR: Unnamed parameters!"
311
	objArgs.ShowUsage
312
   	WScript.Quit
313
 
314
Else
315
	BomId = objArgs.Named.Item("bom_id")
316
 
317
	If ( BomId <> "" ) Then
318
		Call GenerateNodesSpecDefinitons( BomId )
319
 
320
   	Else
321
   		objArgs.ShowUsage
322
   		WScript.Quit
323
 
324
   	End If
325
 
326
End If
327
 
328
 
329
WScript.Echo "Job completed successfully!"
330
 
331
'====================================================================================
332
 
333
 
334
]]>
335
		</script>
336
	</job>
337
</package>