<% @LANGUAGE = VBScript %> <% '===================================================== ' ' Build Status and Plan Information ' '===================================================== %> <% Option explicit ' Good idea to set when using redirect Response.Expires = 0 ' always load the page, dont store %> <% '------------ ACCESS CONTROL ------------------ %> <% '------------ Scripts -------------------------- %> <% '------------ Variable Definition ------------- Dim rsQry Dim parRtagId Dim query_string Dim rcon_id Dim canControl '------------ Constants Declaration ----------- '------------ Variable Init ------------------- parRtagId = Request("rtag_id") objPMod.PersistInQryString("rtag_id") canControl = canActionControlInProject("BuildControl") '------------------------------------------------- ' Sub ShowDaemonStatus %>
DAEMON STATUS INFORMATION Last Build: <%=GetLastBuildAge(parRtagId)%> [<%=GetModifiedSeqNo(parRtagId)%>] [Refresh]
<% Dim bInactiveMachine : bInactiveMachine = false %> <% ' Get Build Information for this Release query_string = _ "SELECT rc.rcon_id, display_name, gbe_value, daemon_mode, NVL(ACTIVE, 'U') AS ACTIVE," &_ " rl.pause, rl.current_run_level, rl.current_pkg_id_being_built, TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) AS delta," &_ " pk.pkg_name, rl.current_pv_id, pv.build_time, TRUNC (86400*(SYSDATE - rl.LAST_BUILD)) AS build_delta" &_ " FROM release_config rc," &_ " gbe_machtype gm," &_ " build_machine_config bm," &_ " run_level rl," &_ " packages pk," &_ " package_versions pv" &_ " WHERE rc.rtag_id = " & parRtagId &_ " AND gm.gbe_id = rc.gbe_id" &_ " AND rl.rcon_id(+) = rc.rcon_id" &_ " AND rc.bmcon_id =bm.bmcon_id(+)" &_ " AND pk.pkg_id(+) = rl.current_pkg_id_being_built" &_ " AND rl.current_pv_id = pv.pv_id(+)" &_ " ORDER BY bm.display_name, rc.rcon_id" Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT ) Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF) Dim pkgName Dim pkgPvid Dim pkgBuildTime Dim currentRunLevel Dim daemonState Dim delta Dim PkgBuildDelta Dim pkgId Dim bActive Dim estDuration Dim daemonMode Dim lastChange rcon_id = rsQry("rcon_id") ' = rsQry("display_name") ' = rsQry("gbe_value") daemonMode = rsQry("daemon_mode") bActive = rsQry("ACTIVE") daemonState = rsQry("pause") currentRunLevel = rsQry("current_run_level") pkgId = rsQry("current_pkg_id_being_built") delta = rsQry("delta") pkgName = rsQry("pkg_name") pkgPvid = rsQry("current_pv_id") pkgBuildTime = rsQry("build_time") PkgBuildDelta = rsQry("build_delta") lastChange = NULL bInactiveMachine = FALSE estDuration = NULL If bActive = "N" Then bInactiveMachine = true If IsNull(daemonState) Then daemonState = 0 If daemonState = "2" Then pkgId = Null If IsNull(currentRunLevel) Then currentRunLevel = -1 If daemonMode = "M" AND not IsNull(pkgName) Then estDuration = pkgBuildTime & "[" & PkgBuildDelta & "]" If bActive <> "U" Then lastChange = PrettyDelta(delta, daemonState,pkgName ) ' --- Now render HTML for this release configuration --- %> <% rsQry.MoveNext Loop %> <% rsQry.Close() Set rsQry = nothing %>
Daemon Host Machine Type Mode Run Level Current Package Est Duration<%=Quick_Help("h_buildtime")%> Last Change<%=Quick_Help("h_lastchange")%> Control State
<%=rsQry("display_name")%> <%=rsQry("gbe_value")%> <%=Get_Daemon_Mode(daemonMode)%> <%=Get_Run_Level(currentRunLevel, IndefPause, daemonState, bActive)%> <%=Get_Package_Name(pkgName,parRtagId,pkgPvid, daemonState, bActive)%> <%=estDuration%> <%=lastChange%> <% If NOT IndefPause Then If bActive = "U" Then ElseIf bActive = "N" Then Call Action_Buttons ( "Daemon Unavailable" ) ElseIf daemonState = 0 Then Call Action_Buttons_State ( "Daemon Pause", canControl ) ElseIf daemonState = 1 Then Call Action_Buttons_State ( "Daemon Resume", canControl ) ElseIf daemonState = 2 Then Call Action_Buttons_State ( "Daemon Start", canControl ) Else Call Action_Buttons_State ( "Daemon Resume", canControl ) End If Else %>Unavailable<% End If %>
<%If CheckConfigErrors(parRtagId) OR bInactiveMachine Then%> Daemon configuration errors detected <%End If%> <% If (rsQry.RecordCount > 0) AND NOT IndefPause Then Call Action_Buttons_State ( "Daemon Control All", objAccessControl.UserLogedIn AND canControl ) Else %> <% End If %>
<% End Sub '------------------------------------------------- ' Sub ShowBuildPlan Set rsQry = OraDatabase.DbCreateDynaset( "SELECT TRUNC (86400*(SYSDATE - rl.LAST_BUILD)) as delta, rl.LAST_BUILD as BuildStart, rl.current_pv_id, SYSDATE" &_ " FROM release_config rc, run_level rl " &_ " WHERE rc.rtag_id = " & parRtagId &_ " AND rc.daemon_mode = 'M' AND rl.rcon_id(+) = rc.rcon_id", ORADYN_DEFAULT ) Dim BuildStart Dim BuildDelta Dim BuildPvId Dim BuildNow Dim bFirstPlan : bFirstPlan = TRUE If (rsQry.RecordCount > 0) Then BuildStart = rsQry("BuildStart") BuildDelta = rsQry("delta") BuildPvId = rsQry("current_pv_id") BuildNow = rsQry("SYSDATE") End If rsQry.Close() Set rsQry = nothing %>
DAEMON BUILD PLAN<%=Quick_Help("h_buildplan")%> Now: <%=DisplayShortDateTimeSecs(BuildNow)%> AWST
<% Dim PkgVersion, buildDuration, durationDisplay, durationText, completionText Set rsQry = OraDatabase.DbCreateDynaset( "SELECT p.PKG_NAME," &_ " pv.PKG_VERSION, pv.BUILD_TIME," &_ " bp.PV_ID" &_ " FROM build_plan bp," &_ " packages p," &_ " package_versions pv" &_ " WHERE bp.PV_ID = pv.pv_id" &_ " AND RTAG_ID = " & parRtagId &_ " AND pv.PKG_ID = p.pkg_id" &_ " ORDER BY build_order" , ORADYN_DEFAULT ) If rsQry.RecordCount = 0 Then %> <% End If While (NOT rsQry.BOF) AND (NOT rsQry.EOF) completionText = "" buildDuration = rsQry("BUILD_TIME") durationDisplay = buildDuration If rsQry("PV_ID") = 0 Then bFirstPlan = FALSE %> <% Else ' If the current package build it taking longer than expected , then bump the build times ' and allow another 30 seconds. If BuildPvId = rsQry("PV_ID") AND bFirstPlan Then completionText = " <" durationDisplay = durationDisplay & " ["& BuildDelta &"]" If isNumeric(BuildDelta) > isNumeric(buildDuration) Then If CLng(BuildDelta) > CLng(buildDuration) Then buildDuration = BuildDelta + 30 completionText = " +" End If End If End If ' If the duration is not known - guess at 300 sconds durationText = "" If (ISNULL(buildDuration) OR buildDuration = 0) Then buildDuration = 300 durationText = " ~" End If BuildStart = DateAdd("s", buildDuration, BuildStart) %> <% ' Allow for 20 seconds of planning between builds BuildStart = DateAdd("s", 20, BuildStart) End If rsQry.MoveNext() Wend rsQry.Close() Set rsQry = nothing %>
Package Version Duration<%=Quick_Help("h_buildDuration")%> Build Completion<%=Quick_Help("h_buildEnd")%>
No packages to be built
New Plan<%=Quick_Help("h_newPlan")%>
<%=Get_Package_Name(rsQry("PKG_NAME"), parRtagId, rsQry("PV_ID"), 0, "Y")%> <%=rsQry("PKG_VERSION")%> <%=durationDisplay%> <%=DisplayShortDateTimeSecs(BuildStart) & durationText & completionText%>
<% End Sub '------------------------------------------------- Sub PlanControlPane Dim planDropChecked : planDropChecked = "" Dim planValue : planValue = 0 Dim planOff : planOff = "" Dim planCautious : planCautious = "" Dim planAggressive : planAggressive = "" ' Get the planning control information query_string = _ "SELECT PLAN_THRESHOLD, PLAN_DROP" &_ " FROM release_tags rt" &_ " WHERE rt.rtag_id = " & parRtagId Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT ) If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then If rsQry("PLAN_DROP") <> "N" Then planDropChecked = " Checked" End If planValue = CInt(rsQry("PLAN_THRESHOLD")) Select Case planValue Case 0 : planOff = "Checked" Case 20 : planCautious = "Checked" Case 100 : planAggressive = "Checked" Case Else : planCautious = "Checked" End Select End If rsQry.Close() Set rsQry = nothing %>
> Plan Control value="0">Off
value="20">Cautious
value="100">Aggressive

>Drop Plan
<% End Sub '------------------------------------------------- Sub InsertJavaScript %> <%End Sub '---------------------------------------------- %> Release Manager <%Call InsertJavaScript %>
<%Call BuildMenuPane%> <%Call PlanControlPane%> <%Call ShowDaemonStatus%> <%Call ShowBuildPlan%>