Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
5357 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
5
'|          Edit/View Build Configuration            |
6
'|                                                   |
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0   ' always load the page, dont store
13
%>
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/formating.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="common/_form_window_common.asp"-->
20
<!--#include file="_action_buttons.asp"-->
21
<!--#include file="class/classActionButtonControl.asp"-->
6052 dpurdie 22
<% objPMod.PersistInQryString("proj_id") %>
23
<% '------------ ACCESS CONTROL ------------------ %>
5357 dpurdie 24
<!--#include file="_access_control_login.asp"-->
6070 dpurdie 25
<!--#include file="_access_control_general.asp"-->
6052 dpurdie 26
<!--#include file="_access_control_action_project.asp"-->
5357 dpurdie 27
<%
28
'------------ Variable Definition -------------
29
Dim objSortHelper
30
Dim rsQry
31
Dim parRtagId
32
Dim query_string
33
Dim objBtnControl
34
Dim rcon_id
6166 dpurdie 35
Dim masterCount
36
Dim toolsetWarning
37
 
5357 dpurdie 38
'------------ Constants Declaration -----------
39
'------------ Variable Init -------------------
40
parRtagId = Request("rtag_id")
41
objPMod.PersistInQryString("rtag_id")
42
Set objBtnControl = New ActionButtonControl
43
'----------------------------------------------
44
%>
45
<%
46
'--------------------------------------------------------------------------------------------------------------------------
47
Sub GetFormDetails ( parRtagId, ByRef outobjDetails )
48
   Dim rsQry, query
49
 
50
 
51
   OraDatabase.Parameters.Add "RTAG_ID",    parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
52
 
53
   query = _
54
   " SELECT * "&_
55
   "  FROM RELEASE_TAGS rt"&_
56
   " WHERE rt.RTAG_ID = :RTAG_ID"
57
 
58
   Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
59
 
60
   OraDatabase.Parameters.Remove "RTAG_ID"
61
 
62
 
63
 
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
 
70
   End If
71
 
72
   rsQry.Close
73
   Set rsQry = Nothing
74
End Sub
75
'--------------------------------------------------------------------------------------------------------------------------
76
Sub DeleteDaemon(rcon_id_list)
77
 
78
   OraDatabase.Parameters.Add "RCON_ID_LIST",   rcon_id_list,    ORAPARM_INPUT, ORATYPE_VARCHAR2
79
 
80
   On Error Resume Next
81
   objEH.TryORA()
82
 
83
   OraDatabase.ExecuteSQL "BEGIN  PK_BUILDAPI.DELETE_DAEMON(:RCON_ID_LIST);  END;"
84
 
85
   objEH.CatchORA ( OraSession )
86
 
87
   OraDatabase.Parameters.Remove "RCON_ID_LIST"
88
End Sub
89
'--------------------------------------------------------------------------------------------------------------------------
90
Sub RemoveDaemon(rcon_id_list)
91
 
92
   OraDatabase.Parameters.Add "RCON_ID_LIST",   rcon_id_list,    ORAPARM_INPUT, ORATYPE_VARCHAR2
93
 
94
   On Error Resume Next
95
   objEH.TryORA()
96
 
97
   OraDatabase.ExecuteSQL "BEGIN  PK_BUILDAPI.REMOVE_DAEMON(:RCON_ID_LIST);  END;"
98
 
99
   objEH.CatchORA ( OraSession )
100
 
101
   OraDatabase.Parameters.Remove "RCON_ID_LIST"
102
End Sub
103
'--------------------------------------------------------------------------------------------------------------------------
6166 dpurdie 104
Sub CheckMasterConfig()
105
    Dim rsQry, query
106
    OraDatabase.Parameters.Add "RTAG_ID",    parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
107
 
108
    '
109
    '   Check that there is exacly one master in the build set
110
    query = _
111
        "SELECT COUNT (rc.daemon_mode) as masterCount" &_
112
        " FROM release_manager.release_config rc, release_manager.run_level rl" &_
113
        " WHERE rc.rtag_id   = :RTAG_ID" &_
114
        " AND rl.RCON_ID = rc.RCON_ID" &_
115
        " AND   rc.bmcon_id is not NULL" &_
116
        " GROUP BY rc.daemon_mode" &_
