Subversion Repositories DevTools

Rev

Rev 6269 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
183 brianf 1
<%
2
'=====================================================
3
'                daemon_status.asp
4
'=====================================================
5
%>
6
<%
7
 
8
Class DaemonStatus
9
 
10
private m_rsQryDS              '   m_rsQryDS is a record set containing daemon status details.  It is created by sub GetDaemonStatus or GetDaemonStatusForRelease
11
private m_bIndefinitelyPaused  '   m_bIndefinitelyPaused indicates if all deamons have been indefintely paused
12
 
13
'----------------------------------------------------------------------------------------------------------------------------------------------
14
' Constructor
15
Private Sub Class_Initialize()
16
  Set m_rsQryDS = Nothing
7063 dpurdie 17
  m_bIndefinitelyPaused = IndefPause
183 brianf 18
End Sub
19
 
20
'----------------------------------------------------------------------------------------------------------------------------------------------
21
' Queries the daemons status for all releases of a specified project
22
' Parameters:
23
'   iProjId is the specified project
24
Sub GetDaemonStatus(iProjId)
25
  OraDatabase.Parameters.Add "PROJ_ID",  iProjId,  ORAPARM_INPUT, ORATYPE_NUMBER
26
  Set m_rsQryDS = OraDatabase.DbCreateDynaset( GetQuery ("ReleaseDaemonStatus.sql"), ORADYN_DEFAULT )
27
  OraDatabase.Parameters.Remove "PROJ_ID"
28
End Sub
29
 
30
'----------------------------------------------------------------------------------------------------------------------------------------------
31
' Queries the daemons status for a specified release
32
' Parameters:
33
'   iRtagId is the specified release
34
Sub GetDaemonStatusForRelease(iRtagId)
35
  OraDatabase.Parameters.Add "RTAG_ID",  iRtagId,  ORAPARM_INPUT, ORATYPE_NUMBER
36
  Set m_rsQryDS = OraDatabase.DbCreateDynaset( GetQuery ("ReleaseDaemonStatusForRelease.sql"), ORADYN_DEFAULT )
37
  OraDatabase.Parameters.Remove "RTAG_ID"
38
End Sub
39
 
40
'----------------------------------------------------------------------------------------------------------------------------------------------
41
' Renders a bar chart to show the daemon status for a specified release
42
'   irtag_id: the specified release
43
'   isize: the status icon size in pixels
44
Sub RenderDaemonStatusForRelease(irtag_id,isize)
45
  Call GetDaemonStatusForRelease(irtag_id)
46
  Call RenderDaemonStatus(irtag_id,isize)
47
End Sub
48
 
49
'----------------------------------------------------------------------------------------------------------------------------------------------
50
' Gets the daemon summary for a specified release
51
' Parameters:
52
'   irtag_id: the specified release
53
' Assumes GetDaemonStatus or GetDaemonStatusForRelease has already been called
54
'
55
Function GetDaemonSummary(irtag_id)
56
  Dim iDmStsStatus
57
 
58
  Dim sDmStsToolTip
59
  Dim sDmStsSearch
60
  Dim iDmStsTotalUnavailable
61
  Dim iDmStsTotalTimedout
62
  Dim iDmStsTotalEnabled
63
  Dim iDmStsTotalDisabled
64
  Dim iDmStsTotalPaused
65
  Dim iDmStsTotalEngaged
66
  Dim iDmStsTotalRunning
67
  Dim iDmStsTotal
68
 
69
  ' Get status summary for showing in the bar chart popup tooltip
70
  ' Get daemons for specified release
71
  sDmStsSearch="rtag_id=" & irtag_id
72
  m_rsQryDS.FindFirst(sDmStsSearch)
73
 
74
  iDmStsTotal=0             ' total daemons
75
  iDmStsTotalRunning=0      ' total running
76
  iDmStsTotalTimedout=0     ' total timed out
77
  iDmStsTotalUnavailable=0  ' total unavailable
