Minor refactoring.
This commit is contained in:
parent
db7fbe2b7c
commit
15ac0721a6
3 changed files with 19 additions and 24 deletions
|
|
@ -268,6 +268,21 @@ public class VmDefinition {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a condition's status.
|
||||||
|
*
|
||||||
|
* @param name the condition's name
|
||||||
|
* @return the status, if the condition is defined
|
||||||
|
*/
|
||||||
|
public Optional<Boolean> conditionStatus(String name) {
|
||||||
|
return this.<List<Map<String, Object>>> fromStatus("conditions")
|
||||||
|
.orElse(Collections.emptyList()).stream()
|
||||||
|
.filter(cond -> DataPath.get(cond, "type")
|
||||||
|
.map(name::equals).orElse(false))
|
||||||
|
.findFirst().map(cond -> DataPath.get(cond, "status")
|
||||||
|
.map("True"::equals).orElse(false));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set extra data (locally used, unknown to kubernetes).
|
* Set extra data (locally used, unknown to kubernetes).
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,6 @@ import io.kubernetes.client.util.Watch;
|
||||||
import io.kubernetes.client.util.generic.options.ListOptions;
|
import io.kubernetes.client.util.generic.options.ListOptions;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
@ -49,7 +46,6 @@ import static org.jdrupes.vmoperator.manager.Constants.VM_OP_NAME;
|
||||||
import org.jdrupes.vmoperator.manager.events.ChannelManager;
|
import org.jdrupes.vmoperator.manager.events.ChannelManager;
|
||||||
import org.jdrupes.vmoperator.manager.events.VmChannel;
|
import org.jdrupes.vmoperator.manager.events.VmChannel;
|
||||||
import org.jdrupes.vmoperator.manager.events.VmDefChanged;
|
import org.jdrupes.vmoperator.manager.events.VmDefChanged;
|
||||||
import org.jdrupes.vmoperator.util.DataPath;
|
|
||||||
import org.jgrapes.core.Channel;
|
import org.jgrapes.core.Channel;
|
||||||
import org.jgrapes.core.Event;
|
import org.jgrapes.core.Event;
|
||||||
|
|
||||||
|
|
@ -184,16 +180,7 @@ public class VmMonitor extends
|
||||||
// VM definition status changes before the pod terminates.
|
// VM definition status changes before the pod terminates.
|
||||||
// This results in pod information being shown for a stopped
|
// This results in pod information being shown for a stopped
|
||||||
// VM which is irritating. So check condition first.
|
// VM which is irritating. So check condition first.
|
||||||
@SuppressWarnings("PMD.LambdaCanBeMethodReference")
|
if (!vmDef.conditionStatus("Running").orElse(false)) {
|
||||||
var isRunning
|
|
||||||
= vmDef.<List<Map<String, Object>>> fromStatus("conditions")
|
|
||||||
.orElse(Collections.emptyList()).stream()
|
|
||||||
.filter(cond -> DataPath.get(cond, "type")
|
|
||||||
.map(t -> "Running".equals(t)).orElse(false))
|
|
||||||
.findFirst().map(cond -> DataPath.get(cond, "status")
|
|
||||||
.map(s -> "True".equals(s)).orElse(false))
|
|
||||||
.orElse(false);
|
|
||||||
if (!isRunning) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var podSearch = new ListOptions();
|
var podSearch = new ListOptions();
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,7 @@ import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -328,14 +326,9 @@ public class VmMgmt extends FreeMarkerConlet<VmMgmt.VmsModel> {
|
||||||
.add(vmDef.<String> fromStatus("ram")
|
.add(vmDef.<String> fromStatus("ram")
|
||||||
.map(r -> Quantity.fromString(r).getNumber().toBigInteger())
|
.map(r -> Quantity.fromString(r).getNumber().toBigInteger())
|
||||||
.orElse(BigInteger.ZERO));
|
.orElse(BigInteger.ZERO));
|
||||||
summary.runningVms
|
if (vmDef.conditionStatus("Running").orElse(false)) {
|
||||||
+= vmDef.<List<Map<String, Object>>> fromStatus("conditions")
|
summary.runningVms += 1;
|
||||||
.orElse(Collections.emptyList()).stream()
|
}
|
||||||
.filter(cond -> DataPath.get(cond, "type")
|
|
||||||
.map(t -> "Running".equals(t)).orElse(false)
|
|
||||||
&& DataPath.get(cond, "status")
|
|
||||||
.map(s -> "True".equals(s)).orElse(false))
|
|
||||||
.count();
|
|
||||||
}
|
}
|
||||||
cachedSummary = summary;
|
cachedSummary = summary;
|
||||||
return summary;
|
return summary;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue