Subversion Repositories DevTools

Rev

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