in frontend/src/old-pages/Clusters/Scheduling.tsx [78:129]
function JobActions({
job,
disabled,
cancelCallback,
}: {
job: JobSummary
disabled: boolean
cancelCallback?: () => void
}) {
let pendingPath = [
'app',
'clusters',
'queue',
'action',
job.job_id,
'pending',
]
const pending = useState(pendingPath)
const cancelJob = (jobId: any, cancelCallback: any) => {
const clusterName = getState(['app', 'clusters', 'selected'])
const clusterPath = ['clusters', 'index', clusterName]
const cluster = getState(clusterPath)
let user = clusterDefaultUser(cluster)
const headNode = getState([...clusterPath, 'headNode'])
setState(pendingPath, true)
CancelJob(headNode.instanceId, user, jobId, () =>
refreshQueues(() => {
clearState(pendingPath)
cancelCallback && cancelCallback()
}),
)
}
return (
<div>
{job.job_state !== 'COMPLETED' && job.job_state !== 'CANCELLED' && (
<div>
<Button
loading={pending}
disabled={disabled}
onClick={() => {
cancelJob(job.job_id, cancelCallback)
}}
>
Stop Job
</Button>
</div>
)}
</div>
)
}