mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2026-02-11 13:31:45 +01:00
Merge branch 'dev' of github.com:ClusterCockpit/cc-backend into dev
This commit is contained in:
@@ -867,7 +867,8 @@ func (r *queryResolver) NodeMetricsList(ctx context.Context, cluster string, sub
|
|||||||
}
|
}
|
||||||
|
|
||||||
nodeMetricsListResult := &model.NodesResultList{
|
nodeMetricsListResult := &model.NodesResultList{
|
||||||
Items: nodeMetricsList,
|
Items: nodeMetricsList,
|
||||||
|
// TotalNodes depends on sum of nodes grouped on latest timestamp, see repo/node.go:357
|
||||||
TotalNodes: &countNodes,
|
TotalNodes: &countNodes,
|
||||||
HasNextPage: &hasNextPage,
|
HasNextPage: &hasNextPage,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -272,8 +272,8 @@
|
|||||||
<NodeOverview {cluster} {ccconfig} {selectedMetric} {globalMetrics} {from} {to} {hostnameFilter} {hoststateFilter}/>
|
<NodeOverview {cluster} {ccconfig} {selectedMetric} {globalMetrics} {from} {to} {hostnameFilter} {hoststateFilter}/>
|
||||||
{:else}
|
{:else}
|
||||||
<!-- ROW2-2: Node List (Grid Included)-->
|
<!-- ROW2-2: Node List (Grid Included)-->
|
||||||
<NodeList {cluster} {subCluster} {ccconfig} {globalMetrics}
|
<NodeList pendingSelectedMetrics={selectedMetrics} {cluster} {subCluster}
|
||||||
pendingSelectedMetrics={selectedMetrics} {selectedResolution} {hostnameFilter} {hoststateFilter} {from} {to} {systemUnits}/>
|
{selectedResolution} {hostnameFilter} {hoststateFilter} {from} {to} {systemUnits}/>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
@@ -451,7 +451,7 @@
|
|||||||
|
|
||||||
{#if filters.startTime.range}
|
{#if filters.startTime.range}
|
||||||
<Info icon="calendar-range" onclick={() => (isStartTimeOpen = true)}>
|
<Info icon="calendar-range" onclick={() => (isStartTimeOpen = true)}>
|
||||||
{startTimeSelectOptions.find((stso) => stso.range === filters.startTime.range).rangeLabel }
|
Job Start: {startTimeSelectOptions.find((stso) => stso.range === filters.startTime.range).rangeLabel }
|
||||||
</Info>
|
</Info>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,10 @@
|
|||||||
<script module>
|
<script module>
|
||||||
export const startTimeSelectOptions = [
|
export const startTimeSelectOptions = [
|
||||||
{ range: "", rangeLabel: "No Selection"},
|
{ range: "", rangeLabel: "No Selection"},
|
||||||
{ range: "last6h", rangeLabel: "Job Start: Last 6hrs"},
|
{ range: "last6h", rangeLabel: "Last 6 hrs"},
|
||||||
{ range: "last24h", rangeLabel: "Job Start: Last 24hrs"},
|
{ range: "last24h", rangeLabel: "Last 24 hrs"},
|
||||||
{ range: "last7d", rangeLabel: "Job Start: Last 7 days"},
|
{ range: "last7d", rangeLabel: "Last 7 days"},
|
||||||
{ range: "last30d", rangeLabel: "Job Start: Last 30 days"}
|
{ range: "last30d", rangeLabel: "Last 30 days"}
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
/* Const Init */
|
/* Const Init */
|
||||||
const ccconfig = getContext("cc-config");
|
const ccconfig = getContext("cc-config");
|
||||||
|
const globalMetrics = getContext("globalMetrics");
|
||||||
const client = getContextClient();
|
const client = getContextClient();
|
||||||
|
|
||||||
/* State Init */
|
/* State Init */
|
||||||
@@ -139,6 +140,7 @@
|
|||||||
|
|
||||||
<HistogramSelection
|
<HistogramSelection
|
||||||
{cluster}
|
{cluster}
|
||||||
|
{globalMetrics}
|
||||||
bind:isOpen={isHistogramSelectionOpen}
|
bind:isOpen={isHistogramSelectionOpen}
|
||||||
presetSelectedHistograms={selectedHistograms}
|
presetSelectedHistograms={selectedHistograms}
|
||||||
configName="statusView_selectedHistograms"
|
configName="statusView_selectedHistograms"
|
||||||
|
|||||||
@@ -4,8 +4,6 @@
|
|||||||
Properties:
|
Properties:
|
||||||
- `cluster String`: The nodes' cluster
|
- `cluster String`: The nodes' cluster
|
||||||
- `subCluster String`: The nodes' subCluster [Default: ""]
|
- `subCluster String`: The nodes' subCluster [Default: ""]
|
||||||
- `ccconfig Object?`: The ClusterCockpit Config Context [Default: null]
|
|
||||||
- `globalMetrics [Obj]`: Includes the backend supplied availabilities for cluster and subCluster
|
|
||||||
- `pendingSelectedMetrics [String]`: The array of selected metrics [Default []]
|
- `pendingSelectedMetrics [String]`: The array of selected metrics [Default []]
|
||||||
- `selectedResolution Number?`: The selected data resolution [Default: 0]
|
- `selectedResolution Number?`: The selected data resolution [Default: 0]
|
||||||
- `hostnameFilter String?`: The active hostnamefilter [Default: ""]
|
- `hostnameFilter String?`: The active hostnamefilter [Default: ""]
|
||||||
@@ -16,7 +14,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { untrack } from "svelte";
|
import { untrack, getContext } from "svelte";
|
||||||
import { queryStore, gql, getContextClient, mutationStore } from "@urql/svelte";
|
import { queryStore, gql, getContextClient, mutationStore } from "@urql/svelte";
|
||||||
import { Row, Col, Card, Table, Spinner } from "@sveltestrap/sveltestrap";
|
import { Row, Col, Card, Table, Spinner } from "@sveltestrap/sveltestrap";
|
||||||
import { stickyHeader } from "../generic/utils.js";
|
import { stickyHeader } from "../generic/utils.js";
|
||||||
@@ -27,8 +25,6 @@
|
|||||||
let {
|
let {
|
||||||
cluster,
|
cluster,
|
||||||
subCluster = "",
|
subCluster = "",
|
||||||
ccconfig = null,
|
|
||||||
globalMetrics = null,
|
|
||||||
pendingSelectedMetrics = [],
|
pendingSelectedMetrics = [],
|
||||||
selectedResolution = 0,
|
selectedResolution = 0,
|
||||||
hostnameFilter = "",
|
hostnameFilter = "",
|
||||||
@@ -99,10 +95,15 @@
|
|||||||
let headerPaddingTop = $state(0);
|
let headerPaddingTop = $state(0);
|
||||||
|
|
||||||
/* Derived */
|
/* Derived */
|
||||||
|
const initialized = $derived(getContext("initialized") || false);
|
||||||
|
const ccconfig = $derived(initialized ? getContext("cc-config") : null);
|
||||||
|
const globalMetrics = $derived(initialized ? getContext("globalMetrics") : null);
|
||||||
|
const usePaging = $derived(ccconfig ? ccconfig.nodeList_usePaging : false);
|
||||||
|
|
||||||
let selectedMetrics = $derived(pendingSelectedMetrics);
|
let selectedMetrics = $derived(pendingSelectedMetrics);
|
||||||
let itemsPerPage = $derived(usePaging ? (ccconfig?.nodeList_nodesPerPage || 10) : 10);
|
let itemsPerPage = $derived(usePaging ? (ccconfig?.nodeList_nodesPerPage || 10) : 10);
|
||||||
const usePaging = $derived(ccconfig?.nodeList_usePaging || false);
|
let paging = $derived({ itemsPerPage, page });
|
||||||
const paging = $derived({ itemsPerPage, page });
|
|
||||||
const nodesQuery = $derived(queryStore({
|
const nodesQuery = $derived(queryStore({
|
||||||
client: client,
|
client: client,
|
||||||
query: nodeListQuery,
|
query: nodeListQuery,
|
||||||
@@ -122,7 +123,7 @@
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
const matchedNodes = $derived($nodesQuery?.data?.nodeMetricsList?.totalNodes || 0);
|
const matchedNodes = $derived($nodesQuery?.data?.nodeMetricsList?.totalNodes || 0);
|
||||||
|
|
||||||
/* Effects */
|
/* Effects */
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
if (!usePaging) {
|
if (!usePaging) {
|
||||||
|
|||||||
Reference in New Issue
Block a user