Subversion Repositories DevTools

Rev

Rev 4487 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4487 Rev 4686
Line 1... Line -...
1
 
-
 
2
<%@LANGUAGE="VBSCRIPT"%>
1
<%@LANGUAGE="VBSCRIPT"%>
3
<%
2
<%
4
'=====================================================
3
'=====================================================
5
'|                                                   |
4
'|                                                   |
6
'|         ADMIN Build Status Information            |
5
'|         ADMIN Build Status Information            |
Line 20... Line 19...
20
<!--#include file="common/_form_window_common.asp"-->
19
<!--#include file="common/_form_window_common.asp"-->
21
<%
20
<%
22
'------------ ACCESS CONTROL ------------------
21
'------------ ACCESS CONTROL ------------------
23
%>
22
%>
24
<!--#include file="_access_control_general.asp"-->
23
<!--#include file="_access_control_general.asp"-->
-
 
24
<!-- Only used locally for display purposes -->
-
 
25
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="common/DictDump.vbs"></SCRIPT> 
25
<%
26
<%
26
'------------ Variable Definition -------------
27
'------------ Variable Definition -------------
27
Dim rsQry
28
Dim rsQry
28
Dim query_string
29
Dim query_string
29
Dim styleAlt1
30
Dim styleAlt1
Line 31... Line 32...
31
Dim styleNow
32
Dim styleNow
32
Dim param_refreshPeriod
33
Dim param_refreshPeriod
33
Dim param_inactivity
34
Dim param_inactivity
34
Dim param_refreshEnabled
35
Dim param_refreshEnabled
35
Dim bIndefinitelyPaused
36
Dim bIndefinitelyPaused
-
 
37
Dim buildStatus
-
 
38
 
-
 
39
Dim bShowProblemDaemonSets    ' Indicates if problem daemons must be shown during filtering
-
 
40
Dim bShowDisabledDaemons      ' Indicates if a disabled daemon must be shown during filtering
-
 
41
Dim bShowActiveBuilds         ' Indicates if active builds must be shown during filtering
-
 
42
Dim bShowIdleBuilds           ' Indicates if idle builds must be shown during filtering
-
 
43
Dim bShowPausedBuilds         ' Indicates if paused builds must be shown during filtering
-
 
44
 
36
'------------ Constants Declaration -----------
45
'------------ Constants Declaration -----------
37
Const Min_Refresh_Time = 10         ' Seconds
46
Const Min_Refresh_Time = 10         ' Seconds
38
Const Max_Delta = 600               ' Seconds
47
Const Max_Delta = 600               ' Seconds
39
Const Max_DeltaBuild = 31           ' Days
48
Const Max_DeltaBuild = 31           ' Days
40
'------------ Variable Init -------------------
49
'------------ Variable Init -------------------
41
 
50
 
42
styleAlt1="class='body_rowg1'"
51
styleAlt1="class='body_rowg1'"
43
styleAlt2="class='body_rowg2'"
52
styleAlt2="class='body_rowg2'"
44
styleNow = styleAlt1
53
styleNow = styleAlt1
45
 
-
 
46
'----------------------------------------------
54
'----------------------------------------------
47
%>
55
%>
48
<%
56
<%
-
 
57
'------------------------------------------------------------------------------
-
 
58
'   Populate the buildStatus dictionary
-
 
59
'   Get all the required data into a hash of hashes
-
 
60
'   It will make the following processing so much easier
-
 
61
'
-
 
62
Sub getBuildStatus
-
 
63
    Dim bms
-
 
64
    query_string = "SELECT rc.RCON_ID, " &_
-
 
65
                  "       rc.RTAG_ID, " &_
-
 
66
                  "       bm.DISPLAY_NAME, " &_
-
 
67
                  "       rc.DAEMON_MODE, "&_
-
 
68
                  "       rt.RTAG_NAME, " &_
-
 
69
                  "       rt.OFFICIAL, " &_
-
 
70
                  "       p.PROJ_ID, " &_
-
 
71
                  "       p.PROJ_NAME, " &_
-
 
72
                  "       rl.CURRENT_PKG_ID_BEING_BUILT, "&_
-
 
73
                  "       rl.CURRENT_RUN_LEVEL, "&_
-
 
74
                  "       NVL(rl.PAUSE,0) as PAUSE, " &_
-
 
75
                  "       TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta," &_
-
 
76
                  "       TO_CHAR(rl.LAST_BUILD, 'DD-MON-YYYY') as last_build," &_
-
 
77
                  "       TRUNC (SYSDATE - rl.LAST_BUILD) as last_build_days," &_
-
 
78
                  "       pkg.PKG_NAME" &_
-
 
79
                  " FROM RELEASE_CONFIG rc, RELEASE_TAGS rt, PROJECTS p, RUN_LEVEL rl, BUILD_MACHINE_CONFIG bm, PACKAGES pkg " &_
-
 
80
                  " WHERE rt.RTAG_ID = rc.RTAG_ID " &_
-
 
81
                  "   AND rc.bmcon_id is not null" &_
-
 
82
                  "   AND rt.PROJ_ID = p.PROJ_ID " &_
-
 
83
                  "   AND rt.OFFICIAL != 'A' " &_
-
 
84
                  "   AND rt.OFFICIAL != 'Y' " &_
-
 
85
                  "   AND rl.RCON_ID = rc.RCON_ID" &_
-
 
86
                  "   AND rc.bmcon_id = bm.bmcon_id(+)" &_
