Subversion Repositories DevTools

Rev

Rev 6070 | Rev 6175 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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