117
        " HAVING rc.daemon_mode = 'M'"
118
 
119
    Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
120
 
121
    If rsQry.RecordCount > 0 Then
122
       masterCount = rsQry("masterCount")
123
    End If
124
    rsQry.Close
125
    Set rsQry = Nothing
126
 
127
    '
128
    '   Check that each GBE_MACHTYPE has exactly one insatnce where the BUILDFILTER contains
129
    '   a TOOLSET builder. The test is a bit sloppy
130
    query = _
131
        "SELECT * from ( " &_
132
        "SELECT GBE_ID, COUNT(hasToolset) as ToolsetCount " &_
133
        "FROM  " &_
134
        "  (SELECT bc.GBE_ID, " &_
135
        "    CASE " &_
136
        "      WHEN INSTR(rc.GBE_BUILDFILTER, 'TOOLSET') > 0 " &_
137
        "      THEN 1 " &_
138
        "      ELSE NULL " &_
139
        "    END AS hasToolset " &_
140
        "  FROM release_manager.release_config rc, " &_
141
        "    BUILD_MACHINE_CONFIG bc " &_
142
        "  WHERE rc.rtag_id = 6883 " &_
143
        "  AND rc.bmcon_id IS NOT NULL " &_
144
        "  AND bc.bmcon_id  = rc.bmcon_id " &_
145
        "  ) " &_
146
        "GROUP BY GBE_ID ) " &_
147
        "Where  ToolsetCount != 1 "
148
 
149
    Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
150
 
151
    toolsetWarning =  rsQry.RecordCount > 0 
152
    rsQry.Close
153
    Set rsQry = Nothing
154
 
155
 
156
    OraDatabase.Parameters.Remove "RTAG_ID"
157
 
158
End Sub
5357 dpurdie 159
%>
160
<%
161
'------------ RUN BEFORE PAGE RENDER ----------
162
' --- Get Form details from DB ---
163
Call GetFormDetails ( Request("rtag_id"), objFormCollector )
164
 
165
' --- Enter Form Validation Rule Changes here... ----
166
'----------------------------------------------------
167
 
168
' --- RUN onPostBack ---
169
If Request("action") <> "" AND objAccessControl.UserLogedIn Then
170
   If objForm.IsValidOnPostBack Then
171
      If canActionControlInProject("BuildConfiguration") Then
172
         If Request("btn") = "Delete" Then
173
             Call DeleteDaemon(Request("rcon_id_list"))
174
         ElseIf Request("btn") = "Unlink" Then
175
             Call RemoveDaemon(Request("rcon_id_list"))
176
        End If
177
      End If
178
 
179
      If objEH.Finally Then
180
         Call OpenInWindow ( "release_config.asp?rtag_id="& parRtagId )
181
      End If
182
 
183
   End If
184
 
185
End If
6166 dpurdie 186
Call CheckMasterConfig()
5357 dpurdie 187
'----------------------------------------------
188
%>
189
 
190
<html>
191
   <head>
192
      <title>Release Manager</title>
193
      <link rel="shortcut icon" href="<%=FavIcon%>"/>
194
      <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
195
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
196
      <link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
197
      <link rel="stylesheet" href="images/navigation.css" type="text/css">
198
      <script language="JavaScript" src="images/common.js"></script>
199
      <!--#include file="_jquery_includes.asp"-->
200
      <!-- DROPDOWN MENUS -->
201
      <!--#include file="_menu_def.asp"-->
202
      <script language="JavaScript1.2" src="images/popup_menu.js"></script>
203
   </head>
204
   <body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
205
      <!-- HEADER -->
206
      <!--#include file="_header.asp"-->
207
      <!-- BODY ---->
208
 
209
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
210
         <%
211
         '-- FROM START ---------------------------------------------------------------------------------------------------------
212
         objFormComponent.FormName = "FormName"
213
         objFormComponent.Action = ScriptName
214
         Call objFormComponent.FormStart()
215
         %>
216
         <tr>
217
            <td width="1" background="images/bg_home_orange.gif" valign="top"></td>
218
            <td width="100%" rowspan="2" align="center" valign="top" bgcolor="#EEEFEF">
219
               <table width="10" border="0" cellspacing="0" cellpadding="0">
