Add steps to test the Web UI and to run go generate. Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
1 line
14 KiB
JavaScript
1 line
14 KiB
JavaScript
import"../chunks/DsnmJJEf.js";import{i as $e}from"../chunks/zNh6Oe5P.js";import{p as Ue,o as Le,A as Oe,l as Pe,a as Ve,f as u,h as ze,b as P,t as f,c as v,d as Re,u as r,n as p,v as m,g as t,m as A,j as s,k as d,s as h,$ as qe,r as a,B as Tt,e as Fe,q as $t,D as Ut}from"../chunks/sWNKMed7.js";import{i as g,s as Ge,a as He}from"../chunks/Ccl3fNd2.js";import{w as We,e as Lt,i as Ot}from"../chunks/BuuPrWMc.js";import{d as j,c as nt,g as Pt,s as Vt}from"../chunks/D30EsFKH.js";import{b as Je}from"../chunks/_gFYyMUN.js";import{p as Ke}from"../chunks/DubtptHG.js";import{g as zt}from"../chunks/CeO1pnaq.js";import{D as Qe}from"../chunks/B6BdCO3z.js";import{g as V,f as z}from"../chunks/ow_oMtSd.js";import{s as Rt,b as B,B as qt,d as Ft}from"../chunks/DyvUHRqW.js";import{e as Xe}from"../chunks/BZiHL9L3.js";var Ye=u('<div class="bg-red-50 dark:bg-red-900/50 border border-red-200 dark:border-red-800 rounded-md p-4"><div class="flex"><div class="ml-3"><h3 class="text-sm font-medium text-red-800 dark:text-red-200">Error</h3> <div class="mt-2 text-sm text-red-700 dark:text-red-300"> </div></div></div></div>'),Ze=u('<div class="bg-white dark:bg-gray-800 shadow rounded-lg"><div class="px-6 py-4 text-center"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"></div> <p class="mt-2 text-sm text-gray-500 dark:text-gray-400">Loading instance details...</p></div></div>'),ta=u('<a class="text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 hover:underline"> </a>'),ea=u('<a class="text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300 hover:underline"> </a>'),aa=u('<span class="text-gray-400 dark:text-gray-500">-</span>'),sa=u('<div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Updated At:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div>'),ra=u('<div class="flex justify-between items-center bg-gray-50 dark:bg-gray-700 p-2 rounded"><span class="font-mono text-gray-900 dark:text-white"> </span> <!></div>'),da=u('<div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400 mb-2">Network Addresses:</dt> <dd class="text-sm space-y-1"></dd></div>'),ia=u('<div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Network Addresses:</dt> <dd class="text-sm text-gray-500 dark:text-gray-400 italic">No addresses available</dd></div>'),na=u('<div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">OS Type:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div>'),la=u('<div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">OS Name:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div>'),oa=u('<div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">OS Version:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div>'),va=u('<div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">OS Architecture:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div>'),xa=u('<div class="bg-gray-50 dark:bg-gray-700 p-4 rounded-lg"><div class="flex justify-between items-start"><p class="text-sm text-gray-900 dark:text-white flex-1 mr-4"> </p> <div class="flex items-center space-x-2 flex-shrink-0"><!> <span class="text-xs text-gray-500 dark:text-gray-400"><!></span></div></div></div>'),ca=u('<div class="bg-white dark:bg-gray-800 shadow rounded-lg p-6"><h3 class="text-lg font-medium text-gray-900 dark:text-white mb-4">Status Messages</h3> <div class="space-y-3 max-h-96 overflow-y-auto scroll-smooth"></div></div>'),ma=u('<div class="bg-white dark:bg-gray-800 shadow rounded-lg p-6"><h3 class="text-lg font-medium text-gray-900 dark:text-white mb-4">Status Messages</h3> <div class="text-center py-8"><svg class="w-12 h-12 text-gray-400 dark:text-gray-500 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg> <p class="text-sm text-gray-500 dark:text-gray-400">No status messages available</p></div></div>'),ua=u('<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"><div class="bg-white dark:bg-gray-800 shadow rounded-lg p-6"><div class="flex items-center justify-between mb-4"><h3 class="text-lg font-medium text-gray-900 dark:text-white">Instance Information</h3> <div class="flex items-center space-x-3"><button class="px-4 py-2 bg-red-600 hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-800 text-white rounded-lg font-medium text-sm cursor-pointer">Delete Instance</button></div></div> <dl class="space-y-3"><div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">ID:</dt> <dd class="text-sm font-mono text-gray-900 dark:text-white break-all"> </dd></div> <div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Name:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div> <div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Provider ID:</dt> <dd class="text-sm font-mono text-gray-900 dark:text-white break-all"> </dd></div> <div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Provider:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div> <div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Pool/Scale Set:</dt> <dd class="text-sm font-mono text-gray-900 dark:text-white break-all"><!></dd></div> <div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Agent ID:</dt> <dd class="text-sm font-mono text-gray-900 dark:text-white"> </dd></div> <div class="flex justify-between"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Created At:</dt> <dd class="text-sm text-gray-900 dark:text-white"> </dd></div> <!></dl></div> <div class="bg-white dark:bg-gray-800 shadow rounded-lg p-6"><h3 class="text-lg font-medium text-gray-900 dark:text-white mb-4">Status & Network</h3> <dl class="space-y-3"><div class="flex justify-between items-center"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Instance Status:</dt> <dd class="text-sm"><span> </span></dd></div> <div class="flex justify-between items-center"><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Runner Status:</dt> <dd class="text-sm"><span> </span></dd></div> <!> <!> <!> <!> <!></dl></div></div> <!>',1),ga=u('<div class="bg-white dark:bg-gray-800 shadow rounded-lg"><div class="px-6 py-8 text-center text-gray-500 dark:text-gray-400">Instance not found.</div></div>'),_a=u('<div class="space-y-6"><nav class="flex" aria-label="Breadcrumb"><ol class="inline-flex items-center space-x-1 md:space-x-3"><li class="inline-flex items-center"><a class="inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white"><svg class="w-3 h-3 mr-2.5" fill="currentColor" viewBox="0 0 20 20"><path d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z"></path></svg> Instances</a></li> <li><div class="flex items-center"><svg class="w-6 h-6 text-gray-400" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg> <span class="text-sm font-medium text-gray-500 dark:text-gray-400 ml-1 md:ml-2"> </span></div></li></ol></nav> <!> <!></div> <!>',1);function Ba(Gt,Ht){Ue(Ht,!1);const[Wt,Jt]=Ge(),lt=()=>He(Ke,"$page",Wt),R=A();let e=A(null),q=A(!0),N=A(""),E=A(!1),T=null,$=A();async function Kt(){if(t(R))try{h(q,!0),h(N,""),h(e,await Pt.getInstance(t(R)))}catch(l){h(N,l instanceof Error?l.message:"Failed to load instance")}finally{h(q,!1)}}async function Qt(){if(t(e)){try{await Pt.deleteInstance(t(e).name),zt(j("/instances"))}catch(l){h(N,Xe(l))}h(E,!1)}}function Xt(l){if(t(e))if(l.operation==="update"&&l.payload.id===t(e).id){const b=t(e).status_messages?.length||0,D={...t(e),...l.payload},M=D.status_messages?.length||0;h(e,D),M>b&&setTimeout(()=>{Rt(t($))},100)}else l.operation==="delete"&&(l.payload.id||l.payload)===t(e).id&&zt(j("/instances"))}Le(()=>{Kt().then(()=>{t(e)?.status_messages?.length&&setTimeout(()=>{Rt(t($))},100)}),T=We.subscribeToEntity("instance",["update","delete"],Xt)}),Oe(()=>{T&&(T(),T=null)}),Pe(()=>lt(),()=>{h(R,decodeURIComponent(lt().params.id||""))}),Ve(),$e();var ot=_a();ze(l=>{f(()=>qe.title=`${t(e),r(()=>t(e)?`${t(e).name} - Instance Details`:"Instance Details")??""} - GARM`)});var F=P(ot),G=s(F),vt=s(G),H=s(vt),Yt=s(H);a(H);var xt=d(H,2),ct=s(xt),mt=d(s(ct),2),Zt=s(mt,!0);a(mt),a(ct),a(xt),a(vt),a(G);var ut=d(G,2);{var te=l=>{var b=Ye(),D=s(b),M=s(D),U=d(s(M),2),I=s(U,!0);a(U),a(M),a(D),a(b),f(()=>m(I,t(N))),v(l,b)};g(ut,l=>{t(N)&&l(te)})}var ee=d(ut,2);{var ae=l=>{var b=Ze();v(l,b)},se=l=>{var b=Tt(),D=P(b);{var M=I=>{var L=ua(),W=P(L),J=s(W),K=s(J),gt=d(s(K),2),ie=s(gt);a(gt),a(K);var _t=d(K,2),Q=s(_t),ft=d(s(Q),2),ne=s(ft,!0);a(ft),a(Q);var X=d(Q,2),yt=d(s(X),2),le=s(yt,!0);a(yt),a(X);var Y=d(X,2),pt=d(s(Y),2),oe=s(pt,!0);a(pt),a(Y);var Z=d(Y,2),ht=d(s(Z),2),ve=s(ht,!0);a(ht),a(Z);var tt=d(Z,2),bt=d(s(tt),2),xe=s(bt);{var ce=i=>{var n=ta(),o=s(n,!0);a(n),f(x=>{nt(n,"href",x),m(o,(t(e),r(()=>t(e).pool_id)))},[()=>(p(j),t(e),r(()=>j(`/pools/${t(e).pool_id}`)))]),v(i,n)},me=i=>{var n=Tt(),o=P(n);{var x=_=>{var y=ea(),S=s(y,!0);a(y),f(C=>{nt(y,"href",C),m(S,(t(e),r(()=>t(e).scale_set_id)))},[()=>(p(j),t(e),r(()=>j(`/scalesets/${t(e).scale_set_id}`)))]),v(_,y)},c=_=>{var y=aa();v(_,y)};g(o,_=>{t(e),r(()=>t(e).scale_set_id)?_(x):_(c,!1)},!0)}v(i,n)};g(xe,i=>{t(e),r(()=>t(e).pool_id)?i(ce):i(me,!1)})}a(bt),a(tt);var et=d(tt,2),kt=d(s(et),2),ue=s(kt,!0);a(kt),a(et);var at=d(et,2),wt=d(s(at),2),ge=s(wt,!0);a(wt),a(at);var _e=d(at,2);{var fe=i=>{var n=sa(),o=d(s(n),2),x=s(o,!0);a(o),a(n),f(c=>m(x,c),[()=>(p(B),t(e),r(()=>B(t(e).updated_at)))]),v(i,n)};g(_e,i=>{t(e),r(()=>t(e).updated_at&&t(e).updated_at!==t(e).created_at)&&i(fe)})}a(_t),a(J);var It=d(J,2),jt=d(s(It),2),st=s(jt),Dt=d(s(st),2),rt=s(Dt),ye=s(rt,!0);a(rt),a(Dt),a(st);var dt=d(st,2),St=d(s(dt),2),it=s(St),pe=s(it,!0);a(it),a(St),a(dt);var Mt=d(dt,2);{var he=i=>{var n=da(),o=d(s(n),2);Lt(o,5,()=>(t(e),r(()=>t(e).addresses)),Ot,(x,c)=>{var _=ra(),y=s(_),S=s(y,!0);a(y);var C=d(y,2);{let O=$t(()=>(t(c),r(()=>t(c).type||"Unknown")));qt(C,{variant:"info",get text(){return t(O)}})}a(_),f(()=>m(S,(t(c),r(()=>t(c).address)))),v(x,_)}),a(o),a(n),v(i,n)},be=i=>{var n=ia();v(i,n)};g(Mt,i=>{t(e),r(()=>t(e).addresses&&t(e).addresses.length>0)?i(he):i(be,!1)})}var At=d(Mt,2);{var ke=i=>{var n=na(),o=d(s(n),2),x=s(o,!0);a(o),a(n),f(()=>m(x,(t(e),r(()=>t(e).os_type)))),v(i,n)};g(At,i=>{t(e),r(()=>t(e).os_type)&&i(ke)})}var Bt=d(At,2);{var we=i=>{var n=la(),o=d(s(n),2),x=s(o,!0);a(o),a(n),f(()=>m(x,(t(e),r(()=>t(e).os_name)))),v(i,n)};g(Bt,i=>{t(e),r(()=>t(e).os_name)&&i(we)})}var Nt=d(Bt,2);{var Ie=i=>{var n=oa(),o=d(s(n),2),x=s(o,!0);a(o),a(n),f(()=>m(x,(t(e),r(()=>t(e).os_version)))),v(i,n)};g(Nt,i=>{t(e),r(()=>t(e).os_version)&&i(Ie)})}var je=d(Nt,2);{var De=i=>{var n=va(),o=d(s(n),2),x=s(o,!0);a(o),a(n),f(()=>m(x,(t(e),r(()=>t(e).os_arch)))),v(i,n)};g(je,i=>{t(e),r(()=>t(e).os_arch)&&i(De)})}a(jt),a(It),a(W);var Se=d(W,2);{var Me=i=>{var n=ca(),o=d(s(n),2);Lt(o,5,()=>(t(e),r(()=>t(e).status_messages)),Ot,(x,c)=>{var _=xa(),y=s(_),S=s(y),C=s(S,!0);a(S);var O=d(S,2),Ct=s(O);{var Be=k=>{const w=$t(()=>(p(Ft),t(c),r(()=>Ft(t(c).event_level))));qt(k,{get variant(){return p(t(w)),r(()=>t(w).variant)},get text(){return p(t(w)),r(()=>t(w).text)}})};g(Ct,k=>{t(c),r(()=>t(c).event_level)&&k(Be)})}var Et=d(Ct,2),Ne=s(Et);{var Ce=k=>{var w=Ut();f(Te=>m(w,Te),[()=>(p(B),t(c),r(()=>B(t(c).created_at)))]),v(k,w)},Ee=k=>{var w=Ut("Unknown date");v(k,w)};g(Ne,k=>{t(c),r(()=>t(c).created_at)?k(Ce):k(Ee,!1)})}a(Et),a(O),a(y),a(_),f(()=>m(C,(t(c),r(()=>t(c).message)))),v(x,_)}),a(o),Je(o,x=>h($,x),()=>t($)),a(n),v(i,n)},Ae=i=>{var n=ma();v(i,n)};g(Se,i=>{t(e),r(()=>t(e).status_messages&&t(e).status_messages.length>0)?i(Me):i(Ae,!1)})}f((i,n,o,x,c)=>{m(ne,(t(e),r(()=>t(e).id))),m(le,(t(e),r(()=>t(e).name))),m(oe,(t(e),r(()=>t(e).provider_id))),m(ve,(t(e),r(()=>t(e).provider_name||"Unknown"))),m(ue,(t(e),r(()=>t(e).agent_id||"Not assigned"))),m(ge,i),Vt(rt,1,`inline-flex px-2 py-1 text-xs font-semibold rounded-full ring-1 ring-inset ${n??""}`),m(ye,o),Vt(it,1,`inline-flex px-2 py-1 text-xs font-semibold rounded-full ring-1 ring-inset ${x??""}`),m(pe,c)},[()=>(p(B),t(e),r(()=>B(t(e).created_at))),()=>(p(V),t(e),r(()=>V(t(e).status||"unknown"))),()=>(p(z),t(e),r(()=>z(t(e).status||"unknown"))),()=>(p(V),t(e),r(()=>V(t(e).runner_status||"unknown"))),()=>(p(z),t(e),r(()=>z(t(e).runner_status||"unknown")))]),Fe("click",ie,()=>h(E,!0)),v(I,L)},U=I=>{var L=ga();v(I,L)};g(D,I=>{t(e)?I(M):I(U,!1)},!0)}v(l,b)};g(ee,l=>{t(q)?l(ae):l(se,!1)})}a(F);var re=d(F,2);{var de=l=>{Qe(l,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return t(e),r(()=>t(e).name)},$$events:{close:()=>h(E,!1),confirm:Qt}})};g(re,l=>{t(E)&&t(e)&&l(de)})}f(l=>{nt(Yt,"href",l),m(Zt,(t(e),r(()=>t(e)?t(e).name:"Instance Details")))},[()=>(p(j),r(()=>j("/instances")))]),v(Gt,ot),Re(),Jt()}export{Ba as component};
|