Subversion Repositories DevTools

Rev

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