Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
' 			 	    NEW VERSION
5
'               --- PROCESS FORM ---
6
'=====================================================
7
%>
8
<%
9
Option explicit
10
' Good idea to set when using redirect
11
Response.Expires = 0	' always load the page, dont store
12
%>
13
 
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/common_dbedit.asp"-->
20
<%
21
' Set rfile parameter. This is a return page after Login
22
Call objPMod.StoreParameter ( "rfile", "dependencies.asp" )
23
'------------ ACCESS CONTROL ------------------
24
%>
25
<!--#include file="_access_control_login.asp"-->
26
<!--#include file="_access_control_general.asp"-->
27
<!--#include file="_access_control_project.asp"-->
28
<%
29
'------------ Variable Definition -------------
30
Dim parOLDpv_id
31
Dim parFRnewver
32
Dim NEWpv_id
33
Dim parSetToPv_id
34
Dim parSync_rtags
35
Dim toTouch
36
'------------ Constants Declaration -----------
37
'------------ Variable Init -------------------
38
parOLDpv_id = QStrPar("OLDpv_id")
39
parFRnewver = QStrPar("FRnewver")
40
parSetToPv_id = QStrPar("pv_id")
41
parSync_rtags = Request("sync_rtags")
42
'----------------------------------------------
43
%>
44
<%
45
Sub New_Version ( SSnewver, NNorig_pv_id, NNSetToPv_id, NNrtag_id, sSyncRtags, retNEWpv_id )
46
	Dim cAlterReleaseWhileRestrictive, rsQry
47
 
48
	On Error Resume Next
49
	objEH.ErrorRedirect = TRUE
50
 
121 hknight 51
	If Request("build_type") = "A" Then
52
		SSnewver = ""
53
	End If
119 ghuddy 54
 
55
	OraDatabase.Parameters.Add "ORIG_PV_ID", 				NNorig_pv_id, 				ORAPARM_INPUT, ORATYPE_NUMBER
56
 
57
	If Request("build_type") = "M" Then
58
		' Manual build
59
		OraDatabase.Parameters.Add "PKG_VERSION",  SSnewver, 		 ORAPARM_INPUT, ORATYPE_VARCHAR2
60
 
61
	Else
62
		' Automated Build
63
		OraDatabase.Parameters.Add "PKG_VERSION",  Request("v_ext"), ORAPARM_INPUT, ORATYPE_VARCHAR2
64
 
65
	End If
66
 
67
	' Access Control - Allow release change while release is in restrictive mode
68
	cAlterReleaseWhileRestrictive = "N"
69
	If objAccessControl.IsActive("AlterReleaseContentsInRestrictiveMode") Then cAlterReleaseWhileRestrictive = "Y"
70
 
71
 
72
	OraDatabase.Parameters.Add "BUILD_TYPE", 				Request("build_type"), 		ORAPARM_INPUT, ORATYPE_CHAR
73
	OraDatabase.Parameters.Add "ALTER_RELEASE",  			cAlterReleaseWhileRestrictive, 		ORAPARM_INPUT, ORATYPE_CHAR
74
	OraDatabase.Parameters.Add "SET_TO_PV_ID", 				NNSetToPv_id, 				ORAPARM_INPUT, ORATYPE_NUMBER
75
	OraDatabase.Parameters.Add "RTAG_ID", 					NNrtag_id, 					ORAPARM_INPUT, ORATYPE_NUMBER
76
	OraDatabase.Parameters.Add "USER_ID", 					objAccessControl.UserId, 	ORAPARM_INPUT, ORATYPE_NUMBER
77
	OraDatabase.Parameters.Add "enumISSUES_STATE_IMPORTED", enumISSUES_STATE_IMPORTED, 	ORAPARM_INPUT, ORATYPE_NUMBER
78
	OraDatabase.Parameters.Add "RETPV_ID", 					0, 							ORAPARM_OUTPUT,ORATYPE_NUMBER 
79
 
80
	objEH.TryORA ( OraSession )
81
 
82
	Set rsQry = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_CONTENT WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID = "& NNorig_pv_id &"", cint(0))
83
 
84
	If (NOT IsNull(rsQry("pkg_id"))) AND rsQry("pkg_state") = 6  Then
85
 
86
		Dim rsPv_id
87
 
88
		If (SSnewver) <> ""  Then 
89
 
90
 
91
			Set rsPv_id = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS WHERE PKG_VERSION ='"& SSnewver &"' AND PKG_ID = "& rsQry("pkg_id") &"", cint(0))
92
 
93
			retNEWpv_id =  rsPv_id("pv_id")
94
 
95
			rsPv_id.Close()
96
			Set rsPv_id = nothing
97
		Else
98
			retNEWpv_id = NNSetToPv_id	
99
		End If	