220
                  <tr>
221
                     <td width="1%"></td>
222
                     <td width="100%">
223
                        <table width="100%"  border="0" cellspacing="0" cellpadding="0">
224
                           <tr>
225
                              <td nowrap class="body_txt"></td>
226
                           </tr>
227
                        </table>
228
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
229
                           <tr>
230
                              <td nowrap class="form_ttl">
231
                                 <p>&nbsp;</p>
232
                                 <p>
233
                                    <%If canActionControlInProject("BuildConfiguration") Then%>
234
                                       ADMINISTER
235
                                    <%Else%>
236
                                       VIEW
237
                                    <%End If%>
238
                                    BUILD CONFIGURATION
239
                                 </p>
240
                              </td>
241
                              <td align="right" valign="bottom"></td>
242
                           </tr>
243
                        </table>
244
                     </td>
245
                     <td width="1%"></td>
246
                  </tr>
247
                  <tr>
248
                     <td align="left" valign="top" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
249
                     <td background="images/lbox_bg_blue.gif" class="lbox_ttl_w"><img src="images/h_trsp_dot.gif" width="600" height="15"></td>
250
                     <td align="right" valign="top"  background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
251
                  </tr>
252
                  <tr>
253
                     <td bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
254
                     <td bgcolor="#FFFFFF" valign="top">
255
                        <!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
256
                        <!--#include file="messages/_msg_inline.asp"-->
257
                        <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
258
                        <br>
259
                        <!-- BUTTONS CONTROL +++++++++++++++++++ -->
260
                        <%
261
                        If canActionControlInProject("BuildConfiguration") Then
262
                           Call Action_Buttons ( "Add Daemon" )
263
                        End If
264
 
265
                        ' Load some action buttons
266
                        Call objBtnControl.LoadActionButtons ( Array("btnEditDaemon", "btnRemoveDaemon", "btnDeleteDaemon"), OraDatabase )
267
                        objBtnControl.ButtonSpacer = 1
268
 
269
                        %>
270
 
271
                        <!-- +++++++++++++++++++++++++++++++++++ -->
272
 
273
                        <table width="100%"  border="0" cellspacing="2" cellpadding="0">
274
                     </td>
275
                     <td width="9%" valign="top"></td>
276
                  </tr>
277
                  <tr>
278
                     <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col"></td>
279
                     <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">DAEMON HOST</td>
280
                     <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">GBE_MACHTYPE</td>
281
                     <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">DAEMON MODE</td>
282
                     <td valign="top"   wrap background="images/bg_table_col.gif" class="body_col">GBE_BUILDFILTER</td>
283
                     <%If canActionControlInProject("BuildConfiguration") Then%>
284
                        <td valign="top" nowrap background="images/bg_table_col.gif" class="body_col">ACTION</td>
285
                     <%End If%>
286
                     <td valign="top">
287
                  </tr>
288
                  <%
289
 
290
                  query_string = "select rcon_id, display_name, rc.bmcon_id, daemon_mode, gbe_value, gbe_buildfilter " &_
291
                                 " from release_manager.release_config rc," &_
292
                                 "      release_manager.build_machine_config bm," &_
293
                                 "      release_manager.gbe_machtype gbe" &_
294
                                 " where rc.rtag_id=" & parRtagId &_
295
                                 "      and rc.bmcon_id=bm.bmcon_id(+)" &_
296
                                 "      and rc.gbe_id=gbe.gbe_id" &_
297
                                 " order by daemon_mode, bm.display_name"
298
                  Set rsQry = OraDatabase.DbCreateDynaset( query_string, ORADYN_DEFAULT )
299
                  Dim daemon_mode, daemon, cbtype
300
 
301
                  cbtype = "hidden"
302
                  If canActionControlInProject("BuildConfiguration") Then
303
                     cbtype = "checkbox"
304
                  End If
305
 
306
                  '--- Render rows ---
307
                  Do While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
308
                     rcon_id = rsQry("rcon_id")
309
                     daemon  = rsQry("display_name")
310
                     If IsNull(daemon) Then
311
                         daemon = ""
312
                     End If
313
 
314
                     If rsQry("daemon_mode") = "M" Then
315
                        daemon_mode = "MASTER"
