Author: rjung
Date: Sun Oct  5 08:56:42 2008
New Revision: 701811

URL: http://svn.apache.org/viewvc?rev=701811&view=rev
Log:
Allow showing only a single member of a load balancer
in the status worker.

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_status.c
    tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml

Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?rev=701811&r1=701810&r2=701811&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Sun Oct  5 08:56:42 
2008
@@ -1892,6 +1892,7 @@
 static void display_worker_lb(jk_ws_service_t *s,
                               status_endpoint_t *p,
                               lb_worker_t *lb,
+                              lb_sub_worker_t *swr,
                               jk_logger_t *l)
 {
     int cmd;
@@ -2163,6 +2164,11 @@
         if (mime == JK_STATUS_MIME_HTML) {
 
             jk_puts(s, "<h4>Balancer Members [");
+            if (swr) {
+                status_write_uri(s, p, "Show All Members", JK_STATUS_CMD_SHOW, 
JK_STATUS_MIME_UNKNOWN,
+                                 name, "", 0, 0, "", l);
+                jk_puts(s, "]&nbsp;&nbsp;[");
+            }
             if (single) {
                 status_write_uri(s, p, "Hide", JK_STATUS_CMD_SHOW, 
JK_STATUS_MIME_UNKNOWN,
                                  NULL, NULL, JK_STATUS_ARG_OPTION_NO_MEMBERS, 
0, "", l);
@@ -2178,33 +2184,39 @@
                 status_write_uri(s, p, "Hide", JK_STATUS_CMD_UNKNOWN, 
JK_STATUS_MIME_UNKNOWN,
                                  NULL, NULL, JK_STATUS_ARG_OPTION_NO_AJP_CONF, 
0, NULL, l);
                 jk_puts(s, "]</td></tr>");
-                for (j = 0; j < lb->num_of_workers; j++) {
-                    lb_sub_worker_t *wr = &(lb->lb_workers[j]);
-                    jk_worker_t *jw = (jk_worker_t *)wr->worker;
+                if (swr) {
+                    jk_worker_t *jw = (jk_worker_t *)swr->worker;
                     ajp_worker_t *aw = (ajp_worker_t *)jw->worker_private;
                     display_worker_ajp_conf_details(s, p, aw, 1, jw->type, l);
                 }
+                else
+                    for (j = 0; j < lb->num_of_workers; j++) {
+                        lb_sub_worker_t *wr = &(lb->lb_workers[j]);
+                        jk_worker_t *jw = (jk_worker_t *)wr->worker;
+                        ajp_worker_t *aw = (ajp_worker_t *)jw->worker_private;
+                        display_worker_ajp_conf_details(s, p, aw, 1, jw->type, 
l);
+                    }
                 jk_puts(s, "</table>\n<br/>\n");
             }
             jk_puts(s, "<table>" JK_STATUS_SHOW_MEMBER_HEAD);
 
         }
 
-        for (j = 0; j < lb->num_of_workers; j++) {
-            lb_sub_worker_t *wr = &(lb->lb_workers[j]);
-            const char *sub_name = wr->name;
-            ajp_worker_t *aw = (ajp_worker_t *)wr->worker->worker_private;
+        if (swr) {
+            const char *sub_name = swr->name;
+            ajp_worker_t *aw = (ajp_worker_t *)swr->worker->worker_private;
 
             if (mime == JK_STATUS_MIME_HTML) {
                 jk_puts(s, "<tr>\n<td>");
+                jk_puts(s, "S");
                 if (!read_only) {
-                    jk_puts(s, "[");
+                    jk_puts(s, "|");
                     status_write_uri(s, p, "E", JK_STATUS_CMD_EDIT, 
JK_STATUS_MIME_UNKNOWN,
                                      name, sub_name, 0, 0, "", l);
                     jk_puts(s, "|");
                     status_write_uri(s, p, "R", JK_STATUS_CMD_RESET, 
JK_STATUS_MIME_UNKNOWN,
                                      name, sub_name, 0, 0, "", l);
-                    if (wr->s->state == JK_LB_STATE_ERROR) {
+                    if (swr->s->state == JK_LB_STATE_ERROR) {
                         jk_puts(s, "|");
                         status_write_uri(s, p, "T", JK_STATUS_CMD_RECOVER, 
JK_STATUS_MIME_UNKNOWN,
                                          name, sub_name, 0, 0, "", l);
@@ -2213,8 +2225,35 @@
                 }
                 jk_puts(s, "&nbsp;</td>");
             }
-            display_worker_ajp_details(s, p, aw, wr, lb, ms_min, ms_max, 0, l);
-        }
+            display_worker_ajp_details(s, p, aw, swr, lb, ms_min, ms_max, 0, 
l);
+        } else
+            for (j = 0; j < lb->num_of_workers; j++) {
+                lb_sub_worker_t *wr = &(lb->lb_workers[j]);
+                const char *sub_name = wr->name;
+                ajp_worker_t *aw = (ajp_worker_t *)wr->worker->worker_private;
+
+                if (mime == JK_STATUS_MIME_HTML) {
+                    jk_puts(s, "<tr>\n<td>");
+                    status_write_uri(s, p, "S", JK_STATUS_CMD_SHOW, 
JK_STATUS_MIME_UNKNOWN,
+                                 name, sub_name, 0, 0, "", l);
+                    if (!read_only) {
+                        jk_puts(s, "|");
+                        status_write_uri(s, p, "E", JK_STATUS_CMD_EDIT, 
JK_STATUS_MIME_UNKNOWN,
+                                         name, sub_name, 0, 0, "", l);
+                        jk_puts(s, "|");
+                        status_write_uri(s, p, "R", JK_STATUS_CMD_RESET, 
JK_STATUS_MIME_UNKNOWN,
+                                         name, sub_name, 0, 0, "", l);
+                        if (wr->s->state == JK_LB_STATE_ERROR) {
+                            jk_puts(s, "|");
+                            status_write_uri(s, p, "T", JK_STATUS_CMD_RECOVER, 
JK_STATUS_MIME_UNKNOWN,
+                                             name, sub_name, 0, 0, "", l);
+                        }
+                        jk_puts(s, "]");
+                    }
+                    jk_puts(s, "&nbsp;</td>");
+                }
+                display_worker_ajp_details(s, p, aw, wr, lb, ms_min, ms_max, 
0, l);
+            }
 
         if (mime == JK_STATUS_MIME_HTML) {
 
@@ -2357,6 +2396,7 @@
 static void display_worker(jk_ws_service_t *s,
                            status_endpoint_t *p,
                            jk_worker_t *jw,
+                           lb_sub_worker_t *swr,
                            jk_logger_t *l)
 {
     status_worker_t *w = p->worker;
@@ -2369,7 +2409,7 @@
                 jk_log(l, JK_LOG_DEBUG,
                        "Status worker '%s' %s lb worker '%s'",
                        w->name, "displaying", lb->name);
-            display_worker_lb(s, p, lb, l);
+            display_worker_lb(s, p, lb, swr, l);
         }
         else {
             jk_log(l, JK_LOG_WARNING,
@@ -3553,7 +3593,7 @@
         }
         if ((list_lb && jw->type == JK_LB_WORKER_TYPE) ||
             (!list_lb && jw->type != JK_LB_WORKER_TYPE)) {
-            display_worker(s, p, jw, l);
+            display_worker(s, p, jw, NULL, l);
         }
     }
 
@@ -3612,6 +3652,7 @@
     const char *worker;
     const char *sub_worker;
     jk_worker_t *jw = NULL;
+    lb_sub_worker_t *wr = NULL;
 
     JK_TRACE_ENTER(l);
     fetch_worker_and_sub_worker(p, "showing", &worker, &sub_worker, l);
@@ -3619,7 +3660,14 @@
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
-    display_worker(s, p, jw, l);
+    if (sub_worker && sub_worker[0]) {
+        if(search_sub_worker(s, p, jw, worker, &wr, sub_worker,
+                             NULL, l) == JK_FALSE) {
+            JK_TRACE_EXIT(l);
+            return JK_FALSE;
+        }
+    }
+    display_worker(s, p, jw, wr, l);
 
     JK_TRACE_EXIT(l);
     return JK_TRUE;

Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?rev=701811&r1=701810&r2=701811&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Sun Oct  5 
08:56:42 2008
@@ -44,6 +44,9 @@
   <subsection name="Native">
     <changelog>
       <update>
+        Status: Allow showing only a single member for a load balancer. (rjung)
+      </update>
+      <update>
         Status: Add display of seconds since last statistics reset. (rjung)
       </update>
       <add>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to