Subversion Repositories DevTools

Rev

Rev 119 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 119 Rev 123
Line 15... Line 15...
15
<!--#include file="common/globals.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/common_dbedit.asp"-->
19
<!--#include file="common/common_dbedit.asp"-->
-
 
20
<!--#include file="common/common_make_release_subs.asp"-->
20
<%
21
<%
21
'------------ ACCESS CONTROL ------------------
22
'------------ ACCESS CONTROL ------------------
22
%>
23
%>
23
<!--#include file="_access_control_login.asp"-->
24
<!--#include file="_access_control_login.asp"-->
24
<!--#include file="_access_control_general.asp"-->
25
<!--#include file="_access_control_general.asp"-->
25
<!--#include file="_access_control_project.asp"-->
26
<!--#include file="_access_control_project.asp"-->
26
<%
27
<%
27
'------------ Variable Definition -------------
28
'------------ Variable Definition -------------
28
Dim parPv_id
29
Dim parPv_id
29
Dim parRfile
30
Dim parRfile
30
Dim retERRmsg
-
 
31
Dim retALRTmsg
-
 
32
Dim retParameters
31
Dim retParameters
33
Dim pkgType
-
 
34
Dim retVal
-
 
35
'------------ Constants Declaration -----------
32
'------------ Constants Declaration -----------
36
'------------ Variable Init -------------------
33
'------------ Variable Init -------------------
37
parPv_id = Request("pv_id")
34
parPv_id = Request("pv_id")
38
parRfile = Request("rfile")
35
parRfile = Request("rfile")
39
Set pkgInfoHash = CreateObject("Scripting.Dictionary")
-
 
40
'------------ Constants Declaration -----------
-
 
41
'------------ Variable Init -------------------
-
 
42
'----------------------------------------------
36
'----------------------------------------------
43
%>
37
%>
44
<%
38
<%
45
'----------------------------------------------------------------------------------------------------------------------------------------
-
 
46
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
-
 
47
 
-
 
48
	
-
 
49
	'On Error Resume Next
-
 
50
	OOrsCQ.ActiveConnection = CQ_conn
-
 
51
	OOrsCQ.Source = SSsql
-
 
52
	OOrsCQ.CursorType = 0
-
 
53
	OOrsCQ.CursorLocation = 2
-
 
54
	OOrsCQ.LockType = 3
-
 
55
	OOrsCQ.Open()
-
 
56
	
-
 
57
 
-
 
58
	
-
 
59
	Get_CQ_Issues = Err.Number
-
 
60
	
-
 
61
End Function
-
 
62
'------------------------------------------------------------------------------------------------------------------------------------------
-
 
63
Sub NotifyInterest(NNpv_id, NNrtag_id)
-
 
64
	On Error Resume Next
-
 
65
	Dim Query_String, rsQry, myMail
-
 
66
	
-
 
67
	Query_String = _
-
 
68
	"	SELECT * FROM PACKAGE_INTEREST PI, PACKAGES PKG, PACKAGE_VERSIONS PV, USERS U,"&_
-
 
69
	"	RELEASE_TAGS RT, PROJECTS PRJ WHERE PKG.PKG_ID = PI.PKG_ID AND "&_
-
 
70
	"	RT.RTAG_ID = "& NNrtag_id &""&_
-
 
71
	"	AND PV.PV_ID = "& NNpv_id &" AND PV.PKG_ID = PKG.PKG_ID AND "&_
-
 
72
	"	PRJ.PROJ_ID = RT.PROJ_ID AND PRJ.PROJ_ID = PI.PROJ_ID AND U.USER_ID = PI.USER_ID" 
-
 
73
	
-
 
74
	Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )	
-
 
75
	
-
 
76
	If rsQry.RecordCount <> "" Then
-
 
77
		While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
-
 
78
			Set myMail=Server.CreateObject("Persits.MailSender")
-
 
79
			myMail.Host = SMTP_HOST
-
 
80
			myMail.Subject="New Version of Package "& rsQry("pkg_name") &" in Project " & rsQry("proj_name") &" on Release Branch " & rsQry("rtag_name") &" would be autobuild soon." 
-
 
81
			myMail.From=ADMIN_EMAIL
-
 
82
			myMail.AddAddress rsQry("user_email")
-
 
83
		
-
 