78
  iDmStsTotalEnabled=0      ' total enabled
79
  iDmStsTotalPaused=0       ' total paused
80
  iDmStsTotalDisabled=0     ' total disabled
81
  iDmStsTotalEngaged=0      ' total enagaged
82
 
83
  ' Loop through each daemon and get summary totals
84
  Do While Not m_rsQryDS.NoMatch
85
    iDmStsStatus=CInt(m_rsQryDS("status"))
86
    iDmStsTotal = iDmStsTotal + 1
87
    Select Case iDmStsStatus
88
      Case -1
89
        iDmStsTotalUnavailable= iDmStsTotalUnavailable + 1
90
      Case -2
91
        iDmStsTotalTimedout= iDmStsTotalTimedout + 1
92
        iDmStsTotalRunning=iDmStsTotalRunning + 1
93
      Case 0 ' if enabled
94
        iDmStsTotalEnabled= iDmStsTotalEnabled + 1
95
        iDmStsTotalRunning=iDmStsTotalRunning + 1
96
      Case 1 ' if paused
97
        iDmStsTotalPaused= iDmStsTotalPaused + 1
98
      Case 2 ' if disabled
99
        iDmStsTotalDisabled= iDmStsTotalDisabled + 1
100
      Case 3 ' if engaged
101
        iDmStsTotalEngaged= iDmStsTotalEngaged + 1
102
        iDmStsTotalRunning=iDmStsTotalRunning + 1
103
    End Select
104
    m_rsQryDS.FindNext(sDmStsSearch)
105
  Loop
106
 
107
  If iDmStsTotal = 0 Then
108
    sDmStsToolTip= "No daemons found." & "&#13;"
109
  ElseIf m_bIndefinitelyPaused Then
110
    sDmStsToolTip= "WARNING: Build Daemons are all stopped." & "&#13;" & "Please contact an administrator." & "&#13;"
111
  Else
112
    sDmStsToolTip = ""
113
    If iDmStsTotalRunning > 0 Then
114
      sDmStsToolTip = sDmStsToolTip & iDmStsTotalRunning & " daemon" & iif(iDmStsTotalRunning > 1,"s","") & " running." & "&#13;"
115
    End If
116
    If iDmStsTotalPaused > 0 Then
117
      sDmStsToolTip = sDmStsToolTip & iDmStsTotalPaused & " daemon" & iif(iDmStsTotalPaused > 1,"s","") & " paused." & "&#13;"
118
    End If
119
    If iDmStsTotalDisabled > 0 Then
120
      sDmStsToolTip = sDmStsToolTip & iDmStsTotalDisabled & " daemon" & iif(iDmStsTotalDisabled > 1,"s","") & " disabled." & "&#13;"
121
    End If
122
    If iDmStsTotalUnavailable > 0 Then
123
      sDmStsToolTip = sDmStsToolTip & iDmStsTotalUnavailable & " daemon" & iif(iDmStsTotalUnavailable > 1,"s","") & " unavailable." & "&#13;"  
124
    End If
125
    'If iDmStsTotalEngaged > 0 Then
126
    '  sDmStsToolTip = sDmStsToolTip & iDmStsTotalEngaged & " daemon" & iif(iDmStsTotalEngaged > 1,"s","") & " engaged in a build." & "&#13;"
127
    'End If
128
    'If iDmStsTotalTimedout > 0 Then
129
    '  sDmStsToolTip = sDmStsToolTip & iDmStsTotalTimedout & " daemon" & iif(iDmStsTotalTimedout > 1,"s","") & " timedout." & "&#13;"
130
    'End If
131
  End If
132
 
133
  sDmStsToolTip = sDmStsToolTip & "Click to view details."
134
  GetDaemonSummary = sDmStsToolTip  
135
End Function
136
 
