You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2008/01/14 01:33:21 UTC
svn commit: r611686 - /tomcat/connectors/trunk/jk/native/common/jk_status.c
Author: rjung
Date: Sun Jan 13 16:33:20 2008
New Revision: 611686
URL: http://svn.apache.org/viewvc?rev=611686&view=rev
Log:
Add some more hide functions in status worker
and prepare for adding ajp attributes.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_status.c
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=611686&r1=611685&r2=611686&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Sun Jan 13 16:33:20 2008
@@ -70,6 +70,8 @@
#define JK_STATUS_ARG_OPTION_NO_LB 0x0008
#define JK_STATUS_ARG_OPTION_NO_AJP 0x0010
#define JK_STATUS_ARG_OPTION_READ_ONLY 0x0020
+#define JK_STATUS_ARG_OPTION_NO_LB_CONF 0x0040
+#define JK_STATUS_ARG_OPTION_NO_LB_SUMMARY 0x0080
#define JK_STATUS_ARG_LB_RETRIES ("vlr")
#define JK_STATUS_ARG_LB_RECOVER_TIME ("vlt")
@@ -225,7 +227,7 @@
"<th>" JK_STATUS_ARG_LB_TEXT_LOCK "</th>" \
"<th>" JK_STATUS_ARG_LB_TEXT_RECOVER_TIME "</th>" \
"<th>" JK_STATUS_ARG_LB_TEXT_MAX_REPLY_TIMEOUTS "</th>" \
- "</tr>\n"
+ "<th>\n"
#define JK_STATUS_SHOW_LB_ROW "<tr>" \
"<td>%s</td>" \
"<td>%s</td>" \
@@ -235,6 +237,7 @@
"<td>%s</td>" \
"<td>%d</td>" \
"<td>%d</td>" \
+ "<td></td>" \
"</tr>\n"
#define JK_STATUS_SHOW_MEMBER_HEAD "<tr>" \
"<th> </th><th>Name</th><th>Type</th>" \
@@ -1717,6 +1720,8 @@
int read_only = 0;
int single = 0;
unsigned int hide_members;
+ unsigned int hide_lb_conf;
+ unsigned int hide_lb_summary;
const char *arg;
time_t now = time(NULL);
unsigned int good = 0;
@@ -1726,6 +1731,7 @@
int ms_min;
int ms_max;
unsigned int j;
+ int pstart = JK_FALSE;
const char *name = lb->name;
status_worker_t *w = p->worker;
@@ -1736,6 +1742,10 @@
mime = status_mime_int(arg);
hide_members = status_get_int(p, JK_STATUS_ARG_OPTIONS, 0, l) &
JK_STATUS_ARG_OPTION_NO_MEMBERS;
+ hide_lb_conf = status_get_int(p, JK_STATUS_ARG_OPTIONS, 0, l) &
+ JK_STATUS_ARG_OPTION_NO_LB_CONF;
+ hide_lb_summary = status_get_int(p, JK_STATUS_ARG_OPTIONS, 0, l) &
+ JK_STATUS_ARG_OPTION_NO_LB_SUMMARY;
if (w->read_only) {
read_only = 1;
}
@@ -1795,29 +1805,84 @@
}
jk_puts(s, "] ");
jk_putv(s, "Worker Status for ", name, "</h3>\n", NULL);
- jk_puts(s, "<table>" JK_STATUS_SHOW_LB_HEAD);
- jk_printf(s, JK_STATUS_SHOW_LB_ROW,
- status_worker_type(JK_LB_WORKER_TYPE),
- jk_get_bool(lb->sticky_session),
- jk_get_bool(lb->sticky_session_force),
- lb->retries,
- jk_lb_get_method(lb, l),
- jk_lb_get_lock(lb, l),
- lb->recover_wait_time,
- lb->max_reply_timeouts);
- jk_puts(s, "</table>\n<br/>\n");
-
- jk_puts(s, "<table><tr>"
- "<th>Good</th><th>Degraded</th><th>Bad/Stopped</th><th>Busy</th><th>Max Busy</th><th>Next Maintenance</th>"
- "</tr>\n<tr>");
- jk_printf(s, "<td>%d</td>", good);
- jk_printf(s, "<td>%d</td>", degraded);
- jk_printf(s, "<td>%d</td>", bad);
- jk_printf(s, "<td>%d</td>", lb->s->busy);
- jk_printf(s, "<td>%d</td>", lb->s->max_busy);
- jk_printf(s, "<td>%d/%d</td>", ms_min, ms_max);
- jk_puts(s, "</tr>\n</table>\n\n");
+ if (hide_lb_conf) {
+ pstart = JK_TRUE;
+ jk_puts(s, "<p>\n");
+ if (single) {
+ status_write_uri(s, p, "Show LB Configuration", JK_STATUS_CMD_SHOW, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_LB_CONF, "", l);
+ }
+ else {
+ status_write_uri(s, p, "Show LB Configuration", JK_STATUS_CMD_LIST, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_LB_CONF, "", l);
+ }
+ }
+ if (hide_lb_summary) {
+ if (pstart == JK_FALSE)
+ jk_puts(s, "<p>\n");
+ else
+ jk_puts(s, " | ");
+ pstart = JK_TRUE;
+ if (single) {
+ status_write_uri(s, p, "Show LB Summary", JK_STATUS_CMD_SHOW, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_LB_SUMMARY, "", l);
+ }
+ else {
+ status_write_uri(s, p, "Show LB Summary", JK_STATUS_CMD_LIST, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_LB_SUMMARY, "", l);
+ }
+ }
+ if (hide_members) {
+ if (pstart == JK_FALSE)
+ jk_puts(s, "<p>\n");
+ else
+ jk_puts(s, " | ");
+ pstart = JK_TRUE;
+ if (single) {
+ status_write_uri(s, p, "Show Balancer Members", JK_STATUS_CMD_SHOW, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_MEMBERS, "", l);
+ }
+ else {
+ status_write_uri(s, p, "Show Balancer Members", JK_STATUS_CMD_LIST, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_MEMBERS, "", l);
+ }
+ }
+ if (pstart == JK_TRUE)
+ jk_puts(s, "</p>\n");
+
+ if (!hide_lb_conf) {
+ jk_puts(s, "<table>" JK_STATUS_SHOW_LB_HEAD);
+ jk_puts(s, "[");
+ status_write_uri(s, p, "Hide", JK_STATUS_CMD_UNKNOWN, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, JK_STATUS_ARG_OPTION_NO_LB_CONF, 0, NULL, l);
+ jk_puts(s, "]</th></tr>");
+ jk_printf(s, JK_STATUS_SHOW_LB_ROW,
+ status_worker_type(JK_LB_WORKER_TYPE),
+ jk_get_bool(lb->sticky_session),
+ jk_get_bool(lb->sticky_session_force),
+ lb->retries,
+ jk_lb_get_method(lb, l),
+ jk_lb_get_lock(lb, l),
+ lb->recover_wait_time,
+ lb->max_reply_timeouts);
+ jk_puts(s, "</table>\n<br/>\n");
+ }
+
+ if (!hide_lb_summary) {
+ jk_puts(s, "<table><tr>"
+ "<th>Good</th><th>Degraded</th><th>Bad/Stopped</th><th>Busy</th><th>Max Busy</th><th>Next Maintenance</th><th>[");
+ status_write_uri(s, p, "Hide", JK_STATUS_CMD_UNKNOWN, JK_STATUS_MIME_UNKNOWN,
+ NULL, NULL, JK_STATUS_ARG_OPTION_NO_LB_SUMMARY, 0, NULL, l);
+ jk_puts(s, "]</th></tr>\n<tr>");
+ jk_printf(s, "<td>%d</td>", good);
+ jk_printf(s, "<td>%d</td>", degraded);
+ jk_printf(s, "<td>%d</td>", bad);
+ jk_printf(s, "<td>%d</td>", lb->s->busy);
+ jk_printf(s, "<td>%d</td>", lb->s->max_busy);
+ jk_printf(s, "<td>%d/%d</td>", ms_min, ms_max);
+ jk_puts(s, "<td></td></tr>\n</table>\n\n");
+ }
}
else if (mime == JK_STATUS_MIME_XML) {
@@ -1959,23 +2024,6 @@
}
}
- else {
-
- if (mime == JK_STATUS_MIME_HTML) {
-
- jk_puts(s, "<p>\n");
- if (single) {
- status_write_uri(s, p, "Show Balancer Members", JK_STATUS_CMD_SHOW, JK_STATUS_MIME_UNKNOWN,
- NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_MEMBERS, "", l);
- }
- else {
- status_write_uri(s, p, "Show Balancer Members", JK_STATUS_CMD_LIST, JK_STATUS_MIME_UNKNOWN,
- NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_MEMBERS, "", l);
- }
- jk_puts(s, "</p>\n");
- }
-
- }
if (name)
display_maps(s, p, name, l);
@@ -2233,50 +2281,52 @@
wr->name, "</h3>\n", NULL);
status_start_form(s, p, "get", JK_STATUS_CMD_UPDATE, NULL, l);
- jk_puts(s, "<table>\n");
- jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_ACTIVATION,
- ":</td><td></td></tr>\n", NULL);
- jk_putv(s, "<tr><td> Active</td><td><input name=\"",
- JK_STATUS_ARG_LBM_ACTIVATION, "\" type=\"radio\"", NULL);
- jk_printf(s, " value=\"%d\"", JK_LB_ACTIVATION_ACTIVE);
- if (wr->activation == JK_LB_ACTIVATION_ACTIVE)
- jk_puts(s, " checked=\"checked\"");
- jk_puts(s, "/></td></tr>\n");
- jk_putv(s, "<tr><td> Disabled</td><td><input name=\"",
- JK_STATUS_ARG_LBM_ACTIVATION, "\" type=\"radio\"", NULL);
- jk_printf(s, " value=\"%d\"", JK_LB_ACTIVATION_DISABLED);
- if (wr->activation == JK_LB_ACTIVATION_DISABLED)
- jk_puts(s, " checked=\"checked\"");
- jk_puts(s, "/></td></tr>\n");
- jk_putv(s, "<tr><td> Stopped</td><td><input name=\"",
- JK_STATUS_ARG_LBM_ACTIVATION, "\" type=\"radio\"", NULL);
- jk_printf(s, " value=\"%d\"", JK_LB_ACTIVATION_STOPPED);
- if (wr->activation == JK_LB_ACTIVATION_STOPPED)
- jk_puts(s, " checked=\"checked\"");
- jk_puts(s, "/></td></tr>\n");
- jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_FACTOR,
- ":</td><td><input name=\"",
- JK_STATUS_ARG_LBM_FACTOR, "\" type=\"text\" ", NULL);
- jk_printf(s, "value=\"%d\"/></td></tr>\n", wr->lb_factor);
- jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_ROUTE,
- ":</td><td><input name=\"",
- JK_STATUS_ARG_LBM_ROUTE, "\" type=\"text\" ", NULL);
- jk_printf(s, "value=\"%s\"/></td></tr>\n", wr->route);
- jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_REDIRECT,
- ":</td><td><input name=\"",
- JK_STATUS_ARG_LBM_REDIRECT, "\" type=\"text\" ", NULL);
- jk_putv(s, "value=\"", wr->redirect, NULL);
- jk_puts(s, "\"/></td></tr>\n");
- jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_DOMAIN,
- ":</td><td><input name=\"",
- JK_STATUS_ARG_LBM_DOMAIN, "\" type=\"text\" ", NULL);
- jk_putv(s, "value=\"", wr->domain, NULL);
- jk_puts(s, "\"/></td></tr>\n");
- jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_DISTANCE,
- ":</td><td><input name=\"",
- JK_STATUS_ARG_LBM_DISTANCE, "\" type=\"text\" ", NULL);
- jk_printf(s, "value=\"%d\"/></td></tr>\n", wr->distance);
- jk_puts(s, "</table>\n");
+ if (wr) {
+ jk_puts(s, "<table>\n");
+ jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_ACTIVATION,
+ ":</td><td></td></tr>\n", NULL);
+ jk_putv(s, "<tr><td> Active</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_ACTIVATION, "\" type=\"radio\"", NULL);
+ jk_printf(s, " value=\"%d\"", JK_LB_ACTIVATION_ACTIVE);
+ if (wr->activation == JK_LB_ACTIVATION_ACTIVE)
+ jk_puts(s, " checked=\"checked\"");
+ jk_puts(s, "/></td></tr>\n");
+ jk_putv(s, "<tr><td> Disabled</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_ACTIVATION, "\" type=\"radio\"", NULL);
+ jk_printf(s, " value=\"%d\"", JK_LB_ACTIVATION_DISABLED);
+ if (wr->activation == JK_LB_ACTIVATION_DISABLED)
+ jk_puts(s, " checked=\"checked\"");
+ jk_puts(s, "/></td></tr>\n");
+ jk_putv(s, "<tr><td> Stopped</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_ACTIVATION, "\" type=\"radio\"", NULL);
+ jk_printf(s, " value=\"%d\"", JK_LB_ACTIVATION_STOPPED);
+ if (wr->activation == JK_LB_ACTIVATION_STOPPED)
+ jk_puts(s, " checked=\"checked\"");
+ jk_puts(s, "/></td></tr>\n");
+ jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_FACTOR,
+ ":</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_FACTOR, "\" type=\"text\" ", NULL);
+ jk_printf(s, "value=\"%d\"/></td></tr>\n", wr->lb_factor);
+ jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_ROUTE,
+ ":</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_ROUTE, "\" type=\"text\" ", NULL);
+ jk_printf(s, "value=\"%s\"/></td></tr>\n", wr->route);
+ jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_REDIRECT,
+ ":</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_REDIRECT, "\" type=\"text\" ", NULL);
+ jk_putv(s, "value=\"", wr->redirect, NULL);
+ jk_puts(s, "\"/></td></tr>\n");
+ jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_DOMAIN,
+ ":</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_DOMAIN, "\" type=\"text\" ", NULL);
+ jk_putv(s, "value=\"", wr->domain, NULL);
+ jk_puts(s, "\"/></td></tr>\n");
+ jk_putv(s, "<tr><td>", JK_STATUS_ARG_LBM_TEXT_DISTANCE,
+ ":</td><td><input name=\"",
+ JK_STATUS_ARG_LBM_DISTANCE, "\" type=\"text\" ", NULL);
+ jk_printf(s, "value=\"%d\"/></td></tr>\n", wr->distance);
+ jk_puts(s, "</table>\n");
+ }
jk_puts(s, "<br/><input type=\"submit\" value=\"Update Worker\"/>\n</form>\n");
JK_TRACE_EXIT(l);
}
@@ -2584,61 +2634,63 @@
"Status worker '%s' committing changes for sub worker '%s' of lb worker '%s'",
w->name, wr->name, lb_name);
- if (status_get_string(p, JK_STATUS_ARG_LBM_ACTIVATION, NULL, &arg, l) == JK_TRUE) {
- i = jk_lb_get_activation_code(arg);
- if (i != wr->activation && i >= 0 && i <= JK_LB_ACTIVATION_MAX) {
- wr->activation = i;
- jk_log(l, JK_LOG_INFO,
- "Status worker '%s' setting 'activation' for sub worker '%s' of lb worker '%s' to '%s'",
- w->name, wr->name, lb_name, jk_lb_get_activation(wr, l));
- rc |= 1;
+ if (lb) {
+ if (status_get_string(p, JK_STATUS_ARG_LBM_ACTIVATION, NULL, &arg, l) == JK_TRUE) {
+ i = jk_lb_get_activation_code(arg);
+ if (i != wr->activation && i >= 0 && i <= JK_LB_ACTIVATION_MAX) {
+ wr->activation = i;
+ jk_log(l, JK_LOG_INFO,
+ "Status worker '%s' setting 'activation' for sub worker '%s' of lb worker '%s' to '%s'",
+ w->name, wr->name, lb_name, jk_lb_get_activation(wr, l));
+ rc |= 1;
+ }
}
- }
- if (set_int_if_changed(p, wr->name, "lbfactor", JK_STATUS_ARG_LBM_FACTOR,
- 1, INT_MAX, &wr->lb_factor, lb_name, l))
- /* Recalculate the load multiplicators wrt. lb_factor */
- rc |= 2;
- if ((rv = status_get_string(p, JK_STATUS_ARG_LBM_ROUTE,
- NULL, &arg, l)) == JK_TRUE) {
- if (strncmp(wr->route, arg, JK_SHM_STR_SIZ)) {
- jk_log(l, JK_LOG_INFO,
- "Status worker '%s' setting 'route' for sub worker '%s' of lb worker '%s' to '%s'",
- w->name, wr->name, lb_name, arg);
- strncpy(wr->route, arg, JK_SHM_STR_SIZ);
- rc |= 4;
- if (!wr->domain[0]) {
- char * id_domain = strchr(wr->route, '.');
- if (id_domain) {
- *id_domain = '\0';
- strcpy(wr->domain, wr->route);
- *id_domain = '.';
+ if (set_int_if_changed(p, wr->name, "lbfactor", JK_STATUS_ARG_LBM_FACTOR,
+ 1, INT_MAX, &wr->lb_factor, lb_name, l))
+ /* Recalculate the load multiplicators wrt. lb_factor */
+ rc |= 2;
+ if ((rv = status_get_string(p, JK_STATUS_ARG_LBM_ROUTE,
+ NULL, &arg, l)) == JK_TRUE) {
+ if (strncmp(wr->route, arg, JK_SHM_STR_SIZ)) {
+ jk_log(l, JK_LOG_INFO,
+ "Status worker '%s' setting 'route' for sub worker '%s' of lb worker '%s' to '%s'",
+ w->name, wr->name, lb_name, arg);
+ strncpy(wr->route, arg, JK_SHM_STR_SIZ);
+ rc |= 4;
+ if (!wr->domain[0]) {
+ char * id_domain = strchr(wr->route, '.');
+ if (id_domain) {
+ *id_domain = '\0';
+ strcpy(wr->domain, wr->route);
+ *id_domain = '.';
+ }
}
}
}
- }
- if ((rv = status_get_string(p, JK_STATUS_ARG_LBM_REDIRECT,
- NULL, &arg, l)) == JK_TRUE) {
- if (strncmp(wr->redirect, arg, JK_SHM_STR_SIZ)) {
- jk_log(l, JK_LOG_INFO,
- "Status worker '%s' setting 'redirect' for sub worker '%s' of lb worker '%s' to '%s'",
- w->name, wr->name, lb_name, arg);
- strncpy(wr->redirect, arg, JK_SHM_STR_SIZ);
- rc |= 4;
+ if ((rv = status_get_string(p, JK_STATUS_ARG_LBM_REDIRECT,
+ NULL, &arg, l)) == JK_TRUE) {
+ if (strncmp(wr->redirect, arg, JK_SHM_STR_SIZ)) {
+ jk_log(l, JK_LOG_INFO,
+ "Status worker '%s' setting 'redirect' for sub worker '%s' of lb worker '%s' to '%s'",
+ w->name, wr->name, lb_name, arg);
+ strncpy(wr->redirect, arg, JK_SHM_STR_SIZ);
+ rc |= 4;
+ }
}
- }
- if ((rv = status_get_string(p, JK_STATUS_ARG_LBM_DOMAIN,
- NULL, &arg, l)) == JK_TRUE) {
- if (strncmp(wr->domain, arg, JK_SHM_STR_SIZ)) {
- jk_log(l, JK_LOG_INFO,
- "Status worker '%s' setting 'domain' for sub worker '%s' of lb worker '%s' to '%s'",
- w->name, wr->name, lb_name, arg);
- strncpy(wr->domain, arg, JK_SHM_STR_SIZ);
- rc |= 4;
+ if ((rv = status_get_string(p, JK_STATUS_ARG_LBM_DOMAIN,
+ NULL, &arg, l)) == JK_TRUE) {
+ if (strncmp(wr->domain, arg, JK_SHM_STR_SIZ)) {
+ jk_log(l, JK_LOG_INFO,
+ "Status worker '%s' setting 'domain' for sub worker '%s' of lb worker '%s' to '%s'",
+ w->name, wr->name, lb_name, arg);
+ strncpy(wr->domain, arg, JK_SHM_STR_SIZ);
+ rc |= 4;
+ }
}
+ if (set_int_if_changed(p, wr->name, "distance", JK_STATUS_ARG_LBM_DISTANCE,
+ 0, INT_MAX, &wr->distance, lb_name, l))
+ rc |= 4;
}
- if (set_int_if_changed(p, wr->name, "distance", JK_STATUS_ARG_LBM_DISTANCE,
- 0, INT_MAX, &wr->distance, lb_name, l))
- rc |= 4;
return rc;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org