-
 
87
                  "   AND pkg.PKG_ID(+) = rl.CURRENT_PKG_ID_BEING_BUILT" &_
-
 
88
                  " ORDER BY p.PROJ_NAME, rt.RTAG_NAME, rc.DAEMON_MODE, bm.DISPLAY_NAME, rc.DAEMON_MODE"
-
 
89
 
-
 
90
    Set buildStatus = CreateObject("Scripting.Dictionary")
-
 
91
    Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
-
 
92
    Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
-
 
93
        Set bms = CreateObject("Scripting.Dictionary")
-
 
94
 
-
 
95
        bms.Item("RCON_ID")                     = rsQry("RCON_ID")
-
 
96
        bms.Item("RTAG_ID")                     = rsQry("RTAG_ID")
-
 
97
        bms.Item("DISPLAY_NAME")                = rsQry("DISPLAY_NAME")
-
 
98
        bms.Item("RTAG_NAME")                   = rsQry("RTAG_NAME")
-
 
99
        bms.Item("DAEMON_MODE")                 = rsQry("DAEMON_MODE")
-
 
100
        bms.Item("OFFICIAL")                    = rsQry("OFFICIAL")
-
 
101
        bms.Item("PROJ_ID")                     = rsQry("PROJ_ID")
-
 
102
        bms.Item("PROJ_NAME")                   = rsQry("PROJ_NAME")
-
 
103
        bms.Item("CURRENT_PKG_ID_BEING_BUILT")  = rsQry("CURRENT_PKG_ID_BEING_BUILT")
-
 
104
        bms.Item("CURRENT_RUN_LEVEL")           = rsQry("CURRENT_RUN_LEVEL")
-
 
105
        bms.Item("PAUSE")                       = CInt(rsQry("PAUSE"))
-
 
106
        bms.Item("delta")                       = rsQry("delta")
-
 
107
        bms.Item("last_build")                  = rsQry("last_build")
-
 
108
        bms.Item("last_build_days")             = NiceInt(rsQry("last_build_days"), 100)
-
 
109
        bms.Item("PKG_NAME")                    = rsQry("PKG_NAME")
-
 
110
 
-
 
111
        ' Calculate some values
-
 
112
        bms.Item("dState") = Classify_Run_Level(bms.Item("CURRENT_RUN_LEVEL"),_
-
 
113
                                                bIndefinitelyPaused,_
-
 
114
                                                bms.Item("PAUSE"), _
-
 
115
                                                bms.Item("delta") ,_
-
 
116
                                                bms.Item("CURRENT_PKG_ID_BEING_BUILT"))
-
 
117
 
-
 
118
        bms.Item("dStateText") = Get_Run_Level(bms.Item("CURRENT_RUN_LEVEL"),_
-
 
119
                                               bIndefinitelyPaused,_
-
 
120
                                               bms.Item("PAUSE"))
-
 
121
 
-
 
122
        ' Kill package name on disabled daemons
-
 
123
        If bms.Item("PAUSE") = 2 Then bms.Item("PKG_NAME") = Null
-
 
124
 
-
 
125
 
-
 
126
        ' Add to buildStatus
-
 
127
        '   This is a three level hash (Project,Release, Daemon)
-
 
128
 
-
 
129
        Dim ProjRef, RelRef, DRef
-
 
130
        ProjRef = bms.Item("PROJ_NAME")
-
 
131
        RelRef  = bms.Item("RTAG_NAME")
-
 
132
        DRef    = bms.Item("DISPLAY_NAME")
-
 
133
 
-
 
134
        If  Not buildStatus.Exists(ProjRef) Then
-
 
135
            Set buildStatus(ProjRef) = CreateObject("Scripting.Dictionary")
-
 
136
            buildStatus(ProjRef).Item("count") = 0
-
 
137
            Set buildStatus(ProjRef).Item("data") = CreateObject("Scripting.Dictionary")
-
 
138
        End If
-
 
139
 
-
 
140
        If  Not buildStatus(ProjRef).Item("data").Exists(RelRef) Then
-
 
141
            Set buildStatus(ProjRef).Item("data").Item(RelRef) = CreateObject("Scripting.Dictionary")
-
 
142
            buildStatus(ProjRef).Item("data").Item(RelRef).Item("count") = 0
-
 
143
            Set buildStatus(ProjRef).Item("data").Item(RelRef).Item("data") = CreateObject("Scripting.Dictionary")
-
 
144
        End If
-
 
145
 
-
 
146
        buildStatus(ProjRef).Item("count") =  buildStatus(ProjRef).Item("count") + 1
-
 
147
        buildStatus(ProjRef).Item("data").Item(RelRef).Item("count") =  buildStatus(ProjRef).Item("data").Item(RelRef).Item("count") + 1
-
 
148
        Set buildStatus(ProjRef).Item("data").Item(RelRef).Item("data").Item(DRef) = bms
-
 
149
 
-
 
150
        rsQry.MoveNext
-
 
151
    Loop
-
 
152
    rsQry.Close()
-
 
153
    Set rsQry = nothing
-
 
154
 
-
 
155
    ' Iterate over each deamon set and flag some of its characteristics
-
 
156
    '   This could be done inline, as the data is processed from the SQL source
-
 
157
    Dim project,release,machine
-
 
158
    Dim eProject,eRelease,eMachine
-
 
159
    For Each project in buildStatus
-
 
160
        Set eProject = buildStatus.Item(project)
