Submit
Path:
~
/
/
snap
/
lxd
/
current
/
share
/
lxd-ui
/
assets
/
File Content:
StoragePoolDetail-5cad7e82.js
import{e as q,d as n,r as x,bp as w,j as e,c as z,bq as F,A as L,br as V,i as k,m as p,z as $,bs as D,bt as E,bu as b,q as S,f as M,L as B,C as O,b as _,ap as H}from"./index-13b2882d.js";import{R as T}from"./RenameHeader-c74d9adb.js";import{c as v,a as y,u as N}from"./index.esm-82c30f37.js";import{t as K,u as C,S as Q}from"./useClusterMembers-dbf45674.js";import{S as U}from"./StorageUsedBy-2e98cb1b.js";import{u as A,S as G}from"./updateMaxHeight-325b3cd4.js";import"./DiskSizeSelector-dd5e138a.js";import"./AutoExpandingTextArea-3a779a81.js";import"./FormMenuItem-c8a1a121.js";import"./StorageVolumeFormMenu-e90b9f5c.js";import"./settings-c23f9009.js";const I=({name:s,pool:d,project:a})=>{const t=q(),o=n.useNotify(),u=x.useState(null),c=v().shape({name:y().test(...K(a,u)).required("This field is required")}),l=N({initialValues:{name:s,isRenaming:!1},validationSchema:c,onSubmit:i=>{if(s===i.name){l.setFieldValue("isRenaming",!1),l.setSubmitting(!1);return}w(s,i.name,a).then(()=>{t(`/ui/project/${a}/storage/detail/${i.name}`,o.queue(o.success("Storage pool renamed."))),l.setFieldValue("isRenaming",!1)}).catch(r=>{o.failure("Renaming failed",r)}).finally(()=>l.setSubmitting(!1))}});return e.jsx(T,{name:s,parentItems:[e.jsx(z,{to:`/ui/project/${a}/storage`,children:"Storage pools"},1)],controls:[e.jsx(F,{pool:d,project:a,shouldExpand:!0},"delete")],isLoaded:!0,formik:l,renameDisabledReason:"Cannot rename storage pools"})},J=({pool:s,project:d})=>{var t,o;const a=()=>{A("storage-overview-tab")};return x.useEffect(a,[d,s]),L("resize",a),e.jsxs("div",{className:"storage-overview-tab",children:[e.jsxs(n.Row,{className:"section",children:[e.jsx(n.Col,{size:3,children:e.jsx("h2",{className:"p-heading--5",children:"General"})}),e.jsx(n.Col,{size:7,children:e.jsx("table",{children:e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("th",{className:"p-muted-heading",children:"Name"}),e.jsx("td",{children:s.name})]}),e.jsxs("tr",{children:[e.jsx("th",{className:"p-muted-heading",children:"Status"}),e.jsx("td",{children:s.status})]}),e.jsxs("tr",{children:[e.jsx("th",{className:"p-muted-heading",children:"Size"}),e.jsx("td",{children:e.jsx(V,{pool:s})})]}),e.jsxs("tr",{children:[e.jsx("th",{className:"p-muted-heading",children:"Source"}),e.jsx("td",{children:((t=s.config)==null?void 0:t.source)??"-"})]}),e.jsxs("tr",{children:[e.jsx("th",{className:"p-muted-heading",children:"Description"}),e.jsx("td",{children:s.description?s.description:"-"})]}),e.jsxs("tr",{children:[e.jsx("th",{className:"p-muted-heading",children:"Driver"}),e.jsx("td",{children:s.driver})]})]})})})]}),e.jsxs(n.Row,{className:"section",children:[e.jsx(n.Col,{size:3,children:e.jsxs("h2",{className:"p-heading--5",children:["Used by (",((o=s.used_by)==null?void 0:o.length)??0,")"]})}),e.jsx(n.Col,{size:7,children:e.jsx(U,{storage:s,project:d})})]})]})},W=({pool:s})=>{const d=n.useNotify(),a=k(),{project:t}=p(),o=x.useState(null),{data:u=[]}=C();if(!t)return e.jsx(e.Fragment,{children:"Missing project"});const c=v().shape({name:y().test("deduplicate","A pool with this name already exists",r=>r===s.name||$(r,t,o,"storage-pools")).required("This field is required")}),l=r=>{var m,h;return{isCreating:!1,isReadOnly:!0,name:r.name,description:r.description,driver:r.driver,source:((m=r.config)==null?void 0:m.source)||"",size:((h=r.config)==null?void 0:h.size)||"GiB"}},i=N({initialValues:l(s),validationSchema:c,onSubmit:({name:r,description:m,size:h})=>{const R=h.match(/^\d/),j={name:r,description:m,config:{size:R?h:void 0}};(u.length>0?()=>D(j,t,u):()=>E(j,t))().then(async()=>{var f;d.success("Storage pool updated.");const g=((f=u[0])==null?void 0:f.server_name)??void 0,P=await b(r,t,g);i.setValues(l(P))}).catch(g=>{d.failure("Storage pool update failed",g)}).finally(()=>{i.setSubmitting(!1),a.invalidateQueries({queryKey:[S.storage]})})}});return e.jsxs("div",{className:"edit-storage-pool",children:[e.jsx(Q,{formik:i}),e.jsxs("div",{className:"p-bottom-controls",children:[e.jsx("hr",{}),e.jsx(n.Row,{className:"u-align--right",children:e.jsx(n.Col,{size:12,children:i.values.isReadOnly?e.jsx(n.Button,{appearance:"positive",onClick:()=>void i.setFieldValue("isReadOnly",!1),children:"Edit pool"}):e.jsxs(e.Fragment,{children:[e.jsx(n.Button,{appearance:"base",onClick:()=>i.setValues(l(s)),children:"Cancel"}),e.jsx(G,{isSubmitting:i.isSubmitting,isDisabled:!i.isValid,buttonLabel:"Save changes",onClick:()=>void i.submitForm()})]})})})]})]})},de=()=>{var m;const s=n.useNotify(),{data:d=[]}=C(),{name:a,project:t,activeTab:o}=p();if(!a)return e.jsx(e.Fragment,{children:"Missing name"});if(!t)return e.jsx(e.Fragment,{children:"Missing project"});const u=((m=d[0])==null?void 0:m.server_name)??void 0,{data:c,error:l,isLoading:i}=M({queryKey:[S.storage,t,a,u],queryFn:()=>b(a,t,u)});if(l&&s.failure("Loading storage details failed",l),i)return e.jsx(B,{text:"Loading storage details..."});if(!c)return e.jsx(e.Fragment,{children:"Loading storage details failed"});const r=["Overview","Configuration",{component:()=>e.jsxs("a",{href:`/ui/project/${t}/storage/volumes?pool=${c.name}`,className:"p-tabs__link",children:["Volumes ",e.jsx(n.Icon,{name:"external-link"})]}),label:"Volumes"}];return e.jsxs(O,{header:e.jsx(I,{name:a,pool:c,project:t}),contentClassName:"detail-page",children:[e.jsx(_,{}),e.jsxs(n.Row,{children:[e.jsx(H,{tabs:r,activeTab:o,tabUrl:`/ui/project/${t}/storage/detail/${a}`}),!o&&e.jsx("div",{role:"tabpanel","aria-labelledby":"overview",children:e.jsx(J,{pool:c,project:t})}),o==="configuration"&&e.jsx("div",{role:"tabpanel","aria-labelledby":"configuration",children:e.jsx(W,{pool:c})})]})]})};export{de as default};
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
data
---
0755
img
---
0755
AutoExpandingTextArea-3a779a81.js
352 bytes
0644
CancelOperationBtn-5e4a9f41.js
1454 bytes
0644
CertificateAdd-5762bbdd.js
2423 bytes
0644
CertificateGenerate-67a1d99d.js
9813 bytes
0644
ClusterGroupForm-f258bb5e.js
3146 bytes
0644
ClusterList-13b65a6c.js
4834 bytes
0644
ConfigFieldDescription-00c1a193.js
3588 bytes
0644
ConfigurationTable-1a9d4d6f.js
2213 bytes
0644
CreateClusterGroup-3b03283b.js
329 bytes
0644
CreateInstance-2dc2e316.js
15924 bytes
0644
CreateNetwork-9059effd.js
2293 bytes
0644
CreateProfile-fa64def5.js
3354 bytes
0644
CreateProject-3768bb7f.js
1942 bytes
0644
CreateStoragePool-e2d089cb.js
1809 bytes
0644
DiskSizeSelector-dd5e138a.js
1843 bytes
0644
EditClusterGroup-08d77b61.js
622 bytes
0644
FormMenuItem-c8a1a121.js
504 bytes
0644
Images-40cc8e59.js
4475 bytes
0644
InstanceDetail-ee6a9c3e.js
497285 bytes
0644
InstanceFormMenu-dff7cf6c.js
1710 bytes
0644
InstanceList-23508fa8.js
15982 bytes
0644
Login-a15594e3.js
1504 bytes
0644
NetworkDetail-c85f81d1.js
10357 bytes
0644
NetworkDevicesForm-bcf4be77.js
28882 bytes
0644
NetworkForm-ffe61c80.js
11091 bytes
0644
NetworkList-45862bf6.js
2938 bytes
0644
NetworkMap-30a0e19e.js
393598 bytes
0644
OperationList-b576a26c.js
3103 bytes
0644
ProfileDetail-1a7135fe.js
9972 bytes
0644
ProfileDetailsForm-809e7c02.js
856 bytes
0644
ProfileFormMenu-3458e77a.js
1542 bytes
0644
ProfileList-3777bd96.js
3396 bytes
0644
ProfileSelector-b579b8c7.js
1770 bytes
0644
ProjectConfiguration-e5324f11.js
7224 bytes
0644
ProjectForm-55619b78.js
14396 bytes
0644
ProtectedRoute-49eddddb.js
209 bytes
0644
RenameHeader-c74d9adb.js
1641 bytes
0644
SelectableMainTable-5a3f3fef.js
1514 bytes
0644
Settings-2fc8ab81.js
6119 bytes
0644
StoragePoolDetail-5cad7e82.js
5661 bytes
0644
StorageUsedBy-2e98cb1b.js
2208 bytes
0644
StorageVolumeCreate-76138e07.js
1794 bytes
0644
StorageVolumeDetail-513f1051.js
6918 bytes
0644
StorageVolumeForm-228515f8.js
9860 bytes
0644
StorageVolumeFormMenu-e90b9f5c.js
1378 bytes
0644
WarningList-74e9b259.js
1899 bytes
0644
certificate-3aff5cf1.js
283833 bytes
0644
clusterGroups-3fc1789d.js
3402 bytes
0644
formFields-fc140429.js
4724 bytes
0644
images-2ea813f2.js
702 bytes
0644
index-13b2882d.js
600882 bytes
0644
index-205b9caf.css
493180 bytes
0644
index.esm-82c30f37.js
70743 bytes
0644
instanceConfigInheritance-fbf987f8.js
1414 bytes
0644
instanceDelete-e714bd59.js
1559 bytes
0644
instanceEdit-cf20bafe.js
5416 bytes
0644
instanceValidation-26160179.css
52045 bytes
0644
instanceValidation-45cfba9a.js
2195634 bytes
0644
networks-5caac489.js
1747 bytes
0644
operations-beb03b33.js
433 bytes
0644
settings-c23f9009.js
183 bytes
0644
updateMaxHeight-325b3cd4.js
861 bytes
0644
useClusterMembers-dbf45674.js
3396 bytes
0644
N4ST4R_ID | Naxtarrr