137
'----------------------------------------------------------------------------------------------------------------------------------------------
138
' Renders a bar chart to show the daemon status for a specified release
139
' Parameters:
140
'   irtag_id: the specified release
141
'   isize: the status icon size in pixels
142
' Assumes GetDaemonStatus or GetDaemonStatusForRelease has already been called
143
'
144
Sub RenderDaemonStatus(irtag_id,isize)
145
  Dim iDmStsStatus
146
  Dim sDmStsImg
147
  Dim sDmStsToolTip
148
  Dim sDmStsSearch
149
  Dim iheight
150
  Dim iWidth
151
  Dim iWidthEnd
4867 dpurdie 152
  Dim sDmStsAge
153
  Dim sDmStsAgeTip
154
  Dim bTestAge
6269 dpurdie 155
  Dim bIsDeprecated
156
  Dim bHasDeprecated : bHasDeprecated = false
183 brianf 157
 
158
  iHeight=isize
159
  ' the status icon default dimensions are height:48 and width:30
160
  ' ie. ratio of height to width is 16:10 
161
  ' the bar end icon default dimensions are height:48 and width:8
162
  ' ie. ratio of height to bar end is 16:3 
163
  iWidth = Round(iSize*10/16)
164
  iWidthEnd = Round(iSize*3/16)
165
 
166
  ' First, get status summary for showing in the bar chart popup tooltip
167
  sDmStsToolTip = GetDaemonSummary(irtag_id)
168
 
169
  sDmStsSearch="rtag_id=" & irtag_id
170
  m_rsQryDS.FindFirst(sDmStsSearch)
171
 
172
  ' Now, create deamon bar chart for the specified release
5009 dpurdie 173
  Response.Write("<table border=0 cellpadding=0 cellspacing=0 width=""100%""" & " onClick=""location.href='build_status.asp?rtag_id=" & irtag_id & "';""" & " style=""cursor:hand"">")
183 brianf 174
  ' Add in tooltip generated above