-
 
161
        For Each release in eProject.Item("data")
-
 
162
            Set eRelease = eProject.Item("data").Item(release)
-
 
163
            For Each machine in eRelease.Item("data")
-
 
164
                Set eMachine = eRelease.Item("data").Item(machine)
-
 
165
 
-
 
166
                Dim dState
-
 
167
                dState = eMachine.Item("dState")
-
 
168
 
-
 
169
                If dState = "active" Then
-
 
170
                    If bShowActiveBuilds Then eMachine.Item("bRow_displayed") = "ShowActive"
-
 
171
                ElseIf dState = "idle" Then
-
 
172
                    If bShowIdleBuilds Then eMachine.Item("bRow_displayed") = "ShowIdle"
-
 
173
                ElseIf dState = "paused" Then
-
 
174
                    If bShowPausedBuilds Then eMachine.Item("bRow_displayed") = "ShowPaused"
-
 
175
                ElseIf dState = "disabled" Then
-
 
176
                    If bShowDisabledDaemons Then eMachine.Item("bRow_displayed") = "ShowDisabled"
-
 
177
                ElseIf dState = "problem" Then
-
 
178
                    If bShowProblemDaemonSets Then eMachine.Item("bRow_displayed") = "ShowProblem"
-
 
179
                    If bShowProblemDaemonSets Then eRelease.Item("bDisplay_whole_set") = true
-
 
180
                Else
-
 
181
                    eRelease.Item("bDisplay_whole_set") = true
-
 
182
                    eMachine.Item("bRow_displayed") = "ShowUnknownState"
-
 
183
                End If
-
 
184
 
-
 
185
                If bShowProblemDaemonSets AND eMachine.Item("last_build_days") > param_inactivity Then
-
 
186
                   If dState = "active" OR dState = "idle" Then
-
 
187
                      eRelease.Item("bDisplay_whole_set") = true
-
 
188
                      eRelease.Item("bShowAge") = true
-
 
189
                      eMachine.Item("bRow_displayed") = "ShowInactiveWarning"
-
 
190
                   End If
-
 
191
                End If
-
 
192
 
-
 
193
                If eMachine.Exists("bRow_displayed") Then
-
 
194
                    eRelease.Item("bDisplay_some") = true
-
 
195
                End If
-
 
196
 
-
 
197
            Next
-
 
198
        Next
-
 
199
    Next
-
 
200
 
-
 
201
'   '
-
 
202
'   '   Iterate again and delete elements that we are not going to display
-
 
203
'   '
-
 
204
'   For Each project in buildStatus
-
 
205
'       Set eProject = buildStatus.Item(project)
-
 
206
'       For Each release in eProject.Item("data")
-
 
207
'           Set eRelease = eProject.Item("data").Item(release)
-
 
208
'           If NOT (eRelease.Exists("bDisplay_some") OR eRelease.Exists("bDisplay_whole_set")) Then
-
 
209
'               eProject.Item("data").Remove(release)
-
 
210
'           End If
-
 
211
'       Next
-
 
212
'   Next
-
 
213
 
-
 
214
    'Response.Write "<br>Pretty Dictionary Display<pre>"
-
 
215
    'Response.Write DICToutput(buildStatus)
-
 
216
 
-
 
217
End Sub
-
 
218
 
49
'--------------------------------------------------------------------------------------------------------------------------
219
'--------------------------------------------------------------------------------------------------------------------------
50
' Like Cint, but handles NULL by replacing it with a default value
220
' Like Cint, but handles NULL by replacing it with a default value
51
Function NiceInt( val, def)
221
Function NiceInt( val, def)
52
   If isNull(val) Then
222
   If isNull(val) Then
53
       NiceInt = def
223
       NiceInt = def
Line 158... Line 328...
158
         If releaseChanged Then
328
         If releaseChanged Then
159
            s = s + "<td></td>"
329
            s = s + "<td></td>"
160
            s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
330
            s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
161
         Else
331
         Else
162
            s = s + "<td></td>"
332
            s = s + "<td></td>"
163
            s = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
333
            's = s + "<td colspan='7' background='images/bg_rep_line.gif'><img src='images/spacer.gif' width='1' height='1'></td>"
164
         End If
334
         End If
165
         s = s + "</tr>"
335
         s = s + "</tr>"
166
      End If
336
      End If
167
   End If
337
   End If
168
   HTML_Row_Divider = s
338
   HTML_Row_Divider = s
Line 229... Line 399...
229
    Else
399
    Else
230
          Filter_Is_On = False
400
          Filter_Is_On = False
231
    End If
401
    End If
232
End Function
402
End Function
233
'--------------------------------------------------------------------------------------------------------------------------
403
'--------------------------------------------------------------------------------------------------------------------------
234
' Get name of package given its ID. Return empty string if not able to do so.
-
 
235
Function Get_Pkg_Name( nPkgId )
-
 
236
   Dim rsQry2
-
 
237
   Dim query_string2
-
 
238
 
-
 
239
   Get_Pkg_Name = ""
-
 
240
   If (NOT IsNull(nPkgId)) AND (nPkgId <> "") Then
-
 
241
 
-
 
242
      query_string2 = "SELECT pkg.PKG_NAME " &_
-
 
243
                     "  FROM PACKAGES pkg" &_
-
 
244
                     " WHERE pkg.PKG_ID = " & nPkgId
-
 
245
 
-
 
