Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

-Renamed package org.globus.workspace.spotinstances to org.globus.wor…

…kspace.async

-Refactored spotinstances.conf
-Few refactoring
  • Loading branch information...
commit a8fbf8298bc53e53203602d83b2ff214255a3d07 1 parent c5cffa3
@pauloricardomg pauloricardomg authored
Showing with 110 additions and 93 deletions.
  1. +6 −6 service/service/java/source/etc/workspace-service/other/main.xml
  2. +27 −17 service/service/java/source/etc/workspace-service/spotinstances.conf
  3. +5 −5 service/service/java/source/src/org/globus/workspace/{spotinstances → async}/AsyncRequest.java
  4. +14 −0 service/service/java/source/src/org/globus/workspace/async/AsyncRequestException.java
  5. +4 −17 ...va/source/src/org/globus/workspace/{spotinstances/SIRequestUtils.java → async/AsyncRequestFilter.java}
  6. +15 −5 service/service/java/source/src/org/globus/workspace/{spotinstances → async}/AsyncRequestHome.java
  7. +3 −3 service/service/java/source/src/org/globus/workspace/{spotinstances → async}/AsyncRequestManager.java
  8. +12 −11 service/service/java/source/src/org/globus/workspace/{spotinstances → async}/AsyncRequestManagerImpl.java
  9. +1 −1  service/service/java/source/src/org/globus/workspace/{spotinstances → async}/AsyncRequestStatus.java
  10. +3 −1 ...ce/java/source/src/org/globus/workspace/{spotinstances → async/pricingmodel}/AbstractPricingModel.java
  11. +6 −3 ...a/source/src/org/globus/workspace/{spotinstances → async/pricingmodel}/MaximizeProfitPricingModel.java
  12. +3 −1 ...rce/src/org/globus/workspace/{spotinstances → async/pricingmodel}/MaximizeUtilizationPricingModel.java
  13. +3 −1 ...ce/service/java/source/src/org/globus/workspace/{spotinstances → async/pricingmodel}/PricingModel.java
  14. +1 −1  ...e/java/source/src/org/globus/workspace/{spotinstances → async/pricingmodel}/PricingModelConstants.java
  15. +1 −1  service/service/java/source/src/org/globus/workspace/creation/CreationManager.java
  16. +2 −2 service/service/java/source/src/org/globus/workspace/creation/defaults/CreationManagerImpl.java
  17. +2 −2 service/service/java/source/src/org/globus/workspace/manager/DelegatingManager.java
  18. +2 −2 service/service/java/source/src/org/globus/workspace/persistence/DataConvert.java
  19. +0 −14 service/service/java/source/src/org/globus/workspace/spotinstances/SIRequestException.java
