Files
YG_FT/frontend/dist/assets/ComputeNodesView-Cy5hxd1h.js

2 lines
8.6 KiB
JavaScript
Raw Permalink Normal View History

import{E as ee}from"./index-BjEW7-SA.js";import{E as te}from"./index-BDEF353-.js";import{E as ae,a as le}from"./el-select-Dl-FRZQd.js";import{E as ne}from"./el-progress-DuOxpLST.js";import{E as se}from"./el-space-Bcqwkggw.js";import{a as oe,E as ie}from"./el-table-D8K5zLyz.js";import{a as ue,E as de}from"./el-tab-pane-DliV6btA.js";import{v as re}from"./directive-DsZckUTJ.js";import{aF as N,aG as T,d as pe,y as c,D as me,G as ce,ah as _e,K as fe,c as _,q as i,aa as o,g as I,s as t,w as a,ac as be,j as k,o as p,x as u,M as B,ad as D,e as E,v as ge}from"./index-BKKvzUDD.js";import"./el-scrollbar-ClJnvz-9.js";import"./el-popper-D6_hxRbQ.js";/* empty css */import"./el-tooltip-l0sNRNKZ.js";import"./el-checkbox-qGZ2-RM2.js";import{_ as ve}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CWUnzf90.js";import"./castArray-5uErZEc3.js";import"./vnode-78qeDweP.js";import"./index-D5ryD3I5.js";import"./raf-C-x62Pcl.js";import"./scroll-BkzZKETR.js";import"./index-DLzof2Fz.js";import"./clamp-CbbY8h6F.js";import"./toNumber-Dkj3QRv9.js";import"./_baseIteratee-BAilevJ_.js";import"./index-GAnQrJsQ.js";import"./_baseClone-B5RBzbh5.js";import"./debounce-ByXPNh5F.js";import"./omit-BTSq4AYh.js";const he=()=>N("/compute/nodes"),ye=m=>T(`/compute/nodes/${m}/test-connection`),we=m=>T(`/compute/nodes/${m}/enable`),Ce=m=>T(`/compute/nodes/${m}/disable`),ke=m=>T(`/compute/nodes/${m}/drain`),Ee=()=>N("/compute/gpus"),Ne=()=>N("/compute/queue"),Te=m=>N(`/compute/nodes/${m}/replicas`),Ge={class:"compute-page"},Ve={class:"compute-header"},Pe={class:"header-actions"},Se={key:0,class:"last-updated"},Ue={class:"summary-grid"},$e={class:"summary-tile"},qe={class:"summary-tile"},xe={class:"summary-tile"},Ie={class:"summary-tile"},Be={class:"mono"},De={class:"muted mono"},Le={class:"muted"},ze={class:"muted"},Re={key:0,class:"muted"},je={class:"muted"},Me={class:"replica-toolbar"},Fe={key:0,class:"muted"},Ae=pe({__name:"ComputeNodesView",setup(m){const L=be(),j=ge(),G=c(String(L.query.tab||"nodes")),V=c(!1),f=c([]),v=c([]),P=c([]),S=c([]),b=c(""),U=c("");let $=null;const z=k(()=>f.value.find(l=>l.id===b.value)),M=k(()=>f.value.filter(l=>l.enabled).length),F=k(()=>v.value.filter(l=>l.status==="busy"||l.status==="reserved").length),A=k(()=>f.value.reduce((l,n)=>l+n.current_running_jobs,0));me(()=>L.query.tab,l=>{G.value=String(l||"nodes")});async function h(){V.value=!0;try{const[l,n,d]=await Promise.all([he(),Ee(),Ne()]);f.value=l,v.value=n,P.value=d,!b.value&&l.length&&(b.value=l[0].id),await R(),U.value=new Date().toLocaleTimeString("zh-CN",{hour12:!1})}finally{V.value=!1}}async function R(){if(!b.value){S.value=[];return}S.value=await Te(b.value)}async function J(l){await j.replace({path:"/compute",query:{tab:String(l)}})}async function y(l,n){const d=String(n.id);l==="enable"&&await we(d),l==="disable"&&await Ce(d),l==="drain"&&await ke(d),l==="test"&&await ye(d),await h()}function K(l){return l==="online"?"success":l==="draining"||l==="maintenance"?"warning":"info"}function O(l){return l==="running"?"success":l==="syncing"||l==="queued"?"warning":l==="failed"?"danger":"info"}function Q(l){return l==="busy"?"success":l==="reserved"?"warning":"info"}return ce(()=>{h(),$=setInterval(h,5e3)}),_e(()=>{$&&clearInterval($)}),(l,n)=>{const d=ee,s=ie,g=te,W=se,w=oe,C=de,q=ne,H=le,X=ae,Y=ue,Z=re;return fe((p(),_("section",Ge,[i("header",Ve,[n[3]||(n[3]=i("div",null,[i("h1",null,"算力节点"),i("p",null,"维护训练算力节点、GPU 状态、任务队列和模型/数据集本地副本。")],-1)),i("div",Pe,[U.value?(p(),_("span",Se,"更新 "+o(U.value),1)):I("",!0),t(d,{onClick:h},{default:a(()=>[...n[2]||(n[2]=[u("刷新",-1)])]),_:1})])]),i("div",Ue,[i("div",$e,[n[4]||(n[4]=i("span",null,"在线节点",-1)),i("strong",null,o(M.value)+" / "+o(f.value.length),1)]),i("div",qe,[n[5]||(n[5]=i("span",null,"GPU 占用",-1)),i("strong",null,o(F.value)+" / "+o(v.value.length),1)]),i("div",xe,[n[6]||(n[6]=i("span",null,"运行任务",-1)),i("strong",null,o(A.value),1)]),i("div",Ie,[n[7]||(n[7]=i("span",null,"队列任务",-1)),i("strong",null,o(