Combine VmDefinitionModel and VmDefinition.

This commit is contained in:
Michael Lipp 2025-02-01 22:06:30 +01:00
parent b250398213
commit 85a4521299
16 changed files with 121 additions and 206 deletions

View file

@ -106,7 +106,7 @@ public class ConsoleTracker extends VmDefUpdater {
mainChannelClientHost = event.clientHost();
mainChannelClientPort = event.clientPort();
vmStub.updateStatus(from -> {
JsonObject status = from.status();
JsonObject status = from.statusJson();
status.addProperty("consoleClient", event.clientHost());
updateCondition(from, status, "ConsoleConnected", true, "Connected",
"Connection from " + event.clientHost());
@ -141,7 +141,7 @@ public class ConsoleTracker extends VmDefUpdater {
return;
}
vmStub.updateStatus(from -> {
JsonObject status = from.status();
JsonObject status = from.statusJson();
status.addProperty("consoleClient", "");
updateCondition(from, status, "ConsoleConnected", false,
"Disconnected", event.clientHost() + " has disconnected");

View file

@ -33,7 +33,7 @@ import static org.jdrupes.vmoperator.common.Constants.APP_NAME;
import static org.jdrupes.vmoperator.common.Constants.VM_OP_GROUP;
import static org.jdrupes.vmoperator.common.Constants.VM_OP_KIND_VM;
import org.jdrupes.vmoperator.common.K8s;
import org.jdrupes.vmoperator.common.VmDefinitionModel;
import org.jdrupes.vmoperator.common.VmDefinition;
import org.jdrupes.vmoperator.common.VmDefinitionStub;
import org.jdrupes.vmoperator.runner.qemu.events.BalloonChangeEvent;
import org.jdrupes.vmoperator.runner.qemu.events.ConfigureQemu;
@ -140,12 +140,12 @@ public class StatusUpdater extends VmDefUpdater {
if (vmDef.isPresent()
&& vmDef.get().metadata().getGeneration() == observedGeneration
&& (event.configuration().hasDisplayPassword
|| vmDef.get().status().getAsJsonPrimitive(
|| vmDef.get().statusJson().getAsJsonPrimitive(
"displayPasswordSerial").getAsInt() == -1)) {
return;
}
vmStub.updateStatus(vmDef.get(), from -> {
JsonObject status = from.status();
JsonObject status = from.statusJson();
if (!event.configuration().hasDisplayPassword) {
status.addProperty("displayPasswordSerial", -1);
}
@ -169,14 +169,14 @@ public class StatusUpdater extends VmDefUpdater {
"PMD.AvoidLiteralsInIfCondition" })
public void onRunnerStateChanged(RunnerStateChange event)
throws ApiException {
VmDefinitionModel vmDef;
VmDefinition vmDef;
if (vmStub == null || (vmDef = vmStub.model().orElse(null)) == null) {
return;
}
vmStub.updateStatus(vmDef, from -> {
JsonObject status = from.status();
JsonObject status = from.statusJson();
boolean running = RUNNING_STATES.contains(event.runState());
updateCondition(vmDef, vmDef.status(), "Running", running,
updateCondition(vmDef, vmDef.statusJson(), "Running", running,
event.reason(), event.message());
if (event.runState() == RunState.STARTING) {
status.addProperty("ram", GsonPtr.to(from.data())
@ -230,7 +230,7 @@ public class StatusUpdater extends VmDefUpdater {
return;
}
vmStub.updateStatus(from -> {
JsonObject status = from.status();
JsonObject status = from.statusJson();
status.addProperty("ram",
new Quantity(new BigDecimal(event.size()), Format.BINARY_SI)
.toSuffixedString());
@ -250,7 +250,7 @@ public class StatusUpdater extends VmDefUpdater {
return;
}
vmStub.updateStatus(from -> {
JsonObject status = from.status();
JsonObject status = from.statusJson();
status.addProperty("cpus", event.usedCpus().size());
return status;
});
@ -269,7 +269,7 @@ public class StatusUpdater extends VmDefUpdater {
return;
}
vmStub.updateStatus(from -> {
JsonObject status = from.status();
JsonObject status = from.statusJson();
status.addProperty("displayPasswordSerial",
status.get("displayPasswordSerial").getAsLong() + 1);
return status;

View file

@ -31,7 +31,7 @@ import java.util.Optional;
import java.util.logging.Level;
import java.util.stream.Collectors;
import org.jdrupes.vmoperator.common.K8sClient;
import org.jdrupes.vmoperator.common.VmDefinitionModel;
import org.jdrupes.vmoperator.common.VmDefinition;
import org.jdrupes.vmoperator.runner.qemu.events.Exit;
import org.jgrapes.core.Channel;
import org.jgrapes.core.Component;
@ -118,7 +118,7 @@ public class VmDefUpdater extends Component {
* @param reason the reason for the change
* @param message the message
*/
protected void updateCondition(VmDefinitionModel from, JsonObject status,
protected void updateCondition(VmDefinition from, JsonObject status,
String type, boolean state, String reason, String message) {
// Optimize, as we can get this several times
var current = status.getAsJsonArray("conditions").asList().stream()