84
			myMail.Send
-
 
85
			set myMail=nothing
-
 
86
			rsQry.MoveNext	
-
 
87
		Wend
-
 
88
			
-
 
89
	End If
-
 
90
	
-
 
91
	rsQry.Close()
-
 
92
	set rsQry = nothing
-
 
93
 
-
 
94
 
-
 
95
End Sub
-
 
96
'-------------------------------------------------------------------------------------
-
 
97
Sub Get_Package_Issues(NNpv_id, SSsql)
-
 
98
Dim sqlstr, rsTemp, DEVIiss, TDSEiss, VT5DMiss, VTSUPiss
-
 
99
 
-
 
100
	sqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &"  AND iss_state = 1"
-
 
101
 
-
 
102
	Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
-
 
103
	
-
 
104
	DEVIiss = "-1"
-
 
105
	TDSEiss  = "-1"
-
 
106
	VT5DMiss = "-1"
-
 
107
	VTSUPiss = "-1"
-
 
108
	
-
 
109
	While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
-
 
110
		If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
-
 
111
			DEVIiss = DEVIiss &","& rsTemp("iss_id")
-
 
112
			
-
 
113
		ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_TDSE_ID) Then
-
 
114
			TDSEiss = TDSEiss &","& rsTemp("iss_id")
-
 
115
		ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VT5DM_ID) Then
-
 
116
			VT5DMiss = VT5DMiss &","& rsTemp("iss_id")
-
 
117
		ElseIf CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_VTSUP_ID) Then
-
 
118
			VTSUPiss = VTSUPiss &","& rsTemp("iss_id")
-
 
119
			
-
 
120
		End If
-
 
121
		
-
 
122
		rsTemp.MoveNext
-
 
123
	WEnd	
-
 
124
	
-
 
125
	' Construct SQL statement for CQ database
-
 
126
	If Len(DEVIiss) <> 1 OR Len(TDSEiss) <> 1 Then
-
 
127
		SSsql = ReadFile( rootPath & "queries\cq_issues.sql" )
-
 
128
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
-
 
129
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_TDSE_ID*/", enumCLEARQUEST_TDSE_ID)
-
 
130
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_VT5DM_ID*/", enumCLEARQUEST_VT5DM_ID)
-
 
131
		SSsql = Replace( SSsql, "/*enumCLEARQUEST_VTSUP_ID*/", enumCLEARQUEST_VTSUP_ID)
-
 
132
		SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
-
 
133
		SSsql = Replace( SSsql, "/*TDSEiss*/", TDSEiss)
-
 
134
		SSsql = Replace( SSsql, "/*VT5DMiss*/", VT5DMiss)
-
 
135
		SSsql = Replace( SSsql, "/*VTSUPiss*/", VTSUPiss)
-
 
136
	End If	
-
 
137
	
-
 
138
	rsTemp.Close
-
 
139
	Set rsTemp = nothing	
-
 
140
	
-
 
141
End Sub
-
 
142
'-------------------------------------------------------------------------------------
-
 
143
Sub MakeApproved (EmailBody)
-
 
144
	'Dim objWSH
-
 
145
	'Set objWSH = Server.CreateObject("WScript.Shell")
-
 
146
	
-
 
147
	
-
 
