| Current Path : /proc/thread-self/root/snap/lxd/current/share/lxd-ui/assets/ |
| Current File : //proc/thread-self/root/snap/lxd/current/share/lxd-ui/assets/ConfigurationTable-CmO6jSmV.js |
import{bV as E,bU as B,ba as z,bQ as G,bR as q,bS as Q,aZ as U,bX as T,cH as A,bw as H,cI as N,I as Z,K as J,ae as W,b as Y,w as ee,cf as te,j as r,s as K,d as u,r as se}from"./index-BFGypnt-.js";import{t as _,C as I}from"./ConfigFieldDescription-CY0sdTp6.js";import{s as $,g as ie,h as re}from"./useStoragePools-qBtKr1j9.js";import{u as oe}from"./useProfiles-CErbukD2.js";import{e as ne}from"./FormMenuItem-fhYfVpHc.js";import{f as O}from"./FormFooterLayout-CMGxv4XX.js";const k={rootStorage:"",limits_cpu:"limits.cpu",limits_memory:"limits.memory",limits_memory_swap:"limits.memory.swap",limits_disk_priority:"limits.disk.priority",limits_processes:"limits.processes",placement_group:"placement.group",security_privileged:"security.privileged",security_nesting:"security.nesting",security_protection_delete:"security.protection.delete",security_protection_shift:"security.protection.shift",security_idmap_base:"security.idmap.base",security_idmap_size:"security.idmap.size",security_idmap_isolated:"security.idmap.isolated",security_devlxd:"security.devlxd",security_devlxd_images:"security.devlxd.images",security_secureboot:"security.secureboot",security_csm:"security.csm",snapshots_pattern:"snapshots.pattern",snapshots_expiry:"snapshots.expiry",snapshots_schedule:"snapshots.schedule",snapshots_schedule_stopped:"snapshots.schedule.stopped",migration_stateful:"migration.stateful",cluster_evacuate:"cluster.evacuate",boot_autostart:"boot.autostart",boot_autostart_delay:"boot.autostart.delay",boot_autostart_priority:"boot.autostart.priority",boot_host_shutdown_timeout:"boot.host_shutdown_timeout",boot_mode:"boot.mode",boot_stop_priority:"boot.stop.priority",cloud_init_network_config:"cloud-init.network-config",cloud_init_user_data:"cloud-init.user-data",cloud_init_vendor_data:"cloud-init.vendor-data"},ce=e=>{if(!(e in k))throw new Error(`Could not find ${e} in instanceConfigFormFieldsToPayload`);return k[e]},L=()=>new Set(Object.values(k)),ke=L,je=L,j={restricted_cluster_groups:"restricted.cluster.groups",restricted_cluster_target:"restricted.cluster.target",restricted_devices_disk:"restricted.devices.disk",restricted_devices_disk_paths:"restricted.devices.disk.paths",restricted_devices_gpu:"restricted.devices.gpu",restricted_devices_infiniband:"restricted.devices.infiniband",restricted_devices_nic:"restricted.devices.nic",restricted_devices_pci:"restricted.devices.pci",restricted_devices_unix_block:"restricted.devices.unix-block",restricted_devices_unix_char:"restricted.devices.unix-char",restricted_devices_unix_hotplug:"restricted.devices.unix-hotplug",restricted_devices_usb:"restricted.devices.usb",restricted_virtual_machines_low_level:"restricted.virtual-machines.lowlevel",restricted_containers_low_level:"restricted.containers.lowlevel",restricted_containers_nesting:"restricted.containers.nesting",restricted_containers_privilege:"restricted.containers.privilege",restricted_container_interception:"restricted.containers.interception",restrict_backups:"restricted.backups",restrict_snapshots:"restricted.snapshots",restricted_idmap_uid:"restricted.idmap.uid",restricted_idmap_gid:"restricted.idmap.gid",restricted_network_access:"restricted.networks.access",restricted_network_subnets:"restricted.networks.subnets",restricted_network_uplinks:"restricted.networks.uplinks",restricted_network_zones:"restricted.networks.zones",restricted_registries:"restricted.registries",restricted:"restricted",features_images:"features.images",features_profiles:"features.profiles",features_networks:"features.networks",features_networks_zones:"features.networks.zones",features_storage_buckets:"features.storage.buckets",features_storage_volumes:"features.storage.volumes",limits_instances:"limits.instances",limits_containers:"limits.containers",limits_virtual_machines:"limits.virtual-machines",limits_disk:"limits.disk",limits_networks:"limits.networks",limits_cpu:"limits.cpu",limits_memory:"limits.memory",limits_processes:"limits.processes"},ae=e=>{if(!(e in j))throw new Error(`Could not find ${e} in projectConfigFormFieldsToPayload`);return j[e]},De=()=>new Set(Object.values(j)),de=(e,s)=>{switch(e.entityType){case"instance":case"profile":return le(e,s);case"project":return ue(e,s);case"storageVolume":return pe(e,s);case"network":return fe(e,s);case"storagePool":return _e(e,s);case"network-acl":throw new Error("Network ACLs do not have row metadata")}},m=()=>{const{hasMetadataConfiguration:e}=J(),{data:s}=W({queryKey:[ee.configOptions],queryFn:async()=>te(e)});return s},le=(e,s)=>{const t=m(),o=_(t?.configs.instance??{}),i=ce(s),n=o.find(a=>a.key===i),{project:c}=Z(),{data:p=[]}=oe(c);if(e.entityType==="instance"){const a=T(e,p);for(const d of a)if(d?.config[i])return{value:d.config[i],source:`${d.name} profile`,configField:n}}return M(e,i,n)},x=e=>e?.default&&e?.default.length>0?e?.default:"-",ue=(e,s)=>{const t=m(),o=_(t?.configs.project??{}),i=ae(s),n=o.find(c=>c.key===i);return M(e,i,n)},pe=(e,s)=>{const t=e.isCreating,{data:o}=re(e.pool,void 0,t),i=`volume.${N(s)}`;if(o?.config&&i in o.config)return{value:o.config[i],source:`${o.name} pool`};const n=m(),c=$(o?.driver??"zfs"),p=_(n?.configs[c]??{}),a=N(s),d=p.find(v=>v.key===a);return{value:x(d),source:"LXD",configField:d}},fe=(e,s)=>ge(e.networkType,s),ge=(e,s)=>{const t=m(),o=A(e),i=_(t?.configs[o]??{}),n=H(s),c=i.find(a=>a.key===n);return{value:x(c),source:"LXD",configField:c}},_e=(e,s)=>{const t=m(),o=$(e.driver),i=_(t?.configs[o]??{}),n=ie(s),c=i.find(a=>a.key===n);return{value:x(c),source:"LXD",configField:c}},M=(e,s,t)=>{if(s==="limits.cpu"&&e.entityType==="instance")return e.instanceType==="container"?{value:"-",source:"LXD (container)",configField:t}:{value:"1",source:"LXD (VM)",configField:t};if(s==="limits.cpu"&&e.entityType==="profile")return{value:"None on containers, 1 core for VMs",source:"LXD",configField:t};if(s==="limits.memory"&&e.entityType==="instance")return e.instanceType==="container"?{value:"-",source:"LXD (container)",configField:t}:{value:"1GB",source:"LXD (VM)",configField:t};if(s==="limits.memory"&&e.entityType==="profile")return{value:"None on containers, 1GB for VMs",source:"LXD",configField:t};if(s==="migration.stateful"){const{data:i}=Y(),n=i?.config?.["instances.migration.stateful"];if(n)return{value:n,source:"Server settings",configField:t}}return{value:x(t),source:"LXD",configField:t}},g=(e,s)=>{const t=[];if(e.entityType==="instance"){const o=T(e,s);for(const i of o)Object.entries(i.devices).forEach(([n,c])=>{t.findIndex(a=>a.key===n)===-1&&t.push({key:n,device:c,source:`${i.name} profile`,sourceProfile:i.name})})}return t},Ce=(e,s)=>{const t=g(e,s).filter(o=>U(o.device)).find(o=>o.device.path==="/");return t?[{...t.device,name:t.key},t.source]:[null,"LXD"]},Pe=(e,s)=>g(e,s).filter(t=>E(t.device)||B(t.device)).map(t=>({...t,disk:t.device})),Fe=(e,s)=>g(e,s).filter(t=>z(t.device)).map(t=>({...t,network:t.device})),Ne=(e,s)=>g(e,s).filter(t=>G(t.device)).map(t=>({...t,gpu:t.device})),Ie=(e,s)=>g(e,s).filter(t=>q(t.device)).map(t=>({...t,proxy:t.device})),Oe=(e,s)=>g(e,s).filter(t=>Q(t.device)).map(t=>({...t,device:t.device})),Te=({formik:e,name:s,label:t,children:o,defaultValue:i,disabled:n=!1,disabledReason:c,help:p,inputHelp:a,readOnlyRenderer:d=v=>r.jsx(r.Fragment,{children:v}),hideOverrideBtn:D=!1})=>{const y=e.values[s],f=y!==void 0,R=d(y===""?"-":y),l=de(e.values,s),C=()=>{e.setFieldValue(s,i)},P=()=>{f?e.setFieldValue(s,void 0):(C(),O(s))},h=()=>n||!!e.values.editRestriction,w=b=>e.values.editRestriction?e.values.editRestriction:c||b,S=()=>r.jsxs("div",{className:"override-form",children:[F(r.jsx("div",{children:se.cloneElement(o,{id:s,name:s,onBlur:e.handleBlur,onChange:e.handleChange,value:y,disabled:h(),help:r.jsx(I,{description:l.configField?l.configField.longdesc:a})})})),r.jsx(u.Button,{onClick:P,type:"button",appearance:"base",title:w("Clear override"),disabled:h(),hasIcon:!0,className:"u-no-margin--bottom",children:r.jsx(u.Icon,{name:"close",className:"clear-configuration-icon"})})]}),V=f?r.jsx(u.Label,{forId:s,children:r.jsx("b",{children:t})}):r.jsx("b",{children:t}),F=b=>n&&c||e.values.editRestriction?r.jsx(u.Tooltip,{message:w(),position:"right",children:b}):b,X=()=>e.values.readOnly?r.jsxs(r.Fragment,{children:[R,D===!1&&r.jsx(u.Button,{onClick:()=>{ne(e),f||C(),O(s)},className:"u-no-margin--bottom",type:"button",appearance:"base",title:w(f?"Edit":"Create override"),disabled:h(),hasIcon:!0,children:r.jsx(u.Icon,{name:"edit"})})]}):f?S():F(r.jsx(u.Button,{onClick:P,className:"u-no-margin--bottom",type:"button",disabled:h(),appearance:"base",title:e.values.editRestriction??"Create override",hasIcon:!0,children:r.jsx(u.Icon,{name:"edit"})}));return me({configuration:r.jsxs(r.Fragment,{children:[V,r.jsx("p",{className:"configuration-help",children:r.jsx(I,{description:l.configField?l.configField.shortdesc:p})})]}),inherited:r.jsxs("div",{className:K({"u-text--muted":f,"u-text--line-through":f}),children:[r.jsx("div",{className:"mono-font",children:r.jsx("b",{children:d(l.value)})}),l&&r.jsxs("div",{className:"p-text--small u-text--muted",children:["From: ",l.source]})]}),override:X(),name:`${t}-${s??""}-${l.value}-${l.configField?.shortdesc}`,edit:e.values.readOnly?"read":"edit"})},me=({configuration:e,inherited:s,override:t,className:o,name:i,edit:n})=>({name:i,key:i,className:o,columns:[{key:`configuration-${i}-${n}`,content:e,className:"configuration"},{key:`inherited-${i}-${n}`,content:s,className:"inherited"},{key:`override-${i}-${n}`,content:t,className:"override"}]}),Ke=({rows:e,className:s,configurationExtra:t,emptyStateMsg:o,...i})=>{const n=[{content:r.jsxs("span",{children:["Configuration",t]}),className:"configuration"},{content:r.jsx("span",{children:"Inherited"}),className:"inherited"},{content:r.jsx("span",{children:"Override"}),className:"override"}];return r.jsx(u.MainTable,{className:K("configuration-table",s),emptyStateMsg:o,headers:n,rows:e,...i})};export{Ke as C,me as a,de as b,Ce as c,Pe as d,Fe as e,Ne as f,Te as g,Oe as h,Ie as i,ge as j,De as k,ae as l,ce as m,ke as n,je as o};