fix: add name scrambling demo mode to all views

- was missing for analysis, status and nodelist
This commit is contained in:
Christoph Kluge 2025-04-17 11:15:35 +02:00
parent e5862e9218
commit f343fa0071
4 changed files with 24 additions and 14 deletions

View File

@ -26,6 +26,8 @@
init, init,
convert2uplot, convert2uplot,
binsFromFootprint, binsFromFootprint,
scramble,
scrambleNames,
} from "./generic/utils.js"; } from "./generic/utils.js";
import PlotSelection from "./analysis/PlotSelection.svelte"; import PlotSelection from "./analysis/PlotSelection.svelte";
import Filters from "./generic/Filters.svelte"; import Filters from "./generic/Filters.svelte";
@ -395,7 +397,7 @@
quantities={$topQuery.data.topList.map( quantities={$topQuery.data.topList.map(
(t) => t[sortSelection.key], (t) => t[sortSelection.key],
)} )}
entities={$topQuery.data.topList.map((t) => t.id)} entities={$topQuery.data.topList.map((t) => scrambleNames ? scramble(t.id) : t.id)}
/> />
{/if} {/if}
{/key} {/key}
@ -428,21 +430,21 @@
{#if groupSelection.key == "user"} {#if groupSelection.key == "user"}
<th scope="col" id="topName-{te.id}" <th scope="col" id="topName-{te.id}"
><a href="/monitoring/user/{te.id}?cluster={clusterName}" ><a href="/monitoring/user/{te.id}?cluster={clusterName}"
>{te.id}</a >{scrambleNames ? scramble(te.id) : te.id}</a
></th ></th
> >
{#if te?.name} {#if te?.name}
<Tooltip <Tooltip
target={`topName-${te.id}`} target={`topName-${te.id}`}
placement="left" placement="left"
>{te.name}</Tooltip >{scrambleNames ? scramble(te.name) : te.name}</Tooltip
> >
{/if} {/if}
{:else} {:else}
<th scope="col" <th scope="col"
><a ><a
href="/monitoring/jobs/?cluster={clusterName}&project={te.id}&projectMatch=eq" href="/monitoring/jobs/?cluster={clusterName}&project={te.id}&projectMatch=eq"
>{te.id}</a >{scrambleNames ? scramble(te.id) : te.id}</a
></th ></th
> >
{/if} {/if}

View File

@ -31,6 +31,8 @@
init, init,
convert2uplot, convert2uplot,
transformPerNodeDataForRoofline, transformPerNodeDataForRoofline,
scramble,
scrambleNames,
} from "./generic/utils.js"; } from "./generic/utils.js";
import { scaleNumbers } from "./generic/units.js"; import { scaleNumbers } from "./generic/units.js";
import PlotGrid from "./generic/PlotGrid.svelte"; import PlotGrid from "./generic/PlotGrid.svelte";
@ -486,7 +488,7 @@
quantities={$topUserQuery.data.topUser.map( quantities={$topUserQuery.data.topUser.map(
(tu) => tu[topUserSelection.key], (tu) => tu[topUserSelection.key],
)} )}
entities={$topUserQuery.data.topUser.map((tu) => tu.id)} entities={$topUserQuery.data.topUser.map((tu) => scrambleNames ? scramble(tu.id) : tu.id)}
/> />
{/if} {/if}
{/key} {/key}
@ -520,14 +522,14 @@
<th scope="col" id="topName-{tu.id}" <th scope="col" id="topName-{tu.id}"
><a ><a
href="/monitoring/user/{tu.id}?cluster={cluster}&state=running" href="/monitoring/user/{tu.id}?cluster={cluster}&state=running"
>{tu.id}</a >{scrambleNames ? scramble(tu.id) : tu.id}</a
></th ></th
> >
{#if tu?.name} {#if tu?.name}
<Tooltip <Tooltip
target={`topName-${tu.id}`} target={`topName-${tu.id}`}
placement="left" placement="left"
>{tu.name}</Tooltip >{scrambleNames ? scramble(tu.name) : tu.name}</Tooltip
> >
{/if} {/if}
<td>{tu[topUserSelection.key]}</td> <td>{tu[topUserSelection.key]}</td>
@ -553,7 +555,7 @@
quantities={$topProjectQuery.data.topProjects.map( quantities={$topProjectQuery.data.topProjects.map(
(tp) => tp[topProjectSelection.key], (tp) => tp[topProjectSelection.key],
)} )}
entities={$topProjectQuery.data.topProjects.map((tp) => tp.id)} entities={$topProjectQuery.data.topProjects.map((tp) => scrambleNames ? scramble(tp.id) : tp.id)}
/> />
{/if} {/if}
{/key} {/key}
@ -586,7 +588,7 @@
<th scope="col" <th scope="col"
><a ><a
href="/monitoring/jobs/?cluster={cluster}&state=running&project={tp.id}&projectMatch=eq" href="/monitoring/jobs/?cluster={cluster}&state=running&project={tp.id}&projectMatch=eq"
>{tp.id}</a >{scrambleNames ? scramble(tp.id) : tp.id}</a
></th ></th
> >
<td>{tp[topProjectSelection.key]}</td> <td>{tp[topProjectSelection.key]}</td>

View File

@ -17,6 +17,9 @@
Input, Input,
InputGroup, InputGroup,
InputGroupText, } from "@sveltestrap/sveltestrap"; InputGroupText, } from "@sveltestrap/sveltestrap";
import {
scramble,
scrambleNames, } from "../../generic/utils.js";
export let cluster; export let cluster;
export let subCluster export let subCluster
@ -32,8 +35,8 @@
let userList; let userList;
let projectList; let projectList;
$: if (nodeJobsData) { $: if (nodeJobsData) {
userList = Array.from(new Set(nodeJobsData.jobs.items.map((j) => j.user))).sort((a, b) => a.localeCompare(b)); userList = Array.from(new Set(nodeJobsData.jobs.items.map((j) => scrambleNames ? scramble(j.user) : j.user))).sort((a, b) => a.localeCompare(b));
projectList = Array.from(new Set(nodeJobsData.jobs.items.map((j) => j.project))).sort((a, b) => a.localeCompare(b)); projectList = Array.from(new Set(nodeJobsData.jobs.items.map((j) => scrambleNames ? scramble(j.project) : j.project))).sort((a, b) => a.localeCompare(b));
} }
</script> </script>