148
	OraDatabase.Parameters.Add "PV_ID", 		Request("pv_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
-
 
149
	OraDatabase.Parameters.Add "RTAG_ID", 		Request("rtag_id"),	ORAPARM_INPUT, ORATYPE_NUMBER 
-
 
150
	OraDatabase.Parameters.Add "USER_ID", 		objAccessControl.UserId,	ORAPARM_INPUT, ORATYPE_NUMBER 
-
 
151
	
-
 
152
	
-
 
153
	OraSession.BeginTrans
-
 
154
	
-
 
155
	OraDatabase.ExecuteSQL _
-
 
156
	"BEGIN "&_
-
 
157
	" PK_ENVIRONMENT.MAKE_APPROVED ( :PV_ID, :RTAG_ID, :USER_ID ); "&_
-
 
158
	"END; "
-
 
159
	
-
 
160
	
-
 
161
	
-
 
162
	
-
 
163
	OraSession.CommitTrans
-
 
164
		Dim myMail,parPv_id, rsQry, EmailAutoBuild, comments, release, package
-
 
165
		EmailAutoBuild = ReadFile( rootPath & "queries\EmailAutoBuild.sql" )
-
 
166
		EmailAutoBuild = Replace( EmailAutoBuild, ":PV_ID", (Request("pv_id")) )
-
 
167
		EmailAutoBuild = Replace( EmailAutoBuild, ":RTAG_ID", (Request("rtag_id")) )
-
 
168
		Set rsQry = OraDatabase.DbCreateDynaset( EmailAutoBuild , cint(0))
-
 
169
			If rsQry("comments") <> "" Then
-
 
170
				comments = comments & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"
-
 
171
    	        comments = comments & "<tr>" 
-
 
172
        	    comments = comments & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Reason&nbsp;For&nbsp;Release</b></font></td>"
-
 
173
            	comments = comments & "</tr>"
-
 
174
	  			comments = comments & "<tr>"
-
 
175
   	    	    comments = comments & "<td background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR((rsQry("comments")))&"</font></td>"			
-
 
176
				comments = comments & "</tr>"
-
 
177
				comments = comments & "</table>"
-
 
178
				comments = comments & "<br>"							
-
 
179
			End If
-
 
180
			
-
 
181
		Set myMail=Server.CreateObject("Persits.MailSender")
-
 
182
		If rsQry("owner_email") <> "" Then
-
 
183
			myMail.Host = SMTP_HOST
-
 
184
			myMail.Subject="Build required for package "& rsQry("pkg_name") &" in Project " & rsQry("proj_name") &" on Release Branch " & rsQry("rtag_name") 
-
 
185
			release = release & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"
-
 
186
    	    release = release & "<tr>" 
-
 
187
        	release = release & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Release</b></font></td>"
-
 
188
            release = release & "</tr>"
-
 
189
	  		release = release & "<tr>"
-
 
190
   	    	release = release & "<td background='#CAC5B8' nowrap class='form_item'><a href='http://erg:8002/ManagerSuite/Release_Manager/dependencies.asp?rtag_id="&Request("rtag_id")&"'><font size='1' face='tahoma,sans-serif'>"&rsQry("rtag_name")&"</font></a></td>"			
-
 
191
			release = release & "</tr>"
-
 
192
			release = release & "</table>"
-
 
193
			release = release & "<br>"
-
 
194
			
-
 
195
			package = package & "<table width='100%' border='0' cellspacing='0' cellpadding='1'>"
-
 
196
    	    package = package & "<tr>" 
-
 
197
        	package = package & "<td background='#CAC5B8' nowrap class='form_field'><font size='2' face='tahoma,sans-serif'><b>Package</b></font></td>"
-
 
198
            package = package & "</tr>"
-
 
199
	  		package = package & "<tr>"
-
 
200
   	    	package = package & "<td background='#CAC5B8' nowrap class='form_item'><a href='http://erg:8002/ManagerSuite/Release_Manager/fixed_issues.asp?pv_id="&Request("pv_id")&"&rtag_id="&Request("rtag_id")&"'><font size='1' face='tahoma,sans-serif'>"&rsQry("pkg_name")&" "&rsQry("pkg_version")&"</font></a></td>"			
-
 
201
			package = package & "</tr>"
-
 
202
			package = package & "</table>"
-
 
203
			package = package & "<br>" 	
-
 
204
				
-
 
205
			EmailBody =  release & package & comments & EmailBody
-
 
206
			myMail.IsHTML = True
-
 
207
			myMail.Body = EmailBody
-
 
208
			myMail.From=ADMIN_EMAIL
-
 
209
		
-
 
210
			If Timer < 28800 OR Timer > 61200 Then 
-
 
211
				If rsQry("owner_personal_email") <> "" Then
-
 
212
					myMail.AddAddress rsQry("owner_personal_email")
-
 
213
				Else
-
 
214
					myMail.AddAddress rsQry("owner_email")			
-
 
215
				End If
-
 
216
			Else
-
 
217
				myMail.AddAddress rsQry("owner_email")
-
 
218
			End If
-
 
219
			' Attach the file
-
 
220
			'parPv_id = Request(pv_id)
-
 
221
		
-
 
222
			myMail.Send
-
 
223
			set myMail=nothing
-
 
224
		End If
-
 
225
	
-
 
226
	OraDatabase.Parameters.Remove "PV_ID"
-
 
227
	OraDatabase.Parameters.Remove "RTAG_ID"
-
 
228
	OraDatabase.Parameters.Remove "USER_ID"
-
 
229
	
-
 
230
End Sub
-
 
231
'-------------------------------------------------------------------------------------
-
 
232
Function Check_Package_WIP_Already_Exists(NNrtag_id, NNpv_id)
-
 
233
	Dim Query_String, rsQry
-
 
234
 
-
 
235
	Query_String = _
-
 
236
	"	SELECT * "&_
-
 
237
	"	FROM planned pl, package_versions pv "&_
-
 
238
	"	WHERE pl.rtag_id = "& NNrtag_id &_
-
 
239
	"	AND pv.pv_id = pl.pv_id "&_
-
 
240
	"	AND pv.dlocked = 'A' "&_
-
 
241
	"	AND pv.pkg_id = (SELECT pkg_id "&_
-
 
242
    "                  FROM package_versions "&_
-
 
243
    "                 WHERE pv_id = "& NNpv_id &") "
-
 
244
 
-
 
245
 
-
 
246
	Set rsQry = OraDatabase.DbCreateDynaset( Query_String , cint(0) )	
-
 
247
	
-
 
248
	Check_Package_WIP_Already_Exists = rsQry.RecordCount
-
 
249
 
-
 
250
	rsQry.Close()
-
 
251
	Set rsQry = Nothing
-
 
252
End Function
-
 
253
'-------------------------------------------------------------------------------------
-
 
254
%>
-
 
255
<%
-
 
256
'-----------------------  MAIN LINE  ---------------------------
39
'-----------------------  MAIN LINE  ---------------------------
257
 
40
 
258
'--- Process submission ---
41
'--- Process submission ---
259
If ( Request("rtag_id") <> "") AND (Request("pv_id") <> "") Then
42
If ( parRtag_id <> "") AND (parPv_id <> "") Then
260
	
-
 
261
	'Check If There Already Exists A WIP Instance Of The Package In The Release
-
 
262
	 If Check_Package_WIP_Already_Exists(Request("rtag_id"), Request("pv_id")) > 0 Then
43
   If PUBLIC_ApproveRelease (parRtag_id, parPv_id, retParameters) = TRUE Then
263
		Call RaiseMsg ( enum_MSG_PACKAGE_WIP_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parPv_id &"", parPv_id )
-
 
264
	 End If
-
 
265
	
-
 
266
	'-- Get Package details
-
 
267
	Call Get_Pkg_Info ( Request("pv_id"), Request("rtag_id") )
-
 
268
	
-
 
269
	
-
 
270
	If pkgInfoHash.Item("build_type") = "M" Then
-
 
271
		'-- Approve Manual-build package
-
 
272
		Call OpenInWindow( "_make_released.asp?rfile=dependencies.asp&pv_id="& parPv_id &"&rtag_id="& parRtag_id  )
-
 
273
		
-
 
274
	Else
-
 
275
		'-- Approve Automatic-build package
-
 
276
		Call CheckRequirementsForMakeApproved ( parPv_id, parRtag_id, pkgType, retERRmsg, retALRTmsg, retParameters )
-
 
277
		
-
 
278
	End If
-
 
279
	
-
 
280
	
-
 
281
	If IsNull(retERRmsg) Then
-
 
282
		Dim SSsql, rsCQ 
-
 
283
		Set rsCQ = Server.CreateObject("ADODB.Recordset")
-
 
284
		' All Requirements OK
-
 
285
		'COMPLETE THE REQUEST...
-
 
286
		Call Get_Package_Issues(parPv_id, SSsql)
-
 
287
		
-
 
288
		retVal = Get_CQ_Issues ( SSsql, rsCQ )
-
 
289
		
-
 
290
		If retVal = 0 Then	
-
 
291
			Dim EmailBody					
-
 
292
			EmailBody = EmailBody & "<font size='2' face='tahoma,sans-serif'><b>Fixed Issues</b></font>"
-
 
293
            EmailBody = EmailBody & "<table width='100%' border='1' cellspacing='0' cellpadding='1'>"
-
 
294
            EmailBody = EmailBody & "<tr>" 
-
 
295
            EmailBody = EmailBody &                           "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue&nbsp;Id&nbsp;</font></td>"
-
 
296
 
-
 
297
            EmailBody = EmailBody &                           "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Summary</font></td>"
-
 
298
            EmailBody = EmailBody &						   "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Issue&nbsp;Type&nbsp;</font></td>"
-
 
299
            EmailBody = EmailBody &                           "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Priority</font></td>"
-
 
300
            EmailBody = EmailBody &						   "<td background='#CAC5B8' nowrap class='form_field'><font size='1' face='tahoma,sans-serif'>Status</font></td>"
-
 
301
 
-
 
302
            EmailBody = EmailBody &                      "</tr>"
-
 
303
					  If ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF)) Then
