mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-26 05:19:05 +01:00
Merge branch 'hotfix' into 196_add_footprint
This commit is contained in:
commit
175a88f1c4
@ -95,7 +95,9 @@
|
||||
startFetching(
|
||||
job,
|
||||
[...toFetch],
|
||||
job.numNodes > 2 ? ["node"] : ["node", "core"]
|
||||
job.numNodes > 2
|
||||
? ["node"]
|
||||
: ["node", "socket", "core"]
|
||||
);
|
||||
} else {
|
||||
// Accels and not on node scope
|
||||
@ -104,7 +106,7 @@
|
||||
[...toFetch],
|
||||
job.numNodes > 2
|
||||
? ["node", "accelerator"]
|
||||
: ["node", "accelerator", "core"]
|
||||
: ["node", "accelerator", "socket", "core"]
|
||||
);
|
||||
}
|
||||
|
||||
@ -405,8 +407,6 @@
|
||||
bind:this={statsTable}
|
||||
job={$initq.data.job}
|
||||
jobMetrics={$jobMetrics.data.jobMetrics}
|
||||
accMetrics={accMetrics}
|
||||
accNodeOnly={accNodeOnly}
|
||||
/>
|
||||
{/key}
|
||||
{/if}
|
||||
|
@ -7,8 +7,6 @@
|
||||
|
||||
export let job
|
||||
export let jobMetrics
|
||||
export let accMetrics
|
||||
export let accNodeOnly
|
||||
|
||||
const allMetrics = [...new Set(jobMetrics.map(m => m.name))].sort(),
|
||||
scopesForMetric = (metric) => jobMetrics
|
||||
@ -23,17 +21,23 @@
|
||||
|| getContext('cc-config')['job_view_nodestats_selectedMetrics']
|
||||
|
||||
for (let metric of allMetrics) {
|
||||
// Not Exclusive or Single Node: Get maxScope()
|
||||
// No Accelerators in Job and not Acc-Metric: Use 'core'
|
||||
// Accelerator Metric available on accelerator scope: Use 'accelerator'
|
||||
// Accelerator Metric only on node scope: Fallback to 'node'
|
||||
selectedScopes[metric] = (job.exclusive != 1 || job.numNodes == 1) ?
|
||||
(job.numAccs != 0 && accMetrics.includes(metric)) ?
|
||||
accNodeOnly ?
|
||||
'node'
|
||||
: 'accelerator'
|
||||
: 'core'
|
||||
: maxScope(scopesForMetric(metric))
|
||||
// Not Exclusive or Multi-Node: get maxScope directly (mostly: node)
|
||||
// -> Else: Load smallest available granularity as default as per availability
|
||||
const availableScopes = scopesForMetric(metric)
|
||||
if (job.exclusive != 1 || job.numNodes == 1) {
|
||||
if (availableScopes.includes('accelerator')) {
|
||||
selectedScopes[metric] = 'accelerator'
|
||||
} else if (availableScopes.includes('core')) {
|
||||
selectedScopes[metric] = 'core'
|
||||
} else if (availableScopes.includes('socket')) {
|
||||
selectedScopes[metric] = 'socket'
|
||||
} else {
|
||||
selectedScopes[metric] = 'node'
|
||||
}
|
||||
} else {
|
||||
selectedScopes[metric] = maxScope(availableScopes)
|
||||
}
|
||||
|
||||
sorting[metric] = {
|
||||
min: { dir: 'up', active: false },
|
||||
avg: { dir: 'up', active: false },
|
||||
@ -84,8 +88,7 @@
|
||||
{metric}
|
||||
</InputGroupText>
|
||||
<select class="form-select"
|
||||
bind:value={selectedScopes[metric]}
|
||||
disabled={scopesForMetric(metric, jobMetrics).length == 1}>
|
||||
bind:value={selectedScopes[metric]}>
|
||||
{#each scopesForMetric(metric, jobMetrics) as scope}
|
||||
<option value={scope}>{scope}</option>
|
||||
{/each}
|
||||
|
Loading…
Reference in New Issue
Block a user