Subversion Repositories DevTools

Rev

Rev 6267 | Rev 6440 | 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 ------------------ %>
6181 dpurdie 25
<!--#include file="_access_control_login_optional.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>
6175 dpurdie 206
            <td width="146px" class="panel_bg" valign="top"><%Call BuildMenuPane%></td>
5357 dpurdie 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
                           <%
6267 dpurdie 436
                           Dim bInactiveMachine : bInactiveMachine = false
437
                           Dim indefinitelyPaused : 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
6267 dpurdie 459
                           query_string = " select rc.rcon_id, display_name, gbe_value, daemon_mode, NVL(ACTIVE, 'U') as ACTIVE" &_
460
                                          " from release_config rc, gbe_machtype gm, build_machine_config bm"&_
5357 dpurdie 461
                                          "  where rc.rtag_id = "& parRtagId &_
462
                                          "    and gm.gbe_id = rc.gbe_id"&_
463
                                          "    and rc.bmcon_id=bm.bmcon_id(+)" &_
464
                                          "  order by bm.display_name, rc.rcon_id"
465
 
466
                           Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
467
 
468
                           Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
469
                              rcon_id = rsQry("rcon_id")
470
 
471
                              Dim pkgName
472
                              Dim pkgPvid
473
                              Dim currentRunLevel
474
                              Dim daemonState
475
                              Dim delta
476
                              Dim pkgId
6267 dpurdie 477
                              Dim bActive : bActive = rsQry("active")
6268 dpurdie 478
                              If bActive = "N" Then bInactiveMachine = true
5357 dpurdie 479
 
480
                              ' For this release configuration, get its entry from the run_level table. This table may not
481
                              ' have an entry so we must handle that outcome too.
482
                              query_string = " select rl.pause, rl.current_run_level, rl.current_pkg_id_being_built, "&_
483
                                             "        TRUNC (86400*(SYSDATE - rl.KEEP_ALIVE)) as delta" &_
484
                                             "   from run_level rl"&_
485
                                             "  where rl.rcon_id = "& rcon_id
486
 
487
                              Set rsQry2 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
488
 
489
                              currentRunLevel = -1
490
                              pkgId = Null
491
                              pkgName = NULL
492
                              pkgPvid = NULL
493
                              daemonState = 0
494
                              delta = NULL
495
 
496
                              If (rsQry2.RecordCount > 0) Then
497
                                ' Get the run level from the run_level table
498
                                currentRunLevel = rsQry2("current_run_level")
499
                                pkgId = rsQry2("current_pkg_id_being_built")
500
 
501
                                daemonState = rsQry2("pause")
502
                                If IsNull(daemonState) Then daemonState = 0
503
                                If daemonState = "2" Then pkgId = Null
504
 
505
                                delta = rsQry2("delta")
6267 dpurdie 506
 
5357 dpurdie 507
                              End If
508
 
509
                              ' If we got an entry from the run_level table, try and use the pkg_id it contains, to obtain a
510
                              ' package name from the packages table
511
                              Dim rsQry3
512
                              If NOT IsNull(pkgId) Then
513
                                 query_string = " select pkg_name,rl.current_pv_id from run_level rl, packages pk"&_
514
                                                "  where rl.rcon_id = "& rcon_id &_
515
                                                "   and  rl.current_pkg_id_being_built = pk.pkg_id"
516
 
517
                                 Set rsQry3 = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
518
                                 If (rsQry3.RecordCount > 0) Then
519
                                    pkgName = rsQry3("pkg_name")
520
                                    pkgPvid = rsQry3("current_pv_id")
521
                                 End If
522
                                 rsQry3.Close()
523
                                 Set rsQry3 = nothing
524
                              End If
525
 
526
                              ' --- Now render HTML for this release configuration ---
527
                              %>
528
                              <tr>
529
                                 <td colspan="7" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
530
                              </tr>
531
                              <tr>
532
                                 <td nowrap class="body_rowg"><%=rsQry("display_name")%></td>
533
                                 <td nowrap class="body_rowg"><%=rsQry("gbe_value")%></td>
534
                                 <td nowrap class="body_rowg"><%=Get_Daemon_Mode(rsQry("daemon_mode"))%></td>
6267 dpurdie 535
                                 <td nowrap class="body_rowg"><%=Get_Run_Level(currentRunLevel, indefinitelyPaused, daemonState, bActive)%></td>
536
                                 <td nowrap class="body_rowg"><%=Get_Package_Name(pkgName,parRtagId,pkgPvid, bActive)%></td>
5357 dpurdie 537
                                 <td nowrap class="body_rowg"><%=PrettyDelta(delta, daemonState,pkgName )%></td>
538
                                 <td nowrap class="body_rowg">
539
                                    <%
6166 dpurdie 540
                                    If (rsQry2.RecordCount > 0) AND NOT indefinitelyPaused  Then
5905 dpurdie 541
                                       If canActionControlInProject("BuildControl") Then