-
 
304
                         While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF))
-
 
305
            EmailBody = EmailBody & "<tr>"
-
 
306
            EmailBody = EmailBody &  "<td background='#CAC5B8' nowrap class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("iss_num")&"</font></td>"
-
 
307
 
-
 
308
			EmailBody = EmailBody &		"				   <td background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</font></td>"
-
 
309
            EmailBody = EmailBody &		"				  <td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("issue_type")&"</font></td>"
-
 
310
            EmailBody = EmailBody &                           "<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("priority")&"</font></td>"
-
 
311
            EmailBody = EmailBody &						   "<td nowrap background='#CAC5B8' class='form_item'><font size='1' face='tahoma,sans-serif'>"&rsCQ("Status")&"</font></td>"
-
 
312
            EmailBody = EmailBody &    "                     </tr>"
-
 
313
                         rsCQ.MoveNext
-
 
314
					  WEnd
-
 
315
					  rsCQ.Close%>
-
 
316
					  <%Else
-
 
317
 EmailBody = EmailBody &    "                          <tr> "
-
 
318
 EmailBody = EmailBody &    "                            <td background='#CAC5B8' nowrap></td>"
-
 
319
 EmailBody = EmailBody &    " 						   <td background='#CAC5B8' class='form_item'></td>"
-
 