View
12 service/service/java/source/etc/workspace-service/other/main.xml
@@ -545,30 +545,30 @@
</bean>
<!-- ===================================================================
- org.globus.workspace.spotinstances.* interfaces
+ org.globus.workspace.async.* interfaces
=================================================================== -->
- <bean id="nimbus-rm.spotinstances.pricingmodel"
+ <bean id="nimbus-rm.si.pricingmodel"
class="$SI{si.pricingmodel}" />
<bean id="nimbus-rm.async.manager"
- class="org.globus.workspace.spotinstances.AsyncRequestManagerImpl">
+ class="org.globus.workspace.async.AsyncRequestManagerImpl">
<constructor-arg ref="nimbus-rm.persistence.PersistenceAdapter" />
<constructor-arg ref="nimbus-rm.loglevels" />
<constructor-arg ref="nimbus-rm.home.instance"/>
<constructor-arg ref="nimbus-rm.home.group"/>
<constructor-arg value="$SI{si.basic.minprice}" />
- <constructor-arg ref="nimbus-rm.spotinstances.pricingmodel" />
+ <constructor-arg ref="nimbus-rm.si.pricingmodel" />
<!-- set after object creation time to avoid circular dep -->
<property name="creationManager" ref="nimbus-rm.creation" />
<!-- Property values coming via spotinstances.conf -->
<property name="minReservedMem"
- value="$SI{si.policies.minreservedmem}" />
+ value="$SI{async.policies.minreservedmem}" />
<property name="maxUtilization"
- value="$SI{si.policies.maxutilization}" />
+ value="$SI{async.policies.maxutilization}" />
<property name="instanceMem"
value="$SI{si.basic.mem}" />
View
44 service/service/java/source/etc/workspace-service/spotinstances.conf
@@ -1,8 +1,10 @@
-################################################################################
+######################################################
#
-# This file is used for configuring Spot Instances within this site
+# This file is used for configuring asynchronous
+# requests (Spot Instances and
+# backfill requests) for this site
#
-################################################################################
+######################################################
###########################
# GENERAL CONFIGURATION:
@@ -13,6 +15,11 @@
si.enabled=true
+# Indicates whether the backfill feature
+# is enabled (true) or disabled (false) for this site
+
+backfill.enabled=true
+
# A pricing model is invoked every time the Spot Instances
# environment changes. This can happen in many situations:
# when a request arrives, is canceled or terminated, when
@@ -36,19 +43,19 @@ si.enabled=true
# Currently there are two default implementations of that
# interface, explained as follows:
#
-# ** org.globus.workspace.spotinstances.MaximizeUtilizationPricingModel **
+# ** org.globus.workspace.async.pricingmodel.MaximizeUtilizationPricingModel **
#
# This pricing model aims to satisfy the maximum number of requests, giving
# priority to higher bid requests when there aren't available VMs to fulfill
# all requests. Suitable for scientific clouds.
#
-# ** org.globus.workspace.spotinstances.MaximizeProfitPricingModel **
+# ** org.globus.workspace.async.pricingmodel.MaximizeProfitPricingModel **
#
# This pricing model aims to maximize the revenue of the cloud provider,
# without necessarily increasing cloud utilization. Suitable for commercial
# clouds.
-si.pricingmodel=org.globus.workspace.spotinstances.MaximizeUtilizationPricingModel
+si.pricingmodel=org.globus.workspace.async.pricingmodel.MaximizeUtilizationPricingModel
####################################
# BASIC SPOT INSTANCE CONFIGURATION:
@@ -71,26 +78,29 @@ si.basic.minprice=0.1
# The policies below define how the total resource pool memory is #
# divided between ordinary Workspace Service requests #
-# (1st class requests) and Spot Instance requests (SI requests). #
+# (1st class requests) and Asynchronous requests (SI or backfill #
+# requests). #
# #
# It's important to note that these policies are preventive, in the #
# sense that free space is reserved for future 1st class requests, #
# but if the reserved space is still not sufficient to satisfy a #
-# 1st class request, SI requests will be pre-empted on-the-fly in #
-# order to free the needed amount of space (emergency pre-emption) #
+# 1st class request, SI or backfill requests will be pre-empted #
+# on-the-fly in order to free the needed amount of space (emergency #
+# pre-emption) #
# This policy defines the minimum amount of free memory (in MegaBytes)
# that should be reserved exclusively for 1st class requests, and thus
-# will not be allocated for SI requests.
+# will not be allocated for SI or backfill requests.
-si.policies.minreservedmem=256
+async.policies.minreservedmem=256
# This policy defines the maximum utilization (in %) for
-# 1st class requests. When the utilization raises above that
-# value, Spot Instance requests are pre-empted (preventive pre-emption)
-# in order to decrease the utilization of 1st class requests.
+# 1st class requests. When the utilization raises above this
+# value, Spot Instance or backfill requests are pre-empted
+# (preventive pre-emption) in order to decrease the
+# utilization of 1st class requests.
#
-# The Spot Instances module will reserve an amount of free
+# The Workspace Service will reserve an amount of free
# memory for 1st class requests in order to ensure that
# the utilization of 1st class requests is equal or below
# that value, unless there is no more available memory
@@ -101,8 +111,8 @@ si.policies.minreservedmem=256
#
# * maxUtilization = usedMem / (usedMem + reservedMem)
#
-# that, if reorganized becomes:
+# reorganized, becomes:
#
# * reservedMem = (1 - maxUtilization)*usedMem/maxUtilization
-si.policies.maxutilization=0.7
+async.policies.maxutilization=0.7
View
10 ...workspace/spotinstances/AsyncRequest.java → .../globus/workspace/async/AsyncRequest.java
@@ -1,4 +1,4 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async;
import java.util.Calendar;
import java.util.Collection;
@@ -226,9 +226,9 @@ public boolean finishVM(int vmid) {
return toBePreempted.remove(vmid);
}
- public VirtualMachine[] getUnallocatedVMs(int quantity) throws SIRequestException{
+ public VirtualMachine[] getUnallocatedVMs(int quantity) throws AsyncRequestException{
if(this.getUnallocatedInstances() < quantity){
- throw new SIRequestException("Requested " + quantity + " unallocated VMs, but there are only " + this.getUnallocatedInstances() + ".");
+ throw new AsyncRequestException("Requested " + quantity + " unallocated VMs, but there are only " + this.getUnallocatedInstances() + ".");
}
VirtualMachine[] result = new VirtualMachine[quantity];
@@ -244,9 +244,9 @@ public boolean finishVM(int vmid) {
return result;
}
- public int[] getAllocatedVMs(int quantity) throws SIRequestException{
+ public int[] getAllocatedVMs(int quantity) throws AsyncRequestException{
if(this.getAllocatedInstances() < quantity){
- throw new SIRequestException("Requested " + quantity + " allocated VMs, but there are only " + getAllocatedInstances() + ".");
+ throw new AsyncRequestException("Requested " + quantity + " allocated VMs, but there are only " + getAllocatedInstances() + ".");
}
int[] result = new int[quantity];
View
14 service/service/java/source/src/org/globus/workspace/async/AsyncRequestException.java
@@ -0,0 +1,14 @@
+package org.globus.workspace.async;
+
+public class AsyncRequestException extends Exception {
+
+ public AsyncRequestException(String message) {
+ super(message);
+ }
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
View
21 ...rkspace/spotinstances/SIRequestUtils.java → ...s/workspace/async/AsyncRequestFilter.java
@@ -1,10 +1,10 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-public class SIRequestUtils {
+public class AsyncRequestFilter {
public static List<AsyncRequest> getRequestsEqualPrice(
Double price, Collection<AsyncRequest> allRequests) {
@@ -54,7 +54,7 @@
List<AsyncRequest> activeRequestsEqualPrice = new ArrayList<AsyncRequest>();
for (AsyncRequest siRequest : allRequests) {
- if(siRequest.getStatus().isAlive() && siRequest.getMaxBid().equals(price)){
+ if(siRequest.isSpotRequest() && siRequest.getStatus().isAlive() && siRequest.getMaxBid().equals(price)){
activeRequestsEqualPrice.add(siRequest);
}
}
@@ -67,7 +67,7 @@
List<AsyncRequest> aliveRequestsAbovePrice = new ArrayList<AsyncRequest>();
for (AsyncRequest siRequest : allRequests) {
- if(siRequest.getStatus().isAlive() && siRequest.getMaxBid() > currentPrice){
+ if(siRequest.isSpotRequest() && siRequest.getStatus().isAlive() && siRequest.getMaxBid() > currentPrice){
aliveRequestsAbovePrice.add(siRequest);
}
}
@@ -89,19 +89,6 @@
return aliveRequests;
}
- public static Collection<AsyncRequest> filterActiveRequests(
- Collection<AsyncRequest> allRequests) {
- List<AsyncRequest> activeRequests = new ArrayList<AsyncRequest>();
-
- for (AsyncRequest siRequest : allRequests) {
- if(siRequest.getStatus().isActive()){
- activeRequests.add(siRequest);
- }
- }
-
- return activeRequests;
- }
-
public static List<AsyncRequest> filterAliveBackfillRequests(
Collection<AsyncRequest> allRequests) {
List<AsyncRequest> activeRequests = new ArrayList<AsyncRequest>();
View
20 ...space/spotinstances/AsyncRequestHome.java → ...bus/workspace/async/AsyncRequestHome.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async;
import java.util.Calendar;
import java.util.List;
@@ -27,12 +27,12 @@
/**
* Frontend interface that provides
* RETRIEVE and CANCEL operations to
- * Spot Instance Requests
+ * Asynchronous requests
*/
public interface AsyncRequestHome {
/**
- * Cancels a Spot Instance request
+ * Cancels an asynchronous request
* @param reqID the id of the request to be canceled
* @return the canceled request
* @throws DoesNotExistException in case the id argument does not map
@@ -41,7 +41,7 @@
public AsyncRequest cancelRequest(String reqID) throws DoesNotExistException;
/**
- * Retrieves a Spot Instance request and its related information
+ * Retrieves an asynchronous request and its related information
* @param id the id of the request to be retrieved
* @return the wanted request
* @throws DoesNotExistException in case the id argument does not map
@@ -50,7 +50,7 @@
public AsyncRequest getRequest(String id) throws DoesNotExistException;
/**
- * Retrieves all Spot Instance requests from a caller
+ * Retrieves all asynchronous requests from a caller
* @param caller the owner of the Spot Instances' requests
* @return an array of spot instance requests from this caller
*/
@@ -62,6 +62,16 @@
*/
public Double getSpotPrice();
+ /**
+ * Retrieves the spot price history
+ * @param startDate the date the history should start. <b>null</n>
+ * indicates there is no start date.
+ * @param endDate the date the history should end. <b>null</n>
+ * indicates there is no end date.
+ * @return a list of spot price entries from the start date until the end date
+ * @throws WorkspaceDatabaseException in case there is an error
+ * in the databsae, while obtaining the history data
+ */
public List<SpotPriceEntry> getSpotPriceHistory(Calendar startDate, Calendar endDate)
throws WorkspaceDatabaseException;
View
6 ...ce/spotinstances/AsyncRequestManager.java → .../workspace/async/AsyncRequestManager.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async;
import org.globus.workspace.StateChangeInterested;
import org.globus.workspace.scheduler.defaults.PreemptableSpaceManager;
@@ -25,8 +25,8 @@
public interface AsyncRequestManager extends AsyncRequestHome, PreemptableSpaceManager, StateChangeInterested {
/**
- * Adds a Spot Instances request
- * to this module
+ * Adds an asynchronous request
+ * to this manager
* @param request the request to be added
*/
public void addRequest(AsyncRequest request);
View
23 ...potinstances/AsyncRequestManagerImpl.java → ...kspace/async/AsyncRequestManagerImpl.java
@@ -13,7 +13,7 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async;
import java.util.ArrayList;
import java.util.Calendar;
@@ -30,6 +30,7 @@
import org.apache.commons.logging.LogFactory;
import org.globus.workspace.Lager;
import org.globus.workspace.WorkspaceConstants;
+import org.globus.workspace.async.pricingmodel.PricingModel;
import org.globus.workspace.creation.InternalCreationManager;
import org.globus.workspace.persistence.PersistenceAdapter;
import org.globus.workspace.persistence.WorkspaceDatabaseException;
@@ -118,10 +119,10 @@ public AsyncRequestManagerImpl(PersistenceAdapter persistenceAdapterImpl,
// -------------------------------------------------------------------------
/**
- * Adds a Spot Instances request
- * to this module
+ * Adds an asynchronous request
+ * to this manager
* @param request the request to be added
- */
+ */
public void addRequest(AsyncRequest request){
requests.put(request.getId(), request);
@@ -790,7 +791,7 @@ protected void allocate(AsyncRequest siRequest, Integer quantity) {
VirtualMachine[] unallocatedVMs = null;
try {
unallocatedVMs = siRequest.getUnallocatedVMs(quantity);
- } catch (SIRequestException e) {
+ } catch (AsyncRequestException e) {
logger.fatal("[Spot Instances] " + e.getMessage(), e);
return;
}
@@ -965,7 +966,7 @@ protected AsyncRequest getSIRequest(int vmid) {
* @return list of alive equal or higher bid requests
*/
private List<AsyncRequest> getAliveEqualOrHigherBidRequests() {
- return SIRequestUtils.filterAliveRequestsAboveOrEqualPrice(this.currentPrice, this.requests.values());
+ return AsyncRequestFilter.filterAliveRequestsAboveOrEqualPrice(this.currentPrice, this.requests.values());
}
/**
@@ -973,7 +974,7 @@ protected AsyncRequest getSIRequest(int vmid) {
* @return list of alive equal bid requests
*/
private List<AsyncRequest> getAliveEqualBidRequests(){
- return SIRequestUtils.filterAliveRequestsEqualPrice(this.currentPrice, this.requests.values());
+ return AsyncRequestFilter.filterAliveRequestsEqualPrice(this.currentPrice, this.requests.values());
}
/**
@@ -981,7 +982,7 @@ protected AsyncRequest getSIRequest(int vmid) {
* @return list of alive higher bid requests
*/
private List<AsyncRequest> getAliveHigherBidRequests() {
- return SIRequestUtils.filterAliveRequestsAbovePrice(this.currentPrice, this.requests.values());
+ return AsyncRequestFilter.filterAliveRequestsAbovePrice(this.currentPrice, this.requests.values());
}
/**
@@ -989,7 +990,7 @@ protected AsyncRequest getSIRequest(int vmid) {
* @return list of alive backfill requests
*/
private List<AsyncRequest> getAliveBackfillRequests(){
- return SIRequestUtils.filterAliveBackfillRequests(this.requests.values());
+ return AsyncRequestFilter.filterAliveBackfillRequests(this.requests.values());
}
/**
@@ -997,7 +998,7 @@ protected AsyncRequest getSIRequest(int vmid) {
* @return list of alive requests
*/
private List<AsyncRequest> getAliveSpotRequests() {
- return SIRequestUtils.filterAliveRequestsAboveOrEqualPrice(minPrice, this.requests.values());
+ return AsyncRequestFilter.filterAliveRequestsAboveOrEqualPrice(minPrice, this.requests.values());
}
/**
@@ -1005,7 +1006,7 @@ protected AsyncRequest getSIRequest(int vmid) {
* @return list of lower bid active requests
*/
private List<AsyncRequest> getActiveLowerBidRequests() {
- return SIRequestUtils.filterActiveRequestsBelowPrice(this.currentPrice, this.requests.values());
+ return AsyncRequestFilter.filterActiveRequestsBelowPrice(this.currentPrice, this.requests.values());
}
/**
View
2  ...ace/spotinstances/AsyncRequestStatus.java → ...s/workspace/async/AsyncRequestStatus.java
@@ -1,4 +1,4 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async;
public enum AsyncRequestStatus {
View
4 ...e/spotinstances/AbstractPricingModel.java → ...nc/pricingmodel/AbstractPricingModel.java
@@ -1,9 +1,11 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async.pricingmodel;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
+import org.globus.workspace.async.AsyncRequest;
+
public abstract class AbstractPricingModel implements PricingModel{
public static final Double DEFAULT_MIN_PRICE = 0.1;
View
9 ...instances/MaximizeProfitPricingModel.java → ...cingmodel/MaximizeProfitPricingModel.java
@@ -1,8 +1,11 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async.pricingmodel;
import java.util.Collection;
import java.util.LinkedList;
+import org.globus.workspace.async.AsyncRequest;
+import org.globus.workspace.async.AsyncRequestFilter;
+
public class MaximizeProfitPricingModel extends AbstractPricingModel {
@Override
@@ -32,8 +35,8 @@ public Double getNextPriceImpl(Integer totalReservedResources, Collection<AsyncR
private static Double getProfit(Double priceCandidate, Integer availableResources, Collection<AsyncRequest> allRequests){
- Collection<AsyncRequest> priorityOffers = SIRequestUtils.getRequestsAbovePrice(priceCandidate, allRequests);
- Collection<AsyncRequest> limitOffers = SIRequestUtils.getRequestsEqualPrice(priceCandidate, allRequests);
+ Collection<AsyncRequest> priorityOffers = AsyncRequestFilter.getRequestsAbovePrice(priceCandidate, allRequests);
+ Collection<AsyncRequest> limitOffers = AsyncRequestFilter.getRequestsEqualPrice(priceCandidate, allRequests);
Collection<AsyncRequest> eligibleOffers = union(priorityOffers, limitOffers);
View
4 ...nces/MaximizeUtilizationPricingModel.java → ...odel/MaximizeUtilizationPricingModel.java
@@ -1,9 +1,11 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async.pricingmodel;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
+import org.globus.workspace.async.AsyncRequest;
+
public class MaximizeUtilizationPricingModel extends AbstractPricingModel {
private boolean setMinPrice;
View
4 ...workspace/spotinstances/PricingModel.java → ...pace/async/pricingmodel/PricingModel.java
@@ -1,7 +1,9 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async.pricingmodel;
import java.util.Collection;
+import org.globus.workspace.async.AsyncRequest;
+
public interface PricingModel {
Double getNextPrice(Integer totalReservedResources,
View
2  .../spotinstances/PricingModelConstants.java → ...c/pricingmodel/PricingModelConstants.java
@@ -1,4 +1,4 @@
-package org.globus.workspace.spotinstances;
+package org.globus.workspace.async.pricingmodel;
public class PricingModelConstants {
View
2  service/service/java/source/src/org/globus/workspace/creation/CreationManager.java
@@ -16,8 +16,8 @@
package org.globus.workspace.creation;
+import org.globus.workspace.async.AsyncRequest;
import org.globus.workspace.service.InstanceResource;
-import org.globus.workspace.spotinstances.AsyncRequest;
import org.nimbustools.api.repr.Advertised;
import org.nimbustools.api.repr.Caller;
View
4 ...e/service/java/source/src/org/globus/workspace/creation/defaults/CreationManagerImpl.java
@@ -25,6 +25,8 @@
import org.globus.workspace.WorkspaceConstants;
import org.globus.workspace.WorkspaceUtil;
import org.globus.workspace.accounting.AccountingEventAdapter;
+import org.globus.workspace.async.AsyncRequest;
+import org.globus.workspace.async.AsyncRequestManager;
import org.globus.workspace.creation.CreationManager;
import org.globus.workspace.network.AssociationAdapter;
import org.globus.workspace.persistence.DataConvert;
@@ -45,8 +47,6 @@
import org.globus.workspace.service.binding.vm.CustomizationNeed;
import org.globus.workspace.service.binding.vm.VirtualMachine;
import org.globus.workspace.service.binding.vm.VirtualMachineDeployment;
-import org.globus.workspace.spotinstances.AsyncRequest;
-import org.globus.workspace.spotinstances.AsyncRequestManager;
import org.globus.workspace.creation.InternalCreationManager;
import org.nimbustools.api._repr._Advertised;
View
4 service/service/java/source/src/org/globus/workspace/manager/DelegatingManager.java
@@ -25,14 +25,14 @@
import org.globus.workspace.PathConfigs;
import org.globus.workspace.accounting.AccountingReaderAdapter;
import org.globus.workspace.accounting.ElapsedAndReservedMinutes;
+import org.globus.workspace.async.AsyncRequest;
+import org.globus.workspace.async.AsyncRequestHome;
import org.globus.workspace.creation.CreationManager;
import org.globus.workspace.persistence.DataConvert;
import org.globus.workspace.service.InstanceResource;
import org.globus.workspace.service.WorkspaceCoschedHome;
import org.globus.workspace.service.WorkspaceGroupHome;
import org.globus.workspace.service.WorkspaceHome;
-import org.globus.workspace.spotinstances.AsyncRequest;
-import org.globus.workspace.spotinstances.AsyncRequestHome;
import org.nimbustools.api._repr._Caller;
import org.nimbustools.api._repr._CreateResult;
import org.nimbustools.api.repr.Advertised;
View
4 service/service/java/source/src/org/globus/workspace/persistence/DataConvert.java
@@ -24,12 +24,12 @@
import org.globus.workspace.WorkspaceConstants;
import org.globus.workspace.accounting.ElapsedAndReservedMinutes;
+import org.globus.workspace.async.AsyncRequest;
+import org.globus.workspace.async.AsyncRequestStatus;
import org.globus.workspace.service.InstanceResource;
import org.globus.workspace.service.binding.vm.VirtualMachine;
import org.globus.workspace.service.binding.vm.VirtualMachineDeployment;
import org.globus.workspace.service.binding.vm.VirtualMachinePartition;
-import org.globus.workspace.spotinstances.AsyncRequest;
-import org.globus.workspace.spotinstances.AsyncRequestStatus;
import org.globus.workspace.xen.XenUtil;
import org.nimbustools.api._repr._Caller;
import org.nimbustools.api._repr._RequestInfo;
View
14 service/service/java/source/src/org/globus/workspace/spotinstances/SIRequestException.java
@@ -1,14 +0,0 @@
-package org.globus.workspace.spotinstances;
-
-public class SIRequestException extends Exception {
-
- public SIRequestException(String message) {
- super(message);
- }
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
-}
Please sign in to comment.
Something went wrong with that request. Please try again.