Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
119 ghuddy 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
121 hknight 5
'|              Build Status Information             |
119 ghuddy 6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
121 hknight 12
Response.Expires = 0  ' always load the page, dont store
119 ghuddy 13
%>
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/_form_window_common.asp"-->
20
<!--#include file="_action_buttons.asp"-->
21
<!--#include file="class/classActionButtonControl.asp"-->
147 ghuddy 22
<!--#include file="common/daemon_instructions.asp"-->
119 ghuddy 23
<%
24
objPMod.PersistInQryString("proj_id")
25
'------------ ACCESS CONTROL ------------------
133 ghuddy 26
'Let users view the build status without being logged in, but as soon as they try and submit the form, check
27
'their login status.
28
If Request("action") <> "" AND NOT objAccessControl.UserLogedIn Then%>
29
<!--#include file="_access_control_login.asp"-->
30
<!--#include file="_access_control_project.asp"-->
31
<%End If%>
119 ghuddy 32
<!--#include file="_access_control_general.asp"-->
3919 dpurdie 33
<% '------------ Scripts -------------------------- %>
34
<script type="text/javascript" src="scripts/json2.js"></script>
119 ghuddy 35
<%
36
'------------ Variable Definition -------------
37
Dim objSortHelper
38
Dim rsQry
39
Dim parRtagId
40
Dim parSourceRtagId
41
Dim query_string
133 ghuddy 42
Dim rcon_id
177 brianf 43
Dim shref_base
119 ghuddy 44
'------------ Constants Declaration -----------
45
'------------ Variable Init -------------------
46
parRtagId = Request("rtag_id")
47
objPMod.PersistInQryString("rtag_id")
3894 dpurdie 48
 
119 ghuddy 49
'----------------------------------------------
50
%>
51
<%
52
'--------------------------------------------------------------------------------------------------------------------------
53
Sub GetFormDetails ( parRtagId, ByRef outobjDetails )
133 ghuddy 54
   Dim rsQry, query
55
   OraDatabase.Parameters.Add "RTAG_ID",   parRtagId,    ORAPARM_INPUT, ORATYPE_NUMBER
56
   query = _
57
   " SELECT * "&_
58
   "  FROM RELEASE_TAGS rt"&_
59
   " WHERE rt.RTAG_ID = :RTAG_ID"
127 ghuddy 60
 
133 ghuddy 61
   Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
127 ghuddy 62
 
133 ghuddy 63
   OraDatabase.Parameters.Remove "RTAG_ID"
127 ghuddy 64
 
133 ghuddy 65
   If rsQry.RecordCount > 0 Then
66
      outobjDetails.Item ("rtag_id") = rsQry("rtag_id")
67
      outobjDetails.Item ("rtag_name") = rsQry("rtag_name")
68
   Else
69
      Err.Raise 8, "Sub GetFormDetails in "& ScriptName, "Empty record set returned. parRtagId="& parRtagId
70
   End If
127 ghuddy 71
 
133 ghuddy 72
   rsQry.Close
73
   Set rsQry = Nothing
119 ghuddy 74
End Sub
75
'--------------------------------------------------------------------------------------------------------------------------
76
Sub RipplePackage (flag)
127 ghuddy 77
 
133 ghuddy 78
   On Error Resume Next
79
   objEH.ErrorRedirect = TRUE