246
      Set rsQry2 = OraDatabase.DbCreateDynaset( query_string2, ORADYN_DEFAULT )
-
 
247
      If rsQry2.RecordCount > 0 Then
-
 
248
         Get_Pkg_Name = rsQry2("pkg_name")
-
 
249
      End If
-
 
250
      rsQry2.Close()
-
 
251
      Set rsQry2 = nothing
-
 
252
   End If
-
 
253
End Function
-
 
254
'--------------------------------------------------------------------------------------------------------------------------
-
 
255
Function Indefinitely_Paused()
404
Function Indefinitely_Paused()
256
   Dim rsQry2
405
   Dim rsQry2
257
   Dim query_string2
406
   Dim query_string2
258
 
407
 
259
   Indefinitely_Paused = False
408
   Indefinitely_Paused = False
Line 335... Line 484...
335
 
484
 
336
' Read the Inactivity Period
485
' Read the Inactivity Period
337
param_inactivity = NiceInt( Request("Inactivity"), Max_DeltaBuild)
486
param_inactivity = NiceInt( Request("Inactivity"), Max_DeltaBuild)
338
If param_inactivity  = 0 Then param_inactivity = Max_DeltaBuild
487
If param_inactivity  = 0 Then param_inactivity = Max_DeltaBuild
339
 
488
 
340
 
-
 
341
' Get indefinite pause status
489
' Get indefinite pause status
342
bIndefinitelyPaused = Indefinitely_Paused()
490
bIndefinitelyPaused = Indefinitely_Paused()
343
 
491
 
-
 
492
' Populate display controls
-
 
493
bShowProblemDaemonSets = Filter_Is_On("problemBuilds")
-
 
494
bShowActiveBuilds      = Filter_Is_On("activeBuilds")
-
 
495
bShowDisabledDaemons   = Filter_Is_On("disabledDaemons")
-
 
496
bShowIdleBuilds        = Filter_Is_On("idleBuilds")
-
 
497
bShowPausedBuilds      = Filter_Is_On("pausedBuilds")
-
 
498
 
344
'----------------------------------------------
499
'----------------------------------------------
345
%>
500
%>
346
<script language="JavaScript" type="text/javascript">
501
<script language="JavaScript" type="text/javascript">
347
<!--
502
<!--
348
 
503
 
Line 704... Line 859...
704
      <!-- TIPS LAYERS -------------------------------------->
859
      <!-- TIPS LAYERS -------------------------------------->
705
      <div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
860
      <div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
706
      <!----------------------------------------------------->
861
      <!----------------------------------------------------->
707
      <!-- HEADER -->
862
      <!-- HEADER -->
708
      <!--#include file="_header.asp"-->
863
      <!--#include file="_header.asp"-->
-
 
864
      <% getBuildStatus() %>
709
      <!-- BODY ---->
865
      <!-- BODY ---->
710
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
866
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
711
         <tr>
867
         <tr>
712
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
868
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
713
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
869
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
Line 786... Line 942...
786
                           <tr>
942
                           <tr>
787
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Project
943
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Project
788
                                 <input name="NOPRJ" id="NOPRJ" type="Button" value="All" onclick="toggle_all_projects(1)">
944
                                 <input name="NOPRJ" id="NOPRJ" type="Button" value="All" onclick="toggle_all_projects(1)">
789
                                 <input name="NOPRJ" id="NOPRJ" type="Button" value="None" onclick="toggle_all_projects(0)">
945
                                 <input name="NOPRJ" id="NOPRJ" type="Button" value="None" onclick="toggle_all_projects(0)">
790
                              </td>
946
                              </td>
-
 
947
                              <!-- Status Table Header -->
791
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release</td>
948
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release</td>
792
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release<br>Mode</td>
949
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Release<br>Mode</td>
793
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Mode</td>
950
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Mode</td>
794
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Host</td>
951
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>Host</td>
795
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>State</td>
952
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Daemon<br>State</td>
796
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Building<br>Package</td>
953
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Building<br>Package</td>
797
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Last Change<br>Delta (secs)</td>
954
                              <td valign="middle" nowrap background="images/bg_table_col.gif" class="body_col">Last Change<br>Delta (secs)</td>
798
                           </tr>
955
                           </tr>
799
                           <%
-
 
800
 
-
 
801
                           query_string = "SELECT rc.RCON_ID, " &_
-
 
802
                                          "       rc.RTAG_ID, " &_
-
 
803
                                          "       bm.DISPLAY_NAME, " &_
-
 
804
                                          "       rc.DAEMON_MODE, "&_
-
 
805
                                          "       rt.RTAG_NAME, " &_
-
 
806
                                          "       rt.OFFICIAL, " &_
-
 
807
                                          "       p.PROJ_ID, " &_
-
 
808
                                          "       p.PROJ_NAME, " &_
-
 
809
                                          "       rl.CURRENT_PKG_ID_BEING_BUILT, "&_
-
 
810
                                          "       rl.CURRENT_RUN_LEVEL, "&_
-
 
811
                                          "       rl.PAUSE, " &_
-
 
812
                                          "       TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta," &_
-
 
813
                                          "       TO_CHAR(rl.LAST_BUILD, 'DD-MON-YYYY') as last_build," &_
-
 
814
                                          "       TRUNC (SYSDATE - rl.LAST_BUILD) as last_build_days" &_
-
 
815
                                          " FROM RELEASE_CONFIG rc, RELEASE_TAGS rt, PROJECTS p, RUN_LEVEL rl, BUILD_MACHINE_CONFIG bm " &_