6267 dpurdie 542
                                          If bActive = "U" Then
543
                                          ElseIf bActive = "N" Then
544
                                             Call Action_Buttons ( "Daemon Unavailable" )
545
                                          ElseIf daemonState = 0 Then
5357 dpurdie 546
                                             Call Action_Buttons ( "Daemon Pause" )
547
                                          ElseIf daemonState = 1 Then
548
                                             Call Action_Buttons ( "Daemon Resume" )
549
                                          ElseIf daemonState = 2 Then
550
                                             Call Action_Buttons ( "Daemon Start" )
551
                                          Else
552
                                             Call Action_Buttons ( "Daemon Resume" )
553
                                          End If
554
                                       Else
6267 dpurdie 555
                                          If bActive = "U" Then
556
                                          ElseIf bActive = "N" Then
557
                                             Call Action_Buttons ( "Daemon Unavailable" )
558
                                          ElseIf daemonState = 0 Then
5357 dpurdie 559
                                             Call Action_Buttons ( "Daemon Pause Disabled" )
560
                                          ElseIf daemonState = 1 Then
561
                                             Call Action_Buttons ( "Daemon Resume Disabled" )
562
                                          ElseIf daemonState = 2 Then
563
                                             Call Action_Buttons ( "Daemon Start Disabled" )
564
                                          Else
565
                                             Call Action_Buttons ( "Daemon Resume Disabled" )
566
                                          End If
567
                                       End If
568
                                    Else
569
                                       %>Unavailable<%
570
                                    End If
571
                                    %>
572
                                 </td>
573
                              </tr>
574
                              <%
575
                              rsQry2.Close()
576
                              Set rsQry2 = nothing
577
                              rsQry.MoveNext
578
                           Loop
579
                           %>
580
                           <tr>
6166 dpurdie 581
                             <td nowrap background="images/bg_table_col.gif" class="body_col" colspan=6>
6267 dpurdie 582
                             <%If CheckConfigErrors(parRtagId) OR bInactiveMachine Then%><span class="err_alert">&nbsp;Daemon configuration errors detected</span>
6166 dpurdie 583
                                <a class="txt_linked" href="release_config.asp?rtag_id=<%=parRtagId%>">
584
                                    <img src="images/i_link.gif" hspace="2" border="0" align="absmiddle" title="Goto Configuration">
585
                                </a>
586
                             <%End If%>
587
                             </td>
5357 dpurdie 588
                             <td valign="bottom" nowrap background="images/bg_table_col.gif" class="body_col">
589
                             <%
6166 dpurdie 590
                               If (rsQry.RecordCount > 0) AND NOT indefinitelyPaused  Then
591
                                 If objAccessControl.UserLogedIn AND canActionControlInProject("BuildControl") Then
5357 dpurdie 592
                                   Call Action_Buttons ( "Daemon Control All" )
593
                                 Else 
594
                                   Call Action_Buttons ( "Daemon Control All Disabled" )
595
                                 End If
596
                               Else
597
                                 %>&nbsp<%
598
                               End If
599
                             %>
600
                             </td>
601
                           </tr>
602
                           <%
603
                             rsQry.Close()
604
                             Set rsQry = nothing
605
                           %>
606
                        </table>
607
                     </td>
608
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
609
                  </tr>
610
                  <tr>
611
                     <input type="hidden" name="action" value="true">
612
                     <%=objPMod.ComposeHiddenTags()%>
613
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
614
                     <td background="images/lbox_bg_blue.gif"></td>
615
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
616
                  </tr>
617
               </table>
618
 
619
               <!-- Daemon Instructions Display -->
620
               <table width="10" border="0" cellspacing="0" cellpadding="0">
621
                  <tr>
622
                     <td width="1%"></td>
623
                     <td width="100%">
624
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
625
                           <tr>
626
                              <td nowrap class="form_ttl"><p>&nbsp;</p>
627
                                 <p>DAEMON INSTRUCTIONS FOR THIS RELEASE</p>
628
                              </td>
629
                              <td align="right" valign="bottom"></td>
630
                           </tr>
631
                        </table>
632
                     </td>
633
                     <td width="1%"></td>
634
                  </tr>
635
                  <tr>
636
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
637
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
638
                     <td align="right" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
639
                  </tr>
640
                  <tr>
641
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" ></td>
642
                     <td bgcolor="#FFFFFF" valign="top">
643
                        <table width="100%" border="0" cellspacing="2" cellpadding="0">
644
                           <tr>
645
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Operation</td>
646
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Package</td>
647
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Version</td>
5684 dpurdie 648
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Scheduled Time<%=Quick_Help("SchedTime")%>
5357 dpurdie 649
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">Repeat</td>
650
                              <td align="left" nowrap background="images/bg_table_col.gif" class="body_col">In Progress</td>
651
                           </tr>
652
                           <%
653
                           Dim PkgVersion
654
                           Dim UserName
