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
 
51
 
52
	OraDatabase.Parameters.Add "ORIG_PV_ID", 				NNorig_pv_id, 				ORAPARM_INPUT, ORATYPE_NUMBER
53
 
54
	If Request("build_type") = "M" Then
55
		' Manual build
56
		OraDatabase.Parameters.Add "PKG_VERSION",  SSnewver, 		 ORAPARM_INPUT, ORATYPE_VARCHAR2
57
 
58
	Else
59
		' Automated Build
60
		OraDatabase.Parameters.Add "PKG_VERSION",  Request("v_ext"), ORAPARM_INPUT, ORATYPE_VARCHAR2
61
 
62
	End If
63
 
64
	' Access Control - Allow release change while release is in restrictive mode
65
	cAlterReleaseWhileRestrictive = "N"
66
	If objAccessControl.IsActive("AlterReleaseContentsInRestrictiveMode") Then cAlterReleaseWhileRestrictive = "Y"
67
 
68
 
69
	OraDatabase.Parameters.Add "BUILD_TYPE", 				Request("build_type"), 		ORAPARM_INPUT, ORATYPE_CHAR
70
	OraDatabase.Parameters.Add "ALTER_RELEASE",  			cAlterReleaseWhileRestrictive, 		ORAPARM_INPUT, ORATYPE_CHAR
71
	OraDatabase.Parameters.Add "SET_TO_PV_ID", 				NNSetToPv_id, 				ORAPARM_INPUT, ORATYPE_NUMBER
72
	OraDatabase.Parameters.Add "RTAG_ID", 					NNrtag_id, 					ORAPARM_INPUT, ORATYPE_NUMBER
73
	OraDatabase.Parameters.Add "USER_ID", 					objAccessControl.UserId, 	ORAPARM_INPUT, ORATYPE_NUMBER
74
	OraDatabase.Parameters.Add "enumISSUES_STATE_IMPORTED", enumISSUES_STATE_IMPORTED, 	ORAPARM_INPUT, ORATYPE_NUMBER
75
	OraDatabase.Parameters.Add "RETPV_ID", 					0, 							ORAPARM_OUTPUT,ORATYPE_NUMBER 
76
 
77
	objEH.TryORA ( OraSession )
78
 
79
	Set rsQry = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_CONTENT WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID = "& NNorig_pv_id &"", cint(0))
80
 
81
	If (NOT IsNull(rsQry("pkg_id"))) AND rsQry("pkg_state") = 6  Then
82
 
83
		Dim rsPv_id
84
 
85
		If (SSnewver) <> ""  Then 
86
 
87
 
88
			Set rsPv_id = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS WHERE PKG_VERSION ='"& SSnewver &"' AND PKG_ID = "& rsQry("pkg_id") &"", cint(0))
89
 
90
			retNEWpv_id =  rsPv_id("pv_id")
91
 
92
			rsPv_id.Close()
93
			Set rsPv_id = nothing
94
		Else
95
			retNEWpv_id = NNSetToPv_id	
96
		End If	
97
		If NOT IsNull(retNewpv_id) Then
98
			OraDatabase.ExecuteSQL _
99
			"BEGIN "&_
100
			" UPDATE RELEASE_CONTENT SET PV_ID ="& retNEWpv_id &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& Request("OLDpv_id")&"; "&_
101
			"END;"
102
		Else
103
			OraDatabase.ExecuteSQL _
104
			"BEGIN "&_
105
			" PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
106
		   	"                    :PKG_VERSION,"&_
107
			"                    :BUILD_TYPE,"&_
108
			"                    :SET_TO_PV_ID,"&_
109
   		 	"                    :RTAG_ID,"&_
110
   		 	"                    :USER_ID,"&_
111
   	 		"                    :enumISSUES_STATE_IMPORTED,"&_
112
   	 		"                    :RETPV_ID ); "&_
113
			" PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
114
			" PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
115
			"END;"
116
 
117
			retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value 	
118
		End If	
119
	Else
120
		OraDatabase.ExecuteSQL _
121
		"BEGIN "&_
122
		" PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
123
	    "                    :PKG_VERSION,"&_
124
		"                    :BUILD_TYPE,"&_
125
		"                    :SET_TO_PV_ID,"&_
126
   	 	"                    :RTAG_ID,"&_
127
   	 	"                    :USER_ID,"&_
128
   	 	"                    :enumISSUES_STATE_IMPORTED,"&_
129
   	 	"                    :RETPV_ID ); "&_
130
		" PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
131
		" PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
132
		"END;"
133
 
134
		retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value 	
135
 
136
	End If
137
 
138
 
139
	rsQry.Close()
140
	Set rsQry = nothing
141
	objEH.CatchORA ( OraSession )
142
 
143
 
144
	OraDatabase.Parameters.Remove "ORIG_PV_ID"
145
	OraDatabase.Parameters.Remove "ALTER_RELEASE"
146
	OraDatabase.Parameters.Remove "PKG_VERSION"
147
	OraDatabase.Parameters.Remove "BUILD_TYPE"
148
	OraDatabase.Parameters.Remove "SET_TO_PV_ID"
149
	OraDatabase.Parameters.Remove "RTAG_ID"
150
	OraDatabase.Parameters.Remove "USER_ID"
151
	OraDatabase.Parameters.Remove "enumISSUES_STATE_IMPORTED"
152
	OraDatabase.Parameters.Remove "RETPV_ID" 
