Rev 6873 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%'=====================================================' common_daemon.asp' Subroutines and functions commonthe the build daemon displays'====================================================='%><%'------------ Constants Declaration -----------Const Max_Delta = 600 ' Seconds'--------------------------------------------------------------------------------------------------------------------------Function PrettyDelta( delta, daemonState,pkgId )Dim stylestyle = ""If delta <> "" AND IsNumeric(delta) Thendelta = CLng(delta)ElsePrettyDelta = "-"Exit FunctionEnd IfIf (delta > Max_Delta) AND (IsNull(pkgId) OR pkgId = "") Thenstyle = "style=color:Red"If (delta > 86400 ) ThenDim bdate, dd,mm,yybdate = DateAdd("s", - delta,Now())dd = Day(bdate)mm = MonthName(Month(bdate),1)yy = Year( bdate)delta = dd & "-" & mm & "-" & yyIf ( daemonState >= 2 ) Thenstyle = ""End IfElseIf ( delta > 60*60 ) Then'Dim bdate, hh, mins, ssbdate = DateAdd("s", - delta,Now())delta = TimeValue( bdate)'delta = hh & ":" & mins & ":" & ssEnd IfEnd IfIf style <> "" Thendelta = "<span " & style & ">" & delta & "</span>"End IfPrettyDelta = deltaEnd Function'--------------------------------------------------------------------------------------------------------------------------' Convert daemon mode into a meaningful stringFunction Get_Daemon_Mode( nMode )If nMode = "M" ThenGet_Daemon_Mode = "Master"ElseIf nMode = "S" ThenGet_Daemon_Mode = "Slave"ElseGet_Daemon_Mode = "?"End IfEnd Function'--------------------------------------------------------------------------------------------------------------------------' aState - daemon State' 0 - Enabled' 1 - Paused' 2 - DisabledFunction Get_Run_Level( nLevel, indefinitePause, astate, bActive)If bActive = "N" ThenGet_Run_Level = "<span class='err_alert'>Machine Deprecated</span>"ElseIf bActive = "U" ThenGet_Run_Level = ""ElseIf indefinitePause ThenGet_Run_Level = "<span class='err_alert'>Stopped</span>"ElseIf astate = 1 Then ' if build daemon pausedGet_Run_Level = "Paused"ElseIf astate = 2 Then ' if build daemon disabledGet_Run_Level = "Disabled"ElseIf astate = 0 Then ' if build daemon enabledIf nLevel = 1 ThenGet_Run_Level = "Cannot Continue"ElseIf nLevel = 2 ThenGet_Run_Level = "Paused"ElseIf nLevel = 3 ThenGet_Run_Level = "Building"ElseIf nLevel = 4 ThenGet_Run_Level = "Idle"ElseIf nLevel = 5 ThenGet_Run_Level = "Waiting"ElseIf nLevel = 6 ThenGet_Run_Level = "Publishing"ElseGet_Run_Level = "<span class='err_alert'>Unknown!</span>"End IfEnd IfEnd IfEnd Function'--------------------------------------------------------------------------------------------------------------------------Function Get_Package_Name( sPackageName,nRtagId,nPkgPvid, daemonState, bActive )If bActive = "U" OR daemonState > 1 ThenGet_Package_Name = ""ElseIf IsNull(sPackageName) ThenGet_Package_Name = "None"ElseIf IsNull(nPkgPvid) or nPkgPvid <= 0 ThenGet_Package_Name = sPackageNameElseGet_Package_Name = "<a class=""txt_linked"" href=""dependencies.asp?pv_id=" + nPkgPvid + "&rtag_id=" + nRtagId + """>" + sPackageName + "</a>"End IfEnd Function'--------------------------------------------------------------------------------------------------------------------------Function GetLastBuildAge( rtagid)Dim query_string, rsQryquery_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) ThenDim delta, last_build, last_build_time, last_build_daysIf IsNull(rsQry("delta")) Thendelta = 0Elsedelta = CLng(rsQry("delta"))End Iflast_build = rsQry("last_build")last_build_time = rsQry("last_build_hours")last_build_days = rsQry("last_build_days")If delta < (60*60*24) ThenGetLastBuildAge = last_build_timeElseGetLastBuildAge = last_buildEnd IfEnd IfrsQry.Close()Set rsQry = nothingEnd Function'--------------------------------------------------------------------------------------------------------------------------Function GetModifiedSeqNo( rtagid)Dim query_string, rsQryquery_string = "SELECT SEQNUM FROM RELEASE_MODIFIED WHERE RTAG_ID = " & rtagidSet rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )If (NOT rsQry.BOF) AND (NOT rsQry.EOF) ThenGetModifiedSeqNo = rsQry("SEQNUM")ElseGetModifiedSeqNo = "-"End IfrsQry.Close()Set rsQry = nothingEnd Function'--------------------------------------------------------------------------------------------------------------------------Function CheckConfigErrors (rtagId)Dim rsQry, queryCheckConfigErrors = falseOraDatabase.Parameters.Add "RTAG_ID", rtagId, 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 ThenIf rsQry("masterCount") <> 1 ThenCheckConfigErrors = trueEnd IfElseCheckConfigErrors = trueEnd IfrsQry.CloseSet rsQry = NothingIf bGetApplication("CheckToolset", TRUE) ThenIf NOT CheckConfigErrors 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 )If rsQry.RecordCount > 0 ThenCheckConfigErrors = trueEnd IfrsQry.CloseSet rsQry = NothingEnd IfEnd IfOraDatabase.Parameters.Remove "RTAG_ID"End Function'--------------------------------------------------------------------------------------------------------------------------Function Indefinitely_Paused()Dim rsQry2Dim query_string2Indefinitely_Paused = Falsequery_string2 = " select * from run_level_schedule rls where rls.indefinite_pause = 'P'"Set rsQry2 = OraDatabase.DbCreateDynaset( query_string2, ORADYN_DEFAULT )If rsQry2.RecordCount > 0 ThenIndefinitely_Paused = TrueEnd IfEnd Function'--------------------------------------------------------------------------------------------------------------------------Sub BuildMenuPaneIf parRtagId <> 0 Then %><fieldset class=body_rowg><legend class="body_scol">Build Menu</legend><div style="margin:3px"><a href="release_config.asp?rtag_id=<%=parRtagId%>" class="body_rowg">Configuration</a></div><div style="margin:3px"><a href="build_status.asp?rtag_id=<%=parRtagId%>" class="body_rowg">Build Status</a></div><div style="margin:3px"><a href="build_plan.asp?rtag_id=<%=parRtagId%>" class="body_rowg">Build Plan</a></div><div style="margin:3px"><a href="build_release_log.asp?rtag_id=<%=parRtagId%>" class="body_rowg">Build Log</a></div></fieldset><%End IfEnd Sub%>