Subversion Repositories DevTools

Rev

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

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