-
 
816
                                          " WHERE rt.RTAG_ID = rc.RTAG_ID " &_
-
 
817
                                          "   AND rc.bmcon_id is not null" &_
-
 
818
                                          "   AND rt.PROJ_ID = p.PROJ_ID " &_
-
 
819
                                          "   AND rt.OFFICIAL != 'A' " &_
-
 
820
                                          "   AND rt.OFFICIAL != 'Y' " &_
-
 
821
                                          "   AND rl.RCON_ID = rc.RCON_ID" &_
-
 
822
                                          "   AND rc.bmcon_id = bm.bmcon_id(+)" &_
-
 
823
                                          " ORDER BY p.PROJ_NAME, rt.RTAG_NAME, rc.DAEMON_MODE, bm.DISPLAY_NAME"
-
 
824
 
-
 
825
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
-
 
826
 
-
 
827
                           ' String variables
-
 
828
                           Dim strProject_checked        ' Can be "" or "checked". Determines appearance of project enable checkbox
-
 
829
 
-
 
830
                           ' Boolean variables
-
 
831
                           Dim bProject_changed          ' signals a row change due to a different project
-
 
832
                           Dim bRelease_changed          ' signals a row change due to a different release
-
 
833
                           Dim bRow_displayed            ' signals whether a row should be displayed or not
-
 
834
                           Dim bRelease_link_displayed   ' indicates whether the release name has been rendered yet
-
 
835
                           Dim bDisplay_whole_set        ' forces the whole daemon set for a release to be displayed
-
 
836
                           Dim bShowProblemDaemonSets    ' Indicates if problem daemons must be shown during filtering
-
 
837
                           Dim bShowDisabledDaemons      ' Indicates if a disabled daemon must be shown during filtering
-
 
838
                           Dim bShowActiveBuilds         ' Indicates if active builds must be shown during filtering
-
 
839
                           Dim bShowIdleBuilds           ' Indicates if idle builds must be shown during filtering
-
 
840
                           Dim bShowPausedBuilds         ' Indicates if paused builds must be shown during filtering
-
 
841
                           Dim dState                    ' Decoded state of a daemon
-
 
842
                           Dim bProjectHeader            ' Project Header done
-
 
843
                           Dim bShowAge                  ' Display age warning
-
 
844
 
-
 
845
                           ' Integer variables
-
 
846
                           Dim pkgId
-
 
847
                           Dim curPkgId
-
 
848
                           Dim lastProjID                ' Used to detect project changes from one row to the next
-
 
849
                           Dim lastRtagId                ' Used to detect release changes from one row to the next
-
 
850
                           Dim daemonState
-
 
851
 
-
 
852
                           ' Initialise variables
-
 
853
                           strProject_checked = ""
-
 
854
 
-
 
855
                           bProject_changed = True
-
 
856
                           bRelease_changed = True
-
 
857
                           bRow_displayed   = True
-
 
858
                           bRelease_link_displayed = False
-
 
859
                           bDisplay_whole_set  = False
-
 
860
                           bShowProblemDaemonSets = Filter_Is_On("problemBuilds")
-
 
861
                           bShowActiveBuilds   = Filter_Is_On("activeBuilds")
-
 
862
                           bShowDisabledDaemons = Filter_Is_On("disabledDaemons")
-
 
863
                           bShowIdleBuilds = Filter_Is_On("idleBuilds")
-
 
864
                           bShowPausedBuilds = Filter_Is_On("pausedBuilds")
-
 
865
 
-
 
866
                           lastProjID = 0
-
 
867
                           lastRtagId = 0
-
 
868
 
-
 
869
                           bProjectHeader = false
-
 
870
 
-
 
871
                           Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
-
 
872
                              pkgId = rsQry("current_pkg_id_being_built")
-
 
873
                              bShowAge = False
-
 
874
 
-
 
875
                              ' determine if user has checked the project checkbox
-
 
876
                              strProject_checked = Is_Project_Checked(rsQry("proj_id"))
-
 
877
 
-
 
878
                              ' Has the project changed since the last row. If so, signal it via bProject_changed variable, and
-
 
879
                              ' reset the bRelease_link_displayed variable to force the display of the release column value on the
-
 
880
                              ' render of the next unfiltered row
-
 
881
                              bProject_changed = False
-
 
882
                              If lastProjID <> rsQry("proj_id") Then
-
 
883
                                 lastProjID =  rsQry("proj_id")
-
 
884
                                 bProject_changed = True
-
 
885
                                 bRelease_link_displayed = False
-
 
886
                                 bDisplay_whole_set = False
-
 
887
                              End If
-
 
888
 
-
 
889
                              ' Has the release changed since the last row of displayed data. If so, signal it via the bRelease_changed variable,
-
 
890
                              ' and reset the bRelease_link_displayed variable to force the display of the release column value on the
-
 
891
                              ' render of the next unfiltered row.
-
 
892
                              bRelease_changed = False
-
 
893
                              If lastRtagId <> rsQry("rtag_id") Then
-
 
894
                                 lastRtagId =  rsQry("rtag_id")
-
 
895
                                 bRelease_changed = True
-
 
896
                                 bRelease_link_displayed = False
-
 
897
                                 bDisplay_whole_set = False
-
 
898
                              End If
-
 
899
 
-
 
900
                              daemonState = rsQry("pause")
-
 