View File

@ -14,7 +14,7 @@
getContextClient, getContextClient,
} from "@urql/svelte"; } from "@urql/svelte";
import { Card, CardBody, Spinner } from "@sveltestrap/sveltestrap"; import { Card, CardBody, Spinner } from "@sveltestrap/sveltestrap";
import { maxScope, checkMetricDisabled } from "../../generic/utils.js"; import { maxScope, checkMetricDisabled, scramble, scrambleNames } from "../../generic/utils.js";
import MetricPlot from "../../generic/plots/MetricPlot.svelte"; import MetricPlot from "../../generic/plots/MetricPlot.svelte";
import NodeInfo from "./NodeInfo.svelte"; import NodeInfo from "./NodeInfo.svelte";
@ -110,9 +110,12 @@
extendedLegendData = {} extendedLegendData = {}
for (const accId of accSet) { for (const accId of accSet) {
const matchJob = $nodeJobsData.data.jobs.items.find((i) => i.resources.find((r) => r.accelerators.includes(accId))) const matchJob = $nodeJobsData.data.jobs.items.find((i) => i.resources.find((r) => r.accelerators.includes(accId)))
const matchUser = matchJob?.user ? matchJob.user : null
extendedLegendData[accId] = { extendedLegendData[accId] = {
user: matchJob?.user ? matchJob?.user : '-', user: (scrambleNames && matchUser)
job: matchJob?.jobId ? matchJob?.jobId : '-', ? scramble(matchUser)
: (matchUser ? matchUser : '-'),
job: matchJob?.jobId ? matchJob.jobId : '-',
} }
} }
// Theoretically extendable for hwthreadIDs // Theoretically extendable for hwthreadIDs