Subversion Repositories DevTools

Rev

Rev 3621 | Rev 3889 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
123 ghuddy 4
'                  NEW VERSION
119 ghuddy 5
'               --- PROCESS FORM ---
6
'=====================================================
7
%>
8
<%
9
Option explicit
10
' Good idea to set when using redirect
123 ghuddy 11
Response.Expires = 0   ' always load the page, dont store
119 ghuddy 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
3887 dpurdie 36
Dim parNewPackage
37
Dim parPackageName
38
Dim parChangeType
39
Dim parBase_view_id
40
Dim parPersonal_view_id
41
 
119 ghuddy 42
'------------ Constants Declaration -----------
43
'------------ Variable Init -------------------
44
parOLDpv_id = QStrPar("OLDpv_id")
45
parFRnewver = QStrPar("FRnewver")
46
parSetToPv_id = QStrPar("pv_id")
47
parSync_rtags = Request("sync_rtags")
151 ghuddy 48
 
3887 dpurdie 49
parNewPackage = Request("newPackage")
50
parPackageName = Request("inputPackageName")
51
parChangeType = Request("change_type")
52
parBase_view_id = Request("base_view_id")
53
parPersonal_view_id = Request("personal_view_id")
54
 
119 ghuddy 55
'----------------------------------------------
56
%>
57
<%
58
Sub New_Version ( SSnewver, NNorig_pv_id, NNSetToPv_id, NNrtag_id, sSyncRtags, retNEWpv_id )
123 ghuddy 59
   Dim cAlterReleaseWhileRestrictive, rsQry
1339 dpurdie 60
   Dim Original_SSnewver
61
   Original_SSnewver = SSnewver
123 ghuddy 62
 
63
   On Error Resume Next
64
   objEH.ErrorRedirect = TRUE
65
 
66
   If Request("build_type") = "A" Then
67
      SSnewver = ""
68
   End If
69
 
70
   OraDatabase.Parameters.Add "ORIG_PV_ID", NNorig_pv_id, ORAPARM_INPUT, ORATYPE_NUMBER
71
 
72
   If Request("build_type") = "M" Then
73
      ' Manual build
74
      OraDatabase.Parameters.Add "PKG_VERSION", SSnewver, ORAPARM_INPUT, ORATYPE_VARCHAR2
3887 dpurdie 75
      parChangeType = "F"
123 ghuddy 76
   Else
77
      ' Automated Build
78
      OraDatabase.Parameters.Add "PKG_VERSION", Request("v_ext"), ORAPARM_INPUT, ORATYPE_VARCHAR2
79
   End If
80
 
81
   ' Access Control - Allow release change while release is in restrictive mode
82
   cAlterReleaseWhileRestrictive = "N"
83
   If objAccessControl.IsActive("AlterReleaseContentsInRestrictiveMode") Then cAlterReleaseWhileRestrictive = "Y"
84
 
85
   OraDatabase.Parameters.Add "BUILD_TYPE",                Request("build_type"),         ORAPARM_INPUT, ORATYPE_CHAR
86
   OraDatabase.Parameters.Add "ALTER_RELEASE",             cAlterReleaseWhileRestrictive, ORAPARM_INPUT, ORATYPE_CHAR
87
   OraDatabase.Parameters.Add "SET_TO_PV_ID",              NNSetToPv_id,                  ORAPARM_INPUT, ORATYPE_NUMBER
88
   OraDatabase.Parameters.Add "RTAG_ID",                   NNrtag_id,                     ORAPARM_INPUT, ORATYPE_NUMBER
89
   OraDatabase.Parameters.Add "USER_ID",                   objAccessControl.UserId,       ORAPARM_INPUT, ORATYPE_NUMBER
90
   OraDatabase.Parameters.Add "enumISSUES_STATE_IMPORTED", enumISSUES_STATE_IMPORTED,     ORAPARM_INPUT, ORATYPE_NUMBER
91
   OraDatabase.Parameters.Add "RETPV_ID",                  0,                             ORAPARM_OUTPUT,ORATYPE_NUMBER
92
 
93
   objEH.TryORA ( OraSession )
94
 
95
   Set rsQry = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_CONTENT WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID = "& NNorig_pv_id &"", cint(0))