901
                              If IsNull(daemonState) Then
-
 
902
                                daemonState = 0
-
 
903
                              End If
-
 
904
 
-
 
905
                              ' generate the table row divider - this uses the bRow_displayed value from the previous iteration in order
-
 
906
                              ' to prevent dividers being drawn between rows that were not actually rendered due to any filtering that
-
 
907
                              ' may be in effect.
-
 
908
                              %>
-
 
909
                              <%=HTML_Row_Divider( bProject_changed, strProject_checked, bRelease_changed, bRow_displayed )%>
-
 
910
                              <%
-
 
911
 
-
 
912
                              ' If this is a Master Daemon, look ahead at all the slaves and evaluate if any daemons in the set appear to
-
 
913
                              ' be having a problem. If any are and the user has turned the "Show Problem Daemon Sets" filter on then
-
 
914
                              ' set the bDisplay_whole_set variable to True else set it to False
-
 
915
                              If rsQry("daemon_mode") = "M" Then
-
 
916
 
-
 
917
                                 ' Initial default value is to not show the entire daemon set
-
 
918
                                 bDisplay_whole_set = False
-
 
919
 
-
 
920
                                 ' Classify the state of the daemon as one of: active, idle, paused, disabled, problem, unknown
-
 
921
                                 If bShowProblemDaemonSets Then
-
 
922
                                     dState = Classify_Run_Level(rsQry("current_run_level"),bIndefinitelyPaused,daemonState, rsQry("delta") ,pkgId)
-
 
923
                                     If dState = "active" Then
-
 
924
                                     ElseIf dState = "idle" Then
-
 
925
                                     ElseIf dState = "paused" Then
-
 
926
                                     ElseIf dState = "disabled" Then
-
 
927
                                     ElseIf dState = "problem" Then
-
 
928
                                        bDisplay_whole_set = true
-
 
929
                                     Else
-
 
930
                                        bDisplay_whole_set = true
-
 
931
                                     End If
-
 
932
 
-
 
933
                                     If NiceInt(rsQry("last_build_days"), 100) > param_inactivity Then
-
 
934
                                         If dState = "active" OR dState = "idle" Then
-
 
935
                                            bDisplay_whole_set = true
-
 
936
                                            bShowAge = true
-
 
937
                                         End If
-
 
938
                                     End If
-
 
939
                                 End If
-
 
940
                                 
-
 
941
                                 ' If the filter is turned on and master daemon looks OK then check out the slaves
-
 
942
                                 ' If nothing appears wrong with the Master Daemon, look ahead at all the slaves in the set
-
 
943
                                 If bShowProblemDaemonSets AND NOT bDisplay_whole_set Then
-
 
944
                                       Dim thisRtagId
-
 
945
                                       Dim rtag_id_set_count
-
 
946
                                       Dim i
-
 
947
 
-
 
948
                                       thisRtagId = rsQry("rtag_id")
-
 
949
                                       rtag_id_set_count = 1
-
 
950
 
-
 
951
                                       rsQry.MoveNext
-
 
952
                                       Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF) AND rsQry("rtag_id") = thisRtagId
-
 
953
                                          rtag_id_set_count = rtag_id_set_count + 1
-
 
954
 
-
 
955
                                           dState = Classify_Run_Level(rsQry("current_run_level"),bIndefinitelyPaused,daemonState, rsQry("delta"),pkgId)
-
 
956
                                           If dState = "active" Then
-
 
957
                                           ElseIf dState = "idle" Then
-
 
958
                                           ElseIf dState = "paused" Then
-
 
959
                                           ElseIf dState = "disabled" Then
-
 
960
                                           ElseIf dState = "problem" Then
-
 
961
                                              bDisplay_whole_set = true
-
 
962
                                           Else
-
 
963
                                              bDisplay_whole_set = true
-
 
964
                                           End If
-
 
965
 
-
 
966
                                           If NiceInt(rsQry("last_build_days"), 100) > param_inactivity Then
-
 
967
                                               If dState = "active" OR dState = "idle" Then
-
 
968
                                                  bDisplay_whole_set = true
-
 
969
                                                  bShowAge = true
-
 
970
                                               End If
-
 
971
                                           End If
-
 
972
 
-
 
973
                                          rsQry.MoveNext
-
 
974
                                       Loop
-
 
975
                                       For i = 1 to rtag_id_set_count
-
 
976
                                          rsQry.MovePrevious
-
 
977
                                       Next
-
 
978
                                    End If
-
 
979
                              End If
-
 
980
 
-
 
981
 
-
 
982
                              ' Now figure out if this row of data is to be displayed or not
-
 
983
                              bRow_displayed  =   bDisplay_whole_set
-
 
984
                              If NOT bRow_displayed Then
-
 
985
                                  dState = Classify_Run_Level(rsQry("current_run_level"),bIndefinitelyPaused,daemonState, rsQry("delta"),pkgId)
-
 
986
                                  If dState = "active" Then
-
 
987
                                     If bShowActiveBuilds Then bRow_displayed = true
-
 
988
                                  ElseIf dState = "idle" Then
-
 
989
                                     If bShowIdleBuilds Then bRow_displayed = true
-
 
990
                                  ElseIf dState = "paused" Then
-
 
991
                                     If bShowPausedBuilds Then bRow_displayed = true
-
 
992
                                  ElseIf dState = "disabled" Then
-
 
993
                                     If bShowDisabledDaemons Then bRow_displayed = true
-
 