316
                     Else
317
                        daemon_mode = "SLAVE"
318
                     End If
319
                     %>
320
                     <tr>
321
                        <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
322
                     </tr>
323
                     <tr>
324
                        <td valign="top" align="center"><input type=<%=cbtype%> name="rcon_id_list" value="<%=rsQry("rcon_id")%>"></td>
325
                        <td valign="top"    nowrap class="body_rowg"><%=daemon%></td>
326
                        <td valign="top"    nowrap class="body_rowg"><%=rsQry("gbe_value")%></td>
327
                        <td valign="top"    nowrap class="body_rowg"><%=daemon_mode%></td>
328
                        <td valign="top"      wrap class="body_rowg"><%=rsQry("gbe_buildfilter")%></td>
329
                        <%If canActionControlInProject("BuildConfiguration") Then%>
330
                           <td valign="top" nowrap class="body_rowg"><%Call objBtnControl.Render  ( Array("btnEditDaemon", "btnRemoveDaemon", "btnDeleteDaemon"), objAccessControl )%></td>
331
                        <%End If%>
332
                     </tr>
333
                     <%
334
                     rsQry.MoveNext
335
                  Loop
336
                  rsQry.Close()
337
                  Set rsQry = nothing
338
                  %>
339
               </table>
340
            </td>
341
            <td background="images/lbox_bgside_white.gif">&nbsp;</td>
342
         </tr>
6166 dpurdie 343
        <%If masterCount <> 1 OR toolsetWarning Then %>
344
          <tr class="form_error form_btn">
345
            <td></td>
346
            <td style="padding: 10px;">
347
            <table class="full_table form_error">
348
                <%If masterCount <> 1 Then %>
349
                 <tr>
350
                    <td nowrap class="err_alert">Error
351
                    <td class="body_rowg"> The set of Build Machines must have exactly one Master.
352
                 </tr>
353
                <%End If%>
354
                <%If toolsetWarning Then %>
355
                 <tr>
356
                    <td nowrap class="err_alert">Warning
357
                    <td class="body_rowg">There should be one TOOLSET builder within each set of machines with the same GBE_MACHTYPE.
358
                 </tr>
359
                <%End If%>
360
                </tr>
361
            </table>
362
         </td>
363
            <td></td>
364
         </tr>
365
        <%End If%>
5357 dpurdie 366
         <tr>
6166 dpurdie 367
            <!-- ACTION BUTTONS ---------------------------------------------->
5357 dpurdie 368
            <td background="images/bg_action_norm.gif" ></td>
369
            <td align="right" background="images/bg_action_norm.gif" >
370
 
371
               <%=objFormComponent.CancelButton ( "OK", "class='form_btn'", "build_status.asp?rtag_id="& parRtagId )%>
372
               <%=objPMod.ComposeHiddenTags()%>
373
               <%If canActionControlInProject("BuildConfiguration") Then%>
374
                  <input name="btn" type="submit" class="form_btn" value="Unlink">
375
                  <input name="btn" type="submit" class="form_btn" value="Delete">
376
               <%End If%>
377
               <input type="hidden" name="rcon_id_list" value="<%=Request("rcon_id_list")%>">
378
               <input type="hidden" name="action" value="true">
379
            </td>
380
            <td background="images/bg_action_norm.gif" ><img src="images/h_trsp_dot.gif" width="5" height="30"></td>
6166 dpurdie 381
         <!-- ACTION BUTTONS END  ------------------------------------------></td>
5357 dpurdie 382
         </tr>
383
         <tr>
384
            <td background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
385
            <td background="images/lbox_bg_blue.gif"></td>
386
            <td background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
387
         </tr>
388
      </table>
389
 
390
      <td width="1" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="1"></td>
391
  </tr>
392
  <tr>
393
    <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>
394
    <td background="images/bg_lght_gray.gif" valign="top"><img src="images/h_trsp_dot.gif" width="1" height="500"></td>
395
  </tr>
396
<%
397
Call objFormComponent.FormEnd()
398
'-- FROM END ----------------------------------------------------------------------------------------------------------------
399
%>
400
</table>
401
<!-- FOOTER -->
402
<!--#include file="_footer.asp"-->
403
</body>
404
</html>