175
  Response.Write("<tr valign=middle title=""" & sDmStsToolTip & """>")
176
  Response.Write("<td>")
177
  Response.Write("<table border=0 cellpadding=0 cellspacing=0>")
178
  Response.Write("<tr>")
179
  ' add left side of chart
180
  Response.Write("<td>")
181
  Response.Write("<img src=""icons/tdmsts_left.gif"" width=" & iWidthEnd & " height=" & iHeight & " border=0 vspace=0 hspace=0>")
182
  Response.Write("</td>")
183
  IF m_rsQryDS.NoMatch  Then
184
    Response.Write("<td>")
185
    Response.Write("<img src=""icons/tdmsts_notfound.gif"" width=" & iWidth & " height=" & iHeight & " border=0 vspace=0 hspace=0>")
186
    Response.Write("</td>")
187
  Else
188
    'add an icon for each daemon
189
    Do While Not m_rsQryDS.NoMatch
4867 dpurdie 190
      bTestAge = true
6269 dpurdie 191
      bIsDeprecated = m_rsQryDS("active") = "N"
192
      iDmStsStatus=CInt(m_rsQryDS("status"))
4867 dpurdie 193
 
6269 dpurdie 194
      If bIsDeprecated Then
195
        bHasDeprecated = true
196
        sDmStsImg="icons/tdmsts_notfound.gif"
197
        sDmStsToolTip="Daemon Deprecated." & "&#13;"
198
        bTestAge = false
199
      ElseIf m_bIndefinitelyPaused Then
183 brianf 200
        sDmStsImg="icons/tdmsts_stopped.gif"
201
        sDmStsToolTip="Daemon indefinitley paused." & "&#13;"
4867 dpurdie 202
        bTestAge = false
183 brianf 203
      ElseIf iDmStsStatus = -2 Then
204
        sDmStsImg="icons/tdmsts_timedout.gif"
205
        sDmStsToolTip="Daemon timed out." & "&#13;"
206
      ElseIf iDmStsStatus = -1 Then
207
        sDmStsImg="icons/tdmsts_unavailable.gif"
208
        sDmStsToolTip="Daemon unavailable." & "&#13;"
4867 dpurdie 209
        bTestAge = false
183 brianf 210
      ElseIf iDmStsStatus = 0 Then
211
        sDmStsImg="icons/tdmsts_started.gif"
212
        sDmStsToolTip="Daemon running." & "&#13;"
213
      ElseIf iDmStsStatus = 1 Then
214
        sDmStsImg="icons/tdmsts_paused.gif"
215
        sDmStsToolTip="Daemon paused." & "&#13;"
216
      ElseIf iDmStsStatus = 2 Then
217
        sDmStsImg="icons/tdmsts_stopped.gif"
218
        sDmStsToolTip="Daemon stopped." & "&#13;"
4867 dpurdie 219
        bTestAge = false
183 brianf 220
      ElseIf iDmStsStatus = 3 Then
221
        sDmStsImg="icons/tdmsts_engaged.gif"
222
        sDmStsToolTip="Daemon engaged in a build." & "&#13;"
223
      End If
224
 
225
      If sDmStsToolTip <> "" Then
4525 dpurdie 226
        sDmStsToolTip = sDmStsToolTip & "Click to view details." 
183 brianf 227
      End If
228
 
4867 dpurdie 229
      If bTestAge AND m_rsQryDS("daemon_mode") = "M" Then
230
        Dim nBuildAge
231
        Dim nLastBuildDays
232
 
233
        nBuildAge = NiceInt(m_rsQryDS("build_age"), 31)
234
        nLastBuildDays = NiceInt(m_rsQryDS("last_build_days"), 31)
235
 
236
        If nBuildAge > 0  Then
237
            If nLastBuildDays > nBuildAge Then
238
              sDmStsAge = "images/s_warning.gif"
239
              sDmStsAgeTip = "No Build in this release since " & m_rsQryDS("last_build")  & ". [" & m_rsQryDS("last_build_days") & " Days]"
240
            End If
241
        End If
242
      End If
243
 
183 brianf 244
      Response.Write("<td>")
245
      Response.Write("<img src=""" & sDmStsImg & """ width=" & iWidth & " height=" & iHeight & " border=0 vspace=0 hspace=0 " & iif(sDmStsToolTip <> "","title='" & sDmStsToolTip & "'","") & ">")
246
      Response.Write("</td>")
247
      m_rsQryDS.FindNext(sDmStsSearch)
248
    Loop
4867 dpurdie 249
 
183 brianf 250
  End If
251
  ' add right side of chart
252
  Response.Write("<td>")
253
  Response.Write("<img src=""icons/tdmsts_right.gif"" width=" & iWidthEnd & " height=" & iHeight & " border=0 vspace=0 hspace=0>")
254
  Response.Write("</td>")
6269 dpurdie 255
  If sDmStsAge <> "" Then
256
    Response.Write("<td>")
257
    Response.Write("<img src=""" & sDmStsAge & """ width=14 height=13 border=0 vspace=0 hspace=0 " & "title='" & sDmStsAgeTip & "'" & ">")
258
    Response.Write("</td>")
259
  End If
260
  If bHasDeprecated Then
261
    Response.Write("<td>")
262
    Response.Write("<img src=""images/s_warning.gif"" width=14 height=13 border=0 vspace=0 hspace=0 " & "title='" & "One or more daemons have been deprecated" & "'" & ">")
263
    Response.Write("</td>")
264
  End If
4867 dpurdie 265
 
183 brianf 266
  Response.Write("</tr>")
267
  Response.Write("</table>")
268
  Response.Write("</td>")
269
  Response.Write("</tr>")
270
  Response.Write("</table>")
271
End Sub
272
 
273
'----------------------------------------------------------------------------------------------------------------------------------------------
274
' Destructor
275
Sub Class_Terminate
276
  m_rsQryDS.Close
277
  Set m_rsQryDS = Nothing
278
End Sub
279
 
280
End Class
281
 
282
%>