[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