320
 EmailBody = EmailBody &    "                            <td background='#CAC5B8' class='form_item'></td>"
-
 
321
 EmailBody = EmailBody &    "                            <td background='#CAC5B8' class='form_item'></td>"
-
 
322
 EmailBody = EmailBody &    " 						   <td background='#CAC5B8' class='form_item'></td>"
-
 
323
 EmailBody = EmailBody &    "                          </tr>"
-
 
324
					  End If
-
 
325
					  
-
 
326
 EmailBody = EmailBody &    "                        </table> 		"
-
 
327
			
-
 
328
		End If
-
 
329
		Call MakeApproved (EmailBody )
-
 
330
		'Call NotifyInterest(parPv_id, parRtag_id)
-
 
331
		If Request("rfile") <> "" Then
44
      If parRfile <> "" Then
332
			Response.Redirect ( Request("rfile") &"?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") )
45
         Response.Redirect ( parRfile &"?pv_id="& parPv_id &"&rtag_id="& parRtag_id )
333
		Else
46
		Else
334
			Response.Redirect ( "dependencies.asp?pv_id="& Request("pv_id") &"&rtag_id="& Request("rtag_id") )
47
         Response.Redirect ( "dependencies.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id )
335
		End If
48
		End If
336
		
-
 
337
	Else
49
	Else
-
 
50
      'This is currently done inside Make_This_PVID_Approved()
338
		Call RaiseMsg ( Eval(retERRmsg), parRtag_id &"|"& parPv_id 	&"|"& retParameters &"|"& "N" )
51
      'Call RaiseMsg ( Eval(retERRmsg), parRtag_id &"|"& parPv_id  &"|"& retParameters &"|"& "N" )
339
		
-
 
340
	End If
52
	End If
341
	
-
 
342
Else
53
Else
343
	Response.write "Some mendatory parameters are missing!" & "<br>" 'TODO
54
	Response.write "Some mendatory parameters are missing!" & "<br>" 'TODO
344
	Response.write QSTR_All 
55
	Response.write QSTR_All
345
End If
56
End If
346
%>
57
%>
347
 
58
 
348
<!-- DESTRUCTOR ------->
59
<!-- DESTRUCTOR ------->
349
<!--#include file="common/destructor.asp"-->
-
 
350
60
<!--#include file="common/destructor.asp"-->
-
 
61