%@LANGUAGE="VBSCRIPT"%>
<%
'=====================================================
'| |
'| Edit/View Build Configuration |
'| |
'=====================================================
%>
<%
Option explicit
' Good idea to set when using redirect
Response.Expires = 0 ' always load the page, dont store
%>
<% objPMod.PersistInQryString("proj_id") %>
<% '------------ ACCESS CONTROL ------------------ %>
<%
'------------ Variable Definition -------------
Dim rsQry
Dim parRtagId
Dim query_string
Dim objBtnControl
Dim rcon_id
Dim masterCount
Dim toolsetWarning
Dim bCanEdit
'------------ Constants Declaration -----------
'------------ Variable Init -------------------
parRtagId = Request("rtag_id")
objPMod.PersistInQryString("rtag_id")
Set objBtnControl = New ActionButtonControl
bCanEdit = canActionControlInProject("BuildConfiguration")
'----------------------------------------------
%>
<%
'--------------------------------------------------------------------------------------------------------------------------
Sub GetFormDetails ( parRtagId, ByRef outobjDetails )
Dim rsQry, query
OraDatabase.Parameters.Add "RTAG_ID", parRtagId, ORAPARM_INPUT, ORATYPE_NUMBER
query = _
" 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 Then
outobjDetails.Item ("rtag_id") = rsQry("rtag_id")
outobjDetails.Item ("rtag_name") = rsQry("rtag_name")
Else
Err.Raise 8, "Sub GetFormDetails in "& ScriptName, "Empty record set returned. parRtagId="& parRtagId
End If
rsQry.Close
Set rsQry = Nothing
End Sub
'--------------------------------------------------------------------------------------------------------------------------
Sub DeleteDaemon(rcon_id_list)
OraDatabase.Parameters.Add "RCON_ID_LIST", rcon_id_list, ORAPARM_INPUT, ORATYPE_VARCHAR2
On Error Resume Next
objEH.ErrorRedirect = FALSE
objEH.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_VARCHAR2
On Error Resume Next
objEH.ErrorRedirect = FALSE
objEH.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, query
OraDatabase.Parameters.Add "RTAG_ID", parRtagId, ORAPARM_INPUT, ORATYPE_NUMBER
'
' Check that there is exacly one master in the build set
query = _
"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 Then
masterCount = rsQry("masterCount")
End If
rsQry.Close
Set rsQry = Nothing
If 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 sloppy
query = _
"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 > 0
rsQry.Close
Set rsQry = Nothing
End If
OraDatabase.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 Then
If objForm.IsValidOnPostBack Then
If bCanEdit Then
If Request("btn") = "Delete" Then
Call DeleteDaemon(Request("rcon_id_list"))
ElseIf Request("btn") = "Unlink" Then
Call RemoveDaemon(Request("rcon_id_list"))
End If
End If
If objEH.Finally Then
Call OpenInWindow ( "release_config.asp?rtag_id="& parRtagId )
End If
End If
End If
Call CheckMasterConfig()
'----------------------------------------------
Sub ShowBuildConfig
' Load some action buttons
Call objBtnControl.LoadActionButtons ( Array("btnEditDaemon", "btnRemoveDaemon", "btnDeleteDaemon"), OraDatabase )
objBtnControl.ButtonSpacer = 1
'-- FORM START ---------------------------------------------------------------------------------------------------------
objFormComponent.FormName = "FormName"
objFormComponent.Action = ScriptName
Call objFormComponent.FormStart()
%>
<%End If%>
<%
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, dClass
bInactiveMachine = false
cbtype = "hidden"
If bCanEdit Then
cbtype = "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) Then
daemon = ""
End If
If rsQry("daemon_mode") = "M" Then
daemon_mode = "MASTER"
Else
daemon_mode = "SLAVE"
End If
bActive = rsQry("active")
dClass = ""
If bActive = "N" Then
bInactiveMachine = true
dClass = " err_alert strike"
End If
%>
<%
Call objFormComponent.FormEnd()
'-- FROM END ----------------------------------------------------------------------------------------------------------------
End Sub
'---------------------------------------------------------------------
%>
Release Manager