Subversion Repositories DevTools

Rev

Rev 6048 | Details | Compare with Previous | Last modification | View Log | RSS feed

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