96
 
97
   If (NOT IsNull(rsQry("pkg_id"))) AND rsQry("pkg_state") = 6  Then
98
 
99
      Dim rsPv_id
100
 
101
      If (SSnewver) <> ""  Then
102
 
103
         Set rsPv_id = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS WHERE PKG_VERSION ='"& SSnewver &"' AND PKG_ID = "& rsQry("pkg_id") &"", cint(0))
104
 
105
         retNEWpv_id =  rsPv_id("pv_id")
106
 
107
         rsPv_id.Close()
108
         Set rsPv_id = nothing
109
      Else
110
         retNEWpv_id = NNSetToPv_id
111
      End If
112
      If NOT IsNull(retNewpv_id) Then
113
         OraDatabase.ExecuteSQL _
114
         "BEGIN "&_
115
         " UPDATE RELEASE_CONTENT SET PV_ID ="& retNEWpv_id &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& Request("OLDpv_id")&"; "&_
116
         "END;"
117
      Else
118
         OraDatabase.ExecuteSQL _
119
         "BEGIN "&_
120
         " PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
121
         "                    :PKG_VERSION,"&_
122
         "                    :BUILD_TYPE,"&_
123
         "                    :SET_TO_PV_ID,"&_
124
         "                    :RTAG_ID,"&_
125
         "                    :USER_ID,"&_
126
         "                    :enumISSUES_STATE_IMPORTED,"&_
127
         "                    :RETPV_ID ); "&_
128
         " PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
129
         " PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
130
         "END;"
131
 
132
         retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value
161 iaugusti 133
 
123 ghuddy 134
      End If
135
   Else
136
      OraDatabase.ExecuteSQL _
137
      "BEGIN "&_
138
      " PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_
139
      "                    :PKG_VERSION,"&_
140
      "                    :BUILD_TYPE,"&_
141
      "                    :SET_TO_PV_ID,"&_
142
      "                    :RTAG_ID,"&_
143
      "                    :USER_ID,"&_
144
      "                    :enumISSUES_STATE_IMPORTED,"&_
145
      "                    :RETPV_ID ); "&_
146
      " PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_
147
      " PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_
148
      "END;"
149
 
150
      retNEWpv_id = OraDatabase.Parameters("RETPV_ID").Value
161 iaugusti 151
 
123 ghuddy 152
   End If
153
 
151 ghuddy 154
   objEH.CatchORA ( OraSession )
155
   If objEH.LastOraFailed = FALSE Then
3887 dpurdie 156
      Call UpdateChangeType (retNEWpv_id, parChangeType )
151 ghuddy 157
      Call UpdateReasonForVersion (retNEWpv_id, Request("FRreason"))
158
   End If
159
 
123 ghuddy 160
   rsQry.Close()
161
   Set rsQry = nothing
162
 
163
   OraDatabase.Parameters.Remove "ORIG_PV_ID"
164
   OraDatabase.Parameters.Remove "ALTER_RELEASE"
165
   OraDatabase.Parameters.Remove "PKG_VERSION"
166
   OraDatabase.Parameters.Remove "BUILD_TYPE"
167
   OraDatabase.Parameters.Remove "SET_TO_PV_ID"
168
   OraDatabase.Parameters.Remove "RTAG_ID"
169
   OraDatabase.Parameters.Remove "USER_ID"
170
   OraDatabase.Parameters.Remove "enumISSUES_STATE_IMPORTED"
171
   OraDatabase.Parameters.Remove "RETPV_ID"
119 ghuddy 172
End Sub
173
'---------------------------------------------------------------
174
Function SanityCheck ( newVersion )
175
 
123 ghuddy 176
   SanityCheck = False
119 ghuddy 177
 
123 ghuddy 178
   Dim objRegEx, objRegEx2
179
   Set objRegEx = New RegExp
180
   Set objRegEx2 = New RegExp
119 ghuddy 181
 
123 ghuddy 182
   objRegEx.IgnoreCase = True
183
   objRegEx.Pattern = "^[0-9]+\.[0-9]+\.[0-9]+\.[a-zA-Z0-9]+$"
3621 dpurdie 184
   objRegEx2.Pattern = "\.(cots)|(tool)$"
