Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
' 			  SEE CIRCULAR DEPENDENCIES	
5
'										
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
<!--#include file="common/conf.asp"-->
14
<!--#include file="common/globals.asp"-->
15
<!--#include file="common/formating.asp"-->
16
<!--#include file="common/qstr.asp"-->
17
<!--#include file="common/common_subs.asp"-->
18
<!--#include file="common/common_dbedit.asp"-->
19
<%
20
'------------ ACCESS CONTROL ------------------
21
%>
22
<!--#include file="_access_control_general.asp"-->
23
<%
24
'------------ Variable Definition -------------
25
Dim parPkgN
26
Dim parPkgV
27
Dim ERRlog					' used to log any unsuspected calls. It is then passed to create error message
28
Dim ERRlogFULL				' full submitted list used in error meassage creation
29
'------------ Constants Declaration -----------
30
'------------ Variable Init -------------------
31
parPkgN = QStrPar("pkgN")
32
parPkgV = QStrPar("pkgV")
33
ERRlog = ""
34
ERRlogFULL = ""
35
'----------------------------------------------
36
%>
37
<%
38
Sub Check_Circular_Dependencies( SSpkgN, SSpkgV, NNrtag_id, SSERRlogFULL, SSERRlog  )
39
	Dim rsTemp, Query_String, nameHash
40
	Dim deplist, depnamelist, relist
41
	Dim tempARR, item
42
	Dim pkg_id, pv_id
43
	Set nameHash = CreateObject("Scripting.Dictionary")
44
	deplist = "-1"
45
	depnamelist = "''"
46
	relist = Get_PV_IDs_In_Release ( NNrtag_id )
47
	Call Get_Pkg_id ( SSpkgN, SSpkgV, pkg_id, pv_id )
48
 
49
	' get ids of submited pkgs
50
	Query_String = _
51
	"SELECT dep.dpkg_id AS pkg_id, pkg.pkg_name, pv.pkg_version"&_
52
    "  FROM packages pkg, package_versions pv, package_dependencies dep"&_
53
    " WHERE pkg.pkg_id = pv.pkg_id"&_
54
    "   AND pv.pv_id = dep.dpv_id"&_
55
    "   AND dep.pv_id ="& pv_id
56
 
57
	Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
58
	While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) 
59
		deplist = deplist &","& rsTemp.Fields("pkg_id")
60
		depnamelist = depnamelist &",'"& rsTemp.Fields("pkg_name") &"'"
61
		SSERRlogFULL = LogError ( SSERRlogFULL,  Cstr(rsTemp.Fields("pkg_name")) &","& Cstr(rsTemp.Fields("pkg_version")) ) 
62
		If NOT nameHash.Exists( Cstr(rsTemp.Fields("pkg_id")) ) Then nameHash.Add Cstr(rsTemp.Fields("pkg_id")), Cstr(rsTemp.Fields("pkg_name")) &","& Cstr(rsTemp.Fields("pkg_version"))
63
		rsTemp.MoveNext
64
	WEnd
65
	rsTemp.Close
66
	Set rsTemp = nothing
67
 
68
	'=== Detect Circular Dependencies ===============
69
	Query_String = ReadFile( rootPath & "queries\detect_circular_deps.qry" )
70
	Query_String = Replace( Query_String, "$PKG_ID$", pkg_id )
71
	Query_String = Replace( Query_String, "$DEPLIST$", deplist )
72
	Query_String = Replace( Query_String, "$DEPNAMESTR$", depnamelist )
73
	Query_String = Replace( Query_String, "$RELIST$", relist )
74
 
75
	Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
76
	If rsTemp.RecordCount > 0 Then
77
		' Circular dependencies FOUND
78
		While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) 
79
			If nameHash.Exists( Cstr(rsTemp.Fields("pkg_id")) ) Then 
80
				SSERRlog = LogError ( SSERRlog,  nameHash.Item( Cstr(rsTemp.Fields("pkg_id")) ) &",4" )		' It may be used as error log in some cases
81
			End If
82
			rsTemp.MoveNext
83
		WEnd
84
	End If
85
 
86
 
87
	rsTemp.Close
88
	Set rsTemp = nothing
89
	Set nameHash = nothing
90
End Sub
91
 
92
 
93
Sub Get_Pkg_id ( SSpkgN, SSpkgV, pkg_id, pv_id  )
94
	Dim rsTemp, Query_String
95
 
96
	Query_String = _
97
	" SELECT pkg.pkg_id, pv.pv_id"&_
98
	"  FROM packages pkg, package_versions pv"&_
99
	" WHERE pkg.pkg_id = pv.pkg_id"&_
100
	"   AND pkg.pkg_name = '"& SSpkgN &"'"&_
101
	"   AND pv.pkg_version = '"& SSpkgV &"'"
102
 
103
	Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
104
 
105
	If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
106
		pkg_id = (rsTemp.Fields("pkg_id"))
107
		pv_id = (rsTemp.Fields("pv_id"))
108
	End If
109
 
110
	rsTemp.Close
111
	Set rsTemp = nothing
112
End Sub
113
%>
114
<%
115
'-----------------------  MAIN LINE  ---------------------------
116
 
117
'--- Process submition ---
118
If (parPkgN <> "") AND (parPkgV <> "") AND (parRtag_id <> "") Then
1376 dpurdie 119
	' All mandatory parameters FOUND
119 ghuddy 120
 
121
	Call Check_Circular_Dependencies( parPkgN, parPkgV, parRtag_id, ERRlogFULL, ERRlog  )
122
 
123
	'-- circular dependencies error message
124
	If (ERRlog <> "") Then 
125
		Session("ERRlog") = ERRlog
126
		Session("ERRlogFULL") = ERRlogFULL
127
		Session("AdditionalParams") = "$PACKAGE$,"& parPkgN &" "& parPkgV
128
		'Response.write ERRlog
129
		Response.Redirect("message.asp?msg=202-5&justemplate=true"& QSTR)
130
	End If
131
 
132
Else
1376 dpurdie 133
	Response.write "Some mandatory parameters are missing!" & "<br>" 'TODO
119 ghuddy 134
	Response.write QSTR_All 
135
End If
136
%>