OSDN Git Service

Initial commit
[ultramonkey-l7/l7gui.git] / src / WebContent / um7state_info.jsp
1 <%@ page import="org.ultramonkey.l7.model.*,org.ultramonkey.l7.controller.*,org.ultramonkey.l7.view.*,java.util.*"
2         language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
3 <%
4         /*
5          * check session
6          */
7         L7guiServletBase base = new L7guiServletBase();
8         if (session.isNew() || base.checkSession(session) == false) {
9                 MessageView error = new MessageView(41407, LogCategorySet.GUI_USER_AUTHENTICATION,
10                 Message.INVALID_SESSSION);
11                 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
12                 response.sendRedirect(RedirectPages.LOGIN);
13                 return;
14         }
15         
16
17         /*
18          * get l7vsadm data from L7guiFramework
19          */
20         L7guiFramework framework = new L7guiFramework();
21         L7vsAdmData admDataList = framework.getAdmData();
22         if (admDataList == null) {
23                 MessageView error = new MessageView(41408, LogCategorySet.GUI_VIRTUALSERVICE,
24                 Message.UNEXPECTED_ERROR);
25                 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
26                 response.sendRedirect(RedirectPages.LOGIN);
27                 return;
28         }
29
30                 
31         /*
32          * get l7directrod.cf data
33          */
34         DirectorData dd = framework.getDirectorData();
35         if (dd == null) {
36                 MessageView error = new MessageView(41409, LogCategorySet.GUI_IO_FILE,
37                 Message.DIRECTOR_DATA_ERROR);
38                 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
39                 response.sendRedirect(RedirectPages.LOGIN);
40                 return;
41         }
42         
43         /*
44          * get cluster status
45          */
46         ClusterData cd = framework.getClusterData();
47         if (cd == null) {
48                 MessageView error = new MessageView(41410, LogCategorySet.GUI_IO_COMMAND,
49                 Message.CLUSTER_DATA_ERROR);
50                 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
51                 response.sendRedirect(RedirectPages.LOGIN);
52                 return;
53         }
54
55         /*
56          * fix style seat
57          */
58         String cssSeat = "l7gui_single_style.css";
59         if ( cd.self_status == ClusterStatus.ACTIVE ){
60                 cssSeat = "l7gui_act_style.css";
61         }
62         else if ( cd.self_status == ClusterStatus.STANDBY ){
63                 cssSeat = "l7gui_sby_style.css";
64         }
65 %>
66 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
67 <html>
68         <head>
69                 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
70                 <meta http-equiv="Pragma" content="no-cache">
71                 <meta http-equiv="Cache-Control" content="no-cache">
72                 <meta http-equiv="Expires" content="0"> 
73                 <meta http-equiv="Content-Script-Type" content="text/javascript" />
74                 <meta http-equiv="Content-Style-Type" content="text/css" />
75                 <script src="l7gui.js" type="text/javascript"></script>
76                 <noscript> 
77         <meta http-equiv="refresh" content="<%= RedirectPages.NOSCRIPT_TIME %>; url=<%= RedirectPages.LOGIN %>"/>
78                 </noscript> 
79                 <link rel="stylesheet" type="text/css" href="<%= cssSeat %>" />
80                 <link rel="shortcut icon" href="images/favicon.ico"/>
81
82                 <title>UltraMonkey-L7 Current Status</title>
83
84         </head>
85  
86         <body class="normal">
87                 <div id="content">
88
89                 <h1>VirtualService Current Status</h1>
90 <%
91         if ( (cd.self_status.equals(ClusterStatus.ACTIVE)) || (cd.self_status.equals(ClusterStatus.SINGLE) )){
92
93                 MessageView mv = (MessageView) session.getAttribute(SessionKeys.RESULT_MESSAGE);
94                         String message = null;
95                         int errno = 0;
96                         String category = null;
97                         
98                         if (mv != null) {
99                                 message  = mv.getMessage();
100                                 errno    = mv.getErrno();
101                                 category = mv.getCategory();
102                                 if ( message != null){
103                                         out.println("<p class=\"error\">[" + category + "-" + errno + "] </p>" );
104                                         out.println("<p class=\"error\">" + message + "</p>");
105                                 }
106                                 session.setAttribute(SessionKeys.RESULT_MESSAGE,null);
107                         }
108                 %>
109                 
110                 
111                 <%
112                         MessageView mvCommand = (MessageView) session.getAttribute(SessionKeys.COMMAND_MESSAGE);
113                         String commandMessage = null;
114                         int commandErrno = 0;
115                         String commandCategory = null;
116                         if (mvCommand != null) {
117                                 commandMessage  = mvCommand.getMessage();
118                                 commandErrno    = mvCommand.getErrno();
119                                 commandCategory = mvCommand.getCategory();
120                                 if ( commandMessage != null ){
121                                         out.println("<p class=\"success\">[" + commandCategory + "-" + commandErrno + "] </p>" );
122                                         out.println("<p class=\"success\">" + commandMessage + "</p>");
123                                 }
124                                 session.setAttribute(SessionKeys.COMMAND_MESSAGE,null);
125                         }
126                 %>
127                 
128                 <form method="post" action="VSRemoveServlet" name="vs_info" id="vs_info">
129                         <%
130                                 /*
131                                  * get VirtualService data from L7guiFramework
132                                  */
133                                 Vector<VirtualSetting> vsList = new Vector<VirtualSetting>();
134                                 vsList = admDataList.virtualSettings;   
135                                 ArrayList<String> vsNameList = new ArrayList<String>(); 
136                                 vsNameList.clear();
137                         
138                                 String vsIp  = null;
139                                 String vsPort = null;
140                                 String vsProtomod = null;
141                                 String vsOption = null;
142                                 String vsSchedule = null;
143                                 String rsIP = null;
144                                 String rsPort = null;
145                                 int rsWeight = 0;
146                                 long activeConnections = 0;
147                                 long inactiveConnections = 0;
148                                 String vsSorryFlag = null;
149                                 
150                                 if (vsList.size() > 0) {
151                         %>
152                         <fieldset>
153                         <legend>Virtual Service List</legend>
154                                 <table class="infotable" cellspacing="0">
155                                 <tr>
156                                         <th class="point" rowspan="2">
157                                         <label for="Remove Modify Check">Remove/<br />Modify CHECK</label>                               
158                                         </th>
159                                         <th class="head" colspan="5">
160                                         <label for="VirtualService">VirtualService</label>                               
161                                         </th>
162                                         <th class="head" colspan="5">
163                                         <label for="RealServices">RealServer</label>
164                                         </th>
165                                         <th rowspan="2">
166                                         <label for="SorryFlag">Sorry Flag</label>
167                                         </th>                                   
168                                 </tr>           
169                                 <tr>
170                                         <th>
171                                         <label for="VirtualIP Address">VirtualIP Address</label>
172                                         </th> 
173                                         <th>
174                                         <label for="Port Number">Port Number</label>                    
175                                         </th>
176                                         <th>
177                                         <label for="Persistence Type">Persistence Type</label>                                          
178                                         </th>
179                                         <th>
180                                         <label for="Module option">Module Option</label>                                                
181                                         </th>
182                                         <th class="point">
183                                         <label for="Scheduler Type">Scheduler Type</label>                                              
184                                         </th>
185                                         <th>
186                                         <label for="RealServer IP Address">IP Address</label>                                           
187                                         </th>
188                                         <th>
189                                         <label for="RealServer Port Number">Port Number</label>                                                                 
190                                         </th>
191                                         <th>
192                                         <label for="RealServer weight">Weight</label>                                                                                           
193                                         </th>
194                                         <th>
195                                         <label for="ActiveConnections">Active Connections</label>                                                                                               
196                                         </th>
197                                         <th class="point">
198                                         <label for="InactiveConnections">Inactive Connections</label>                                                                                           
199                                         </th>                                   
200                                 </tr>
201                         <% 
202                                 for (int i = 0; i < vsList.size(); i++) {               
203                                         try {
204                                                 VirtualSetting getVirtualSetting = vsList.get(i);
205                                 
206                                                 vsIp = getVirtualSetting.virtual.host;
207                                                 vsPort = getVirtualSetting.virtual.port;
208                                                 vsProtomod = getVirtualSetting.protomod;
209                                                 vsOption = getVirtualSetting.option;            
210                                                 vsSchedule = getVirtualSetting.sched;
211                                 
212                                                 Vector<EndPoint> getRsList =getVirtualSetting.real; 
213                                                 int rsNumber = getRsList.size();
214                                                 if ( rsNumber < 0 ){
215                                                         rsNumber = 1;
216                                                 }
217                                                         
218                                                 boolean vsSorry = getVirtualSetting.sorryflag;
219                                                 
220                                                 if ( (vsIp == null) || (vsProtomod == null) || (vsOption == null) ){
221                                                         MessageView error = new MessageView(41411, LogCategorySet.GUI_VIRTUALSERVICE,
222                                                         Message.UNEXPECTED_ERROR);
223                                                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
224                                                         response.sendRedirect(RedirectPages.LOGIN);
225                                                         return;
226                                                 }
227                                                 vsNameList.add(vsIp + ":" + vsPort + ":" + vsProtomod + ":" + vsOption);
228                         %>
229                                         
230                                 <tr>    
231                                         <td class="point" rowspan="<%=rsNumber %>"><input type="radio" name= "vs" value="<%=vsNameList.get(i) %>" /></td>
232                                         <td class="center" rowspan="<%=rsNumber %>"><%=vsIp%></td>
233                                         <td class="center" rowspan="<%=rsNumber %>"><%=vsPort%></td>
234                                         <td class="center" rowspan="<%=rsNumber %>"><%=vsProtomod%></td>
235                                         <td class="center" rowspan="<%=rsNumber %>"><%=vsOption%></td>
236                                         <td class="point" rowspan="<%=rsNumber %>"><%=vsSchedule%></td>
237                                 <%
238                                                 if ( rsNumber < 1 ){
239                                 %>
240                                                 <td class="center">-</td>
241                                                 <td class="center">-</td>
242                                                 <td class="center">-</td>
243                                                 <td class="center">-</td>
244                                                 <td class="point">-</td>                                                
245                                 <%
246                                                 }
247                                                 else{
248                                                         EndPoint getRs = getRsList.get(0);
249                                                         rsIP = getRs.host;
250                                                         rsPort = getRs.port;
251                                                         rsWeight = getRs.weight;
252                                                         activeConnections = getRs.actConn;
253                                                         inactiveConnections = getRs.inActConn;                                                  
254                                 %>
255                                                 <td class="center"><%=rsIP%></td>
256                                                 <td class="center"><%=rsPort%></td>
257                                                 <td class="center"><%=rsWeight%></td>
258                                                 <td class="center"><%=activeConnections%></td>
259                                                 <td class="point"><%=inactiveConnections%></td>                                                                                         
260                                 <%
261                                                 }
262                                                 if(vsSorry == true){
263                                                         vsSorryFlag = "On";
264                                                 }
265                                                 else {
266                                                         vsSorryFlag = "Off";
267                                                 }
268                                 %>
269                                 <td class="center" rowspan="<%=rsNumber %>"><%=vsSorryFlag %></td>
270                                 </tr>
271                                 <%
272                                                 for ( int j = 1; j < rsNumber; j++ ){ 
273                                                         EndPoint addedGetRs = getRsList.get(j);
274                                                         rsIP = addedGetRs.host;
275                                                         rsPort = addedGetRs.port;
276                                                         rsWeight = addedGetRs.weight;
277                                                         activeConnections = addedGetRs.actConn;
278                                                         inactiveConnections = addedGetRs.inActConn;                                                     
279                                 %>
280                                 <tr>
281                                                 <td class="center"><%=rsIP%></td>
282                                                 <td class="center"><%=rsPort%></td>
283                                                 <td class="center"><%=rsWeight%></td>
284                                                 <td class="center"><%=activeConnections%></td>
285                                                 <td class="point"><%=inactiveConnections%></td>
286                                 </tr>
287                                 <%
288                                                 }
289                                 %>
290                         
291                                 <%              
292                                                 }catch(NullPointerException e){
293                                                         MessageView error = new MessageView(41412, LogCategorySet.GUI_VIRTUALSERVICE,
294                                                                         Message.UNEXPECTED_ERROR);
295                                                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
296                                                         response.sendRedirect(RedirectPages.LOGIN);
297                                                         return;
298                                                 }
299                                         }
300                                 %>
301                                 </table>
302                                 </fieldset>
303                                 <%
304                                 }
305                                 %>
306                 
307                         <h2>Add a New VirtualService</h2>
308                         <h4>Please push the following button, if you would like to add a new virtualService.</h4><br />
309                         
310                         <input type="button" value="<%= ButtonMode.ADD %>" onclick="location.href='<%=RedirectPages.VS_ADD %>'" />
311                 
312                         <%
313                         if (vsList.size() > 0) {
314                         %>
315                         <h2>Modify a VirtualService</h2>
316                         <h4>Please select and push the following button, if you would like to modify a virtualService.</h4><br />       
317                 
318                         <input type="button" value="<%= ButtonMode.MODIFY %>" onClick="vs_modify('<%=RedirectPages.VS_MODIFY %>')" />
319                 
320                         <h2>Remove a VirtualService</h2>
321                         <h4>Please select and push the following button, if you would like to remove a virtualService.</h4><br />       
322                         
323                         <input type="submit" name="button_remove" value="<%=ButtonMode.APPLY %>" onClick="return confirm(remove_vs_apply)" />
324                         <%
325                                 if (dd.autoreload == true) {
326                         %>
327                         <input type="submit" name="button_remove" value="<%=ButtonMode.SAVE %>" onClick="return confirm(remove_vs_save)" />
328                         <%
329                                         if (cd.self_status == ClusterStatus.ACTIVE || cd.self_status == ClusterStatus.STANDBY) {
330                         %>
331                         <input type="submit" name="button_remove" value="<%=ButtonMode.SAVESYNC %>" onClick="return confirm(remove_vs_savesync)" />
332                                 <%
333                                         }
334                                 }
335                         }
336                         %>
337                         </form>
338
339         <%
340         }
341         else{
342                 response.sendRedirect(RedirectPages.TOPMENU);
343                 return;
344
345         }
346         %>
347 </div>
348 <jsp:include page="menu.jsp" flush="false"/>
349 </body>
350 </html>
351