80
   OraDatabase.Parameters.Add "PV_ID_LIST",  Request("pv_id_list"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
81
   OraDatabase.Parameters.Add "RTAG_ID",     parRtag_id,  ORAPARM_INPUT, ORATYPE_NUMBER
82
   OraDatabase.Parameters.Add "USER_ID",     objAccessControl.UserId,  ORAPARM_INPUT, ORATYPE_NUMBER
119 ghuddy 83
 
133 ghuddy 84
   objEH.TryORA ( OraSession )
127 ghuddy 85
 
133 ghuddy 86
   If flag Then
87
      OraDatabase.ExecuteSQL _
88
      "BEGIN  Ripple_Package( :PV_ID_LIST, :RTAG_ID, :USER_ID );  END;"
89
   Else
90
      OraDatabase.ExecuteSQL _
91
      "BEGIN  UnRipple_Package( :PV_ID_LIST, :RTAG_ID, :USER_ID );  END;"
92
   End If
127 ghuddy 93
 
133 ghuddy 94
   objEH.CatchORA ( OraSession )
127 ghuddy 95
 
133 ghuddy 96
   OraDatabase.Parameters.Remove "PV_ID_LIST"
97
   OraDatabase.Parameters.Remove "RTAG_ID"
98
   OraDatabase.Parameters.Remove "USER_ID"
119 ghuddy 99
 
100
End Sub
101
'--------------------------------------------------------------------------------------------------------------------------
4021 dpurdie 102
Function PrettyDelta( delta, daemonState,pkgId )
103
    Dim style
104
    style = ""
105
 
106
    If (delta > 600) AND (IsNull(pkgId) OR pkgId = "") Then
107
      style = "style=color:Red"
108
      If (delta > 86400 ) Then
109
        Dim bdate, dd,mm,yy
110
        bdate = DateAdd("s", - delta,Now())
111
        dd = Day(bdate)
112
        mm = MonthName(Month(bdate),1)
113
        yy = Year( bdate)
114
        delta = dd & "-" & mm & "-" & yy
115
        If ( daemonState >= 2 ) Then
116
            style = ""
117
        End If
118
      ElseIf ( delta > 60*60 ) Then
119
        'Dim bdate, hh, mins, ss
120
        bdate = DateAdd("s", - delta,Now())
121
        delta = TimeValue( bdate)
122
        'delta = hh & ":" & mins & ":" & ss
123
      End If
124
    End If
125
 
126
    If style <> "" Then
127
        delta = "<span " & style & ">" & delta & "</span>"
128
    End If
129
    PrettyDelta = delta
130
End Function
131
'--------------------------------------------------------------------------------------------------------------------------
119 ghuddy 132
Function Get_Daemon_Mode( cMode )
133
 
127 ghuddy 134
   If cMode = "S" Then
135
      Get_Daemon_Mode = "Slave"
136
   ElseIf cMode = "M" Then
137
      Get_Daemon_Mode = "Master"
138
   End If
139
 
119 ghuddy 140
End Function
141
'--------------------------------------------------------------------------------------------------------------------------
171 brianf 142
Function Get_Run_Level( nLevel, indefinitePause, astate)
119 ghuddy 143
 
127 ghuddy 144
   If indefinitePause Then
145
      Get_Run_Level = "<span class='err_alert'>Stopped</span>"
171 brianf 146
   ElseIf astate = 1 Then      ' if build daemon paused
147
      Get_Run_Level = "Paused"
148
   ElseIf astate = 2 Then      ' if build daemon disabled
149
      Get_Run_Level = "Disabled"
150
   ElseIf IsNull(astate) Then  ' if build daemon enabled
133 ghuddy 151
      If nLevel = 1 Then
127 ghuddy 152
         Get_Run_Level = "Cannot Continue"
153
      ElseIf nLevel = 2 Then
154
         Get_Run_Level = "Paused"
155
      ElseIf nLevel = 3 Then
1325 dpurdie 156
         Get_Run_Level = "Building"
127 ghuddy 157
      ElseIf nLevel = 4 Then
158
         Get_Run_Level = "Idle"
133 ghuddy 159
      ElseIf nLevel = 5 Then
127 ghuddy 160
         Get_Run_Level = "Waiting"
135 mhunt 161
      ElseIf nLevel = 6 Then
162
         Get_Run_Level = "Publishing"
127 ghuddy 163
      Else
164
         Get_Run_Level = "<span class='err_alert'>Unknown!</span>"
165
      End If
166
   End If
119 ghuddy 167
 
168
End Function
177 brianf 169
 
119 ghuddy 170
'--------------------------------------------------------------------------------------------------------------------------
171
Function Get_Package_Name( sPackageName )
172
 
121 hknight 173
  If IsNull(sPackageName) Then
174
    Get_Package_Name = "None"
175
  Else
176
    Get_Package_Name = sPackageName
177
  End If
119 ghuddy 178
 
179
End Function
180
'--------------------------------------------------------------------------------------------------------------------------
177 brianf 181
 
182
 
119 ghuddy 183
%>
184
<%
185
'------------ RUN BEFORE PAGE RENDER ----------
181 brianf 186
shref_base = "http://" & archive_server & "/devl/abtlog/"
177 brianf 187
 
119 ghuddy 188
' --- Get Form details from DB ---
189
Call GetFormDetails ( Request("rtag_id"), objFormCollector )
190
 
191
' --- Load Validation Rules ---
121 hknight 192
'Call objForm.LoadValidationRules ( Array("rtag_name","rtag_description", "config_spec_branch"), OraDatabase )    ' Load Validation Rules
119 ghuddy 193
 
194
' --- Enter Form Validation Rule Changes here... ----
195
'----------------------------------------------------
196
 
197
' --- RUN onPostBack ---
133 ghuddy 198
If Request("action") <> "" AND objAccessControl.UserLogedIn Then
119 ghuddy 199
 
121 hknight 200
  If objEH.Finally Then
201
    If Request("action") = "include" Then
202
      Call RipplePackage (True)
203
    Else
204
      Call OpenInWindow ( "dependencies.asp?rtag_id="& parRtagId )
205
    End If
206
  End If
127 ghuddy 207
 
119 ghuddy 208
End If
209
 
210
'----------------------------------------------
211
%>
3894 dpurdie 212
<script language="JavaScript" type="text/JavaScript">
213
 
214
window.addEventListener ?
215
window.addEventListener("load",InitShow,false) :
216
window.attachEvent && window.attachEvent("onload",InitShow);
217
 
218
function InitShow(e)
219
{
3898 dpurdie 220
    toggleDispClass('rootCause',0);
221
    toggleDispClass('rootFile',0);
3894 dpurdie 222
}
223
 
3898 dpurdie 224
function toggleDispClass(cname,flip)
3894 dpurdie 225
{
226
    var cookieName = 'RELMGR_BUILDSTATUS';
227
    var cv = JSON.parse(getCookie(cookieName));
228
    if (!cv)
229
        cv = new Object;
230
    if (!cv.BuildStatus)
231
        cv.BuildStatus = new Object;
232
 
3897 dpurdie 233
    var state = cv.BuildStatus[cname];
234
    if (state === undefined)
235
        state = true;
3894 dpurdie 236
 
237
    if (flip>0)
238
        state = !state;
239
 
240
    cv.BuildStatus[cname] = state;
241
 
242
    // Reflect the current state in the checkbox
243
    var de = document.getElementById(cname);
244
    if (de)
245
        de.checked = state;
246
 
247
    var elements = new Array();
248
    elements = getElementsByClassName(cname);
249
    for(i in elements ){
3897 dpurdie 250
        if (state) {
3894 dpurdie 251
            elements[i].style.display = "";
252
        }
253
        else {
254
            elements[i].style.display = "none";
255
        }
256
    }
3897 dpurdie 257
    setCookie(cookieName, JSON.stringify(cv), 365 );
3894 dpurdie 258
}
259
 
260
</script>
261
 
119 ghuddy 262
<html>
127 ghuddy 263
   <head>
264
      <title>Release Manager</title>
265
      <meta http-equiv="Pragma" content="no-cache">
266
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
267
      <link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
268
      <link rel="stylesheet" href="images/navigation.css" type="text/css">
269
      <script language="JavaScript" src="images/common.js"></script>
157 ghuddy 270
      <!-- TIPS -->
271
      <script language="JavaScript" src="images/tipster.js"></script>
272
      <script language="JavaScript" src="images/_help_tips.js"></script>
127 ghuddy 273
      <!-- DROPDOWN MENUS -->
274
      <!--#include file="_menu_def.asp"-->
275
      <script language="JavaScript1.2" src="images/popup_menu.js"></script>
276
   </head>
277
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" onload="isChecked('pv_id_list','submit');">
278
      <!-- MENU LAYERS -------------------------------------->
279
      <div id="popmenu" class="menuskin" onmouseover="clearhidemenu();highlightmenu(event,'on')" onmouseout="highlightmenu(event,'off');dynamichide(event)"></div>
280
      <!-- TIPS LAYERS -------------------------------------->
281
      <div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
282
      <!----------------------------------------------------->
283
      <!-- HEADER -->
284
      <!--#include file="_header.asp"-->
285
      <!-- BODY ---->
286
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
287
         <%
288
         '-- FORM START ---------------------------------------------------------------------------------------------------------
289
         objFormComponent.FormName = "FormName"
290
         objFormComponent.Action = ScriptName &"?rtag_id="& parRtagId
291
         Call objFormComponent.FormStart()
292
         %>
293
         <tr>
294
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
295
            <td width="100%" rowspan="1" align="center" valign="top" bgcolor="#EEEFEF">
296
               <table width="10" border="0" cellspacing="0" cellpadding="0">
121 hknight 297
                  <tr>
127 ghuddy 298
                     <td width="1%"></td>
299
                     <td width="100%">
300
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
301
                           <tr>
302
                              <td nowrap class="body_txt"></td>
303
                           </tr>
304
                        </table>
305
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
306
                           <tr>
307
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
308
                                 <p>BUILD STATUS INFORMATION</p>
309
                              </td>
310
                              <td align="right" valign="bottom"></td>
311
                           </tr>
312
                        </table>
313
                     </td>
314
                     <td width="1%"></td>
121 hknight 315
                  </tr>
316
                  <tr>
127 ghuddy 317
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
318
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
319
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
121 hknight 320
                  </tr>
321
                  <tr>
127 ghuddy 322
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
323
                     <td bgcolor="#FFFFFF" valign="top">
324
                        <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
325
                        <!--#include file="messages/_msg_inline.asp"-->
326
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
327
                        <br>
328
                        <table width="100%" border="0" cellspacing="2" cellpadding="0">
329
                           <span class='err_alert'>
330
                              <font size='2'><b>Packages Excluded From Build (Daemon Build Failure)</b></font>
331
                           </span>
332
                           <tr>
333
                              <td background="images/bg_table_col.gif" class="err_alert"><b>Directly</b></td>
334
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">PACKAGE NAME</td>
335
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">PACKAGE VERSION</td>
3894 dpurdie 336
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">ROOT CAUSE</td>
127 ghuddy 337
                           </tr>
3894 dpurdie 338
                           <tr>
339
                           <td colspan=3></td>
340
                           <td class="body_row">
3897 dpurdie 341
                           <fieldset class="fset" align="right">
342
                                Show
3898 dpurdie 343
                                <input type="checkbox" checked value=0 name="showCause" id="rootCause" onClick="toggleDispClass('rootCause',1);">Config Errors
344
                                <input type="checkbox" checked value=0 name="showFile"  id="rootFile"  onClick="toggleDispClass('rootFile',1);">Build Errors
3894 dpurdie 345
                           </fieldset>
346
                           </td>
347
                           </tr>
127 ghuddy 348
                           <%
349
                           query_string = " select pkg.pkg_name, pv.pkg_version, pv.pv_id, dnr.rtag_id, dnr.root_cause, dnr.root_file, pv.pv_description"&_
350
                                          "   from do_not_ripple dnr, package_versions pv, packages pkg"&_
351
                                          "  where dnr.rtag_id = "& parRtagId &_
352
                                          "    and pv.pv_id    = dnr.pv_id"&_
353
                                          "    and pkg.pkg_id  = pv.pkg_id"&_
354
                                          "    and dnr.root_pv_id is null"&_
355
                                          "  order by pkg_name"
356
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
357
                           '--- Render rows ---
358
                           Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
3894 dpurdie 359
                            Dim rowClass
360
                            Dim rowData
361
                            ' root_file, if supplied, indicates a build failure log file exists
362
                            ' this should always prevail over the textual root_cause
363
 
364
                            If IsNull(rsQry("root_file")) Then
365
                               rowClass = "rootCause"
366
                               rowData = rsQry("root_cause")
367
                            Else
368
                                rowClass = "rootFile"
369
                                rowData = "<a class=""txt_linked"" title=""" & rsQry("root_file") &_
370
                                          " Log file may have expired."" " &_
371
                                          "href=""" & shref_base & rsQry("root_file") & """>" &_
372
                                          "Build Failure Log File</a>"
373
                            End If
127 ghuddy 374
                           %>
3894 dpurdie 375
                              <tr class="<%=rowClass%>">
127 ghuddy 376
                                 <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
377
                              </tr>
3894 dpurdie 378
                              <tr class="<%=rowClass%>">
127 ghuddy 379
                                 <td nowrap width="1%">
380
                                    <!-- The use of the isChecked() javascript function below, enables the submit button if any checkboxes are checked, -->
381
                                    <!-- else it will disable the submit button. The function is badly named, but nevertheless, that is what it does.   -->
382
                                    <input type="checkbox" value="<%=rsQry("pv_id")%>" name="pv_id_list" id="pv_id_list" onClick="isChecked('pv_id_list','submit');">
383
                                 </td>
384
                                 <td nowrap class="body_rowg"><a class="txt_linked" href="dependencies.asp?pv_id=<%=rsQry("pv_id")%>&rtag_id=<%=rsQry("rtag_id")%>" title="<%=rsQry("pv_description")%>"><%=rsQry("pkg_name")%></a></td>
385
                                 <td nowrap class="body_rowg"><%=rsQry("pkg_version")%></td>
3894 dpurdie 386
                                 <td nowrap class="body_rowg"><%=rowData%></td>
127 ghuddy 387
                              </tr>
3894 dpurdie 388
                           <%
389
                            rsQry.MoveNext
127 ghuddy 390
                           Loop%>
391
                           <tr>
392
                              <td background="images/bg_table_col.gif" class="err_alert"><b>Indirectly</b></td>
393
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">PACKAGE NAME</td>
394
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">PACKAGE VERSION</td>
395
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">ROOT CAUSE PACKAGE NAME</td>
396
                           </tr>
397
                           <%
398
                           query_string = " select pv.pv_id, pkg.pkg_name, pv.pkg_version, qkg.pkg_name, dnr.rtag_id, pv.pv_description"&_
399
                                          "   from do_not_ripple dnr, package_versions pv, package_versions qv, packages pkg, packages qkg"&_
400
                                          "  where dnr.rtag_id = "& parRtagId &_
401
                                          "    and pv.pv_id    = dnr.pv_id"&_
402
                                          "    and pkg.pkg_id  = pv.pkg_id"&_
403
                                          "    and qv.pv_id    = dnr.root_pv_id"&_
404
                                          "    and qkg.pkg_id  = qv.pkg_id"&_
405
                                          "    and dnr.root_pv_id is not null"&_
406
                                          "  order by pkg.pkg_name"
407
                           Dim rsQry2
408
                           Set rsQry2 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
409
                           '--- Render rows ---
410
                           Do While (NOT rsQry2.BOF) AND (NOT rsQry2.EOF)%>
411
                              <tr>
412
                                 <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
413
                              </tr>
414
                              <tr>
415
                                 <td nowrap width="1%">
416
                                    <input type="checkbox" value=0 disabled=true name="notused" id="notused">
417
                                 </td>
418
                                 <td nowrap class="body_rowg"><a class="txt_linked" href="dependencies.asp?pv_id=<%=rsQry2(0)%>&rtag_id=<%=rsQry2(4)%>" title="<%=rsQry2(5)%>"><%=rsQry2(1)%></a></td>
419
                                 <td nowrap class="body_rowg"><%=rsQry2(2)%></td>
420
                                 <td nowrap class="body_rowg"><%=rsQry2(3)%></td>
421
                              </tr>
422
                              <%
423
                              rsQry2.MoveNext
424
                           Loop%>
425
                        </table>
426
                     </td>
427
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
121 hknight 428
                  </tr>
127 ghuddy 429
                  <%If rsQry.RecordCount > 0 Then%>
430
                     <tr>
431
                        <td background="images/bg_action_norm.gif"></td>
432
                        <td align="right" background="images/bg_action_norm.gif">
433
                           <%
434
                           Response.Write(objFormComponent.SubmitButton ( "Include", "name='submit' id='submit' class='form_btn' disabled style='color:silver' onClick='return confirmAction(""Are you sure you want to include these packages for building?"")'" ))
435
                           Response.Write(objPMod.ComposeHiddenTags())
436
                           %>
437
                        </td>
438
                        <td background="images/bg_action_norm.gif"><img src="images/h_trsp_dot.gif" width="5" height="30"></td>
439
                     </tr>
440
                  <%End If%>
121 hknight 441
                  <tr>
127 ghuddy 442
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
443
                     <td background="images/lbox_bg_blue.gif"></td>
444
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
121 hknight 445
                  </tr>
127 ghuddy 446
               </table>
447
               <!-- ACTION BUTTONS ---------------------------------------------->
448
               <input type="hidden" name="action" value="include">
449
               <!-- ACTION BUTTONS END  ------------------------------------------>
450
            </td>
451
            <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
452
         </tr>
453
         <%
454
         Call objFormComponent.FormEnd()
455
         rsQry.Close()
456
         Set rsQry = nothing
457
         rsQry2.Close()
458
         Set rsQry2 = nothing
459
         '-- FORM END ----------------------------------------------------------------------------------------------------------------
460
         %>
461
         <tr>
462
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
463
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
464
               <table width="10" border="0" cellspacing="0" cellpadding="0">
121 hknight 465
                  <tr>
127 ghuddy 466
                     <td width="1%"></td>
467
                     <td width="100%">
468
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
469
                           <tr>
470
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
471
                                 <p>DAEMON STATUS INFORMATION</p>
472
                              </td>
2362 dpurdie 473
                              <td align="right" valign="bottom">
474
                                <a class="txt_linked" href="build_status.asp?rtag_id=<%=parRtagId%>" title="Refresh Page">[Refresh]</a></td>
475
                              </td>
127 ghuddy 476
                           </tr>
477
                        </table>
478
                     </td>
479
                     <td width="1%"></td>
121 hknight 480
                  </tr>
481
                  <tr>
127 ghuddy 482
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
483
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
484
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
121 hknight 485
                  </tr>
486
                  <tr>
127 ghuddy 487
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
488
                     <td bgcolor="#FFFFFF" valign="top">
489
                        <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
490
                        <!--#include file="messages/_msg_inline.asp"-->
491
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
492
                        <br>
493
                        <table width="100%" border="0" cellspacing="2" cellpadding="0">
494
                           <%
495
                           Dim indefinitelyPaused
496
                           indefinitelyPaused = FALSE
497
                           ' Insert a warning into the page if the build daemons are indefintely paused.
498
                           query_string = " select * from run_level_schedule rls where rls.indefinite_pause = 'P'"
499
 
500
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
501
                           If rsQry.RecordCount > 0 Then
502
                              indefinitelyPaused = TRUE %>
503
                              <tr>
504
                                 <span class='err_alert'>
505
                                    <font size='2'><b>WARNING: Build Daemons are all stopped - please contact an administrator</b></font>
506
                                 </span>
507
                              </tr>
508
                           <%End If
509
 
510
                           rsQry.Close()
511
                           Set rsQry = nothing
512
                           %>
513
                           <td width="9%" valign="top"></td>
514
                           <tr>
163 brianf 515
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Daemon Host</td>
127 ghuddy 516
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">GBE Machtype</td>
517
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Mode</td>
518
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Run Level</td>
519
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Current Package</td>
147 ghuddy 520
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Last Change<br>Delta (secs)</td>
127 ghuddy 521
                              <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">Switch State</td>
522
                           </tr>
523
                           <%
133 ghuddy 524
                           ' Get the number of release configurations for this RTAG_ID, and iterate through them
163 brianf 525
                           query_string = " select * from release_config rc, gbe_machtype gm, build_machine_config bm"&_
127 ghuddy 526
                                          "  where rc.rtag_id = "& parRtagId &_
527
                                          "    and gm.gbe_id = rc.gbe_id"&_
163 brianf 528
                                          "    and rc.daemon_hostname = bm.machine_hostname(+)" &_
183 brianf 529
                                          "  order by rc.daemon_hostname,rc.rcon_id"
133 ghuddy 530
 
127 ghuddy 531
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
133 ghuddy 532
 
127 ghuddy 533
                           Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
534
                              rcon_id = rsQry("rcon_id")
133 ghuddy 535
 
536
                              Dim pkgName
537
                              Dim currentRunLevel
171 brianf 538
                              Dim daemonState
539
                              Dim delta
133 ghuddy 540
 
541
                              ' For this release configuration, get its entry from the run_level table. This table may not
542
                              ' have an entry so we must handle that outcome too.
147 ghuddy 543
                              query_string = " select rl.pause, rl.current_run_level, rl.current_pkg_id_being_built, "&_
544
                                             "        TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta" &_
545
                                             "   from run_level rl"&_
133 ghuddy 546
                                             "  where rl.rcon_id = "& rcon_id
547
 
548
                              Set rsQry2 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
549
 
550
                              currentRunLevel = -1
551
                              If (rsQry2.RecordCount > 0) Then
552
                                 ' Get the run level from the run_level table
553
                                 currentRunLevel = rsQry2("current_run_level")
554
                              End If
555
 
171 brianf 556
                              daemonState = NULL
557
                              If (rsQry2.RecordCount > 0) Then                                
558
                                daemonState = rsQry2("pause")
559
                              End If
560
 
561
                              delta = NULL
562
                              If (rsQry2.RecordCount > 0) Then
563
                                delta = rsQry2("delta")
564
                              End If
565
 
133 ghuddy 566
                              ' If we got an entry from the run_level table, try and use the pkg_id it contains, to obtain a
567
                              ' package name from the packages table
568
                              Dim rsQry3
569
                              pkgName = NULL
570
                              If (rsQry2.RecordCount > 0) AND NOT IsNull(rsQry2("current_pkg_id_being_built")) Then
571
 
572
                                 query_string = " select pkg_name from run_level rl, packages pk"&_
573
                                                "  where rl.rcon_id = "& rcon_id &_
574
                                                "   and  rl.current_pkg_id_being_built = pk.pkg_id"
575
 
576
                                 Set rsQry3 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
577
                                 If (rsQry3.RecordCount > 0) Then
578
                                    pkgName = rsQry3("pkg_name")
579
                                 End If
580
                                 rsQry3.Close()
581
                                 Set rsQry3 = nothing
582
                              End If
583
 
584
                              ' --- Now render HTML for this release configuration ---
127 ghuddy 585
                              %>
586
                              <tr>
587
                                 <td colspan="6" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
588
                              </tr>
589
                              <tr>
163 brianf 590
                                 <td nowrap class="body_rowg"><%=rsQry("display_name")%></td>
127 ghuddy 591
                                 <td nowrap class="body_rowg"><%=rsQry("gbe_value")%></td>
592
                                 <td nowrap class="body_rowg"><%=Get_Daemon_Mode(rsQry("daemon_mode"))%></td>
171 brianf 593
                                 <td nowrap class="body_rowg"><%=Get_Run_Level(currentRunLevel, indefinitelyPaused,daemonState)%></td>
133 ghuddy 594
                                 <td nowrap class="body_rowg"><%=Get_Package_Name(pkgName)%></td>
4021 dpurdie 595
                                 <td nowrap class="body_rowg"><%=PrettyDelta(delta, daemonState,pkgName )%></td>
127 ghuddy 596
                                 <td nowrap class="body_rowg">
597
                                    <%
133 ghuddy 598
                                    If (rsQry2.RecordCount > 0) AND NOT indefinitelyPaused  Then
127 ghuddy 599
                                       If objAccessControl.UserLogedIn Then
171 brianf 600
                                          If IsNull(daemonState) Then
127 ghuddy 601
                                             Call Action_Buttons ( "Daemon Pause" )
171 brianf 602
                                          ElseIf daemonState = 1 Then
603
                                             Call Action_Buttons ( "Daemon Resume" )
604
                                          ElseIf daemonState = 2 Then
605
                                             Call Action_Buttons ( "Daemon Start" )
127 ghuddy 606
                                          Else
607
                                             Call Action_Buttons ( "Daemon Resume" )
608
                                          End If
609
                                       Else
171 brianf 610
                                          If IsNull(daemonState) Then
127 ghuddy 611
                                             Call Action_Buttons ( "Daemon Pause Disabled" )
171 brianf 612
                                          ElseIf daemonState = 1 Then
613
                                             Call Action_Buttons ( "Daemon Resume Disabled" )
614
                                          ElseIf daemonState = 2 Then
615
                                             Call Action_Buttons ( "Daemon Start Disabled" )
127 ghuddy 616
                                          Else
617
                                             Call Action_Buttons ( "Daemon Resume Disabled" )
618
                                          End If
619
                                       End If
620
                                    Else
621
                                       %>Unavailable<%
622
                                    End If
623
                                    %>
624
                                 </td>
625
                              </tr>
626
                              <%
133 ghuddy 627
                              rsQry2.Close()
628
                              Set rsQry2 = nothing
127 ghuddy 629
                              rsQry.MoveNext
630
                           Loop
631
                           %>
171 brianf 632
                           <tr>
633
                             <td valign="bottom" background="images/bg_table_col.gif" class="body_col"></td>
634
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
635
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
636
                             <td valign="bottom" background="images/bg_table_col.gif" class="body_col"></td>
637
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
638
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col"></td>
639
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col">
640
                             <%
641
                               If (rsQry.RecordCount > 0) AND NOT indefinitelyPaused  Then
642
                                 If objAccessControl.UserLogedIn Then
643
                                   Call Action_Buttons ( "Daemon Control All" )
644
                                 Else 
645
                                   Call Action_Buttons ( "Daemon Control All Disabled" )
646
                                 End If
647
                               Else
648
                                 %>&nbsp<%
649
                               End If
650
                             %>
651
                             </td>
652
                           </tr>
653
                           <%
654
                             rsQry.Close()
655
                             Set rsQry = nothing
656
                           %>
127 ghuddy 657
                        </table>
658
                     </td>
659
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
121 hknight 660
                  </tr>
661
                  <tr>
127 ghuddy 662
                     <input type="hidden" name="action" value="true">
663
                     <%=objPMod.ComposeHiddenTags()%>
664
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
665
                     <td background="images/lbox_bg_blue.gif"></td>
666
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
121 hknight 667
                  </tr>
127 ghuddy 668
               </table>
147 ghuddy 669
 
670
               <table width="10" border="0" cellspacing="0" cellpadding="0">
671
                  <tr>
672
                     <td width="1%"></td>
673
                     <td width="100%">
674
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
675
                           <tr>
676
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
677
                                 <p>DAEMON INSTRUCTIONS FOR THIS RELEASE</p>
678
                              </td>
679
                              <td align="right" valign="bottom"></td>
680
                           </tr>
681
                        </table>
682
                     </td>
683
                     <td width="1%"></td>
684
                  </tr>
685
                  <tr>
686
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
687
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
688
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
689
                  </tr>
690
                  <tr>
691
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
692
                     <td bgcolor="#FFFFFF" valign="top">
693
                        <table width="100%" border="0" cellspacing="2" cellpadding="0">
694
                           <tr>
695
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">OPERATION</td>
696
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">PACKAGE</td>
697
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">VERSION</td>
698
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">SCHEDULED TIME<br>(<SPAN style=color:Red>Red</SPAN> = overdue)<br>(<SPAN style=color:Green>Green</SPAN> = ready)</td>
699
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">REPEAT</td>
700
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">IN PROGRESS</td>
701
                           </tr>
702
                           <%
703
                           Dim PkgId
704
                           Dim PkgVersion
705
                           Dim UserName
706
                           Dim UserEmail
707
                           Dim bInProgress
708
                           Dim bIsOverdue
709
                           Dim bIsReady
710
 
711
                           Set rsQry = OraDatabase.DbCreateDynaset( "SELECT DAEMON_INSTRUCTIONS_ID,"&_
712
                                                                  "       OP_CODE,"&_
713
                                                                  "       RTAG_ID,"&_
714
                                                                  "       PV_ID,"&_
715
                                                                  "       SCHEDULED_DATETIME,"&_
716
                                                                  "       REPEAT_SECS,"&_
717
                                                                  "       ADDED_DATETIME,"&_
718
                                                                  "       USER_ID,"&_
719
                                                                  "       IN_PROGRESS,"&_
720
                                                                  "       (CASE WHEN SCHEDULED_DATETIME <= SYSDATE THEN 1 ELSE 0 END) AS READY,"&_
721
                                                                  "       (CASE WHEN (SCHEDULED_DATETIME + (1/144)) < SYSDATE THEN 1 ELSE 0 END) AS OVERDUE"&_
722
                                                                  "  FROM DAEMON_INSTRUCTIONS "&_
723
                                                                  "  WHERE RTAG_ID = "& parRtagId &_
724
                                                                  "  ORDER BY PV_ID, SCHEDULED_DATETIME, DAEMON_INSTRUCTIONS_ID", ORADYN_DEFAULT )
725
                           While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
726
 
727
                              If IsNull(rsQry("IN_PROGRESS")) OR rsQry("IN_PROGRESS") = "0" Then
728
                                 bInProgress = False
729
                              Else
730
                                 bInProgress = True
731
                              End If
732
 
733
                              ' only flag as overdue if time threshold has been met but the daemon has not marked the instruction as being in progress.
734
                              If rsQry("OVERDUE") AND NOT bInProgress Then
735
                                 bIsOverdue = True
736
                              Else
737
                                 bIsOverdue = False
738
                              End If
739
 
740
                              If rsQry("READY") Then
741
                                 bIsReady = True
742
                              Else
743
                                 bIsReady = False
744
                              End If
745
 
746
                              ' Get as much info about the package as we can
747
                              PkgId = 0
748
                              PkgName = "N/A"
749
                              PkgVersion = "N/A"
750
                              If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then
751
                                 Call Get_Pkg_Short_Info(rsQry("PV_ID"), PkgId, PkgName, PkgVersion, NULL, NULL, NULL)
752
                              End If
753
 
754
                              %>
755
                              <tr>
756
 
757
                                 <td align="left" valign="top" class="body_txt">
758
                                    <%=DaemonInstructionOperationName(rsQry("OP_CODE"))%>
759
                                 </td>
760
 
761
                                 <td align="left" valign="top" class="body_txt">
762
                                    <%If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then%>
763
                                       <a href='fixed_issues.asp?rtag_id=<%=rsQry("RTAG_ID")%>&pv_id=<%=rsQry("PV_ID")%>'><%=PkgName%>
764
                                    <%Else%>
765
                                       <%=PkgName%>
766
                                    <%End If%>
767
                                 </td>
768
 
769
                                 <td align="left" valign="top" class="body_txt">
770
                                    <%=PkgVersion%>
771
                                 </td>
772
 
773
                                 <td align="left" valign="top" class="body_txt" <%If bIsOverdue Then%>style=color:Red<%Elseif bIsReady Then%>style=color:Green<%End If%>><%=EuroDateTime(rsQry("SCHEDULED_DATETIME"))%></td>
774
 
775
                                 <td align="left" valign="top" class="body_txt"><%=DaemonInstructionRepeatString(rsQry("OP_CODE"), rsQry("REPEAT_SECS"))%></td>
776
 
777
                                 <td align="left" valign="top" class="body_txt">
778
                                    <%If bInProgress Then%>
779
                                       YES
780
                                    <%Else%>
781
                                       NO
782
                                    <%End If%>
783
                                 </td>
784
                              </tr>
785
                              <tr>
786
                                 <td colspan="6" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
787
                              </tr>
788
                              <%
789
                              rsQry.MoveNext()
790
                           Wend
791
                           rsQry.Close()
792
                           Set rsQry = nothing
793
                           %>
794
                        </table>
795
                     </td>
796
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
797
                  </tr>
798
                  <tr>
799
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
800
                     <td background="images/lbox_bg_blue.gif"></td>
801
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
802
                  </tr>
803
               </table>
804
 
127 ghuddy 805
            </td>
806
            <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
807
         </tr>
808
         <tr>
809
            <td valign="bottom" align="center" background="images/bg_home_orange.gif"><img src="images/img_vtree.gif" width="86" height="99" vspace="20" hspace="30"></td>
810
            <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="350"></td>
811
         </tr>
812
      </table>
813
      <!-- FOOTER -->
814
      <!--#include file="_footer.asp"-->
815
   </body>
119 ghuddy 816
</html>
817
<%
818
Call Destroy_All_Objects
819
%>