summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src/main/java/org')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java4
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java14
2 files changed, 16 insertions, 2 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
index f357b164..f4adaac1 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
+++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
@@ -573,6 +573,10 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver {
activeTasks.put(task, host);
updateHost(host);
+
+ long new_scheduling_delay = clock.millis() - req.getSubmitTime() + task.getSchedulingDelay();
+ task.setSchedulingDelay(new_scheduling_delay);
+
} catch (Exception cause) {
LOGGER.error("Failed to deploy VM", cause);
scheduler.removeTask(task, hv);
diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java
index 8c066e4f..689a0e95 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java
+++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java
@@ -75,6 +75,8 @@ public class ServiceTask {
private int numFailures = 0;
private int numPauses = 0;
+ private long schedulingDelay = 0;
+
/// //////////////////////////////////////////////////////////////////////////////////////////////////
/// Getters and Setters
/// //////////////////////////////////////////////////////////////////////////////////////////////////
@@ -343,12 +345,12 @@ public class ServiceTask {
case PAUSED:
LOGGER.info("User requested to start task after pause {}", id);
setState(TaskState.PROVISIONING);
- request = service.schedule(this, true);
+ request = service.schedule(this, false);
break;
case FAILED:
LOGGER.info("User requested to start task after failure {}", id);
setState(TaskState.PROVISIONING);
- request = service.schedule(this, true);
+ request = service.schedule(this, false);
break;
}
}
@@ -433,4 +435,12 @@ public class ServiceTask {
return !parents.isEmpty();
}
+
+ public long getSchedulingDelay() {
+ return schedulingDelay;
+ }
+
+ public void setSchedulingDelay(long schedulingDelay) {
+ this.schedulingDelay = schedulingDelay;
+ }
}