153
End Sub
154
'---------------------------------------------------------------
155
Sub Config_Spec (NNRtag_id, NNPv_id)
156
	OraDatabase.Parameters.Add "RTAG_ID", NNRtag_id,	ORAPARM_INPUT, ORATYPE_NUMBER 
157
	OraDatabase.Parameters.Add "PV_ID", NNPv_id,	ORAPARM_INPUT, ORATYPE_NUMBER 
158
 
159
	Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("config_spec.sql"), cint(0))
160
 
161
	OraDatabase.Parameters.Remove "RTAG_ID"	
162
	OraDatabase.Parameters.Remove "PV_ID"
163
 
164
End Sub
165
'---------------------------------------------------------------
166
Sub Config_Spec_Template (config_branch, pkg_label, src_path, pkg_name, release_name)
167
 
168
 
169
	Dim myMail, LocalPath, Template
170
 
171
	Set myMail=Server.CreateObject("Persits.MailSender")
172
	'LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html")
173
	myMail.Host = SMTP_HOST
174
	myMail.Subject="Config Specs for package "& pkg_name &" in "& release_name &""
175
	myMail.From = ADMIN_EMAIL
176
	myMail.AddAddress objAccessControl.UserEmail
177
	' Attach the file
178
	'myMail.AddAttachment LocalPath
179
	Template = "element * CHECKEDOUT" & chr(13) & chr(10) & _
180
	"element .../lost+found -none" & chr(13) & chr(10) & _
181
	"element * .../"& config_branch &"/LATEST" & chr(13) & chr(10) & _
182
	"element * "& pkg_label &" -mkbranch "& config_branch &"" & chr(13) & chr(10) & _
183
	"element * /main/0 -mkbranch "& config_branch &"" & chr(13) & chr(10) & _
184
	"load "& src_path &""
185
 
186
 
187
	myMail.Body = Template
188
	myMail.Send
189
	set myMail=nothing
190
 
191
 
192
End Sub
193
'---------------------------------------------------------------
194
Function SanityCheck ( newVersion )
195
 
196
	SanityCheck = False
197
 
198
	Dim objRegEx
199
    Set objRegEx = New RegExp
200
 
201
    objRegEx.IgnoreCase = True
202
    objRegEx.Pattern = "[^a-zA-Z0-9\.\-\_]"
203
 
204
	If Len(newVersion) <= 50 Then
205
		If NOT objRegEx.Test( newVersion ) Then
206
			SanityCheck = True
207
		End If
208
	End If
209
 
210
	Set objRegEx = Nothing
211
 
212
End Function
213
'---------------------------------------------------------------
214
%>
215
<%
216
'-----------------------  MAIN LINE  ---------------------------
217
Dim rsQry, Query_String, Record_Count
218
'--- Process submission ---
219
If (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then
220
	' All mandatory parameters FOUND
221
 
222
	If SanityCheck( parFRnewver ) Then
223
 
224
		Query_string = " SELECT pv.pv_id, pv.is_patch, pv.dlocked"&_
225
           				" FROM package_versions pv"&_
226
						" WHERE pv.pkg_version = '"& parFRnewver &"'"&_
227
            			" AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id"&_
228
						"  FROM package_versions origpv"&_
229
						" WHERE origpv.pv_id = "& parOLDpv_id &")"
230
 
231
		Set rsQry = OraDatabase.DbCreateDynaset(Query_String, cint(0))
232
		Record_Count = rsQry.RecordCount
233
		rsQry.Close()
234
		Set rsQry = Nothing
235
 
236
 
237
		If Record_Count > 0 And Request("build_type") = "M" Then
238
			Call RaiseMsg ( enum_MSG_PACKAGE_VERSION_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
239
		Else
240
			'If IsNull(rsQry("pkg_id")) Then
241
			Call New_Version ( parFRnewver, parOLDpv_id, parSetToPv_id, parRtag_id, parSync_rtags, NEWpv_id )
242
			'Else
243
				'OraSession.BeginTrans
244
				'OraDatabase.ExecuteSQL _
245
				'" UPDATE RELEASE_CONTENT SET PV_ID ="& Request("pv_id") &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& Request("OLDpv_id")
246
  				'OraSession.CommitTrans
247
			'End If
248
 
249
			'rsQry.Close()
250
			'Set rsQry = nothing
251
 
252
			'Call Config_Spec (parRtag_id, NEWpv_id) 
253
 
254
 
255
 
256
			If objEH.Finally Then
257
				'If (rsQry("config_spec_branch") <> "" AND rsQry("pkg_label") <> "" AND  rsQry("src_path") <> "") Then
258
					'Call Config_Spec_Template (rsQry("config_spec_branch"), rsQry("pkg_label"), rsQry("src_path"), rsQry("pkg_name"), rsQry("rtag_name"))
259
				'End If
260
				Response.Redirect("dependencies.asp?rtag_id="& parRtag_id &"&pv_id="& NEWpv_id )	
261
 
262
				'rsQry.Close()
263
				'Set rsQry = nothing
264
 
265
			End If
266
		End If
267
 
268
	Else
269
		Call RaiseMsg( enum_MSG_PACKAGE_VERSION_INVALID&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
270
	End If
271
 
272
Else
273
	Response.write "Some mandatory parameters are missing!" & "<br>" 'TODO
274
	Response.write QSTR_All 
275
End If
276
%>
277
 
278
<!-- DESTRUCTOR ------->
279
<!--#include file="common/destructor.asp"-->