100
		If NOT IsNull(retNewpv_id) Then
101
			OraDatabase.ExecuteSQL _
102
			"BEGIN "&_
103
			" UPDATE RELEASE_CONTENT SET PV_ID ="& retNEWpv_id &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& Request("OLDpv_id")&"; "&_
104
			"END;"
105
		Else
106
			OraDatabase.ExecuteSQL _
107
			"BEGIN "&_
108
			" PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
109
		   	"                    :PKG_VERSION,"&_
110
			"                    :BUILD_TYPE,"&_
111
			"                    :SET_TO_PV_ID,"&_
112
   		 	"                    :RTAG_ID,"&_
113
   		 	"                    :USER_ID,"&_
114
   	 		"                    :enumISSUES_STATE_IMPORTED,"&_
115
   	 		"                    :RETPV_ID ); "&_
116
			" PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
117
			" PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
118
			"END;"
119
 
120
			retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value 	
121
		End If	
122
	Else
123
		OraDatabase.ExecuteSQL _
124
		"BEGIN "&_
125
		" PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
126
	    "                    :PKG_VERSION,"&_
127
		"                    :BUILD_TYPE,"&_
128
		"                    :SET_TO_PV_ID,"&_
129
   	 	"                    :RTAG_ID,"&_
130
   	 	"                    :USER_ID,"&_
131
   	 	"                    :enumISSUES_STATE_IMPORTED,"&_
132
   	 	"                    :RETPV_ID ); "&_
133
		" PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
134
		" PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
135
		"END;"
136
 
137
		retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value 	
138
 
139
	End If
140
 
141
 
142
	rsQry.Close()
143
	Set rsQry = nothing
144
	objEH.CatchORA ( OraSession )
145
 
146
 
147
	OraDatabase.Parameters.Remove "ORIG_PV_ID"
148
	OraDatabase.Parameters.Remove "ALTER_RELEASE"
149
	OraDatabase.Parameters.Remove "PKG_VERSION"
150
	OraDatabase.Parameters.Remove "BUILD_TYPE"
151
	OraDatabase.Parameters.Remove "SET_TO_PV_ID"
152
	OraDatabase.Parameters.Remove "RTAG_ID"
153
	OraDatabase.Parameters.Remove "USER_ID"
154
	OraDatabase.Parameters.Remove "enumISSUES_STATE_IMPORTED"
155
	OraDatabase.Parameters.Remove "RETPV_ID" 
156
End Sub
157
'---------------------------------------------------------------
158
Sub Config_Spec (NNRtag_id, NNPv_id)
159
	OraDatabase.Parameters.Add "RTAG_ID", NNRtag_id,	ORAPARM_INPUT, ORATYPE_NUMBER 
160
	OraDatabase.Parameters.Add "PV_ID", NNPv_id,	ORAPARM_INPUT, ORATYPE_NUMBER 
161
 
162
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("config_spec.sql"), cint(0))
163
 
164
	OraDatabase.Parameters.Remove "RTAG_ID"	
165
	OraDatabase.Parameters.Remove "PV_ID"
166
 
167
End Sub
168
'---------------------------------------------------------------
169
Sub Config_Spec_Template (config_branch, pkg_label, src_path, pkg_name, release_name)
170
 
171
 
172
	Dim myMail, LocalPath, Template
173
 
174
	Set myMail=Server.CreateObject("Persits.MailSender")
175
	'LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html")
176
	myMail.Host = SMTP_HOST
177
	myMail.Subject="Config Specs for package "& pkg_name &" in "& release_name &""
178
	myMail.From = ADMIN_EMAIL
179
	myMail.AddAddress objAccessControl.UserEmail
180
	' Attach the file
181
	'myMail.AddAttachment LocalPath
182
	Template = "element * CHECKEDOUT" & chr(13) & chr(10) & _
183
	"element .../lost+found -none" & chr(13) & chr(10) & _
184
	"element * .../"& config_branch &"/LATEST" & chr(13) & chr(10) & _
185
	"element * "& pkg_label &" -mkbranch "& config_branch &"" & chr(13) & chr(10) & _
186
	"element * /main/0 -mkbranch "& config_branch &"" & chr(13) & chr(10) & _
187
	"load "& src_path &""
188
 
189
 
190
	myMail.Body = Template
191
	myMail.Send
192
	set myMail=nothing
193
 
194
 
195
End Sub
196
'---------------------------------------------------------------
197
Function SanityCheck ( newVersion )
198
 
199
	SanityCheck = False
200
 
121 hknight 201
	Dim objRegEx, objRegEx2
119 ghuddy 202
    Set objRegEx = New RegExp
121 hknight 203
	Set objRegEx2 = New RegExp
119 ghuddy 204
 
205
    objRegEx.IgnoreCase = True
