[workspace-commit] CVS update: MODIFIED: status

Tim Freeman commit at globus.org
Thu Apr 17 10:10:57 CDT 2008


, WorkspaceStatusResource.java
, WorkspaceStatusResourceImpl.java
, WorkspaceStatusService.java
 ...

  User: tfreeman
  Date: 08/04/17 10:10:57

  Modified:    vm/service/service/java/source/src/org/globus/workspace/status
                        WorkspaceStatusResource.java
                        WorkspaceStatusResourceImpl.java
                        WorkspaceStatusService.java
  Log:
  - alternate unpropagation target URL
  - bulk status query
  - file customizations
  - fault can accompany state in RP/notification
  - misc changes for new WSDL
  - backend VM name prefix moved from "workspace" to "wrksp" (extends ebtables NIC length limit)
  
  Revision  Changes    Path
  1.3       +4 -0      workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusResource.java
  
  http://viewcvs.globus.org/viewcvs.cgi/workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusResource.java.diff?r1=1.2&r2=1.3
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: WorkspaceStatusResource.java
  ===================================================================
  RCS file: /home/globdev/CVS/globus-packages/workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusResource.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- WorkspaceStatusResource.java	2 Nov 2007 14:47:19 -0000	1.2
  +++ WorkspaceStatusResource.java	17 Apr 2008 15:10:57 -0000	1.3
  @@ -18,6 +18,7 @@
   
   import org.globus.workspace.Locator;
   import org.globus.workspace.WorkspaceException;
  +import org.globus.workspace.generated.status.CurrentWorkspaces_Type;
   import org.globus.workspace.accounting.ElapsedAndReservedMinutes;
   import org.globus.wsrf.Resource;
   import org.globus.wsrf.ResourceProperties;
  @@ -29,4 +30,7 @@
   
       public ElapsedAndReservedMinutes queryUsedAndReservedTime(String ownerDN)
               throws WorkspaceException;
  +
  +    public CurrentWorkspaces_Type queryCurrentWorkspaces(String ownerDN)
  +            throws WorkspaceException;
   }
  
  
  
  1.3       +20 -2     workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusResourceImpl.java
  
  http://viewcvs.globus.org/viewcvs.cgi/workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusResourceImpl.java.diff?r1=1.2&r2=1.3
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: WorkspaceStatusResourceImpl.java
  ===================================================================
  RCS file: /home/globdev/CVS/globus-packages/workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusResourceImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- WorkspaceStatusResourceImpl.java	2 Nov 2007 14:47:19 -0000	1.2
  +++ WorkspaceStatusResourceImpl.java	17 Apr 2008 15:10:57 -0000	1.3
  @@ -24,6 +24,9 @@
   import org.globus.workspace.WorkspaceConstants;
   import org.globus.workspace.WorkspaceException;
   import org.globus.workspace.Locator;
  +import org.globus.workspace.persistence.DataUtil;
  +import org.globus.workspace.service.WorkspaceResource;
  +import org.globus.workspace.generated.status.CurrentWorkspaces_Type;
   import org.globus.workspace.accounting.AccountingReaderAdapter;
   import org.globus.workspace.accounting.ElapsedAndReservedMinutes;
   import org.apache.commons.logging.Log;
  @@ -42,6 +45,7 @@
   
       private ResourcePropertySet propSet;
       private AccountingReaderAdapter reader;
  +    private Locator locator;
   
       public void initialize(Locator loc) throws ResourceException {
           
  @@ -53,6 +57,8 @@
               throw new IllegalArgumentException("locator is null");
           }
   
  +        this.locator = loc;
  +
           try {
               this.reader = loc.getAccountingReaderAdapter();
           } catch (Exception e) {
  @@ -64,7 +70,7 @@
           }
   
           this.propSet = new SimpleResourcePropertySet(STATUS_RP_SET);
  -        ResourceProperty prop =
  +        final ResourceProperty prop =
                   new SimpleResourceProperty(RP_STATUS_CHARGEGRAN);
           prop.add(new Integer(this.reader.getChargeGranularity()));
           this.propSet.add(prop);
  @@ -78,11 +84,23 @@
               throws WorkspaceException {
   
           if (this.reader == null) {
  -            logger.error("WorkspaceStatusResourceImpl not initialized");
               throw new WorkspaceException("cannot query without " +
                                           "AccountingReaderAdapter");
           }
   
           return this.reader.totalElapsedAndReservedMinutesTuple(ownerDN);
       }
  +
  +    public CurrentWorkspaces_Type queryCurrentWorkspaces(String ownerDN)
  +            throws WorkspaceException {
  +
  +        if (this.locator.getHome() == null) {
  +            throw new WorkspaceException("cannot query without WorkspaceHome");
  +        }
  +
  +        final WorkspaceResource[] current =
  +                this.locator.getHome().findByCaller(ownerDN);
  +        return DataUtil.constructCurrentWorkspaces(current,
  +                                                   this.locator.getHome());
  +    }
   }
  
  
  
  1.3       +70 -9     workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusService.java
  
  http://viewcvs.globus.org/viewcvs.cgi/workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusService.java.diff?r1=1.2&r2=1.3
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: WorkspaceStatusService.java
  ===================================================================
  RCS file: /home/globdev/CVS/globus-packages/workspace/vm/service/service/java/source/src/org/globus/workspace/status/WorkspaceStatusService.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- WorkspaceStatusService.java	2 Nov 2007 14:47:19 -0000	1.2
  +++ WorkspaceStatusService.java	17 Apr 2008 15:10:57 -0000	1.3
  @@ -28,6 +28,7 @@
   import org.globus.workspace.generated.status.UsedAndReservedTime_Type;
   import org.globus.workspace.generated.status.WorkspaceStatusFault;
   import org.globus.workspace.generated.status.VoidType;
  +import org.globus.workspace.generated.status.CurrentWorkspaces_Type;
   import org.globus.wsrf.ResourceContext;
   import org.globus.wsrf.ResourceContextException;
   import org.globus.wsrf.ResourceException;
  @@ -39,18 +40,32 @@
    */
   public class WorkspaceStatusService {
   
  +    // -------------------------------------------------------------------------
  +    // STATIC VARIABLES
  +    // -------------------------------------------------------------------------
  +
       private static final Log logger =
           LogFactory.getLog(WorkspaceStatusService.class.getName());
   
       private static final Lager lager = Lager.getLager();
   
  +
  +    // -------------------------------------------------------------------------
  +    // INSTANCE VARIABLES
  +    // -------------------------------------------------------------------------
  +
       // currently assuming singleton, this will change in future
       private WorkspaceStatusResource resource;
   
  +
  +    // -------------------------------------------------------------------------
  +    // WS OPERATION: queryUsedAndReservedTime
  +    // -------------------------------------------------------------------------
  +
       public UsedAndReservedTime_Type queryUsedAndReservedTime(VoidType none)
               throws WorkspaceStatusFault {
   
  -        String callerDN = SecurityManager.getManager().getCaller();
  +        final String callerDN = SecurityManager.getManager().getCaller();
   
           if (lager.eventLog) {
               logger.info(Lager.ev(-1) + "WS-queryUsedAndReservedTime " +
  @@ -58,17 +73,17 @@
           }
   
           try {
  -            return this.queryUsedAndReservedTimeImpl(callerDN);
  +            return this._queryUsedAndReservedTime(callerDN);
           } catch (Exception e) {
               throw makeFault(e.getMessage(), e);
           }
       }
   
  -    private UsedAndReservedTime_Type
  -            queryUsedAndReservedTimeImpl(String callerDN)
  +    private UsedAndReservedTime_Type _queryUsedAndReservedTime(String callerDN)
               throws Exception {
   
           if (this.resource == null) {
  +            // no race problem
               this.resource = getStatusResource();
           }
   
  @@ -128,12 +143,58 @@
           return new UsedAndReservedTime_Type(reservedDuration, elapsedDuration);
       }
   
  +    
  +    // -------------------------------------------------------------------------
  +    // WS OPERATION: queryCurrentWorkspaces
  +    // -------------------------------------------------------------------------
  +
  +    public CurrentWorkspaces_Type queryCurrentWorkspaces(VoidType none)
  +            throws WorkspaceStatusFault {
  +
  +        final String callerDN = SecurityManager.getManager().getCaller();
  +
  +        if (lager.eventLog) {
  +            logger.info(Lager.ev(-1) + "WS-queryCurrentWorkspaces " +
  +                    "invoked by " + callerDN);
  +        }
  +
  +        try {
  +            return this._queryCurrentWorkspaces(callerDN);
  +        } catch (Throwable t) {
  +            String err = t.getMessage();
  +            if (err == null) {
  +                err = "No description available";
  +                logger.error(err, t);
  +            }
  +            throw makeFault(err, t);
  +        }
  +    }
  +
  +    private CurrentWorkspaces_Type _queryCurrentWorkspaces(String callerDN)
  +            throws Exception {
  +
  +        if (this.resource == null) {
  +            // no race problem
  +            this.resource = getStatusResource();
  +        }
  +
  +        // authorization check not necessary, no parameters to query yet,
  +        // self-query implied.
  +
  +        return this.resource.queryCurrentWorkspaces(callerDN);
  +    }
  +
  +    // -------------------------------------------------------------------------
  +    // MISC
  +    // -------------------------------------------------------------------------
  +
       private static WorkspaceStatusResource getStatusResource()
                                                   throws WorkspaceException {
   
           try {
  -            ResourceContext context = ResourceContext.getResourceContext();
  -            WorkspaceStatusResource rsrc =
  +            final ResourceContext context =
  +                    ResourceContext.getResourceContext();
  +            final WorkspaceStatusResource rsrc =
                       (WorkspaceStatusResource)context.getResource();
               if (rsrc == null) {
                   throw new ResourceException("could not find resource for " +
  @@ -152,12 +213,12 @@
       /**
        * Helps with status fault and chained exceptions.
        * @param errMsg error string
  -     * @param exp exception, can be chained
  +     * @param t throwable, can be chained
        * @return WorkspaceMetadataFault
        */
       public static WorkspaceStatusFault makeFault(String errMsg,
  -                                                 Exception exp) {
  +                                                 Throwable t) {
           return (WorkspaceStatusFault) WorkspaceUtil.
  -                        makeFault(WorkspaceStatusFault.class, errMsg, exp);
  +                        makeFault(WorkspaceStatusFault.class, errMsg, t);
       }
   }
  
  
  




More information about the workspace-commit mailing list