121 hknight 185
 
123 ghuddy 186
   If Len(newVersion) <= 50 Then
187
      If objRegEx.Test( newVersion ) OR objRegEx2.Test( newVersion ) Then
188
         SanityCheck = True
189
      End If
190
   End If
191
 
192
   If Request("build_type") = "A" Then
193
      SanityCheck = True
194
   End If
195
 
196
   Set objRegEx = Nothing
197
   Set objRegEx2 = Nothing
121 hknight 198
End Function
161 iaugusti 199
 
200
'-----------------------------------------------------------------------------------
119 ghuddy 201
%>
202
<%
203
'-----------------------  MAIN LINE  ---------------------------
204
Dim rsQry, Query_String, Record_Count
123 ghuddy 205
Dim versionToSanityCheck
161 iaugusti 206
 
119 ghuddy 207
'--- Process submission ---
3887 dpurdie 208
' DPurdie: Late June 2013. Play with new package creation
209
'    If parNewPackage <> "" Then
210
'      Dim reResult
211
'      Dim pkgFound
212
'
213
'      Response.write "Processing new package" & "<br>"
214
'      Response.write "Called:" & parPackageName & "<br>"
215
'
216
'      ' Ensure that the named package does not exist
217
'      ' Can't create it if it already exists
218
'      '
219
'      pkgFound = ""
220
'      Query_String = "SELECT pkg.*" &_
221
'         "  FROM packages pkg"&_
222
'         " WHERE pkg.pkg_id != 0"&_
223
'         "   AND UPPER(pkg.pkg_name) = UPPER('"& Trim(parPackageName) & "')"
224
'
225
'       Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )
226
'       If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
227
'            pkgFound = rsQry("pkg_id")
228
'       End If
229
'       rsQry.Close
230
'       Set rsQry = Nothing
231
'      Response.write "Search:" & pkgFound & "<br>"
232
'
233
'       '
234
'       ' Create the package if it does not exist
235
'       '
236
'       if not pkgFound <> "" Then
237
'            Response.write "Creating new package<br>"
238
'       End If
239
'
240
'
241
'    End If
242
 
123 ghuddy 243
   If (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then
244
      ' All mandatory parameters FOUND
119 ghuddy 245
 
123 ghuddy 246
      If ( (parSetToPv_id <> "") OR SanityCheck(parFRnewver) ) Then
119 ghuddy 247
 
131 ghuddy 248
         Record_Count = 0
249
 
123 ghuddy 250
         If Request("build_type") = "M" Then
251
            Query_string = " SELECT pv.pv_id, pv.is_patch, pv.dlocked"&_
252
                           " FROM package_versions pv"&_
253
                           " WHERE pv.pkg_version = '"& parFRnewver &"'"&_
254
                           " AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id"&_
255
                           "  FROM package_versions origpv"&_
256
                           " WHERE origpv.pv_id = "& parOLDpv_id &")"
257
 
258
            Set rsQry = OraDatabase.DbCreateDynaset(Query_String, cint(0))
259
            Record_Count = rsQry.RecordCount
260
            rsQry.Close()
261
            Set rsQry = Nothing
262
         End If
263
 
264
         If Record_Count > 0 And Request("build_type") = "M" Then
265
            Call RaiseMsg ( enum_MSG_PACKAGE_VERSION_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
266
         Else
267
            Call New_Version ( parFRnewver, parOLDpv_id, parSetToPv_id, parRtag_id, parSync_rtags, NEWpv_id )
268
 
269
            If objEH.Finally Then
270
               Response.Redirect("dependencies.asp?rtag_id="& parRtag_id &"&pv_id="& NEWpv_id )
271
            End If
272
         End If
273
      Else
274
         Call RaiseMsg( enum_MSG_PACKAGE_VERSION_INVALID&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )
275
      End If
276
 
277
   Else
278
      Response.write "Some mandatory parameters are missing!" & "<br>" 'TODO
279
      Response.write QSTR_All
280
   End If ' If (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then
119 ghuddy 281
%>
282
 
283
<!-- DESTRUCTOR ------->
123 ghuddy 284
<!--#include file="common/destructor.asp"-->