994
                                  ElseIf dState = "problem" Then
-
 
995
                                     If bShowProblemDaemonSets Then bRow_displayed = true
-
 
996
                                  Else
-
 
997
                                     bRow_displayed = true
-
 
998
                                  End If
-
 
999
                              End If
-
 
1000
 
-
 
1001
                              ' it a slightly different look to the previous displayed row which was for a different release
-
 
1002
                              If bRelease_changed AND bRow_displayed Then
-
 
1003
                                 Call ToggleStyleNow
-
 
1004
                              End If
-
 
1005
 
-
 
1006
                              ' Kill pkgId if daemon is disabled
-
 
1007
                              curPkgId = pkgId
-
 
1008
                              If daemonState = 2 Then
-
 
1009
                                  curPkgId = Null
-
 
1010
                              End If
-
 
1011
 
-
 
1012
                              ' Now we are ready to render the HTML content for the row, but we may still circumvent rendering if the user
-
 
1013
                              ' has unchecked the project checkbox
-
 
1014
                              %>
-
 
1015
                                 <%If bProject_changed Then%>
-
 
1016
                                    <tr>
-
 
1017
                                    <td nowrap class="body_rowg">
-
 
1018
                                       <input name='DIS_PRJ_<%=rsQry("proj_id")%>' id='DIS_PRJ_<%=rsQry("proj_id")%>' type='checkbox' value=1 <%=strProject_checked%> onclick=toggle_project(<%=rsQry("proj_id")%>)>
-
 
1019
                                       <a href='rtree.asp?proj_id=<%=rsQry("proj_id")%>'><%=rsQry("proj_name")%>
-
 
1020
                                    </td>
-
 
1021
                                 <%
-
 
1022
                                    bProjectHeader = true
-
 
1023
                                 Else
-
 
1024
                                    bProjectHeader = false
-
 
1025
                                 End If%>
-
 
1026
 
-
 
1027
                                 <%If strProject_checked = "checked" Then%>
-
 
1028
                                    <%If bRow_displayed Then%>
-
 
1029
 
-
 
1030
                                        <%If NOT bProjectHeader Then %>
-
 
1031
                                            <td nowrap class="body_rowg"></td>
-
 
1032
                                        <%End If%>
-
 
1033
 
-
 
1034
                                        <%If bRelease_changed OR NOT bRelease_link_displayed Then%>
-
 
1035
                                          <%bRelease_link_displayed = True%>
-
 
1036
                                          <td nowrap <%=styleNow%>><a href='build_status.asp?rtag_id=<%=rsQry("rtag_id")%>' title='Last Build:<%=rsQry("last_build")%>'><%=rsQry("rtag_name")%></a>
-
 
1037
                                       <%If bShowAge Then%>
-
 
1038
                                            <img src='images/s_warning.gif' width='14' height='13' border='0' title='No Build in this release since <%=rsQry("last_build")%>. [<%=rsQry("last_build_days")%> Days]' style='vertical-align: bottom;'>
-
 
1039
                                       <%End If %>
-
 
1040
                                          </td>
-
 
1041
                                        <%Else%>
-
 
1042
                                            <td nowrap <%=styleNow%>></td>
-
 
1043
                                        <%End If%>
-
 
1044
 
-
 
1045
                                        <td nowrap <%=styleNow%>><%=Get_Official(rsQry("official"))%></td>
-
 
1046
                                        <td nowrap <%=styleNow%>><%=Get_Daemon_Mode(rsQry("daemon_mode"))%></td>
-
 
1047
                                        <td nowrap <%=styleNow%>><%=rsQry("display_name")%></td>
-
 
1048
                                        <td nowrap <%=styleNow%>><%=Get_Run_Level(rsQry("current_run_level"), bIndefinitelyPaused,daemonState)%></td>
-
 
1049
                                        <td nowrap <%=styleNow%>><%=Get_Pkg_Name(curPkgId)%></td>
-
 
1050
                                        <td nowrap <%=styleNow%>><%=PrettyDelta(rsQry("delta"),daemonState,curPkgId )%></td>
-
 
1051
                                    <%End If%>
-
 
1052
                                 </tr>
-
 
1053
                                 <%End If%>
-
 
1054
                              <%
-
 
1055
                              rsQry.MoveNext
-
 
1056
                           Loop
-
 
1057
                           rsQry.Close()
-
 
1058
                           Set rsQry = nothing
-
 
1059
 
956
 
-
 
957
                           <!-- Status Table Body -->
-
 
958
                           <%
-
 
959
                            Dim bProject_changed          ' Signals a row change due to a different project
-
 
960
                            Dim strProject_checked        ' Can be "" or "checked". Determines appearance of project enable checkbox
-
 
961
                            Dim bRelease_changed          ' signals a row change due to a different release
-
 
962
                            Dim bRelease_link_displayed   ' indicates whether the release name has been rendered yet
-
 
963
                            Dim bRow_displayed            ' signals whether a row should be displayed or not
-
 
964
                            Dim bProjectHeader            ' Project Header done
-
 
965
                            Dim bShowAge                  ' Display age warning
-
 
966
                            Dim bToggleStyle              ' Data shown so toggle style
-
 
967
 
-
 
968
                            bRow_displayed = false
-
 
969
 
-
 
970
                            '   Iterate over all projects, releases and machines
-
 
971
                            '
-
 
972
                            Dim project,release,machine
-
 
973
                            Dim eProject,eRelease,eMachine
