% '===================================================== ' common_daemon.asp ' Subroutines and functions commonthe the build daemon displays '===================================================== ' %> <% '------------ Constants Declaration ----------- Const Max_Delta = 600 ' Seconds '-------------------------------------------------------------------------------------------------------------------------- Function PrettyDelta( delta, daemonState,pkgId ) Dim style style = "" If delta <> "" AND IsNumeric(delta) Then delta = CLng(delta) Else PrettyDelta = "-" Exit Function End If If (delta > Max_Delta) AND (IsNull(pkgId) OR pkgId = "") Then style = "style=color:Red" If (delta > 86400 ) Then Dim bdate, dd,mm,yy bdate = DateAdd("s", - delta,Now()) dd = Day(bdate) mm = MonthName(Month(bdate),1) yy = Year( bdate) delta = dd & "-" & mm & "-" & yy If ( daemonState >= 2 ) Then style = "" End If ElseIf ( delta > 60*60 ) Then 'Dim bdate, hh, mins, ss bdate = DateAdd("s", - delta,Now()) delta = TimeValue( bdate) 'delta = hh & ":" & mins & ":" & ss End If End If If style <> "" Then delta = "" & delta & "" End If PrettyDelta = delta End Function '-------------------------------------------------------------------------------------------------------------------------- ' Convert daemon mode into a meaningful string Function Get_Daemon_Mode( nMode ) If nMode = "M" Then Get_Daemon_Mode = "Master" ElseIf nMode = "S" Then Get_Daemon_Mode = "Slave" Else Get_Daemon_Mode = "?" End If End Function '-------------------------------------------------------------------------------------------------------------------------- ' aState - daemon State ' 0 - Enabled ' 1 - Paused ' 2 - Disabled Function Get_Run_Level( nLevel, indefinitePause, astate, bActive) If bActive = "N" Then Get_Run_Level = "Machine Deprecated" ElseIf bActive = "U" Then Get_Run_Level = "" Else If indefinitePause Then Get_Run_Level = "Stopped" ElseIf astate = 1 Then ' if build daemon paused Get_Run_Level = "Paused" ElseIf astate = 2 Then ' if build daemon disabled Get_Run_Level = "Disabled" ElseIf astate = 0 Then ' if build daemon enabled If nLevel = 1 Then Get_Run_Level = "Cannot Continue" ElseIf nLevel = 2 Then Get_Run_Level = "Paused" ElseIf nLevel = 3 Then Get_Run_Level = "Building" ElseIf nLevel = 4 Then Get_Run_Level = "Idle" ElseIf nLevel = 5 Then Get_Run_Level = "Waiting" ElseIf nLevel = 6 Then Get_Run_Level = "Publishing" ElseIf nLevel = 7 Then Get_Run_Level = "Planning" Else Get_Run_Level = "Unknown!" End If End If End If End Function '-------------------------------------------------------------------------------------------------------------------------- Function Get_Package_Name( sPackageName,nRtagId,nPkgPvid, daemonState, bActive ) If bActive = "U" OR daemonState > 1 Then Get_Package_Name = "" ElseIf IsNull(sPackageName) Then Get_Package_Name = "None" ElseIf IsNull(nPkgPvid) or nPkgPvid <= 0 Then Get_Package_Name = sPackageName Else Get_Package_Name = "" + sPackageName + "" End If End Function '-------------------------------------------------------------------------------------------------------------------------- Function GetLastBuildAge( rtagid) Dim query_string, rsQry query_string = "SELECT TRUNC (86400*(SYSDATE - rl.LAST_BUILD)) as delta," &_ " TO_CHAR(rl.LAST_BUILD, 'DD-Mon-YYYY') as last_build," &_ " TO_CHAR(rl.LAST_BUILD, 'HH:MI:SS PM') as last_build_hours," &_ " TRUNC (SYSDATE - rl.LAST_BUILD) as last_build_days" &_ " FROM RELEASE_CONFIG rc, RUN_LEVEL rl, BUILD_MACHINE_CONFIG bm " &_ " WHERE rc.RTAG_ID =" &rtagid &_ " AND rc.bmcon_id is not null" &_ " AND rl.RCON_ID(+) = rc.RCON_ID" &_ " AND rc.bmcon_id = bm.bmcon_id(+)" Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT ) If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then Dim delta, last_build, last_build_time, last_build_days If IsNull(rsQry("delta")) Then delta = 0 Else delta = CLng(rsQry("delta")) End If last_build = rsQry("last_build") last_build_time = rsQry("last_build_hours") last_build_days = rsQry("last_build_days") If delta < (60*60*24) Then GetLastBuildAge = last_build_time Else GetLastBuildAge = last_build End If End If rsQry.Close() Set rsQry = nothing End Function '-------------------------------------------------------------------------------------------------------------------------- Function GetModifiedSeqNo( rtagid) Dim query_string, rsQry query_string = "SELECT SEQNUM FROM RELEASE_MODIFIED WHERE RTAG_ID = " & rtagid Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT ) If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then GetModifiedSeqNo = rsQry("SEQNUM") Else GetModifiedSeqNo = "-" End If rsQry.Close() Set rsQry = nothing End Function '-------------------------------------------------------------------------------------------------------------------------- Function CheckConfigErrors (rtagId) Dim rsQry, query CheckConfigErrors = false OraDatabase.Parameters.Add "RTAG_ID", rtagId, 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 If rsQry("masterCount") <> 1 Then CheckConfigErrors = true End If Else CheckConfigErrors = true End If rsQry.Close Set rsQry = Nothing If bGetApplication("CheckToolset", TRUE) Then If NOT CheckConfigErrors 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 ) If rsQry.RecordCount > 0 Then CheckConfigErrors = true End If rsQry.Close Set rsQry = Nothing End If End If OraDatabase.Parameters.Remove "RTAG_ID" End Function '-------------------------------------------------------------------------------------------------------------------------- Sub BuildMenuPane If parRtagId <> 0 Then %>
<% End If End Sub %>