👽️ Move to new node data model

This commit is contained in:
andreas.dinauer 2025-11-16 14:03:15 +01:00
parent 1f478c7edb
commit 78d88ba0c0
5 changed files with 19 additions and 10 deletions

View File

@ -1,16 +1,25 @@
import type { Metadata } from "./Metadata"; import { Metadata } from "../Metadata";
import type { HasMetadata } from "./repo/ResourceRepo"; import { type HasMetadata } from "../repo/ResourceRepo";
export class Node implements HasMetadata export class Node implements HasMetadata
{ {
constructor ( constructor (
public metadata: Metadata, public metadata: Metadata,
public runningPods: number, public metrics: NodeMetrics,
public status: Status public status: Status
) { } ) { }
}
class NodeMetrics
{
absoluteCpuUsage?: number;
relativeCpuUsage?: number; relativeCpuUsage?: number;
absoluteMemory?: number;
relativeMemory?: number; relativeMemory?: number;
runningPods?: number;
relativeDiskUsage?: number;
totalDiskSpace?: number;
} }
class Status class Status

View File

@ -4,21 +4,21 @@
<div class="grid-element"> <div class="grid-element">
<p>{{ calcAge(nodeStats.metadata?.creationTimestamp) }}</p> <p>{{ calcAge(nodeStats.metadata?.creationTimestamp) }}</p>
</div> </div>
<p class="grid-element">{{ nodeStats.runningPods }}</p> <p class="grid-element">{{ nodeStats.metrics.runningPods }}</p>
<div class="grid-element"> <div class="grid-element">
<NodeReadyComponent :ready="isReady(nodeStats)"></NodeReadyComponent> <NodeReadyComponent :ready="isReady(nodeStats)"></NodeReadyComponent>
</div> </div>
<div class="grid-element"> <div class="grid-element">
<p class="usage" :class="cpuUsageFlag(nodeStats.relativeCpuUsage)">{{ nodeStats.relativeCpuUsage }}%</p> <p class="usage" :class="cpuUsageFlag(nodeStats.metrics.relativeCpuUsage)">{{ nodeStats.metrics.relativeCpuUsage }}%</p>
</div> </div>
<div class="grid-element"> <div class="grid-element">
<p class="usage" :class="ramUsageFlag(nodeStats.relativeMemory)">{{ nodeStats.relativeMemory }}%</p> <p class="usage" :class="ramUsageFlag(nodeStats.metrics.relativeMemory)">{{ nodeStats.metrics.relativeMemory }}%</p>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Node } from '~/classes/Node'; import type { Node } from '~/classes/node/Node';
import NodeReadyComponent from './NodeReadyComponent.vue'; import NodeReadyComponent from './NodeReadyComponent.vue';
import { calcAge } from '~/classes/Pod'; import { calcAge } from '~/classes/Pod';

View File

@ -15,7 +15,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Node } from '~/classes/Node'; import type { Node } from '~/classes/node/Node';
import { ResourceRepo } from '~/classes/repo/ResourceRepo'; import { ResourceRepo } from '~/classes/repo/ResourceRepo';
import NodeComponent from '~/components/NodeComponent.vue'; import NodeComponent from '~/components/NodeComponent.vue';

View File

@ -1,5 +1,5 @@
import axios from "axios"; import axios from "axios";
import type { Node } from "~/classes/Node"; import type { Node } from "~/classes/node/Node";
import type { Pod } from "~/classes/Pod"; import type { Pod } from "~/classes/Pod";
import { Data } from "../chart/Dataset"; import { Data } from "../chart/Dataset";
import dayjs from "dayjs"; import dayjs from "dayjs";

View File

@ -40,7 +40,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import type { Node } from '~/classes/Node'; import type { Node } from '~/classes/node/Node';
import { MonitoredResource } from './MonitoredResource'; import { MonitoredResource } from './MonitoredResource';
import { Dataset } from '../chart/Dataset'; import { Dataset } from '../chart/Dataset';
import { VOLUME_CHART_CONFIG } from './volumes/ChartConfig'; import { VOLUME_CHART_CONFIG } from './volumes/ChartConfig';