-
 
974
                            For Each project in buildStatus
-
 
975
                                ' Start of a new Project
-
 
976
                                Set eProject = buildStatus.Item(project)
-
 
977
                                bProject_changed = true
-
 
978
 
-
 
979
                                For Each release in eProject.Item("data")
-
 
980
                                    '   Start of a new Release
-
 
981
                                    Set eRelease = eProject.Item("data").Item(release)
-
 
982
                                    bRelease_link_displayed = False
-
 
983
                                    bRelease_changed = true
-
 
984
                                    bShowAge = eRelease("bShowAge")
-
 
985
                                    If  bToggleStyle Then Call ToggleStyleNow
-
 
986
                                    bToggleStyle = false
-
 
987
 
-
 
988
                                    For Each machine in eRelease.Item("data")
-
 
989
                                        '   Start of a new Machine
-
 
990
                                        Set eMachine = eRelease.Item("data").Item(machine)
-
 
991
 
-
 
992
                                        strProject_checked = Is_Project_Checked(eMachine("PROJ_ID"))
-
 
993
 
-
 
994
                                        Response.Write HTML_Row_Divider(bProject_changed, strProject_checked, bRelease_changed, bRow_displayed)
-
 
995
                                        bRow_displayed = False
-
 
996
 
-
 
997
                                        If bProject_changed Then%>
-
 
998
                                            <tr>
-
 
999
                                                <td nowrap class="body_rowg">
-
 
1000
                                                    <input name='DIS_PRJ_<%=eMachine("PROJ_ID")%>' id='DIS_PRJ_<%=eMachine("PROJ_ID")%>' type='checkbox' value=1 <%=strProject_checked%> onclick=toggle_project(<%=eMachine("PROJ_ID")%>)>
-
 
1001
                                                    <a href='rtree.asp?proj_id=<%=eMachine("PROJ_ID")%>'><%=eMachine("PROJ_NAME")%>
-
 
1002
                                                </td>
-
 
1003
                                            <%
-
 
1004
                                            bProjectHeader = true
-
 
1005
                                        Else
-
 
1006
                                            bProjectHeader = false
-
 
1007
                                        End If
-
 
1008
 
-
 
1009
                                        If strProject_checked = "checked" Then
-
 
1010
                                            bRow_displayed = eRelease.Exists("bDisplay_whole_set") OR eMachine.Exists("bRow_displayed")
-
 
1011
                                            If bRow_displayed Then
-
 
1012
                                                bToggleStyle = true
-
 
1013
 
-
 
1014
                                                If NOT bProjectHeader Then
-
 
1015
                                                    %><td nowrap class="body_rowg"></td><%
-
 
1016
                                                End If
-
 
1017
 
-
 
1018
                                                If bRelease_changed OR NOT bRelease_link_displayed Then
-
 
1019
                                                bRelease_link_displayed = True
-
 
1020
                                                %>
-
 
1021
                                                    <td nowrap <%=styleNow%>><a href='build_status.asp?rtag_id=<%=eMachine("RTAG_ID")%>' title='Last Build:<%=eMachine("last_build")%>'><%=eMachine("RTAG_NAME")%></a>
-
 
1022
                                                    <%
-
 
1023
                                                    If bShowAge Then
-
 
1024
                                                    %>
-
 
1025
                                                        <img src='images/s_warning.gif' width='14' height='13' border='0' title='No Build in this release since <%=eMachine("last_build")%>. [<%=eMachine("last_build_days")%> Days]' style='vertical-align: bottom;'>
-
 
1026
                                                    <%
-
 
1027
                                                    End If
-
 
1028
                                                    %></td><%
-
 
1029
                                                Else
-
 
1030
                                                    %><td nowrap <%=styleNow%>></td><%
-
 
1031
                                                End If
-
 
1032
                                                %>
-
 
1033
                                                <td nowrap <%=styleNow%>><%=Get_Official(eMachine("OFFICIAL"))%></td>
-
 
1034
                                                <td nowrap <%=styleNow%>><%=Get_Daemon_Mode(eMachine("DAEMON_MODE"))%></td>
-
 
1035
                                                <td nowrap <%=styleNow%>><%=eMachine("DISPLAY_NAME")%></td>
-
 
1036
                                                <td nowrap <%=styleNow%>><%=eMachine("dStateText")%></td>
-
 
1037
                                                <td nowrap <%=styleNow%>><%=eMachine("PKG_NAME")%></td>
-
 
1038
                                                <td nowrap <%=styleNow%>><%=PrettyDelta(eMachine("delta"),eMachine("PAUSE"),eMachine("PKG_NAME") )%></td>
-
 
1039
                                                <%
-
 
1040
                                            End If
-
 
1041
                                            %></tr><%
-
 
1042
                                        End If
-
 
1043
 
-
 
1044
                                        ' End of Display
-
 
1045
                                        bRelease_changed = false
-
 
1046
                                        bProject_changed = false
-
 
1047
                                    Next
-
 
1048
                                Next
-
 
1049
                            Next
1060
                           %>
1050
                           %>
1061
                        </table>
1051
                        </table>
-
 
1052
                     <!-- Status Table Footer -->
1062
                     </td>
1053
                     </td>
1063
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
1054
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
1064
                  </tr>
1055
                  </tr>
1065
                  <tr>
1056
                  <tr>
1066
                     <input type="hidden" name="action" value="true">
1057
                     <input type="hidden" name="action" value="true">