655
                           Dim UserEmail
656
                           Dim bInProgress
657
                           Dim bIsOverdue
658
                           Dim bIsReady
659
 
660
                           Set rsQry = OraDatabase.DbCreateDynaset( "SELECT DAEMON_INSTRUCTIONS_ID,"&_
661
                                                                  "       OP_CODE,"&_
662
                                                                  "       RTAG_ID,"&_
663
                                                                  "       PV_ID,"&_
664
                                                                  "       SCHEDULED_DATETIME,"&_
665
                                                                  "       REPEAT_SECS,"&_
666
                                                                  "       ADDED_DATETIME,"&_
667
                                                                  "       USER_ID,"&_
668
                                                                  "       IN_PROGRESS,"&_
669
                                                                  "       (CASE WHEN SCHEDULED_DATETIME <= SYSDATE THEN 1 ELSE 0 END) AS READY,"&_
670
                                                                  "       (CASE WHEN (SCHEDULED_DATETIME + (1/144)) < SYSDATE THEN 1 ELSE 0 END) AS OVERDUE"&_
671
                                                                  "  FROM DAEMON_INSTRUCTIONS "&_
672
                                                                  "  WHERE RTAG_ID = "& parRtagId &_
673
                                                                  "  ORDER BY PV_ID, SCHEDULED_DATETIME, DAEMON_INSTRUCTIONS_ID", ORADYN_DEFAULT )
674
                           While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
675
 
676
                              If IsNull(rsQry("IN_PROGRESS")) OR rsQry("IN_PROGRESS") = "0" Then
677
                                 bInProgress = False
678
                              Else
679
                                 bInProgress = True
680
                              End If
681
 
682
                              ' only flag as overdue if time threshold has been met but the daemon has not marked the instruction as being in progress.
683
                              If rsQry("OVERDUE") AND NOT bInProgress Then
684
                                 bIsOverdue = True
685
                              Else
686
                                 bIsOverdue = False
687
                              End If
688
 
689
                              If rsQry("READY") Then
690
                                 bIsReady = True
691
                              Else
692
                                 bIsReady = False
693
                              End If
694
 
695
                              ' Get as much info about the package as we can
696
                              PkgId = 0
697
                              PkgName = "N/A"
698
                              PkgVersion = "N/A"
699
                              If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then
700
                                 Call Get_Pkg_Short_Info(rsQry("PV_ID"), PkgId, PkgName, PkgVersion, NULL, NULL, NULL)
701
                              End If
702
 
703
                              %>
704
                              <tr>
705
 
706
                                 <td align="left" valign="top" class="body_txt">
707
                                    <%=DaemonInstructionOperationName(rsQry("OP_CODE"))%>
708
                                 </td>
709
 
710
                                 <td align="left" valign="top" class="body_txt">
711
                                    <%If (NOT IsNull(rsQry("PV_ID"))) AND (rsQry("PV_ID") <> "") Then%>
712
                                       <a href='fixed_issues.asp?rtag_id=<%=rsQry("RTAG_ID")%>&pv_id=<%=rsQry("PV_ID")%>'><%=PkgName%>
713
                                    <%Else%>
714
                                       <%=PkgName%>
715
                                    <%End If%>
716
                                 </td>
717
 
718
                                 <td align="left" valign="top" class="body_txt">
719
                                    <%=PkgVersion%>
720
                                 </td>
721
 
5632 dpurdie 722
                                 <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 723
 
724
                                 <td align="left" valign="top" class="body_txt"><%=DaemonInstructionRepeatString(rsQry("OP_CODE"), rsQry("REPEAT_SECS"))%></td>
725
 
726
                                 <td align="left" valign="top" class="body_txt">
727
                                    <%If bInProgress Then%>
728
                                       YES
729
                                    <%Else%>
730
                                       NO
731
                                    <%End If%>
732
                                 </td>
733
                              </tr>
734
                              <tr>
735
                                 <td colspan="6" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
736
                              </tr>
737
                              <%
738
                              rsQry.MoveNext()
739
                           Wend
740
                           rsQry.Close()
741
                           Set rsQry = nothing
742
                           %>
743
                        </table>
744
                     </td>
745
                     <td background="images/lbox_bgside_white.gif">&nbsp;</td>
746
                  </tr>
747
                  <tr>
748
                     <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
749
                     <td background="images/lbox_bg_blue.gif"></td>
750
                     <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
751
                  </tr>
752
               </table>
753
 
754
            </td>
755
            <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
756
         </tr>
757
         <tr>
758
            <td valign="bottom" align="center" background="images/bg_home_orange.gif">
759
                <img src="images/img_gear.gif" width="86" height="99" vspace="20" hspace="30">
760
            </td>
761
            <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="350">
762
            </td>
763
         </tr>
764
      </table>
765
      <!-- FOOTER -->
766
      <!--#include file="_footer.asp"-->
767
   </body>
768
</html>