The URL from scale sets and pools to the entity to which they belong was not being properly resolved. Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
1 line
12 KiB
JavaScript
1 line
12 KiB
JavaScript
import"../chunks/DsnmJJEf.js";import{i as He}from"../chunks/B3Pzt0F_.js";import{p as Ve,o as We,A as Ke,l as Qe,a as Xe,f as h,h as Ye,b as B,t as b,c as x,d as Ze,s as n,m as y,u as i,$ as ta,g as t,j as r,r as a,k as s,v as l,y as xt,B as Kt,q as N,n as f}from"../chunks/D8EpLgQ1.js";import{i as u,s as ea,a as aa}from"../chunks/5WA7h8uK.js";import{w as Qt,e as ra,i as da}from"../chunks/u94nIB4-.js";import{c as Xt,g as F,s as sa}from"../chunks/CiE1LlKV.js";import{p as ia}from"../chunks/-1rkm990.js";import{g as Yt}from"../chunks/DsX4H4sg.js";import{b as ut}from"../chunks/D3_ugSUS.js";import{U as oa}from"../chunks/Bgb-frqW.js";import{D as Zt}from"../chunks/KQ2xQpA3.js";import{D as na,I as la}from"../chunks/G-ddPbA8.js";import{t as D}from"../chunks/BEkVdVE1.js";import{e as P,i as R,j as te,b as C,g as ee}from"../chunks/D5ucq3Gx.js";import{e as L}from"../chunks/BZiHL9L3.js";var va=h('<div class="p-6 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 pool...</p></div>'),ca=h('<div class="rounded-md bg-red-50 dark:bg-red-900 p-4"><p class="text-sm font-medium text-red-800 dark:text-red-200"> </p></div>'),ma=h('<div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">GitHub Runner Group</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div>'),xa=h('<span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200"> </span>'),ua=h('<div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Tags</dt> <dd class="mt-1"><div class="flex flex-wrap gap-2"></div></dd></div>'),ga=h('<div class="bg-white dark:bg-gray-800 shadow rounded-lg"><div class="px-4 py-5 sm:p-6"><h2 class="text-lg font-medium text-gray-900 dark:text-white mb-4">Extra Specifications</h2> <pre class="bg-gray-100 dark:bg-gray-700 p-4 rounded-md overflow-x-auto text-sm text-gray-900 dark:text-white font-mono"> </pre></div></div>'),pa=h('<!> <div class="grid grid-cols-1 lg:grid-cols-2 gap-6"><div class="bg-white dark:bg-gray-800 shadow rounded-lg"><div class="px-4 py-5 sm:p-6"><h2 class="text-lg font-medium text-gray-900 dark:text-white mb-4">Basic Information</h2> <dl class="space-y-4"><div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Pool ID</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white font-mono"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Provider</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Image</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"><code class="bg-gray-100 dark:bg-gray-700 px-2 py-1 rounded text-xs"> </code></dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Flavor</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Status</dt> <dd class="mt-1"><span> </span></dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Entity</dt> <dd class="mt-1"><div class="flex items-center space-x-2"><span class="inline-flex px-2 py-1 text-xs font-medium rounded-full bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200"> </span> <a class="text-sm text-blue-600 dark:text-blue-400 hover:text-blue-500 dark:hover:text-blue-300"> </a></div></dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Created At</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Updated At</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div></dl></div></div> <div class="bg-white dark:bg-gray-800 shadow rounded-lg"><div class="px-4 py-5 sm:p-6"><h2 class="text-lg font-medium text-gray-900 dark:text-white mb-4">Configuration</h2> <dl class="space-y-4"><div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Max Runners</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Min Idle Runners</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Bootstrap Timeout</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Priority</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">Runner Prefix</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <div><dt class="text-sm font-medium text-gray-500 dark:text-gray-400">OS Type / Architecture</dt> <dd class="mt-1 text-sm text-gray-900 dark:text-white"> </dd></div> <!> <!></dl></div></div></div> <!> <!>',1),fa=h('<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> Pools</a></li> <li><div class="flex items-center"><svg class="w-3 h-3 text-gray-400 mx-1" 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="ml-1 text-sm font-medium text-gray-500 md:ml-2 dark:text-gray-400"> </span></div></li></ol></nav> <!></div> <!> <!> <!>',1);function Sa(ae,re){Ve(re,!1);const[de,se]=ea(),gt=()=>aa(ia,"$page",de),O=y();let e=y(null),G=y(!0),M=y(""),E=y(!1),A=y(!1),T=y(!1),g=y(null),U=null;async function ie(){if(t(O))try{n(G,!0),n(M,""),n(e,await F.getPool(t(O)))}catch(d){n(M,L(d))}finally{n(G,!1)}}async function oe(d){if(t(e))try{const o=await F.updatePool(t(e).id,d);n(e,o),n(E,!1),D.success("Pool Updated",`Pool ${t(e).id} has been updated successfully.`)}catch(o){const _=L(o);D.error("Update Failed",_)}}async function ne(){if(t(e)){try{await F.deletePool(t(e).id),Yt(`${ut}/pools`)}catch(d){const o=L(d);D.error("Delete Failed",o)}n(A,!1)}}async function le(){if(t(g)){try{await F.deleteInstance(t(g).name),D.success("Instance Deleted",`Instance ${t(g).name} has been deleted successfully.`)}catch(d){const o=L(d);D.error("Delete Failed",o)}n(T,!1),n(g,null)}}function ve(d){n(g,d),n(T,!0)}function ce(d){if(!d)return"{}";try{if(typeof d=="string"){const o=JSON.parse(d);return JSON.stringify(o,null,2)}return JSON.stringify(d,null,2)}catch{return d.toString()}}function me(d){if(d.operation==="update"){const o=d.payload;t(e)&&o.id===t(e).id&&n(e,o)}else if(d.operation==="delete"){const o=d.payload.id||d.payload;t(e)&&t(e).id===o&&Yt(`${ut}/pools`)}}function xe(d){if(!t(e)||!t(e).instances)return;const o=d.payload;if(o.pool_id===t(e).id){if(d.operation==="create")xt(e,t(e).instances=[...t(e).instances,o]);else if(d.operation==="update")xt(e,t(e).instances=t(e).instances.map(_=>_.id===o.id?o:_));else if(d.operation==="delete"){const _=o.id||o;xt(e,t(e).instances=t(e).instances.filter(z=>z.id!==_))}n(e,t(e))}}We(()=>{ie();const d=Qt.subscribeToEntity("pool",["update","delete"],me),o=Qt.subscribeToEntity("instance",["create","update","delete"],xe);U=()=>{d(),o()}}),Ke(()=>{U&&(U(),U=null)}),Qe(()=>gt(),()=>{n(O,gt().params.id)}),Xe(),He();var pt=fa();Ye(d=>{b(()=>ta.title=`${t(e),i(()=>t(e)?`Pool ${t(e).id} - Pool Details`:"Pool Details")??""} - GARM`)});var J=B(pt),j=r(J),ft=r(j),q=r(ft),ue=r(q);a(q);var _t=s(q,2),yt=r(_t),ht=s(r(yt),2),ge=r(ht,!0);a(ht),a(yt),a(_t),a(ft),a(j);var pe=s(j,2);{var fe=d=>{var o=va();x(d,o)},_e=d=>{var o=Kt(),_=B(o);{var z=k=>{var w=ca(),S=r(w),H=r(S,!0);a(S),a(w),b(()=>l(H,t(M))),x(k,w)},we=k=>{var w=Kt(),S=B(w);{var H=V=>{var wt=pa(),$t=B(wt);{let v=N(()=>(f(P),t(e),i(()=>P(t(e))))),c=N(()=>(f(R),t(e),i(()=>R(t(e))))),m=N(()=>(f(ee),t(e),i(()=>ee(t(e).endpoint?.endpoint_type||"unknown"))));na($t,{get title(){return t(e),i(()=>t(e).id)},get subtitle(){return`Pool for ${t(v)??""} (${t(c)??""})`},get forgeIcon(){return t(m)},onEdit:()=>n(E,!0),onDelete:()=>n(A,!0)})}var W=s($t,2),K=r(W),Pt=r(K),It=s(r(Pt),2),Q=r(It),Dt=s(r(Q),2),$e=r(Dt,!0);a(Dt),a(Q);var X=s(Q,2),Mt=s(r(X),2),Pe=r(Mt,!0);a(Mt),a(X);var Y=s(X,2),Et=s(r(Y),2),At=r(Et),Ie=r(At,!0);a(At),a(Et),a(Y);var Z=s(Y,2),Tt=s(r(Z),2),De=r(Tt,!0);a(Tt),a(Z);var tt=s(Z,2),Ut=s(r(tt),2),et=r(Ut),Me=r(et,!0);a(et),a(Ut),a(tt);var at=s(tt,2),St=s(r(at),2),Bt=r(St),rt=r(Bt),Ee=r(rt,!0);a(rt);var dt=s(rt,2),Ae=r(dt,!0);a(dt),a(Bt),a(St),a(at);var st=s(at,2),Nt=s(r(st),2),Te=r(Nt,!0);a(Nt),a(st);var Ft=s(st,2),Rt=s(r(Ft),2),Ue=r(Rt,!0);a(Rt),a(Ft),a(It),a(Pt),a(K);var Ct=s(K,2),Lt=r(Ct),Ot=s(r(Lt),2),it=r(Ot),Gt=s(r(it),2),Se=r(Gt,!0);a(Gt),a(it);var ot=s(it,2),Jt=s(r(ot),2),Be=r(Jt,!0);a(Jt),a(ot);var nt=s(ot,2),jt=s(r(nt),2),Ne=r(jt);a(jt),a(nt);var lt=s(nt,2),qt=s(r(lt),2),Fe=r(qt,!0);a(qt),a(lt);var vt=s(lt,2),zt=s(r(vt),2),Re=r(zt,!0);a(zt),a(vt);var ct=s(vt,2),Ht=s(r(ct),2),Ce=r(Ht);a(Ht),a(ct);var Vt=s(ct,2);{var Le=v=>{var c=ma(),m=s(r(c),2),p=r(m,!0);a(m),a(c),b(()=>l(p,(t(e),i(()=>t(e)["github-runner-group"])))),x(v,c)};u(Vt,v=>{t(e),i(()=>t(e)["github-runner-group"])&&v(Le)})}var Oe=s(Vt,2);{var Ge=v=>{var c=ua(),m=s(r(c),2),p=r(m);ra(p,5,()=>(t(e),i(()=>t(e).tags)),da,(I,$)=>{var mt=xa(),ze=r(mt,!0);a(mt),b(()=>l(ze,(t($),i(()=>typeof t($)=="string"?t($):t($).name)))),x(I,mt)}),a(p),a(m),a(c),x(v,c)};u(Oe,v=>{t(e),i(()=>t(e).tags&&t(e).tags.length>0)&&v(Ge)})}a(Ot),a(Lt),a(Ct),a(W);var Wt=s(W,2);{var Je=v=>{var c=ga(),m=r(c),p=s(r(m),2),I=r(p,!0);a(p),a(m),a(c),b($=>l(I,$),[()=>(t(e),i(()=>ce(t(e).extra_specs)))]),x(v,c)};u(Wt,v=>{t(e),i(()=>t(e).extra_specs)&&v(Je)})}var je=s(Wt,2);{var qe=v=>{la(v,{get instances(){return t(e),i(()=>t(e).instances)},entityType:"repository",onDeleteInstance:ve})};u(je,v=>{t(e),i(()=>t(e).instances)&&v(qe)})}b((v,c,m,p,I)=>{l($e,(t(e),i(()=>t(e).id))),l(Pe,(t(e),i(()=>t(e).provider_name))),l(Ie,(t(e),i(()=>t(e).image))),l(De,(t(e),i(()=>t(e).flavor))),sa(et,1,`inline-flex px-2 py-1 text-xs font-medium rounded-full ${t(e),i(()=>t(e).enabled?"bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200":"bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200")??""}`),l(Me,(t(e),i(()=>t(e).enabled?"Enabled":"Disabled"))),l(Ee,v),Xt(dt,"href",c),l(Ae,m),l(Te,p),l(Ue,I),l(Se,(t(e),i(()=>t(e).max_runners))),l(Be,(t(e),i(()=>t(e).min_idle_runners))),l(Ne,`${t(e),i(()=>t(e).runner_bootstrap_timeout)??""} minutes`),l(Fe,(t(e),i(()=>t(e).priority))),l(Re,(t(e),i(()=>t(e).runner_prefix||"garm"))),l(Ce,`${t(e),i(()=>t(e).os_type)??""} / ${t(e),i(()=>t(e).os_arch)??""}`)},[()=>(f(R),t(e),i(()=>R(t(e)))),()=>(f(te),t(e),i(()=>te(t(e)))),()=>(f(P),t(e),i(()=>P(t(e)))),()=>(f(C),t(e),i(()=>C(t(e).created_at||""))),()=>(f(C),t(e),i(()=>C(t(e).updated_at||"")))]),x(V,wt)};u(S,V=>{t(e)&&V(H)},!0)}x(k,w)};u(_,k=>{t(M)?k(z):k(we,!1)},!0)}x(d,o)};u(pe,d=>{t(G)?d(fe):d(_e,!1)})}a(J);var bt=s(J,2);{var ye=d=>{oa(d,{get pool(){return t(e)},$$events:{close:()=>n(E,!1),submit:o=>oe(o.detail)}})};u(bt,d=>{t(E)&&t(e)&&d(ye)})}var kt=s(bt,2);{var he=d=>{{let o=N(()=>(t(e),f(P),i(()=>`Pool ${t(e).id} (${P(t(e))})`)));Zt(d,{title:"Delete Pool",message:"Are you sure you want to delete this pool? This action cannot be undone and will remove all associated runners.",get itemName(){return t(o)},$$events:{close:()=>n(A,!1),confirm:ne}})}};u(kt,d=>{t(A)&&t(e)&&d(he)})}var be=s(kt,2);{var ke=d=>{Zt(d,{title:"Delete Instance",message:"Are you sure you want to delete this instance? This action cannot be undone.",get itemName(){return t(g),i(()=>t(g).name)},$$events:{close:()=>{n(T,!1),n(g,null)},confirm:le}})};u(be,d=>{t(T)&&t(g)&&d(ke)})}b(()=>{Xt(ue,"href",`${ut}/pools`),l(ge,(t(e),i(()=>t(e)?t(e).id:"Loading...")))}),x(ae,pt),Ze(),se()}export{Sa as component};
|