[workspace-commit] CVS update: MODIFIED: client

Tim Freeman commit at globus.org
Thu Apr 17 11:07:52 CDT 2008


, RPQuery.java ...

  User: tfreeman
  Date: 08/04/17 11:07:52

  Modified:    vm/service/client/java/source/src/org/globus/workspace/status/client
                        RPQuery.java WorkspaceStatusClient.java
  Log:
  status client changes for query-all, other misc changes
  
  Revision  Changes    Path
  1.3       +1 -1      workspace/vm/service/client/java/source/src/org/globus/workspace/status/client/RPQuery.java
  
  http://viewcvs.globus.org/viewcvs.cgi/workspace/vm/service/client/java/source/src/org/globus/workspace/status/client/RPQuery.java.diff?r1=1.2&r2=1.3
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: RPQuery.java
  ===================================================================
  RCS file: /home/globdev/CVS/globus-packages/workspace/vm/service/client/java/source/src/org/globus/workspace/status/client/RPQuery.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- RPQuery.java	2 Nov 2007 14:46:48 -0000	1.2
  +++ RPQuery.java	17 Apr 2008 16:07:52 -0000	1.3
  @@ -51,7 +51,7 @@
           } catch (Exception e) {
               WorkspaceStatusClient.die(e,
                                         "Problem running RP query",
  -                                      this.client);
  +                                      this.client.isDebugMode());
           }
       }
   
  
  
  
  1.4       +142 -19   workspace/vm/service/client/java/source/src/org/globus/workspace/status/client/WorkspaceStatusClient.java
  
  http://viewcvs.globus.org/viewcvs.cgi/workspace/vm/service/client/java/source/src/org/globus/workspace/status/client/WorkspaceStatusClient.java.diff?r1=1.3&r2=1.4
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: WorkspaceStatusClient.java
  ===================================================================
  RCS file: /home/globdev/CVS/globus-packages/workspace/vm/service/client/java/source/src/org/globus/workspace/status/client/WorkspaceStatusClient.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- WorkspaceStatusClient.java	13 Feb 2008 17:50:51 -0000	1.3
  +++ WorkspaceStatusClient.java	17 Apr 2008 16:07:52 -0000	1.4
  @@ -19,9 +19,15 @@
   import org.globus.wsrf.utils.AddressingUtils;
   import org.globus.wsrf.utils.FaultHelper;
   import org.globus.wsrf.impl.SimpleResourceKey;
  +import org.globus.wsrf.impl.security.authorization.Authorization;
   import org.globus.workspace.WorkspaceConstants;
   import org.globus.workspace.CommonUtil;
   import org.globus.workspace.InvalidDurationException;
  +import org.globus.workspace.client_core.utils.StringUtils;
  +import org.globus.workspace.client_core.repr.Workspace;
  +import org.globus.workspace.client_core.actions.Status_QueryAll;
  +import org.globus.workspace.client_core.print.Print;
  +import org.globus.workspace.client_core.print.PrintOpts;
   import org.globus.workspace.client_common.BaseClient;
   import org.globus.workspace.generated.status.WorkspaceStatusPortType;
   import org.globus.workspace.generated.status.WorkspaceStatusServiceAddressingLocator;
  @@ -31,6 +37,8 @@
   import org.apache.commons.cli.OptionBuilder;
   import org.apache.commons.cli.CommandLine;
   import org.apache.commons.cli.ParseException;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   import org.apache.axis.message.addressing.EndpointReferenceType;
   import org.apache.axis.client.Stub;
   import org.apache.axis.types.Duration;
  @@ -39,15 +47,19 @@
   import java.util.ArrayList;
   import java.util.Iterator;
   import java.rmi.RemoteException;
  +import java.io.PrintStream;
   
   public class WorkspaceStatusClient extends BaseClient {
   
       private static String defaultServiceURL =
               "https://localhost:8443/wsrf/services/WorkspaceStatusService";
   
  +    private static final Log logger =
  +            LogFactory.getLog(WorkspaceStatusClient.class.getName());
  +
       // keys match WorkspaceFactoryService (right now this is just singleton,
       // all for future support of multiple implementations)
  -    static final SimpleResourceKey defaultResourceKey =
  +    public static final SimpleResourceKey defaultResourceKey =
           new SimpleResourceKey(
                   WorkspaceConstants.RESOURCE_KEY_QNAME,
                   WorkspaceConstants.FACTORY_DEFAULT_RSRC_KEY_NAME);
  @@ -63,13 +75,20 @@
           .withLongOpt("queryusage")
           .create("q" );
   
  +    public static final Option QUERY_VMS_OPT =
  +        OptionBuilder.withDescription("Query for your current workspaces")
  +        .withLongOpt("queryvms")
  +        .create("c" );
  +
       protected WorkspaceStatusClient() {
           options.addOption(FACTORYRP_OPT);
           options.addOption(QUERY_USAGE_OPT);
  +        options.addOption(QUERY_VMS_OPT);
       }
   
       public static final Integer ACTION_FACTORYQUERY = new Integer(1);
       public static final Integer ACTION_USAGEQUERY = new Integer(2);
  +    public static final Integer ACTION_VMQUERY = new Integer(3);
   
       private ArrayList actions = new ArrayList();
   
  @@ -115,6 +134,10 @@
                   client.actions.add(ACTION_USAGEQUERY);
               }
   
  +            if (line.hasOption("c")) {
  +                client.actions.add(ACTION_VMQUERY);
  +            }
  +
               // default action
               if (client.actions.isEmpty()) {
                   client.actions.add(ACTION_USAGEQUERY);
  @@ -142,7 +165,7 @@
                                    line.getOptionValue("s"), defaultResourceKey);
               }
           } catch(Exception e) {
  -            die(e,"EPR creation problem", client);
  +            die(e,"EPR creation problem", client.isDebugMode());
           }
   
           System.out.println("\nUsing endpoint:\n---------------\n" +
  @@ -153,7 +176,7 @@
           try {
               client.setOptions((Stub)statusPort);
           } catch (Exception e) {
  -            die(e,"Problem with stub", client);
  +            die(e,"Problem with stub", client.isDebugMode());
           }
   
           Iterator actionsIter = client.actions.iterator();
  @@ -170,7 +193,7 @@
                       usedReserved =
                              statusPort.queryUsedAndReservedTime(new VoidType());
                   } catch (RemoteException e) {
  -                    die(e,"Problem with query", client);
  +                    die(e,"Problem with query", client.isDebugMode());
                   }
   
                   Duration used = usedReserved.getUsedTime();
  @@ -209,9 +232,70 @@
                       }
                   }
               }
  +
  +            if (action.equals(ACTION_VMQUERY)) {
  +                try {
  +                    final PrintOpts opts = new PrintOpts(null);
  +                    PrintStream debug = null;
  +                    if (client.isDebugMode()) {
  +                        debug = System.err;
  +                    }
  +                    final Print pr =
  +                            new Print(opts, System.out, System.err, debug);
  +                    final Status_QueryAll queryAll =
  +                            new Status_QueryAll(statusPort, pr);
  +                    Workspace[] workspaces = queryAll.queryAll();
  +                    printCurrent(workspaces, pr);
  +                } catch (Exception e) {
  +                    die(e,"Problem with query", client.isDebugMode());
  +                }
           }
       }
  +    }
  +
  +    public static void printCurrent(Workspace[] workspaces,
  +                                    Print print) {
   
  +        if (print == null) {
  +            throw new IllegalArgumentException("print may not be null");
  +        }
  +
  +        if (!print.enabled()) {
  +            return; // *** EARLY RETURN ***
  +        }
  +
  +        if (workspaces == null || workspaces.length == 0) {
  +
  +            final String msg = "There are no workspaces running that you own.";
  +
  +            if (print.useThis()) {
  +                print.infoln(msg);
  +            } else {
  +                logger.info(msg);
  +            }
  +
  +            return; // *** EARLY RETURN ***
  +        }
  +
  +        for (int i = 0; i < workspaces.length; i++) {
  +            final String msg = StringUtils.
  +                    shortStringReprMultiLine(workspaces[i]);
  +            if (msg == null) {
  +                final String err = "No string representation?";
  +                if (print.useThis()) {
  +                    print.errln(err);
  +                } else {
  +                    logger.error(err);
  +                }
  +            } else {
  +                if (print.useThis()) {
  +                    print.infoln(msg);
  +                } else {
  +                    logger.info(msg);
  +                }
  +            }
  +        }
  +    }
   
       protected WorkspaceStatusPortType initStatusPort(
                   EndpointReferenceType epr) {
  @@ -225,7 +309,7 @@
               port = locator.getWorkspaceStatusPortTypePort(epr);
               //setSecurity((Stub) factoryPort);
           } catch (Exception e) {
  -            die(e,"Port creation error", this);
  +            die(e,"Port creation error", this.isDebugMode());
           }
   
           return port;
  @@ -233,11 +317,17 @@
   
       static void die(Exception e,
                                 String type,
  -                              WorkspaceStatusClient client) {
  +                    boolean debug) {
   
  -        FaultHelper helper = new FaultHelper(FaultHelper.toBaseFault(e));
  +        FaultHelper helper = null;
  +        if (e != null) {
  +            helper = new FaultHelper(FaultHelper.toBaseFault(e));
  +        } else {
  +            System.err.println("Error, but no exception");
  +        }
   
  -        if (client.isDebugMode()) {
  +        if (helper != null) {
  +            if (debug) {
               System.err.println("\n------\nError:\n------\n");
               System.err.println(type + ":\n" +
                       helper.getDescriptionAsString() + "\n");
  @@ -249,6 +339,39 @@
               System.err.println(type + ":\n" +
                       helper.getDescriptionAsString() + "\n");
           }
  +        }
           System.exit(APPLICATION_ERROR);
       }
  +
  +    // -------------------------------------------------------------------------
  +    // implements StubConfigurator
  +    // -------------------------------------------------------------------------
  +
  +    public Object getMechanism() {
  +        return this.mechanism;
  +    }
  +
  +    public Object getProtection() {
  +        return this.protection;
  +    }
  +
  +    public Authorization getAuthorization() {
  +        return (Authorization) this.authorization;
  +    }
  +
  +    public void setEPR(EndpointReferenceType epr) {
  +        this.endpoint = epr;
  +    }
  +
  +    public void setMechanism(String mech) {
  +        this.mechanism = mech;
  +    }
  +
  +    public void setProtection(Object protect) {
  +        this.protection = protect;
  +    }
  +
  +    public void setAuthorization(Authorization authz) {
  +        this.authorization = authz;
  +    }
   }
  
  
  




More information about the workspace-commit mailing list