Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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