Blame | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' NEW VERSION' --- PROCESS FORM ---'=====================================================%><%Option explicit' Good idea to set when using redirectResponse.Expires = 0 ' always load the page, dont store%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/common_dbedit.asp"--><%' Set rfile parameter. This is a return page after LoginCall objPMod.StoreParameter ( "rfile", "dependencies.asp" )'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_login.asp"--><!--#include file="_access_control_general.asp"--><!--#include file="_access_control_project.asp"--><%'------------ Variable Definition -------------Dim parOLDpv_idDim parFRnewverDim NEWpv_idDim parSetToPv_idDim parSync_rtagsDim toTouch'------------ Constants Declaration -----------'------------ Variable Init -------------------parOLDpv_id = QStrPar("OLDpv_id")parFRnewver = QStrPar("FRnewver")parSetToPv_id = QStrPar("pv_id")parSync_rtags = Request("sync_rtags")'----------------------------------------------%><%Sub New_Version ( SSnewver, NNorig_pv_id, NNSetToPv_id, NNrtag_id, sSyncRtags, retNEWpv_id )Dim cAlterReleaseWhileRestrictive, rsQryOn Error Resume NextobjEH.ErrorRedirect = TRUEOraDatabase.Parameters.Add "ORIG_PV_ID", NNorig_pv_id, ORAPARM_INPUT, ORATYPE_NUMBERIf Request("build_type") = "M" Then' Manual buildOraDatabase.Parameters.Add "PKG_VERSION", SSnewver, ORAPARM_INPUT, ORATYPE_VARCHAR2Else' Automated BuildOraDatabase.Parameters.Add "PKG_VERSION", Request("v_ext"), ORAPARM_INPUT, ORATYPE_VARCHAR2End If' Access Control - Allow release change while release is in restrictive modecAlterReleaseWhileRestrictive = "N"If objAccessControl.IsActive("AlterReleaseContentsInRestrictiveMode") Then cAlterReleaseWhileRestrictive = "Y"OraDatabase.Parameters.Add "BUILD_TYPE", Request("build_type"), ORAPARM_INPUT, ORATYPE_CHAROraDatabase.Parameters.Add "ALTER_RELEASE", cAlterReleaseWhileRestrictive, ORAPARM_INPUT, ORATYPE_CHAROraDatabase.Parameters.Add "SET_TO_PV_ID", NNSetToPv_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "enumISSUES_STATE_IMPORTED", enumISSUES_STATE_IMPORTED, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "RETPV_ID", 0, ORAPARM_OUTPUT,ORATYPE_NUMBERobjEH.TryORA ( OraSession )Set rsQry = OraDatabase.DbCreateDynaset("SELECT * FROM RELEASE_CONTENT WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID = "& NNorig_pv_id &"", cint(0))If (NOT IsNull(rsQry("pkg_id"))) AND rsQry("pkg_state") = 6 ThenDim rsPv_idIf (SSnewver) <> "" ThenSet rsPv_id = OraDatabase.DbCreateDynaset("SELECT * FROM PACKAGE_VERSIONS WHERE PKG_VERSION ='"& SSnewver &"' AND PKG_ID = "& rsQry("pkg_id") &"", cint(0))retNEWpv_id = rsPv_id("pv_id")rsPv_id.Close()Set rsPv_id = nothingElseretNEWpv_id = NNSetToPv_idEnd IfIf NOT IsNull(retNewpv_id) ThenOraDatabase.ExecuteSQL _"BEGIN "&_" UPDATE RELEASE_CONTENT SET PV_ID ="& retNEWpv_id &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& Request("OLDpv_id")&"; "&_"END;"ElseOraDatabase.ExecuteSQL _"BEGIN "&_" PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_" :PKG_VERSION,"&_" :BUILD_TYPE,"&_" :SET_TO_PV_ID,"&_" :RTAG_ID,"&_" :USER_ID,"&_" :enumISSUES_STATE_IMPORTED,"&_" :RETPV_ID ); "&_" PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_" PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_"END;"retNEWpv_id = OraDatabase.Parameters("RETPV_ID").ValueEnd IfElseOraDatabase.ExecuteSQL _"BEGIN "&_" PK_PACKAGE.NEW_VERSION ( :ORIG_PV_ID, "&_" :PKG_VERSION,"&_" :BUILD_TYPE,"&_" :SET_TO_PV_ID,"&_" :RTAG_ID,"&_" :USER_ID,"&_" :enumISSUES_STATE_IMPORTED,"&_" :RETPV_ID ); "&_" PK_RELEASE.CAN_USER_WRITE_TO_RELEASE ( :RTAG_ID, :RETPV_ID, :ALTER_RELEASE ); "&_" PK_ENVIRONMENT.REPLACE_PACKAGE ( :RETPV_ID, :ORIG_PV_ID, :RTAG_ID, :USER_ID ); "&_"END;"retNEWpv_id = OraDatabase.Parameters("RETPV_ID").ValueEnd IfrsQry.Close()Set rsQry = nothingobjEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "ORIG_PV_ID"OraDatabase.Parameters.Remove "ALTER_RELEASE"OraDatabase.Parameters.Remove "PKG_VERSION"OraDatabase.Parameters.Remove "BUILD_TYPE"OraDatabase.Parameters.Remove "SET_TO_PV_ID"OraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "enumISSUES_STATE_IMPORTED"OraDatabase.Parameters.Remove "RETPV_ID"End Sub'---------------------------------------------------------------Sub Config_Spec (NNRtag_id, NNPv_id)OraDatabase.Parameters.Add "RTAG_ID", NNRtag_id, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PV_ID", NNPv_id, ORAPARM_INPUT, ORATYPE_NUMBERSet rsQry = OraDatabase.DbCreateDynaset( GetQuery("config_spec.sql"), cint(0))OraDatabase.Parameters.Remove "RTAG_ID"OraDatabase.Parameters.Remove "PV_ID"End Sub'---------------------------------------------------------------Sub Config_Spec_Template (config_branch, pkg_label, src_path, pkg_name, release_name)Dim myMail, LocalPath, TemplateSet myMail=Server.CreateObject("Persits.MailSender")'LocalPath = Server.MapPath("docs\compareReleases_"&objAccessControl.UserName&".html")myMail.Host = SMTP_HOSTmyMail.Subject="Config Specs for package "& pkg_name &" in "& release_name &""myMail.From = ADMIN_EMAILmyMail.AddAddress objAccessControl.UserEmail' Attach the file'myMail.AddAttachment LocalPathTemplate = "element * CHECKEDOUT" & chr(13) & chr(10) & _"element .../lost+found -none" & chr(13) & chr(10) & _"element * .../"& config_branch &"/LATEST" & chr(13) & chr(10) & _"element * "& pkg_label &" -mkbranch "& config_branch &"" & chr(13) & chr(10) & _"element * /main/0 -mkbranch "& config_branch &"" & chr(13) & chr(10) & _"load "& src_path &""myMail.Body = TemplatemyMail.Sendset myMail=nothingEnd Sub'---------------------------------------------------------------Function SanityCheck ( newVersion )SanityCheck = FalseDim objRegExSet objRegEx = New RegExpobjRegEx.IgnoreCase = TrueobjRegEx.Pattern = "[^a-zA-Z0-9\.\-\_]"If Len(newVersion) <= 50 ThenIf NOT objRegEx.Test( newVersion ) ThenSanityCheck = TrueEnd IfEnd IfSet objRegEx = NothingEnd Function'---------------------------------------------------------------%><%'----------------------- MAIN LINE ---------------------------Dim rsQry, Query_String, Record_Count'--- Process submission ---If (parOLDpv_id <> "") AND ( (parFRnewver <> "") OR (parSetToPv_id <> "") ) AND (parRtag_id <> "") Then' All mandatory parameters FOUNDIf SanityCheck( parFRnewver ) ThenQuery_string = " SELECT pv.pv_id, pv.is_patch, pv.dlocked"&_" FROM package_versions pv"&_" WHERE pv.pkg_version = '"& parFRnewver &"'"&_" AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id"&_" FROM package_versions origpv"&_" WHERE origpv.pv_id = "& parOLDpv_id &")"Set rsQry = OraDatabase.DbCreateDynaset(Query_String, cint(0))Record_Count = rsQry.RecordCountrsQry.Close()Set rsQry = NothingIf Record_Count > 0 And Request("build_type") = "M" ThenCall RaiseMsg ( enum_MSG_PACKAGE_VERSION_EXISTS&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )Else'If IsNull(rsQry("pkg_id")) ThenCall New_Version ( parFRnewver, parOLDpv_id, parSetToPv_id, parRtag_id, parSync_rtags, NEWpv_id )'Else'OraSession.BeginTrans'OraDatabase.ExecuteSQL _'" UPDATE RELEASE_CONTENT SET PV_ID ="& Request("pv_id") &" WHERE RTAG_ID ="& Request("rtag_id") &" AND PV_ID ="& Request("OLDpv_id")'OraSession.CommitTrans'End If'rsQry.Close()'Set rsQry = nothing'Call Config_Spec (parRtag_id, NEWpv_id)If objEH.Finally Then'If (rsQry("config_spec_branch") <> "" AND rsQry("pkg_label") <> "" AND rsQry("src_path") <> "") Then'Call Config_Spec_Template (rsQry("config_spec_branch"), rsQry("pkg_label"), rsQry("src_path"), rsQry("pkg_name"), rsQry("rtag_name"))'End IfResponse.Redirect("dependencies.asp?rtag_id="& parRtag_id &"&pv_id="& NEWpv_id )'rsQry.Close()'Set rsQry = nothingEnd IfEnd IfElseCall RaiseMsg( enum_MSG_PACKAGE_VERSION_INVALID&"?rtag_id="& parRtag_id &"&pv_id="& parOLDpv_id &"", parFRnewver )End IfElseResponse.write "Some mandatory parameters are missing!" & "<br>" 'TODOResponse.write QSTR_AllEnd If%><!-- DESTRUCTOR -------><!--#include file="common/destructor.asp"-->