Rev 6876 | Rev 6879 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| |'| Edit/View Build Configuration |'| |'=====================================================%><%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/_form_window_common.asp"--><!--#include file="_action_buttons.asp"--><!--#include file="class/classActionButtonControl.asp"--><!--#include file="common/common_daemon.asp"--><% objPMod.PersistInQryString("proj_id") %><% '------------ ACCESS CONTROL ------------------ %><!--#include file="_access_control_login_optional.asp"--><!--#include file="_access_control_general.asp"--><!--#include file="_access_control_action_project.asp"--><%'------------ Variable Definition -------------Dim rsQryDim parRtagIdDim query_stringDim objBtnControlDim rcon_idDim masterCountDim toolsetWarning'------------ Constants Declaration -----------'------------ Variable Init -------------------parRtagId = Request("rtag_id")objPMod.PersistInQryString("rtag_id")Set objBtnControl = New ActionButtonControl'----------------------------------------------%><%'--------------------------------------------------------------------------------------------------------------------------Sub GetFormDetails ( parRtagId, ByRef outobjDetails )Dim rsQry, queryOraDatabase.Parameters.Add "RTAG_ID", parRtagId, ORAPARM_INPUT, ORATYPE_NUMBERquery = _" SELECT * "&_" FROM RELEASE_TAGS rt"&_" WHERE rt.RTAG_ID = :RTAG_ID"Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )OraDatabase.Parameters.Remove "RTAG_ID"If rsQry.RecordCount > 0 ThenoutobjDetails.Item ("rtag_id") = rsQry("rtag_id")outobjDetails.Item ("rtag_name") = rsQry("rtag_name")ElseErr.Raise 8, "Sub GetFormDetails in "& ScriptName, "Empty record set returned. parRtagId="& parRtagIdEnd IfrsQry.CloseSet rsQry = NothingEnd Sub'--------------------------------------------------------------------------------------------------------------------------Sub DeleteDaemon(rcon_id_list)OraDatabase.Parameters.Add "RCON_ID_LIST", rcon_id_list, ORAPARM_INPUT, ORATYPE_VARCHAR2On Error Resume NextobjEH.ErrorRedirect = FALSEobjEH.TryORA()OraDatabase.ExecuteSQL "BEGIN PK_BUILDAPI.DELETE_DAEMON(:RCON_ID_LIST); END;"objEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "RCON_ID_LIST"End Sub'--------------------------------------------------------------------------------------------------------------------------Sub RemoveDaemon(rcon_id_list)OraDatabase.Parameters.Add "RCON_ID_LIST", rcon_id_list, ORAPARM_INPUT, ORATYPE_VARCHAR2On Error Resume NextobjEH.ErrorRedirect = FALSEobjEH.TryORA()OraDatabase.ExecuteSQL "BEGIN PK_BUILDAPI.REMOVE_DAEMON(:RCON_ID_LIST); END;"objEH.CatchORA ( OraSession )OraDatabase.Parameters.Remove "RCON_ID_LIST"End Sub'--------------------------------------------------------------------------------------------------------------------------Sub CheckMasterConfig()Dim rsQry, queryOraDatabase.Parameters.Add "RTAG_ID", parRtagId, ORAPARM_INPUT, ORATYPE_NUMBER'' Check that there is exacly one master in the build setquery = _"SELECT COUNT (rc.daemon_mode) as masterCount" &_" FROM release_manager.release_config rc, release_manager.run_level rl" &_" WHERE rc.rtag_id = :RTAG_ID" &_" AND rl.RCON_ID(+) = rc.RCON_ID" &_" AND rc.bmcon_id is not NULL" &_" GROUP BY rc.daemon_mode" &_" HAVING rc.daemon_mode = 'M'"Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )If rsQry.RecordCount > 0 ThenmasterCount = rsQry("masterCount")End IfrsQry.CloseSet rsQry = NothingIf bGetApplication("CheckToolset", TRUE) Then'' Check that each GBE_MACHTYPE has exactly one instance where the BUILDFILTER contains' a TOOLSET builder. The test is a bit sloppyquery = _"SELECT * from ( " &_"SELECT GBE_ID, COUNT(hasToolset) as ToolsetCount " &_"FROM " &_" (SELECT bc.GBE_ID, " &_" CASE " &_" WHEN INSTR(rc.GBE_BUILDFILTER, 'TOOLSET') > 0 " &_" THEN 1 " &_" ELSE NULL " &_" END AS hasToolset " &_" FROM release_manager.release_config rc, " &_" BUILD_MACHINE_CONFIG bc " &_" WHERE rc.rtag_id = :RTAG_ID " &_" AND rc.bmcon_id IS NOT NULL " &_" AND bc.bmcon_id = rc.bmcon_id " &_" ) " &_"GROUP BY GBE_ID ) " &_"Where ToolsetCount != 1 "Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )toolsetWarning = rsQry.RecordCount > 0rsQry.CloseSet rsQry = NothingEnd IfOraDatabase.Parameters.Remove "RTAG_ID"End Sub%><%'------------ RUN BEFORE PAGE RENDER ----------' --- Get Form details from DB ---Call GetFormDetails ( Request("rtag_id"), objFormCollector )' --- Enter Form Validation Rule Changes here... ----'----------------------------------------------------' --- RUN onPostBack ---If Request("action") <> "" AND objAccessControl.UserLogedIn ThenIf objForm.IsValidOnPostBack ThenIf canActionControlInProject("BuildConfiguration") ThenIf Request("btn") = "Delete" ThenCall DeleteDaemon(Request("rcon_id_list"))ElseIf Request("btn") = "Unlink" ThenCall RemoveDaemon(Request("rcon_id_list"))End IfEnd IfIf objEH.Finally ThenCall OpenInWindow ( "release_config.asp?rtag_id="& parRtagId )End IfEnd IfEnd IfCall CheckMasterConfig()'----------------------------------------------Sub ShowBuildConfig'-- FROM START ---------------------------------------------------------------------------------------------------------objFormComponent.FormName = "FormName"objFormComponent.Action = ScriptNameCall objFormComponent.FormStart()%><div class=panel><div class=rounded_box_caption><%=IIf( canActionControlInProject("BuildConfiguration"),"ADMINISTER","VIEW")%> BUILD CONFIGURATION</div><div class="rounded_box" ><div class='controlPanel'><!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ --><!--#include file="messages/_msg_inline.asp"--><!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><!-- BUTTONS CONTROL +++++++++++++++++++ --><%If canActionControlInProject("BuildConfiguration") ThenCall Action_Buttons ( "Add Daemon" )End If' Load some action buttonsCall objBtnControl.LoadActionButtons ( Array("btnEditDaemon", "btnRemoveDaemon", "btnDeleteDaemon"), OraDatabase )objBtnControl.ButtonSpacer = 1%></div><div class=listPanel><!-- +++++++++++++++++++++++++++++++++++ --><table class=embedded_table style='width:640px'><thead><th></th><th>DAEMON HOST</th><th>GBE_MACHTYPE</th><th>DAEMON MODE</th><th>GBE_BUILDFILTER</th><%If canActionControlInProject("BuildConfiguration") Then%><th>ACTION</th><%End If%></thead><%query_string = "select rcon_id, display_name, rc.bmcon_id, daemon_mode, gbe_value, gbe_buildfilter, NVL(active, 'U') as ACTIVE " &_" from release_manager.release_config rc," &_" release_manager.build_machine_config bm," &_" release_manager.gbe_machtype gbe" &_" where rc.rtag_id=" & parRtagId &_" and rc.bmcon_id=bm.bmcon_id(+)" &_" and rc.gbe_id=gbe.gbe_id" &_" order by daemon_mode, bm.display_name"Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )Dim daemon_mode, daemon, cbtype, bActive, bInactiveMachine, dClassbInactiveMachine = falsecbtype = "hidden"If canActionControlInProject("BuildConfiguration") Thencbtype = "checkbox"End If'--- Render rows ---Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)rcon_id = rsQry("rcon_id")daemon = rsQry("display_name")If IsNull(daemon) Thendaemon = ""End IfIf rsQry("daemon_mode") = "M" Thendaemon_mode = "MASTER"Elsedaemon_mode = "SLAVE"End IfbActive = rsQry("active")dClass = ""If bActive = "N" ThenbInactiveMachine = truedClass = " err_alert strike"End If%><tr class=border><td class=center><input type=<%=cbtype%> name="rcon_id_list" value="<%=rsQry("rcon_id")%>"></td><td <%=dClass%>"><%=daemon%></td><td><%=rsQry("gbe_value")%></td><td><%=daemon_mode%></td><td class=wrap><%=rsQry("gbe_buildfilter")%></td><%If canActionControlInProject("BuildConfiguration") Then%><td><%Call objBtnControl.Render ( Array("btnEditDaemon", "btnRemoveDaemon", "btnDeleteDaemon"), objAccessControl )%></td><%End If%></tr><%rsQry.MoveNextLooprsQry.Close()Set rsQry = nothing%></table></div><div><%If masterCount <> 1 OR toolsetWarning OR bInactiveMachine Then %><div class='errorPanel'><table class="full_table"><%If masterCount <> 1 Then %><tr><td nowrap class="err_alert">Error<td> The set of Build Machines must have exactly one Master.</tr><%End If%><%If bInactiveMachine Then %><tr><td nowrap class="err_alert">Error<td>One or more of the Build Machines have been deprecated and no longer available for use.</tr><%End If%><%If toolsetWarning Then %><tr><td nowrap class="err_alert">Warning<td>There should be one TOOLSET builder within each set of machines with the same GBE_MACHTYPE.</tr><%End If%></table></div><%End If%><div class='buttonPanel'><!-- ACTION BUTTONS ----------------------------------------------><%=objFormComponent.CancelButton ( "OK", "", "build_status.asp?rtag_id="& parRtagId )%><%=objPMod.ComposeHiddenTags()%><%If canActionControlInProject("BuildConfiguration") Then%><input name="btn" type="submit" value="Unlink"><input name="btn" type="submit" value="Delete"><%End If%><input type="hidden" name="rcon_id_list" value="<%=Request("rcon_id_list")%>"><input type="hidden" name="action" value="true"><!-- ACTION BUTTONS END ------------------------------------------></td></div></div></div><%Call objFormComponent.FormEnd()'-- FROM END ----------------------------------------------------------------------------------------------------------------End Sub'---------------------------------------------------------------------%><html><!-- StyleSheet Extensions --><head><title>Release Manager</title><link rel="shortcut icon" href="<%=FavIcon%>"/><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link rel="stylesheet" href="images/release_manager_style.css?ver=<%=VixVerNum%>" type="text/css"><link rel="stylesheet" href="images/navigation.css?ver=<%=VixVerNum%>" type="text/css"><script language="JavaScript" src="images/common.js?ver=<%=VixVerNum%>"></script><!--#include file="_jquery_includes.asp"--><!-- DROPDOWN MENUS --><!--#include file="_menu_def.asp"--><script language="JavaScript1.2" src="images/popup_menu.js?ver=<%=VixVerNum%>"></script></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"><!-- HEADER --><!--#include file="_header.asp"--><!-- BODY ----><table class="full_table"><tr><td width="146px" class="bg_panel" valign="top"><%Call BuildMenuPane%></td><td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF"><%Call ShowBuildConfig%></td></tr><tr><td class="bg_panel_btm" height="350"><img src="images/img_gears.png" vspace="20" hspace="30"></td></tr></table><!-- FOOTER --><!--#include file="_footer.asp"--></body></html>