Subversion Repositories DevTools

Rev

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