summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator/src
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2025-06-20 16:07:27 +0200
committerGitHub <noreply@github.com>2025-06-20 16:07:27 +0200
commit8f846655347195bf6f22a4a102aa06f0ab127da1 (patch)
treec6a9cb7cdeac9d655ef2ac27a5f7d7572ca810bb /opendc-compute/opendc-compute-simulator/src
parent0df3d9ced743ac3385dd710c7133a6cf369b051c (diff)
Task now saves the hostName of connected host, until a new Host is selected. (#347)
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java5
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java15
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt4
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt2
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt7
5 files changed, 25 insertions, 8 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 11394ce9..2b4306af 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
@@ -205,7 +205,6 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver {
LOGGER.error("Unknown host {}", host);
}
- task.setHost(null);
host.delete(task);
if (newState == TaskState.COMPLETED) {
@@ -523,7 +522,7 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver {
LOGGER.info("Assigned task {} to host {}", task, host);
try {
- task.host = host;
+ task.setHost(host);
task.scheduledAt = clock.instant();
host.spawn(task);
@@ -709,7 +708,7 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver {
// from.delete(internalTask);
- internalTask.host = null;
+ internalTask.setHost(null);
internalTask.setWorkload(workload);
internalTask.start();
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 66b69bde..281f75ca 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
@@ -63,7 +63,9 @@ public class ServiceTask {
Instant scheduledAt = null;
Instant submittedAt;
Instant finishedAt;
- SimHost host = null;
+ private SimHost host = null;
+ private String hostName = null;
+
private SchedulingRequest request = null;
private int numFailures = 0;
@@ -158,8 +160,15 @@ public class ServiceTask {
return host;
}
- public void setHost(SimHost host) {
- this.host = host;
+ public String getHostName() {
+ return hostName;
+ }
+
+ public void setHost(SimHost newHost) {
+ this.host = newHost;
+ if (newHost != null) {
+ this.hostName = newHost.getName();
+ }
}
public int getNumFailures() {
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
index f862a843..f533eb1f 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
@@ -81,10 +81,10 @@ public object DfltTaskExportColumns {
.`as`(LogicalTypeAnnotation.stringType())
.named("host_name"),
) {
- if (it.hostInfo == null) {
+ if (it.hostName == null) {
return@ExportColumn Binary.fromString("")
}
- return@ExportColumn Binary.fromString(it.hostInfo!!.name)
+ return@ExportColumn Binary.fromString(it.hostName)
}
public val MEM_CAPACITY: ExportColumn<TaskTableReader> =
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt
index 8861eabb..b0745dd6 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReader.kt
@@ -60,6 +60,8 @@ public interface TaskTableReader : Exportable {
*/
public val hostInfo: HostInfo?
+ public val hostName: String?
+
/**
* The uptime of the host since last time in ms.
*/
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt
index f6a52759..d63202a9 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/task/TaskTableReaderImpl.kt
@@ -52,6 +52,7 @@ public class TaskTableReaderImpl(
override fun setValues(table: TaskTableReader) {
hostInfo = table.hostInfo
+ _hostName = table.hostName
_timestamp = table.timestamp
_timestampAbsolute = table.timestampAbsolute
@@ -93,6 +94,10 @@ public class TaskTableReaderImpl(
override var hostInfo: HostInfo? = null
private var simHost: SimHost? = null
+ private var _hostName: String? = null
+ override val hostName: String?
+ get() = _hostName
+
private var _timestamp = Instant.MIN
override val timestamp: Instant
get() = _timestamp
@@ -188,6 +193,8 @@ public class TaskTableReaderImpl(
val cpuStats = simHost?.getCpuStats(task)
val sysStats = simHost?.getSystemStats(task)
+ _hostName = task.hostName
+
_timestamp = now
_timestampAbsolute = now + startTime