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