Your IP : 216.73.216.189


Current Path : /proc/thread-self/root/snap/lxd/current/share/lxd-ui/assets/
Upload File :
Current File : //proc/thread-self/root/snap/lxd/current/share/lxd-ui/assets/NetworkList-Cav-yFyI.js

import{bu as D,j as a,ae as $,w as j,r as p,b8 as M,d as n,v as k,R as h,c as K,I as B,O as q,T as Y,bq as O,bp as V,L as _,bE as H,p as Q,M as z}from"./index-BFGypnt-.js";import{H as G}from"./HelpLink-l4aaXUp-.js";import{a as W}from"./network-forwards-Cv12zUSO.js";import{u as R}from"./useClusterMembers-B29_ixY7.js";import{P as d}from"./PageHeader-DZVSTM6q.js";import{s as J,p as X}from"./searchAndFilter-DtC_P-vv.js";import{a as Z}from"./ClusterMemberRichChip-h3WaiYeI.js";import{h as ee,i as ae}from"./useNetworks-B1lu5MbM.js";import{u as te}from"./projects-DAlFlfjH.js";import"./cluster-members-CG6XHzn4.js";import"./ClusterMemberMemoryUsage-UO8J-hw2.js";import"./Meter-VGEmUMfL.js";const se=({network:s,project:i})=>{if(s.managed===!1||!D.includes(s.type))return a.jsx(a.Fragment,{children:"-"});const{data:r=[],isLoading:l}=$({queryKey:[j.projects,i,j.networks,s,j.forwards],queryFn:async()=>W(s.name,i)});return a.jsx(a.Fragment,{children:l?"":r.length})},F="query",x="type",C="managed",w="member",S="state",v=[F,x,C,w,S],re=()=>{const[s,i]=M(),{data:r=[]}=R(),l=[...new Set(r.map(t=>t.server_name))],g=[{id:1,heading:"Type",chips:["OVN","Bridge","Physical"].map(t=>({lead:x,value:t}))},{id:2,heading:"Managed",chips:["Yes","No"].map(t=>({lead:C,value:t}))},{id:3,heading:"State",chips:["Created","Pending","Unknown","Unavailable","Errored"].map(t=>({lead:S,value:t}))},...r.length>0?[{id:4,heading:"Cluster member",chips:["Cluster-wide"].concat(l).map(t=>({lead:w,value:t}))}]:[]],c=t=>{const m=X(t,s,v);m.toString()!==s.toString()&&i(m)};return a.jsxs(a.Fragment,{children:[a.jsx("h2",{className:"u-off-screen",children:"Search and filter"}),a.jsx(n.SearchAndFilter,{existingSearchData:J(s,v),filterPanelData:g,returnSearchData:c,onExpandChange:()=>{window.dispatchEvent(new CustomEvent("resize",{detail:"search-and-filter"}))},onPanelToggle:()=>{window.dispatchEvent(new CustomEvent("sfp-toggle"))}})]})},ne=p.memo(re),oe=({network:s})=>s.memberName==="Cluster-wide"?a.jsx(k,{type:"cluster-group",value:"Cluster wide",to:`${h}/ui/cluster/members`}):a.jsx(Z,{clusterMember:s.memberName}),ye=()=>{const s=K(),i=n.useNotify(),{project:r}=B(),l=q(),{data:g=[]}=R(),c=g.length>0,[t]=M(),{canCreateNetworks:m}=te(),{project:E}=Y(),o={queries:t.getAll(F).map(e=>e.toLowerCase()),type:t.getAll(x).map(e=>e.toLowerCase()),managed:t.getAll(C).map(e=>e.toLowerCase()),member:t.getAll(w),state:t.getAll(S)};if(!r)return a.jsx(a.Fragment,{children:"Missing project"});const{data:I=[],error:f,isLoading:P}=ee(r);p.useEffect(()=>{f&&i.failure("Loading networks failed",f)},[f]);const{data:b=[],error:N,isLoading:T}=ae(r);p.useEffect(()=>{N&&i.failure("Loading cluster networks failed",N)},[N]),p.useEffect(()=>{O(b,i)},[b]);const y=I.filter(e=>!c||e.managed).map(e=>({...e,promiseStatus:"fulfilled",memberName:"Cluster-wide"}));b.filter(V).forEach(e=>{e.managed||y.push(e)});const L=y.length>0,A=[{content:"Name",sortKey:"name"},{content:"Type",sortKey:"type",className:"type"},{content:"Managed",sortKey:"managed",className:"managed"},...c?[{content:"Cluster member",sortKey:"member"}]:[],{content:"IPV4",className:"u-align--right"},{content:"IPV6"},{content:"Description",sortKey:"description"},{content:"Forwards",className:"u-align--right forwards"},{content:"Used by",sortKey:"usedBy",className:"u-align--right used-by"},{content:"State",sortKey:"state",className:"state"}],U=y.filter(e=>!(!o.queries.every(u=>e.name.toLowerCase().includes(u)||e.description?.toLowerCase().includes(u))||o.type.length>0&&!o.type.includes(e.type)||o.managed.length>0&&!o.managed.includes(e.managed?"yes":"no")||o.member.length>0&&!o.member.includes(e.memberName)||o.state.length>0&&!o.state.includes(e.status??""))).map(e=>{const u=e.memberName==="Cluster-wide"?`${h}/ui/project/${encodeURIComponent(r)}/network/${encodeURIComponent(e.name)}`:`${h}/ui/project/${encodeURIComponent(r)}/member/${encodeURIComponent(e.memberName)}/network/${encodeURIComponent(e.name)}`;return{key:e.name+e.memberName,columns:[{content:a.jsx(_,{to:u,children:e.name}),role:"rowheader","aria-label":"Name"},{content:H(e.type),role:"cell","aria-label":"Type",className:"type"},{content:e.managed?"Yes":"No",role:"cell","aria-label":"Managed",className:"managed"},...c?[{content:a.jsx(oe,{network:e}),role:"cell","aria-label":"Cluster member"}]:[],{content:e.config["ipv4.address"],className:"u-align--right",role:"cell","aria-label":"IPV4"},{content:e.config["ipv6.address"],role:"cell","aria-label":"IPV6"},{content:a.jsx("div",{className:"table-description",title:e.description,children:e.description}),role:"cell","aria-label":"Description"},{content:a.jsx(se,{network:e,project:r}),role:"cell",className:"u-align--right forwards","aria-label":"Forwards"},{content:e.used_by?.length??"0",role:"cell",className:"u-align--right used-by","aria-label":"Used by"},{content:e.status,role:"cell","aria-label":"State",className:"state"}],sortData:{name:e.name.toLowerCase(),type:e.type,managed:e.managed,description:e.description?.toLowerCase(),state:e.status,usedBy:e.used_by?.length??0,member:e.memberName}}});return P||T?a.jsx(n.Spinner,{className:"u-loader",text:"Loading...",isMainComponent:!0}):a.jsxs(n.CustomLayout,{mainClassName:"network-list",header:a.jsxs(d,{children:[a.jsxs(d.Left,{children:[a.jsx(d.Title,{children:a.jsx(G,{docPath:"/explanation/networks/",title:"Learn more about networking",children:"Networks"})}),a.jsx(d.Search,{children:a.jsx(ne,{},t.get("search"))})]}),a.jsx(d.BaseActions,{children:a.jsxs(n.Button,{appearance:"positive",className:"u-no-margin--bottom",onClick:async()=>s(`${h}/ui/project/${encodeURIComponent(r)}/networks/create`),hasIcon:!l,disabled:!m(E),title:m(E)?"":"You do not have permission to create networks in this project",children:[!l&&a.jsx(n.Icon,{name:"plus",light:!0}),a.jsx("span",{children:"Create network"})]})})]}),children:[a.jsx(Q,{}),a.jsxs(n.Row,{children:[L&&a.jsx(n.MainTable,{headers:A,rows:U,paginate:30,responsive:!0,sortable:!0,className:"network-list-table",emptyStateMsg:"No data to display"}),!P&&!L&&a.jsxs(n.EmptyState,{className:"empty-state",image:a.jsx(n.Icon,{className:"empty-state-icon",name:"exposed"}),title:"No networks found",children:[a.jsx("p",{children:"There are no networks in this project."}),a.jsx("p",{children:a.jsx(z,{docPath:"/explanation/networks/",hasExternalIcon:!0,children:"Learn more about networks"})})]})]})]})};export{ye as default};