121 hknight 206
	objRegEx.Pattern = "^[0-9]+\.[0-9]+\.[0-9]+\.[a-zA-Z0-9]+$"	
207
	objRegEx2.Pattern = "\.cots$"
119 ghuddy 208
 
209
	If Len(newVersion) <= 50 Then
121 hknight 210
		If objRegEx.Test( newVersion ) OR objRegEx2.Test( newVersion ) Then
119 ghuddy 211
			SanityCheck = True
212
		End If
213
	End If
214
 
121 hknight 215
	If Request("build_type") = "A" Then
216
		SanityCheck = True
217
	End If
218
 
119 ghuddy 219
	Set objRegEx = Nothing
121 hknight 220
	Set objRegEx2 = Nothing
221
 
222
End Function
223
'---------------------------------------------------------------
224
Function VersionHasCotsExtension ( newVersion )
225
	VersionHasCotsExtension = False
226
 
227
	Dim myRegExp
228
	Set myRegExp = New RegExp
229
 
230
	myRegExp.Pattern = "\.cots$"
231
 
232
	If myRegExp.Test( newVersion ) Then
233
		VersionHasCotsExtension = True
234
	End If
235
 
236
	Set myRegExp = Nothing
119 ghuddy 237
 
238
End Function
239
'---------------------------------------------------------------
240
%>
241
<%
242
'-----------------------  MAIN LINE  ---------------------------
243
Dim rsQry, Query_String, Record_Count
244
'--- Process submission ---
121 hknight 245
 
246
If Request("build_type") = "A" AND VersionHasCotsExtension( parFRnewver ) Then 
247
	Call RaiseMsg ( enum_MSG_CANNOT_AUTO_GENERATE_COTS_PKG&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver)
248
Else
119 ghuddy 249
If (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then
250
	' All mandatory parameters FOUND
251
 
252
	If SanityCheck( parFRnewver ) Then
253
 
121 hknight 254
		If Request("build_type") = "M" Then
255
			Query_string = " SELECT pv.pv_id, pv.is_patch, pv.dlocked"&_
256
           					" FROM package_versions pv"&_
257
							" WHERE pv.pkg_version = '"& parFRnewver &"'"&_
258
            				" AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id"&_
259
							"  FROM package_versions origpv"&_
260
							" WHERE origpv.pv_id = "& parOLDpv_id &")"
119 ghuddy 261
 
121 hknight 262
			Set rsQry = OraDatabase.DbCreateDynaset(Query_String, cint(0))
263
			Record_Count = rsQry.RecordCount
264
			rsQry.Close()
265
			Set rsQry = Nothing
266
		End If	
119 ghuddy 267
 
268
		If Record_Count > 0 And Request("build_type") = "M" Then
269
			Call RaiseMsg ( enum_MSG_PACKAGE_VERSION_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
270
		Else
271
			'If IsNull(rsQry("pkg_id")) Then
272
			Call New_Version ( parFRnewver, parOLDpv_id, parSetToPv_id, parRtag_id, parSync_rtags, NEWpv_id )
273
			'Else
274
				'OraSession.BeginTrans
275
				'OraDatabase.ExecuteSQL _
276
				'" UPDATE RELEASE_CONTENT SET PV_ID ="& Request("pv_id") &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& Request("OLDpv_id")
277
  				'OraSession.CommitTrans
278
			'End If
279
 
280
			'rsQry.Close()
281
			'Set rsQry = nothing
282
 
283
			'Call Config_Spec (parRtag_id, NEWpv_id) 
284
 
285
 
286
 
287
			If objEH.Finally Then
288
				'If (rsQry("config_spec_branch") <> "" AND rsQry("pkg_label") <> "" AND  rsQry("src_path") <> "") Then
289
					'Call Config_Spec_Template (rsQry("config_spec_branch"), rsQry("pkg_label"), rsQry("src_path"), rsQry("pkg_name"), rsQry("rtag_name"))
290
				'End If
291
				Response.Redirect("dependencies.asp?rtag_id="& parRtag_id &"&pv_id="& NEWpv_id )	
292
 
293
				'rsQry.Close()
294
				'Set rsQry = nothing
295
 
296
			End If
297
		End If
298
	Else
299
		Call RaiseMsg( enum_MSG_PACKAGE_VERSION_INVALID&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
300
	End If
301
 
302
Else
303
	Response.write "Some mandatory parameters are missing!" & "<br>" 'TODO
304
	Response.write QSTR_All 
121 hknight 305
End If ' If (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then
306
End If ' If Request("build_type") = "A" AND VersionHasCotsExtension( parFRnewver ) Then
119 ghuddy 307
%>
308
 
309
<!-- DESTRUCTOR ------->
310
<!--#include file="common/destructor.asp"-->