1 <%@ page import="org.ultramonkey.l7.model.*,
2 org.ultramonkey.l7.controller.*,
3 org.ultramonkey.l7.view.*, java.util.*"
4 language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
10 L7guiServletBase base = new L7guiServletBase();
11 if (session.isNew() || base.checkSession(session) == false) {
12 MessageView error = new MessageView(41436, LogCategorySet.GUI_USER_AUTHENTICATION,
13 Message.INVALID_SESSSION);
14 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
15 response.sendRedirect(RedirectPages.LOGIN);
23 MessageView message = (MessageView) session.getAttribute(SessionKeys.RESULT_MESSAGE);
24 String errorMessage = "";
27 if (message != null) {
28 errorMessage = message.getMessage();
29 errorNumber = message.getErrno();
30 category = message.getCategory();
31 session.setAttribute(SessionKeys.RESULT_MESSAGE, null);
35 * get validation error message
37 HashMap<String,String> errMessage = (HashMap<String,String>) session.getAttribute(SessionKeys.INVALID_MESSAGE);
38 session.setAttribute(SessionKeys.INVALID_MESSAGE,null);
41 * get previous input value
43 L7guiFramework framework = new L7guiFramework();
44 VirtualSetting vs = (VirtualSetting) session.getAttribute(SessionKeys.INPUT_VS);
46 session.setAttribute(SessionKeys.INPUT_VS, null);
50 * get l7directrod.cf data
52 DirectorData dd = framework.getDirectorData();
54 MessageView error = new MessageView(41437, LogCategorySet.GUI_IO_FILE,
55 Message.DIRECTOR_DATA_ERROR);
56 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
57 response.sendRedirect(RedirectPages.LOGIN);
65 ClusterData cd = framework.getClusterData();
67 MessageView error = new MessageView(41438, LogCategorySet.GUI_IO_COMMAND,
68 Message.CLUSTER_DATA_ERROR);
69 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
70 response.sendRedirect(RedirectPages.LOGIN);
77 String cssSeat = "l7gui_single_style.css";
78 if ( cd.self_status == ClusterStatus.ACTIVE ){
79 cssSeat = "l7gui_act_style.css";
81 else if ( cd.self_status == ClusterStatus.STANDBY ){
82 cssSeat = "l7gui_sby_style.css";
89 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
92 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
93 <meta http-equiv="Pragma" content="no-cache">
94 <meta http-equiv="Cache-Control" content="no-cache">
95 <meta http-equiv="Expires" content="0">
96 <meta http-equiv="Content-Script-Type" content="text/javascript" />
97 <meta http-equiv="Content-Style-Type" content="text/css" />
98 <script src="l7gui.js" type="text/javascript"></script>
100 <meta http-equiv="refresh" content="<%= RedirectPages.NOSCRIPT_TIME %>; url=<%= RedirectPages.LOGIN %>"/>
102 <link rel="stylesheet" type="text/css" href="<%=cssSeat %>" />
103 <link rel="shortcut icon" href="images/favicon.ico" />
105 <title>Add VirtualService</title>
108 <body class="normal">
109 <jsp:include page="menu.jsp" flush="false"/>
111 <h1 class="title">Add a VirtualService</h1>
113 if ( (cd.self_status.equals(ClusterStatus.ACTIVE)) || (cd.self_status.equals(ClusterStatus.SINGLE) )){
115 if ( (message != null) && (errorMessage != null)) {
118 <p class="error">[<%=category %> - <%=errorNumber %>]</p>
119 <p class="error"><%=errorMessage %></p>
125 <h2> VirtualService Info</h2>
126 <form method="post" action="VSAddServlet" name="vs_add">
130 <legend>Basic Settings</legend>
132 <table class="status">
135 <label for="ip">Virtual IP address</label>
138 <input type="text" id="ip" name="vip" value="<%
140 out.println(vs.virtual.host); %>" maxlength="15" />
142 if ( null != errMessage ){
143 String invalidMessage = errMessage.get("vip");
144 if( null != invalidMessage ){
145 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
151 <p class="item">Required Field</p>
152 <p class="required">[0-255].[0-255].[0-255].[0-255]</p>
157 <label for="port">Port Number</label>
162 String invalidMessage = null;
163 if ( null != errMessage ) {
164 invalidMessage = errMessage.get("port");
167 if ( (vs == null) || (vs.virtual.port == null) ){
169 out.println("<input type=\"text\" id=\"port\" value=\"\" name=\"port\" />");
172 out.println("<input type=\"text\" id=\"port\" value=\"" + vs.virtual.port + "\"name=\"port\" />");
174 if( null != invalidMessage ){
175 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
181 <p class="item">Required Field</p>
182 <p class="required">1-65535, service name</p>
187 <label for="protomod">Persistence Type</label>
190 <select id="protomod" name="protomod">
191 <option value="cinsert"<%
192 if ( (vs != null ) && (vs.protomod.equals("cinsert")) )
193 out.print(" selected");
194 %>>Cookie Insert</option>
195 <option value="url"<%
196 if ( (vs != null ) && (vs.protomod.equals("url")) )
197 out.print(" selected");
198 %>>URL Pattern</option>
199 <option value="sslid"<%
200 if ( (vs != null ) && (vs.protomod.equals("sslid")) )
201 out.print(" selected");
202 %>>SSL Session ID</option>
203 <option value="sessionless"<%
204 if ( (vs != null ) && (vs.protomod.equals("sessionless")) )
205 out.print(" selected");
206 %>>Sessionless</option>
209 if ( null != errMessage ){
210 String invalidMessage = errMessage.get("protomod");
211 if( null != invalidMessage ){
212 out.print("<p class=\"invalid\">" + invalidMessage + "</p>");
218 <p class="item">Required Field</p>
223 <label for="option">Persistence option</label>
226 <input type="text" id="option" name="option" value="<%
228 out.println(vs.option); %>" maxlength="127" />
230 if ( null != errMessage ){
231 String invalidMessage = errMessage.get("option");
232 if( null != invalidMessage ){
233 out.print("<p class=\"invalid\">" + invalidMessage + "</p>");
239 <p class="required">Up to 127 one-byte characters in English</p>
244 <label for="sched">Scheduler Type</label>
247 <select id="sched" name="sched">
249 if ( (vs != null ) && (vs.sched.equals("rr")) )
250 out.print(" selected");
251 %>>Round Robin</option>
252 <option value="wrr"<%
253 if ( (vs != null ) && (vs.sched.equals("wrr")) )
254 out.print(" selected");
255 %>>Weighted Round Robin</option>
257 if ( (vs != null ) && (vs.sched.equals("lc")) )
258 out.print(" selected");
259 %>>Least Connection</option>
262 if ( null != errMessage ){
263 String invalidMessage = errMessage.get("sched");
264 if( null != invalidMessage ){
265 out.print("<p class=\"invalid\">" + invalidMessage + "</p>");
271 <p class="required"></p>
277 <legend>Advanced Settings</legend>
278 <table class="status">
281 <label for="qos_srv">QoS (per Virtual Service)</label>
285 String invalidMessage = null;
287 if ( null != errMessage ) {
288 invalidMessage = errMessage.get("qos_service");
290 if ( (vs == null) || ( ( 0 == vs.qosservice ) && ( null != invalidMessage ) ) ){
291 out.println("<input type=\"text\" id=\"qos_srv\" value=\"\" name=\"qos_service\" size=\"3\" maxlength=\"3\" />");
294 if ( null == invalidMessage ){
295 while ( (vs != null) && (vs.qosservice >= 1000) ) {
296 vs.qosservice /= 1000;
300 out.println("<input type=\"text\" id=\"qos_srv\" value=\"" + vs.qosservice + "\"name=\"qos_service\" size=\"3\" maxlength=\"3\" />");
303 <select id="qos_srv" name="qos_service_unit">
304 <option value="bps"<%
305 if ( (vs != null) && (unit_s == 0) )
306 out.print(" selected");
308 <option value="Kbps"<%
309 if ( (vs != null) && (unit_s == 1) )
310 out.print(" selected");
312 <option value="Mbps"<%
313 if ( (vs != null) && (unit_s == 2) )
314 out.print(" selected");
316 <option value="Gbps"<%
317 if ( (vs != null) && (unit_s == 3) )
318 out.print(" selected");
322 if( null != invalidMessage ){
323 out.print("<p class=\"invalid\">" + invalidMessage + "</p>");
329 <p class="required">0-999(bps/Kbps/Mbps/Gbps)</p>
334 <label for="qos_conn">QoS (per Client)</label>
338 String invalidMessage = null;
340 if ( null != errMessage ) {
341 invalidMessage = errMessage.get("qos_conn");
343 if ( (vs == null) || ( ( 0 == vs.qosclient ) && ( null != invalidMessage ) ) ){
344 out.print("<input type=\"text\" id=\"qos_conn\" value=\"\" name=\"qos_conn\" size=\"3\" maxlength=\"3\" />");
347 if ( null == invalidMessage ){
348 while ( (vs != null) && (vs.qosclient >= 1000) ) {
349 vs.qosclient /= 1000;
353 out.print("<input type=\"text\" id=\"qos_conn\" value=\"" + vs.qosclient + "\" name=\"qos_conn\" size=\"3\" maxlength=\"3\" />");
356 <select id="qos_conn" name="qos_conn_unit">
357 <option value="bps"<%
358 if ( (vs != null) && (unit_c == 0) )
359 out.print(" selected");
361 <option value="Kbps"<%
362 if ( (vs != null) && (unit_c == 1) )
363 out.print(" selected");
365 <option value="Mbps"<%
366 if ( (vs != null) && (unit_c == 2) )
367 out.print(" selected");
369 <option value="Gbps"<%
370 if ( (vs != null) && (unit_c == 3) )
371 out.print(" selected");
375 if( null != invalidMessage ){
376 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
382 <p class="required">0-999(bps/Kbps/Mbps/Gbps)</p>
387 <label for="max_conn">Max Connections</label>
392 String invalidMessage = null;
393 if ( null != errMessage ) {
394 invalidMessage = errMessage.get("max_conn");
396 if ( (vs == null) || ( ( 0 == vs.maxconn ) && ( null != invalidMessage ) ) ){
397 out.println("<input type=\"text\" id=\"max_conn\" value=\"\" name=\"max_conn\" maxlength=\"6\" />");
400 out.println("<input type=\"text\" id=\"max_conn\" value=\"" + vs.maxconn + "\" name=\"max_conn\" maxlength=\"6\" />");
402 if( null != invalidMessage ){
403 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
409 <p class="required">0-100000<br>Note : "0" means "Unlimited"</p>
416 <legend>Monitor Settings</legend>
417 <p class="caution"> <img src="images/exclamation3.gif" alt="Caution!!" width="16" height="14" align="middle">
418 Disable Area when you push "Apply" button.</p>
419 <table class="status">
422 <label for="timeout">Check Timeout</label>
427 String invalidMessage = null;
428 if ( null != errMessage ) {
429 invalidMessage = errMessage.get("timeout");
431 if ( (vs == null) || (0 == vs.timeout) ){
432 if ( dd.autoreload == true ) {
433 out.println("<input type=\"text\" id=\"timeout\" value=\"\" name=\"timeout\" maxlength=\"10\" />");
436 out.println("<input class=\"read\" readonly type=\"text\" id=\"timeout\" value=\"\" name=\"timeout\" maxlength=\"10\" />");
440 if ( dd.autoreload == true ) {
441 out.println("<input type=\"text\" id=\"timeout\" value=\"" + vs.timeout + "\" name=\"timeout\" maxlength=\"10\" />");
444 out.println("<input class=\"read\" readonly type=\"text\" id=\"timeout\" value=\"\" name=\"timeout\" maxlength=\"10\" />");
447 if( null != invalidMessage ){
448 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
454 <p class="required">1-2147483647(sec)</p>
459 <label for="check_type">Check Type</label>
463 if ( dd.autoreload == true ) {
465 <input type="text" id="check_type" value="<%
467 out.println(vs.checktype); %>" name="check_type" maxlength="9" />
472 <input class="read" readonly type="text" id="check_type" value="<%
474 out.println(vs.checktype); %>" name="check_type" maxlength="9" />
477 if ( null != errMessage ) {
478 String invalidMessage = errMessage.get("check_type");
479 if( null != invalidMessage ){
480 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
486 <p class="required">Any Of The Following<br>negotiate, connect, ping, off, on, 0-9</p>
491 <label for="check_service">Check Service</label>
494 <% if ( dd.autoreload == true ) {%>
495 <select id="check_service" name="check_service">
497 if ( ( null != vs ) && (vs.service.equals("")) )
498 out.print(" selected");
500 <option value="ftp"<%
501 if ( ( null != vs ) && (vs.service.equals("ftp")) )
502 out.print(" selected");
504 <option value="smtp"<%
505 if ( ( null != vs ) && (vs.service.equals("smtp")) )
506 out.print(" selected");
508 <option value="dns"<%
509 if ( ( null != vs ) && (vs.service.equals("dns")))
510 out.print(" selected");
512 <option value="http"<%
513 if ( ( null != vs ) && (vs.service.equals("http")) )
514 out.print(" selected");
516 <option value="pop"<%
517 if ( ( null != vs ) && (vs.service.equals("pop")) )
518 out.print(" selected");
520 <option value="nntp"<%
521 if ( ( null != vs ) && (vs.service.equals("nntp")) )
522 out.print(" selected");
524 <option value="imap"<%
525 if ( ( null != vs ) && (vs.service.equals("imap")) )
526 out.print(" selected");
528 <option value="ldap"<%
529 if ( ( null != vs ) && (vs.service.equals("ldap")) )
530 out.print(" selected");
532 <option value="https"<%
533 if ( ( null != vs ) && (vs.service.equals("https")) )
534 out.print(" selected");
536 <option value="mysql"<%
537 if ( ( null != vs ) && (vs.service.equals("mysql")) )
538 out.print(" selected");
540 <option value="pgsql"<%
541 if ( ( null != vs ) && (vs.service.equals("pgsql")) )
542 out.print(" selected");
543 %>>PostgreSQL</option>
544 <option value="sip"<%
545 if ( ( null != vs ) && (vs.service.equals("sip")) )
546 out.print(" selected");
548 <option value="none"<%
549 if ( ( null != vs ) && (vs.service.equals("none")) )
550 out.print(" selected");
557 <select class="read" disabled id="check_service" name="check_service">
559 if ( ( null != vs ) && (vs.service.equals("")) )
560 out.print(" selected");
562 <option value="ftp"<%
563 if ( ( null != vs ) && (vs.service.equals("ftp")) )
564 out.print(" selected");
566 <option value="smtp"<%
567 if ( ( null != vs ) && (vs.service.equals("smtp")) )
568 out.print(" selected");
570 <option value="dns"<%
571 if ( ( null != vs ) && (vs.service.equals("dns")))
572 out.print(" selected");
574 <option value="http"<%
575 if ( ( null != vs ) && (vs.service.equals("http")) )
576 out.print(" selected");
578 <option value="pop"<%
579 if ( ( null != vs ) && (vs.service.equals("pop")) )
580 out.print(" selected");
582 <option value="nntp"<%
583 if ( ( null != vs ) && (vs.service.equals("nntp")) )
584 out.print(" selected");
586 <option value="imap"<%
587 if ( ( null != vs ) && (vs.service.equals("imap")) )
588 out.print(" selected");
590 <option value="ldap"<%
591 if ( ( null != vs ) && (vs.service.equals("ldap")) )
592 out.print(" selected");
594 <option value="https"<%
595 if ( ( null != vs ) && (vs.service.equals("https")) )
596 out.print(" selected");
598 <option value="mysql"<%
599 if ( ( null != vs ) && (vs.service.equals("mysql")) )
600 out.print(" selected");
602 <option value="pgsql"<%
603 if ( ( null != vs ) && (vs.service.equals("pgsql")) )
604 out.print(" selected");
605 %>>PostgreSQL</option>
606 <option value="sip"<%
607 if ( ( null != vs ) && (vs.service.equals("sip")) )
608 out.print(" selected");
610 <option value="none"<%
611 if ( ( null != vs ) && (vs.service.equals("none")) )
612 out.print(" selected");
617 if ( null != errMessage ) {
618 String invalidMessage = errMessage.get("check_service");
619 if( null != invalidMessage ){
620 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
626 <p class="required"></p>
631 <label for="quiescent">Quiescent</label>
634 <%if (dd.autoreload == true) { %>
635 <select id="quiescent" name="quiescent">
637 if ( ( null != vs ) && (vs.quiescent.equals("")) )
638 out.print(" selected");
640 <option value="yes"<%
641 if ( ( null != vs ) && (vs.quiescent.equals("yes")) )
642 out.print(" selected");
645 if ( ( null != vs ) && (vs.quiescent.equals("no")) )
646 out.print(" selected");
654 <select class="read" disabled id="quiescent" name="quiescent">
656 if ( ( null != vs ) && (vs.quiescent.equals("")) )
657 out.print(" selected");
659 <option value="yes"<%
660 if ( ( null != vs ) && (vs.quiescent.equals("yes")) )
661 out.print(" selected");
664 if ( ( null != vs ) && (vs.quiescent.equals("no")) )
665 out.print(" selected");
671 if ( null != errMessage ) {
672 String invalidMessage = errMessage.get("quiescent");
673 if( null != invalidMessage ){
674 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
680 <p class="required">Default : No</p>
685 <label for="down_callback">Real Server Down Callback</label>
689 if ( dd.autoreload == true ) {
691 <input type="text" id="down_callback" value="<%
693 out.println(vs.downcallback); %>" name="down_callback" maxlength=\"127\" />
698 <input class="read" readonly type="text" id="down_callback" value="<%
700 out.println(vs.downcallback); %>" name="down_callback" maxlength=\"127\" />
703 if ( null != errMessage ) {
704 String invalidMessage = errMessage.get("down_callback");
705 if( null != invalidMessage ){
706 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
712 <p class="required">Up to 127 one-byte characters in English<br>Be effctive only if CheckService : HTTP, HTTPS, LDAP, MySQL, PostgreSQL, SIP, None</p>
717 <label for="up_callback">Real Server Up Callback</label>
721 if ( dd.autoreload == true ) {
723 <input type="text" id="up_callback" value="<%
725 out.println(vs.upcallback); %>" name="up_callback" maxlength=\"127\" />
730 <input class="read" readonly type="text" id="up_callback" value="<%
732 out.println(vs.upcallback); %>" name="up_callback" maxlength=\"127\" />
735 if ( null != errMessage ) {
736 String invalidMessage = errMessage.get("up_callback");
737 if( null != invalidMessage ){
738 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
744 <p class="required">Up to 127 one-byte characters in English</p>
749 <label for="check_port">Check Port</label>
754 String invalidMessage = null;
755 if ( null != errMessage ){
756 invalidMessage = errMessage.get("check_port");
758 if ( (vs == null) || (0 == vs.checkport) ){
759 if ( dd.autoreload == true ) {
760 out.println("<input type=\"text\" id=\"check_port\" value=\"\" name=\"check_port\" maxlength=\"5\" />");
763 out.println("<input class=\"read\" readonly type=\"text\" id=\"check_port\" value=\"\" name=\"check_port\" maxlength=\"5\" />");
767 if ( dd.autoreload == true ) {
768 out.println("<input type=\"text\" id=\"check_port\" value=\"" + vs.checkport + "\" name=\"check_port\" maxlength=\"5\" />");
771 out.println("<input class=\"read\" readonly type=\"text\" id=\"check_port\" value=\"" + vs.checkport + "\" name=\"check_port\" maxlength=\"5\" />");
774 if ( null != invalidMessage ) {
775 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
781 <p class="required">1-65535</p>
786 <label for="request">Request Path</label>
790 if ( dd.autoreload == true ) {
792 <input type="text" id="request" value="<%
794 out.println(vs.request); %>" name="request" maxlength=\"127\" />
799 <input class="read" readonly type="text" id="request" value="<%
801 out.println(vs.request); %>" name="request" maxlength=\"127\" />
804 if ( null != errMessage ) {
805 String invalidMessage = errMessage.get("request");
806 if( null != invalidMessage ){
807 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
813 <p class="required">Up to 127 one-byte characters in English<br>Be effctive only if CheckService : HTTP, HTTPS, LDAP, MySQL, PostgreSQL, SIP, None</p>
818 <label for="receive">Receive String</label>
822 if ( dd.autoreload == true ) {
824 <input type="text" id="receive" value="<%
826 out.println(vs.receive); %>" name="receive" maxlength=\"127\" />
831 <input class="read" readonly type="text" id="receive" value="<%
833 out.println(vs.receive); %>" name="receive" maxlength=\"127\" />
837 if ( null != errMessage ) {
838 String invalidMessage = errMessage.get("receive");
839 if( null != invalidMessage ){
840 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
846 <p class="required">Up to 127 one-byte characters in English<br>Be effctive only if CheckService : HTTP, HTTPS, LDAP, FTP, DNS</p>
851 <label for="method">HTTP Method</label>
854 <% if ( dd.autoreload == true ){
856 <select id="method" name="method">
858 if ( ( vs != null ) && (vs.httpmethod.equals("")) )
859 out.print(" selected");
861 <option value="GET"<%
862 if ( ( vs != null ) && (vs.httpmethod.equals("GET")) )
863 out.print(" selected");
865 <option value="HEAD"<%
866 if ( ( vs != null ) && (vs.httpmethod.equals("HEAD")) )
867 out.print(" selected");
875 <select class="read" disabled id="method" name="method">
877 if ( ( vs != null ) && (vs.httpmethod.equals("")) )
878 out.print(" selected");
880 <option value="GET"<%
881 if ( ( vs != null ) && (vs.httpmethod.equals("GET")) )
882 out.print(" selected");
884 <option value="HEAD"<%
885 if ( ( vs != null ) && (vs.httpmethod.equals("HEAD")) )
886 out.print(" selected");
892 if ( null != errMessage ) {
893 String invalidMessage = errMessage.get("method");
894 if( null != invalidMessage ){
895 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
901 <p class="required">Be effctive only if CheckService : HTTP, HTTPS</p>
906 <label for="virtual_host">Virtual Host</label>
910 if ( dd.autoreload == true ) {
912 <input type="text" id="virtual_host" value="<%
914 out.println(vs.virtualhost); %>" name="virtual_host" maxlength=\"127\" />
919 <input class="read" readonly type="text" id="virtual_host" value="<%
921 out.println(vs.virtualhost); %>" name="virtual_host" maxlength=\"127\" />
924 if ( null != errMessage ) {
925 String invalidMessage = errMessage.get("virtual_host");
926 if( null != invalidMessage ){
927 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
933 <p class="required">Up to 127 one-byte characters in English<br>Be effctive only if CheckService : HTTP, HTTPS</p>
939 <label for="login_user">Login Username</label>
943 if ( dd.autoreload == true ) {
945 <input type="text" id="login_user" value="<%
947 out.println(vs.login); %>" name="login_user" maxlength=\"32\" />
952 <input class="read" readonly type="text" id="login_user" value="<%
954 out.println(vs.login); %>" name="login_user" maxlength=\"32\" />
957 if ( null != errMessage ) {
958 String invalidMessage = errMessage.get("login_user");
959 if( null != invalidMessage ){
960 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
966 <p class="required">Up to 32 one-byte characters in English<br>Followings : Effctive only when CheckService is FTP, POP, IMAP, MySQL, PostgreSQL, and SIP</p>
974 <label for="login_pass">Login Password</label>
978 if ( dd.autoreload == true ) {
980 <input type="text" id="login_pass" value="<%
982 out.println(vs.passwd); %>" name="login_pass" maxlength=\"32\" />
987 <input class="read" readonly type="text" id="login_pass" value="<%
989 out.println(vs.passwd); %>" name="login_pass" maxlength=\"32\" />
992 if ( null != errMessage ) {
993 String invalidMessage = errMessage.get("login_pass");
994 if( null != invalidMessage ){
995 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1001 <p class="required">Up to 32 one-byte characters in English<br>Be effctive only if CheckService : FTP, POP, IMAP, MySQL, PostgreSQL, SIP</p>
1006 <label for="db">Database Name</label>
1010 if ( dd.autoreload == true ) {
1012 <input type="text" id="db" value="<%
1014 out.println(vs.passwd); %>" name="db" maxlength=\"32\" />
1019 <input class="read" readonly type="text" id="db" value="<%
1021 out.println(vs.passwd); %>" name="db" maxlength=\"32\" />
1024 if ( null != errMessage ) {
1025 String invalidMessage = errMessage.get("db");
1026 if( null != invalidMessage ){
1027 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1033 <p class="required">Up to 32 one-byte characters in English<br>Be effctive only if CheckService : MySQL, PostgreSQL</p>
1039 <h2> RealServer Info</h2>
1041 if ( (vs != null) && (vs.real != null) && (vs.real.size() != 0 )) {
1044 <legend>Real Servers</legend>
1046 for (int i = 0; i < vs.real.size(); i++) {
1048 EndPoint rip = (EndPoint) vs.real.elementAt(i);
1050 <table class="status">
1052 <td rowspan="3" class="check">
1053 <input type="checkbox" name="rs<%= ripNum %>_remove" />
1056 <label for="rs<%= ripNum %>_ip">IP Address</label>
1059 <input type="text" id="rs<%= ripNum %>_ip" value="<%= rip.host %>" name="rs<%= ripNum %>_ip" maxlength="15" />
1061 if ( null != errMessage ) {
1062 String invalidMessage = errMessage.get("rs" + ripNum + "_ip");
1063 if( null != invalidMessage ){
1064 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1070 <p class="required">[0-255].[0-255].[0-255].[0-255]</p>
1075 <label for="rs<%= ripNum %>_port">Port Number</label>
1080 String invalidMessage = null;
1081 if ( null != errMessage ) {
1082 invalidMessage = errMessage.get("rs" + ripNum + "_port");
1084 if (null == rip.port){
1085 out.print("<input type=\"text\" id=\"rs\" + ripNum + \"_port\" value=\"\" name=\"rs" + ripNum + "_port\" />");
1088 out.print("<input type=\"text\" id=\"rs\" + ripNum + \"_port\" value=\"" + rip.port + "\" name=\"rs" + ripNum + "_port\" />");
1090 if( null != invalidMessage ){
1091 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1097 <p class="required">1-65535, service name</p>
1102 <label for="rs<%= ripNum %>_weight">Weight</label>
1107 String invalidMessage = null;
1108 if ( null != errMessage ) {
1109 invalidMessage = errMessage.get("rs" + ripNum + "_weight");
1111 if ( ( null != invalidMessage ) && ( 1 == rip.weight ) ){
1112 out.print("<input type=\"text\" id=\"rs\"" + ripNum + "\"_weight\" value=\"\" name=\"rs" + ripNum + "_weight\" maxlength=\"3\" />");
1115 out.print("<input type=\"text\" id=\"rs\"" + ripNum + "\"_weight\" value=\"" + rip.weight + "\" name=\"rs" + ripNum + "_weight\" maxlength=\"3\" />");
1117 if( null != invalidMessage ){
1118 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1124 <p class="required">0-100<br>Default:1</p>
1131 <input name="<%= ButtonMode.REMOVE %>" type="submit" value=" >> Remove RealServers" />
1139 <legend>New Real Server</legend>
1140 <table class="status">
1143 <label for="new_ip">IP Address</label>
1146 <input type="text" id="new_ip" value="" name="new_ip" maxlength="15" />
1149 <p class="required">[0-255].[0-255].[0-255].[0-255]</p>
1154 <label for="new_port">Port Number</label>
1157 <input type="text" id="new_port" value="" name="new_port" />
1160 <p class="required">1-65535, service name</p>
1165 <label for="new_weight">Weight</label>
1168 <input type="text" id="new_weight" value="" name="new_weight" maxlength="3" />
1171 <p class="required">0-100</p>
1175 <input name="<%= ButtonMode.ADD %>" type="submit" value=" >> Add a RealServer" />
1178 <h2> SorryServer Info</h2>
1180 <legend>Sorry Settings</legend>
1181 <table class="status">
1184 <label for="sorry_ip">IP Address</label>
1187 <input type="text" id="sorry_ip" value="<%
1189 out.println(vs.sorryserver.host); %>" name="sorry_ip" maxlength="15" />
1191 if ( null != errMessage ) {
1192 String invalidMessage = errMessage.get("sorry_ip");
1193 if( null != invalidMessage ){
1194 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1200 <p class="required">[0-255].[0-255].[0-255].[0-255]</p>
1205 <label for="sorry_port">Port Number</label>
1211 String invalidMessage = null;
1212 if ( null != errMessage ) {
1213 invalidMessage = errMessage.get("sorry_port");
1216 if ( (vs == null) || (null == vs.sorryserver.port) ){
1218 out.println("<input type=\"text\" id=\"sorry_port\" value=\"\" name=\"sorry_port\" />");
1221 out.println("<input type=\"text\" id=\"sorry_port\" value=\"" + vs.sorryserver.port + "\"name=\"sorry_port\" />");
1223 if( null != invalidMessage ){
1224 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1230 <p class="required">1-65535, service name</p>
1235 <label for="sorry">Sorry Flag</label>
1238 <select id="sorry" name="sorry_flag">
1239 <option value=""></option>
1240 <option value="on"<%
1241 if ( (vs != null ) && (vs.sorryflag) )
1242 out.print(" selected");
1244 <option value="off"<%
1245 if ( (vs != null ) && !(vs.sorryflag) )
1246 out.print(" selected");
1250 if ( null != errMessage ) {
1251 String invalidMessage = errMessage.get("sorry_flag");
1252 if( null != invalidMessage ){
1253 out.println("<p class=\"invalid\">" + invalidMessage + "</p>");
1259 <p class="required">Default : Off</p>
1265 <input type="submit" name="button" value="<%=ButtonMode.APPLY %>" onClick="return confirm(add_vs_apply)" />
1267 if (dd.autoreload == true) {
1269 <input type="submit" name="button" value="<%= ButtonMode.SAVE %>" onClick="return confirm(add_vs_save)" />
1271 if (cd.self_status == ClusterStatus.ACTIVE || cd.self_status == ClusterStatus.STANDBY) {
1273 <input type="submit" name="button" value="<%= ButtonMode.SAVESYNC %>" onClick="return confirm(add_vs_savesync)" />
1283 response.sendRedirect(RedirectPages.TOPMENU);