diff options
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java')
-rw-r--r-- | rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java | 735 |
1 files changed, 0 insertions, 735 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java b/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java deleted file mode 100644 index 73d11eab..00000000 --- a/rubbos/app/tomcat-connectors-1.2.32-src/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java +++ /dev/null @@ -1,735 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.jk.status; - -import java.util.Iterator; -import java.util.List; - -import org.apache.catalina.ant.BaseRedirectorHelperTask; -import org.apache.tomcat.util.IntrospectionUtils; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; - -/** - * Ant task that implements the show <code>/jkstatus</code> command, supported - * by the mod_jk status (1.2.13) application. - * - * @author Peter Rossbach - * @version $Revision: 752644 $ - * @since 5.5.10 - */ -public class JkStatusTask extends BaseRedirectorHelperTask { - - /** - * The descriptive information about this implementation. - */ - private static final String info = "org.apache.jk.status.JkStatusTask/1.2"; - - /** - * Store status as <code>resultProperty</code> prefix. - */ - protected String resultproperty; - - /** - * Echo status at ant console - */ - protected boolean echo = false; - - /** - * The login password for the <code>mod_jk status</code> page. - */ - protected String password = null; - - /** - * The URL of the <code>mod_jk status</code> page to be used. - */ - protected String url = "http://localhost:80/jkstatus"; - - /** - * The login username for the <code>mod_jk status</code> page. - */ - protected String username = null; - - private String errorProperty; - - private String worker; - - private String loadbalancer; - - /** - * Return descriptive information about this implementation and the - * corresponding version number, in the format - * <code><description>/<version></code>. - */ - public String getInfo() { - - return (info); - - } - - public String getPassword() { - return (this.password); - } - - public void setPassword(String password) { - this.password = password; - } - - public String getUrl() { - return (this.url); - } - - public void setUrl(String url) { - this.url = url; - } - - public String getUsername() { - return (this.username); - } - - public void setUsername(String username) { - this.username = username; - } - - /** - * @return Returns the echo. - */ - public boolean isEcho() { - return echo; - } - - /** - * @param echo - * The echo to set. - */ - public void setEcho(boolean echo) { - this.echo = echo; - } - - /** - * @return Returns the resultproperty. - */ - public String getResultproperty() { - return resultproperty; - } - - /** - * @param resultproperty - * The resultproperty to set. - */ - public void setResultproperty(String resultproperty) { - this.resultproperty = resultproperty; - } - - /** - * @return Returns the loadbalancer. - */ - public String getLoadbalancer() { - return loadbalancer; - } - /** - * @param loadbalancer The loadbalancer to set. - */ - public void setLoadbalancer(String loadbalancer) { - this.loadbalancer = loadbalancer; - } - /** - * @return Returns the worker. - */ - public String getWorker() { - return worker; - } - /** - * @param worker The worker to set. - */ - public void setWorker(String worker) { - this.worker = worker; - } - // --------------------------------------------------------- Public Methods - - /** - * Get jkstatus from server. - * - * @exception BuildException - * if a validation error occurs - */ - public void execute() throws BuildException { - - if (url == null) { - throw new BuildException("Must specify an 'url'"); - } - boolean isWorkerOnly = worker != null && !"".equals(worker); - boolean isLoadbalancerOnly = loadbalancer != null - && !"".equals(loadbalancer); - - StringBuffer error = new StringBuffer(); - try { - JkStatusAccessor accessor = new JkStatusAccessor(); - JkStatus status = accessor.status(url, username, password); - if (status.result != null && !"OK".equals(status.result.type) ) { - if (getErrorProperty() != null) { - getProject().setNewProperty(errorProperty, status.result.message); - } - if (isFailOnError()) { - throw new BuildException(status.result.message); - } else { - handleErrorOutput(status.result.message); - return; - } - - } - - if (!isWorkerOnly && !isLoadbalancerOnly) { - JkServer server = status.getServer(); - JkSoftware software = status.getSoftware(); - JkResult result = status.getResult(); - if (resultproperty != null) { - createProperty(server, "server", "name"); - createProperty(server, "server", "port"); - createProperty(software, "web_server"); - createProperty(software, "jk_version"); - createProperty(result, "result", "type"); - createProperty(result, "result", "message"); - } - if (isEcho()) { - handleOutput("server name=" + server.getName() + ":" - + server.getPort() + " - " + software.getWeb_server() + " - " + software.getJk_version()); - } - } - List balancers = status.getBalancers(); - for (Iterator iter = balancers.iterator(); iter.hasNext();) { - JkBalancer balancer = (JkBalancer) iter.next(); - String balancerIndex = null; - if (isLoadbalancerOnly) { - if (loadbalancer.equals(balancer.getName())) { - if (resultproperty != null) { - setPropertyBalancerOnly(balancer); - } - echoBalancer(balancer); - return; - } - } else { - if (!isWorkerOnly) { - if (resultproperty != null) { - if ( balancer.getId() >= 0) - balancerIndex = Integer.toString(balancer.getId()); - else - balancerIndex = balancer.getName() ; - - setPropertyBalancer(balancer,balancerIndex); - } - echoBalancer(balancer); - } - List members = balancer.getBalancerMembers(); - for (Iterator iterator = members.iterator(); iterator - .hasNext();) { - JkBalancerMember member = (JkBalancerMember) iterator - .next(); - if (isWorkerOnly) { - if (worker.equals(member.getName())) { - if (resultproperty != null) { - setPropertyWorkerOnly(balancer, member); - } - echoWorker(member); - return; - } - } else { - if (resultproperty != null) { - setPropertyWorker(null, member); - } - echoWorker(member); - if (member.getStatus() != null && !"OK".equals(member.getStatus())) { - error.append(" worker name=" + member.getName() - + " status=" + member.getStatus() - + " host=" + member.getAddress()); - } - if (member.getState() != null && - !("OK".equals(member.getState()) || - "N/A".equals(member.getState()) || - "OK/IDLE".equals(member.getState())) ){ - error.append(" worker name=" + member.getName() - + " state=" + member.getState() - + " host=" + member.getAddress()); - } - } - } - if (!isWorkerOnly) { - if (resultproperty != null && members.size() > 0) { - getProject().setNewProperty( - resultproperty + "." - + balancer.getName() + ".length", - Integer.toString(members.size())); - } - List mappings = balancer.getBalancerMappings(); - int j = 0; - String mapIndex ; - if( balancerIndex != null ) - mapIndex = balancerIndex + ".map" ; - else - mapIndex = "map" ; - for (Iterator iterator = mappings.iterator(); iterator - .hasNext(); j++) { - JkBalancerMapping mapping = (JkBalancerMapping) iterator - .next(); - if (resultproperty != null) { - String stringIndex2 ; - if( mapping.getId() >= 0) { - stringIndex2 = Integer.toString(mapping.getId()) ; - } else { - stringIndex2 = Integer.toString(j); - } - createProperty(mapping, mapIndex, - stringIndex2, "type"); - createProperty(mapping, mapIndex, - stringIndex2, "uri"); - createProperty(mapping, mapIndex, - stringIndex2, "context"); - createProperty(mapping, mapIndex, - stringIndex2, "source"); - } - if (isEcho()) { - String mappingOut ; - - if(mapping.source != null) { - mappingOut = - "balancer name=" - + balancer.getName() + " mappingtype=" - + mapping.getType() + " uri=" - + mapping.getUri() + " source=" - + mapping.getSource() ; - } else { - mappingOut = "balancer name=" - + balancer.getName() + " mappingtype=" - + mapping.getType() + " uri=" - + mapping.getUri() + " context=" - + mapping.getContext() ; - } - handleOutput(mappingOut); - } - } - if (resultproperty != null && mappings.size() > 0) { - getProject().setNewProperty( - resultproperty + "." - + mapIndex + ".length", - Integer.toString(mappings.size())); - } - } - } - } - if (!isWorkerOnly && !isLoadbalancerOnly) { - if (resultproperty != null && balancers.size() > 0) { - getProject().setNewProperty( - resultproperty + ".length", - Integer.toString(balancers.size())); - } - } - } catch (Throwable t) { - error.append(t.getMessage()); - if (getErrorProperty() != null) { - getProject().setNewProperty(errorProperty, error.toString()); - } - if (isFailOnError()) { - throw new BuildException(t); - } else { - handleErrorOutput(t.getMessage()); - return; - } - } - if (error.length() != 0) { - if (getErrorProperty() != null) { - getProject().setNewProperty(errorProperty, error.toString()); - } - if (isFailOnError()) { - // exception should be thrown only if failOnError == true - // or error line will be logged twice - throw new BuildException(error.toString()); - } - } - - } - - /** - * @param member - */ - private void echoWorker(JkBalancerMember member) { - if (isEcho()) { - StringBuffer state = new StringBuffer("worker name=") ; - state.append( member.getName()) ; - if(member.getStatus() != null) { - state.append(" status="); - state.append(member.getStatus()); - } - if(member.getState() != null) { - state.append(" state="); - state.append(member.getState()) ; - } - state.append(" host="); - state.append(member.getAddress()); - handleOutput(state.toString()); - } - } - - /** - * @param balancer - */ - private void echoBalancer(JkBalancer balancer) { - if (isEcho()) { - handleOutput("balancer name=" + balancer.getName() + " type=" - + balancer.getType()); - } - } - - /** - * @param balancer - */ - private void setPropertyBalancerOnly(JkBalancer balancer) { - String prefix = resultproperty + "." + balancer.getName(); - if(balancer.getId() >= 0 ) { - getProject().setNewProperty(prefix + ".id", - Integer.toString(balancer.getId())); - } - getProject().setNewProperty(prefix + ".type", balancer.getType()); - getProject().setNewProperty(prefix + ".stick_session", - Boolean.toString(balancer.isSticky_session())); - getProject().setNewProperty(prefix + ".sticky_session_force", - Boolean.toString(balancer.isSticky_session_force())); - getProject().setNewProperty(prefix + ".retries", - Integer.toString(balancer.getRetries())); - getProject().setNewProperty(prefix + ".recover_time", - Integer.toString(balancer.getRecover_time())); - getProject().setNewProperty(prefix + ".method", - balancer.getMethod()); - getProject().setNewProperty(prefix + ".good", - Integer.toString(balancer.getGood())); - getProject().setNewProperty(prefix + ".degraded", - Integer.toString(balancer.getDegraded())); - getProject().setNewProperty(prefix + ".bad", - Integer.toString(balancer.getBad())); - getProject().setNewProperty(prefix + ".busy", - Integer.toString(balancer.getBusy())); - getProject().setNewProperty(prefix + ".map_count", - Integer.toString(balancer.getMap_count())); - getProject().setNewProperty(prefix + ".member_count", - Integer.toString(balancer.getMember_count())); - getProject().setNewProperty(prefix + ".max_busy", - Integer.toString(balancer.getMax_busy())); - getProject().setNewProperty(prefix + ".time_to_maintenance_min", - Integer.toString(balancer.getTime_to_maintenance_min())); - getProject().setNewProperty(prefix + ".time_to_maintenance_max", - Integer.toString(balancer.getTime_to_maintenance_max())); - getProject().setNewProperty(prefix + ".lock", - balancer.getLock()); - - } - - /** - * @param balancer - * @param balancerIndex - */ - private void setPropertyBalancer(JkBalancer balancer,String balancerIndex) { - if(balancer.id >= 0) { - createProperty(balancer, balancerIndex, "id"); - } - - createProperty(balancer, balancerIndex, "name"); - createProperty(balancer, balancerIndex, "type"); - createProperty(balancer, balancerIndex, "sticky_session"); - createProperty(balancer, balancerIndex, "sticky_session_force"); - createProperty(balancer, balancerIndex, "retries"); - createProperty(balancer, balancerIndex, "recover_time"); - if(balancer.getMethod() != null) { - createProperty(balancer, balancerIndex, "method"); - } - if(balancer.getLock() != null) { - createProperty(balancer, balancerIndex, "lock"); - } - if(balancer.getGood() >= 0) { - createProperty(balancer, balancerIndex, "good"); - } - if(balancer.getDegraded() >= 0) { - createProperty(balancer, balancerIndex, "degraded"); - } - if(balancer.getBad() >= 0) { - createProperty(balancer, balancerIndex, "bad"); - } - if(balancer.getBusy() >= 0) { - createProperty(balancer, balancerIndex, "busy"); - } - if(balancer.getMax_busy() >= 0) { - createProperty(balancer, balancerIndex, "max_busy"); - } - if(balancer.getMember_count() >=0) { - createProperty(balancer, balancerIndex, "member_count"); - } - if(balancer.getMap_count() >=0) { - createProperty(balancer, balancerIndex, "map_count"); - } - if(balancer.getTime_to_maintenance_min() >=0) { - createProperty(balancer, balancerIndex, "time_to_maintenance_min"); - } - if(balancer.getTime_to_maintenance_max() >=0) { - createProperty(balancer, balancerIndex, "time_to_maintenance_max"); - } - } - - /** - * @param balancerIndex - * @param member - */ - private void setPropertyWorker(String balancerIndex, JkBalancerMember member) { - String workerIndex ; - if(member.getId() >= 0) { - workerIndex = Integer.toString(member.getId()); - createProperty(member, balancerIndex, workerIndex, "id"); - createProperty(member, balancerIndex, workerIndex, "name"); - } else { - workerIndex = member.getName(); - } - createProperty(member, balancerIndex, workerIndex, "type"); - createProperty(member, balancerIndex, workerIndex, "host"); - createProperty(member, balancerIndex, workerIndex, "port"); - createProperty(member, balancerIndex, workerIndex, "address"); - if(member.getJvm_route() != null) { - createProperty(member, balancerIndex, workerIndex, "jvm_route"); - } - if(member.getRoute() != null) { - createProperty(member, balancerIndex, workerIndex, "route"); - } - if(member.getStatus() != null) { - createProperty(member, balancerIndex, workerIndex, "status"); - } - if(member.getActivation() != null) { - createProperty(member, balancerIndex, workerIndex, "activation"); - } - if(member.getState() != null) { - createProperty(member, balancerIndex, workerIndex, "state"); - } - createProperty(member, balancerIndex, workerIndex, "lbfactor"); - createProperty(member, balancerIndex, workerIndex, "lbvalue"); - if(member.getLbmult() >= 0) { - createProperty(member, balancerIndex, workerIndex, "lbmult"); - } - createProperty(member, balancerIndex, workerIndex, "elected"); - createProperty(member, balancerIndex, workerIndex, "readed"); - createProperty(member, balancerIndex, workerIndex, "busy"); - if(member.getMax_busy() >= 0) { - createProperty(member, balancerIndex, workerIndex, "max_busy"); - } - createProperty(member, balancerIndex, workerIndex, "transferred"); - createProperty(member, balancerIndex, workerIndex, "errors"); - if(member.getClient_errors() >= 0) { - createProperty(member, balancerIndex, workerIndex, "client_errors"); - } - if(member.getDistance() >= 0) { - createProperty(member, balancerIndex, workerIndex, "distance"); - } - if (member.getDomain() != null) { - createProperty(member, balancerIndex, workerIndex, "domain"); - } else { - getProject().setNewProperty(resultproperty + "." + balancerIndex + "." + workerIndex + - ".domain", ""); - } - if (member.getRedirect() != null) { - createProperty(member, balancerIndex, workerIndex, "redirect"); - } else { - getProject().setNewProperty(resultproperty + "." + balancerIndex + "." + workerIndex + - ".redirect", ""); - } - } - - /** - * @param balancer - * @param member - */ - private void setPropertyWorkerOnly(JkBalancer balancer, - JkBalancerMember member) { - //String prefix = resultproperty + "." + balancer.getName() + "." + member.getName(); - String prefix = resultproperty + "." + member.getName(); - Project currentProject = getProject(); - if ( balancer.getId() >= 0) { - currentProject.setNewProperty(prefix + ".lb.id", - Integer.toString(balancer.getId())); - } - //currentProject.setNewProperty(prefix + ".lb.name", balancer.getName()); - if( member.getId() >= 0) { - currentProject.setNewProperty(prefix + ".id", - Integer.toString(member.getId())); - } - currentProject.setNewProperty(prefix + ".type", member.getType()); - if (member.getJvm_route() != null) { - currentProject.setNewProperty(prefix + ".jvm_route", member.getJvm_route()); - } - if (member.getRoute() != null) { - currentProject.setNewProperty(prefix + ".route", member.getRoute()); - } - if (member.getStatus() != null) { - currentProject.setNewProperty(prefix + ".status", member.getStatus()); - } - if (member.getActivation() != null) { - currentProject.setNewProperty(prefix + ".activation", member.getActivation()); - } - if (member.getState() != null) { - currentProject.setNewProperty(prefix + ".state", member.getState()); - } - currentProject.setNewProperty(prefix + ".host", member.getHost()); - currentProject.setNewProperty(prefix + ".address", member.getAddress()); - currentProject.setNewProperty(prefix + ".port", - Integer.toString(member.getPort())); - currentProject.setNewProperty(prefix + ".lbfactor", - Integer.toString(member.getLbfactor())); - currentProject.setNewProperty(prefix + ".lbvalue", - Long.toString(member.getLbvalue())); - if(member.getLbmult() >= 0) { - currentProject.setNewProperty(prefix + ".lbmult", - Long.toString(member.getLbmult())); - } - currentProject.setNewProperty(prefix + ".elected", - Long.toString(member.getElected())); - currentProject.setNewProperty(prefix + ".readed", - Long.toString(member.getReaded())); - currentProject.setNewProperty(prefix + ".transferred", - Long.toString(member.getTransferred())); - currentProject.setNewProperty(prefix + ".busy", - Integer.toString(member.getBusy())); - if(member.getMax_busy() >= 0) { - currentProject.setNewProperty(prefix + ".max_busy", - Long.toString(member.getMax_busy())); - } - currentProject.setNewProperty(prefix + ".errors", - Long.toString(member.getErrors())); - if(member.getClient_errors() >= 0) { - currentProject.setNewProperty(prefix + ".client_errors", - Long.toString(member.getClient_errors())); - } - if(member.getDistance() >= 0) { - currentProject.setNewProperty(prefix + ".distance", - Integer.toString(member.getDistance())); - } - if (member.getDomain() != null) { - currentProject.setNewProperty(prefix + ".domain", member.getDomain()); - } else { - currentProject.setNewProperty(prefix + ".domain", ""); - } - if (member.getRedirect() != null) { - currentProject.setNewProperty(prefix + ".redirect", - member.getRedirect()); - } else { - currentProject.setNewProperty(prefix + ".redirect", ""); - } - if(member.getTime_to_recover() >= 0) { - currentProject.setNewProperty(prefix + ".time_to_recover", - Integer.toString(member.getTime_to_recover())); - } - if(member.getTime_to_recover_min() >= 0) { - currentProject.setNewProperty(prefix + ".time_to_recover_min", - Integer.toString(member.getTime_to_recover_min())); - } - if(member.getTime_to_recover_max() >= 0) { - currentProject.setNewProperty(prefix + ".time_to_recover_max", - Integer.toString(member.getTime_to_recover_max())); - currentProject.setNewProperty(prefix + ".time_to_recover", - (Integer.toString((member.getTime_to_recover_min() - + member.getTime_to_recover_max()) / 2))); - } - - } - - /* - * Set ant property for save error state - * - * @see org.apache.catalina.ant.BaseRedirectorHelperTask#setErrorProperty(java.lang.String) - */ - public void setErrorProperty(String arg0) { - errorProperty = arg0; - super.setErrorProperty(arg0); - } - - /** - * @return Returns the errorProperty. - */ - public String getErrorProperty() { - return errorProperty; - } - - protected void createProperty(Object result, String attribute) { - createProperty(result, null, null, attribute); - } - - protected void createProperty(Object result, String arraymark, - String attribute) { - createProperty(result, arraymark, null, attribute); - } - - /** - * create result as property with name from attribute resultproperty - */ - protected void createProperty(Object result, String arraymark, - String arraymark2, String attribute) { - if (resultproperty != null) { - Object value = IntrospectionUtils.getProperty(result, attribute); - if (value != null ) { - StringBuffer propertyname = new StringBuffer(resultproperty); - - if (result instanceof JkBalancer) { - if (arraymark != null) { - propertyname.append("."); - propertyname.append(arraymark); - } - } else if (result instanceof JkServer) { - if (arraymark != null) { - propertyname.append("."); - propertyname.append(arraymark); - } - } else if (result instanceof JkSoftware) { - if (arraymark != null) { - propertyname.append("."); - propertyname.append(arraymark); - } - } else if (result instanceof JkResult) { - if (arraymark != null) { - propertyname.append("."); - propertyname.append(arraymark); - } - } else if (result instanceof JkBalancerMember) { - if (arraymark != null) { - propertyname.append("."); - propertyname.append(arraymark); - } - if (arraymark2 != null) { - propertyname.append("."); - propertyname.append(arraymark2); - } - } else if (result instanceof JkBalancerMapping) { - if (arraymark != null) { - propertyname.append("."); - propertyname.append(arraymark); - } - if (arraymark2 != null) { - propertyname.append("."); - propertyname.append(arraymark2); - } - } - propertyname.append("."); - propertyname.append(attribute); - getProject().setNewProperty(propertyname.toString(), - value.toString()); - } - } - } - -} |