summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/dashboard/frontend/dist/ko/119.5ef73bbadc71cad9.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/pybind/mgr/dashboard/frontend/dist/ko/119.5ef73bbadc71cad9.js')
-rw-r--r--src/pybind/mgr/dashboard/frontend/dist/ko/119.5ef73bbadc71cad9.js1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/dist/ko/119.5ef73bbadc71cad9.js b/src/pybind/mgr/dashboard/frontend/dist/ko/119.5ef73bbadc71cad9.js
new file mode 100644
index 000000000..aebd4a85f
--- /dev/null
+++ b/src/pybind/mgr/dashboard/frontend/dist/ko/119.5ef73bbadc71cad9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkceph_dashboard=self.webpackChunkceph_dashboard||[]).push([[119],{22119:(xn,Ae,r)=>{r.r(Ae),r.d(Ae,{PoolModule:()=>qe,RoutedPoolModule:()=>Dn});var C=r(88692),l=r(20092),Oe=r(54247),f=r(51389),M=r(79512),f_=r(44466),E_=r(32121),g_=r(370),p_=r(23815),g=r.n(p_),R_=r(7357),m_=r(26504),ue=r(80842);class T{constructor(){this.nodes=[],this.idTree={},this.allDevices=[],this.buckets=[],this.failureDomains={},this.failureDomainKeys=[],this.devices=[],this.deviceCount=0}static searchFailureDomains(n,_){return this.getFailureDomains(this.search(n,_))}static search(n,_){const[o,i]=_.split("~"),s=n.find(c=>["name","id","type"].some(d=>c[d]===o));return s?(n=this.getSubNodes(s,this.createIdTreeFromNodes(n)),i&&(n=this.filterNodesByDeviceType(n,i)),n):[]}static createIdTreeFromNodes(n){const _={};return n.forEach(o=>{_[o.id]=o}),_}static getSubNodes(n,_){let o=[n];return n.children&&n.children.forEach(i=>{o=o.concat(this.getSubNodes(_[i],_))}),o}static filterNodesByDeviceType(n,_){let i,o=n.filter(c=>c.device_class&&c.device_class!==_).map(c=>c.id),s=o;do{i=!1,n=n.filter(d=>!o.includes(d.id));const c=[];n.forEach(d=>{d.children&&d.children.every(P=>o.includes(P))&&(c.push(d.id),i=!0)}),i&&(o=c,s=s.concat(c))}while(i);return(n=g().cloneDeep(n)).map(c=>(c.children&&(c.children=c.children.filter(d=>!s.includes(d))),c))}static getFailureDomains(n){const _={};return n.forEach(o=>{const i=o.type;_[i]||(_[i]=[]),_[i].push(o)}),_}initCrushNodeSelection(n,_,o,i){this.nodes=n,this.idTree=T.createIdTreeFromNodes(n),n.forEach(s=>{this.idTree[s.id]=s}),this.buckets=g().sortBy(n.filter(s=>s.children),"name"),this.controls={root:_,failure:o,device:i},this.preSelectRoot(),this.controls.root.valueChanges.subscribe(()=>this.onRootChange()),this.controls.failure.valueChanges.subscribe(()=>this.onFailureDomainChange()),this.controls.device.valueChanges.subscribe(()=>this.onDeviceChange())}preSelectRoot(){const n=this.nodes.find(_=>"root"===_.type);this.silentSet(this.controls.root,n),this.onRootChange()}silentSet(n,_){n.setValue(_,{emitEvent:!1})}onRootChange(){const n=T.getSubNodes(this.controls.root.value,this.idTree),_=T.getFailureDomains(n);Object.keys(_).forEach(o=>{_[o].length<=1&&delete _[o]}),this.failureDomains=_,this.failureDomainKeys=Object.keys(_).sort(),this.updateFailureDomain()}updateFailureDomain(){let n=this.getIncludedCustomValue(this.controls.failure,Object.keys(this.failureDomains));""===n&&(n=this.setMostCommonDomain(this.controls.failure)),this.updateDevices(n)}getIncludedCustomValue(n,_){return n.dirty&&_.includes(n.value)?n.value:""}setMostCommonDomain(n){let _={n:0,type:""};return Object.keys(this.failureDomains).forEach(o=>{const i=this.failureDomains[o].length;_.n<i&&(_={n:i,type:o})}),this.silentSet(n,_.type),_.type}onFailureDomainChange(){this.updateDevices()}updateDevices(n=this.controls.failure.value){const _=g().flatten(this.failureDomains[n].map(i=>T.getSubNodes(i,this.idTree)));this.allDevices=_.filter(i=>i.device_class).map(i=>i.device_class),this.devices=g().uniq(this.allDevices).sort();const o=1===this.devices.length?this.devices[0]:this.getIncludedCustomValue(this.controls.device,this.devices);this.silentSet(this.controls.device,o),this.onDeviceChange(o)}onDeviceChange(n=this.controls.device.value){this.deviceCount=""===n?this.allDevices.length:this.allDevices.filter(_=>_===n).length}}var Fe=r(30982),C_=r(14745),b=r(65862),M_=r(93614),Ne=r(95463),E=r(90070),h_=r(30633),v=r(76111),S_=r(47557),T_=r(28211),de=r(32337),e=r(64537),be=r(62862),ve=r(83608),Pe=r(18372),$e=r(60312),fe=r(30839),Ee=r(82945),ge=r(87925),pe=r(94276),Re=r(56310),me=r(41582),Ce=r(10545);function L_(t,n){1&t&&(e.TgZ(0,"span",30),e.SDv(1,31),e.qZA())}function A_(t,n){1&t&&(e.TgZ(0,"span",30),e.SDv(1,32),e.qZA())}function F_(t,n){1&t&&(e.TgZ(0,"span",30),e.SDv(1,33),e.qZA())}function N_(t,n){1&t&&(e.TgZ(0,"option",26),e.SDv(1,34),e.qZA())}function b_(t,n){if(1&t&&(e.TgZ(0,"option",35),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_.name," ")}}function v_(t,n){1&t&&(e.TgZ(0,"span",30),e.SDv(1,36),e.qZA())}function $_(t,n){1&t&&(e.TgZ(0,"option",26),e.SDv(1,37),e.qZA())}function I_(t,n){if(1&t&&(e.TgZ(0,"option",35),e._uU(1),e.qZA()),2&t){const _=n.$implicit,o=e.oxw();e.Q6J("ngValue",_),e.xp6(1),e.AsE(" ",_," ( ",o.failureDomains[_].length," ) ")}}function D_(t,n){1&t&&(e.TgZ(0,"span",30),e.SDv(1,38),e.qZA())}function x_(t,n){if(1&t&&(e.TgZ(0,"option",35),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_," ")}}let y_=(()=>{class t extends T{constructor(_,o,i,s,c){super(),this.formBuilder=_,this.activeModal=o,this.taskWrapper=i,this.crushRuleService=s,this.actionLabels=c,this.submitAction=new e.vpe,this.tooltips=this.crushRuleService.formTooltips,this.action=this.actionLabels.CREATE,this.resource="Crush Rule",this.createForm()}createForm(){this.form=this.formBuilder.group({name:["",[l.kI.required,l.kI.pattern("[A-Za-z0-9_-]+"),E.h.custom("uniqueName",_=>this.names&&-1!==this.names.indexOf(_))]],root:null,failure_domain:"",device_class:""})}ngOnInit(){this.crushRuleService.getInfo().subscribe(({names:_,nodes:o})=>{this.initCrushNodeSelection(o,this.form.get("root"),this.form.get("failure_domain"),this.form.get("device_class")),this.names=_})}onSubmit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const _=g().cloneDeep(this.form.value);_.root=_.root.name,""===_.device_class&&delete _.device_class,this.taskWrapper.wrapTaskAroundCall({task:new v.R("crushRule/create",_),call:this.crushRuleService.create(_)}).subscribe({error:()=>{this.form.setErrors({cdSubmitButton:!0})},complete:()=>{this.activeModal.close(),this.submitAction.emit(_)}})}}return t.\u0275fac=function(_){return new(_||t)(e.Y36(be.O),e.Y36(f.Kz),e.Y36(de.P),e.Y36(ve.H),e.Y36(M.p4))},t.\u0275cmp=e.Xpm({type:t,selectors:[["cd-crush-rule-form-modal"]],outputs:{submitAction:"submitAction"},features:[e.qOj],decls:55,vars:27,consts:function(){let n,_,o,i,s,c,d,P,p,R,h,S,m;return n="" + "\ufffd0\ufffd" + " " + "\ufffd1\ufffd" + "",_="Name",o="Root",i="Failure domain type",s="Device class",c="Let Ceph decide",d="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",P="\uC774\uB984\uC740 \uC601\uC22B\uC790, \uB300\uC2DC \uBC0F \uBC11\uC904\uB85C\uB9CC \uAD6C\uC131 \uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",p="\uC120\uD0DD\uD55C Erasure Code \uD504\uB85C\uD30C\uC77C \uC774\uB984\uC774 \uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC785\uB2C8\uB2E4.",R="\uB85C\uB529\uC911...",h="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",S="\uB85C\uB529\uC911...",m="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",[[3,"modalRef"],[1,"modal-title"],n,[1,"modal-content"],["novalidate","",3,"formGroup"],["frm","ngForm"],[1,"modal-body"],[1,"form-group","row"],["for","name",1,"cd-col-form-label"],_,[1,"required"],[1,"cd-col-form-input"],["type","text","id","name","name","name","placeholder","Name...","formControlName","name","autofocus","",1,"form-control"],["class","invalid-feedback",4,"ngIf"],["for","root",1,"cd-col-form-label"],o,[3,"html"],["id","root","name","root","formControlName","root",1,"form-select"],["ngValue","",4,"ngIf"],[3,"ngValue",4,"ngFor","ngForOf"],["for","failure_domain",1,"cd-col-form-label"],i,["id","failure_domain","name","failure_domain","formControlName","failure_domain",1,"form-select"],["for","device_class",1,"cd-col-form-label"],s,["id","device_class","name","device_class","formControlName","device_class",1,"form-select"],["ngValue",""],c,[1,"modal-footer"],[3,"form","submitText","submitActionEvent"],[1,"invalid-feedback"],d,P,p,R,[3,"ngValue"],h,S,m]},template:function(_,o){if(1&_&&(e.TgZ(0,"cd-modal",0),e.ynx(1,1),e.SDv(2,2),e.ALo(3,"titlecase"),e.ALo(4,"upperFirst"),e.BQk(),e.ynx(5,3),e.TgZ(6,"form",4,5)(8,"div",6)(9,"div",7)(10,"label",8),e.ynx(11),e.SDv(12,9),e.BQk(),e._UZ(13,"span",10),e.qZA(),e.TgZ(14,"div",11),e._UZ(15,"input",12),e.YNc(16,L_,2,0,"span",13),e.YNc(17,A_,2,0,"span",13),e.YNc(18,F_,2,0,"span",13),e.qZA()(),e.TgZ(19,"div",7)(20,"label",14),e.ynx(21),e.SDv(22,15),e.BQk(),e._UZ(23,"cd-helper",16)(24,"span",10),e.qZA(),e.TgZ(25,"div",11)(26,"select",17),e.YNc(27,N_,2,0,"option",18),e.YNc(28,b_,2,2,"option",19),e.qZA(),e.YNc(29,v_,2,0,"span",13),e.qZA()(),e.TgZ(30,"div",7)(31,"label",20),e.ynx(32),e.SDv(33,21),e.BQk(),e._UZ(34,"cd-helper",16)(35,"span",10),e.qZA(),e.TgZ(36,"div",11)(37,"select",22),e.YNc(38,$_,2,0,"option",18),e.YNc(39,I_,2,3,"option",19),e.qZA(),e.YNc(40,D_,2,0,"span",13),e.qZA()(),e.TgZ(41,"div",7)(42,"label",23),e.ynx(43),e.SDv(44,24),e.BQk(),e._UZ(45,"cd-helper",16),e.qZA(),e.TgZ(46,"div",11)(47,"select",25)(48,"option",26),e.SDv(49,27),e.qZA(),e.YNc(50,x_,2,2,"option",19),e.qZA()()()(),e.TgZ(51,"div",28)(52,"cd-form-button-panel",29),e.NdJ("submitActionEvent",function(){return o.onSubmit()}),e.ALo(53,"titlecase"),e.ALo(54,"upperFirst"),e.qZA()()(),e.BQk(),e.qZA()),2&_){const i=e.MAs(7);e.Q6J("modalRef",o.activeModal),e.xp6(4),e.pQV(e.lcZ(3,19,o.action))(e.lcZ(4,21,o.resource)),e.QtT(2),e.xp6(2),e.Q6J("formGroup",o.form),e.xp6(10),e.Q6J("ngIf",o.form.showError("name",i,"required")),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",i,"pattern")),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",i,"uniqueName")),e.xp6(5),e.Q6J("html",o.tooltips.root),e.xp6(4),e.Q6J("ngIf",!o.buckets),e.xp6(1),e.Q6J("ngForOf",o.buckets),e.xp6(1),e.Q6J("ngIf",o.form.showError("root",i,"required")),e.xp6(5),e.Q6J("html",o.tooltips.failure_domain),e.xp6(4),e.Q6J("ngIf",!o.failureDomains),e.xp6(1),e.Q6J("ngForOf",o.failureDomainKeys),e.xp6(1),e.Q6J("ngIf",o.form.showError("failure_domain",i,"required")),e.xp6(5),e.Q6J("html",o.tooltips.device_class),e.xp6(5),e.Q6J("ngForOf",o.devices),e.xp6(2),e.Q6J("form",o.form)("submitText",e.lcZ(53,23,o.action)+" "+e.lcZ(54,25,o.resource))}},dependencies:[C.sg,C.O5,Pe.S,$e.z,fe.p,Ee.U,ge.o,pe.b,Re.P,me.V,l._Y,l.YN,l.Kr,l.Fj,l.EJ,l.JJ,l.JL,l.sg,l.u,C.rS,Ce.m]}),t})();class Z_{}var U_=r(35732);let Me=(()=>{class t{constructor(_){this.http=_,this.apiPath="api/erasure_code_profile",this.formTooltips={k:"Each object is split in data-chunks parts, each stored on a different OSD.",m:"Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.",plugins:{jerasure:{description:"The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.",technique:"The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.",packetSize:"The encoding will be done on packets of bytes size at a time.\n Choosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic."},lrc:{description:"With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.",l:"Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.",crushLocality:"The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done."},isa:{description:"The isa plugin encapsulates the ISA library. It only runs on Intel processors.",technique:"The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy."},shec:{description:"The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.",c:"The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data."},clay:{description:"CLAY (short for coupled-layer) codes are erasure codes designed to\n bring about significant savings in terms of network bandwidth and disk IO when a failed\n node/OSD/rack is being repaired.",d:"Number of OSDs requested to send data during recovery of a single chunk.\n d needs to be chosen such that k+1 <= d <= k+m-1. The larger the d, the better\n the savings.",scalar_mds:"scalar_mds specifies the plugin that is used as a building block\n in the layered construction. It can be one of jerasure, isa, shec.",technique:"technique specifies the technique that will be picked\n within the 'scalar_mds' plugin specified. Supported techniques\n are 'reed_sol_van', 'reed_sol_r6_op', 'cauchy_orig',\n 'cauchy_good', 'liber8tion' for jerasure, 'reed_sol_van',\n 'cauchy' for isa and 'single', 'multiple' for shec."}},crushRoot:"The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.",crushFailureDomain:"Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.",crushDeviceClass:"Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.",directory:"Set the directory name from which the erasure code plugin is loaded."}}list(){return this.http.get(this.apiPath)}create(_){return this.http.post(this.apiPath,_,{observe:"response"})}delete(_){return this.http.delete(`${this.apiPath}/${_}`,{observe:"response"})}getInfo(){return this.http.get(`ui-${this.apiPath}/info`)}}return t.\u0275fac=function(_){return new(_||t)(e.LFG(U_.eN))},t.\u0275prov=e.Yz7({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function G_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,47),e.qZA())}function H_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,48),e.qZA())}function z_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,49),e.qZA())}function q_(t,n){1&t&&(e.TgZ(0,"option",37),e.SDv(1,50),e.qZA())}function X_(t,n){if(1&t&&(e.TgZ(0,"option",51),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_," ")}}function Q_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,52),e.qZA())}function w_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,53),e.qZA())}function J_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,54),e.qZA())}function k_(t,n){if(1&t&&(e.TgZ(0,"span",46),e.SDv(1,55),e.qZA()),2&t){const _=e.oxw();e.xp6(1),e.pQV(_.deviceCount),e.QtT(1)}}function V_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,56),e.qZA())}function Y_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,57),e.qZA())}function B_(t,n){if(1&t&&(e.TgZ(0,"span",39),e.SDv(1,58),e.qZA()),2&t){const _=e.oxw();e.xp6(1),e.pQV(_.lrcMultiK),e.QtT(1)}}function j_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,59),e.qZA())}function K_(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,60),e.qZA())}function W_(t,n){if(1&t&&(e.TgZ(0,"span",46),e.SDv(1,61),e.qZA()),2&t){const _=e.oxw();e.xp6(1),e.pQV(_.deviceCount),e.QtT(1)}}function eo(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,65),e.qZA())}function _o(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,66),e.qZA())}function oo(t,n){if(1&t&&(e.TgZ(0,"div",7)(1,"label",62)(2,"span",14),e.SDv(3,63),e.qZA(),e._UZ(4,"cd-helper",16),e.qZA(),e.TgZ(5,"div",10),e._UZ(6,"input",64),e.YNc(7,eo,2,0,"span",12),e.YNc(8,_o,2,0,"span",12),e.qZA()()),2&t){const _=e.oxw(),o=e.MAs(7);e.xp6(4),e.Q6J("html",_.tooltips.plugins.shec.c),e.xp6(3),e.Q6J("ngIf",_.form.showError("c",o,"min")),e.xp6(1),e.Q6J("ngIf",_.form.showError("c",o,"cGreaterM"))}}function to(t,n){1&t&&(e.TgZ(0,"span",39),e.SDv(1,74),e.qZA())}function no(t,n){if(1&t&&(e.TgZ(0,"span",39),e.SDv(1,75),e.qZA()),2&t){const _=e.oxw(3);e.xp6(1),e.pQV(_.getDMin())(_.getDMax()),e.QtT(1)}}function io(t,n){if(1&t&&(e.TgZ(0,"span",39),e.SDv(1,76),e.qZA()),2&t){const _=e.oxw(3);e.xp6(1),e.pQV(_.getDMax()),e.QtT(1)}}function so(t,n){if(1&t&&(e.ynx(0),e.YNc(1,no,2,2,"span",23),e.YNc(2,io,2,1,"span",23),e.BQk()),2&t){const _=e.oxw(2);e.xp6(1),e.Q6J("ngIf",_.getDMin()<_.getDMax()),e.xp6(1),e.Q6J("ngIf",_.getDMin()===_.getDMax())}}function ao(t,n){if(1&t&&(e.TgZ(0,"span",46),e.SDv(1,77),e.qZA()),2&t){const _=e.oxw(2);e.xp6(1),e.pQV(_.getDMin()),e.QtT(1)}}function lo(t,n){if(1&t&&(e.TgZ(0,"span",46),e.SDv(1,78),e.qZA()),2&t){const _=e.oxw(2);e.xp6(1),e.pQV(_.getDMax()),e.QtT(1)}}function ro(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"div",7)(1,"label",67)(2,"span",14),e.SDv(3,68),e.qZA(),e._UZ(4,"cd-helper",16),e.qZA(),e.TgZ(5,"div",10)(6,"div",69),e._UZ(7,"input",70),e.TgZ(8,"button",71),e.NdJ("click",function(){e.CHM(_);const i=e.oxw();return e.KtG(i.toggleDCalc())}),e._UZ(9,"i",72),e.qZA()(),e.YNc(10,to,2,0,"span",23),e.YNc(11,so,3,2,"ng-container",73),e.YNc(12,ao,2,1,"span",12),e.YNc(13,lo,2,1,"span",12),e.qZA()()}if(2&t){const _=e.oxw(),o=e.MAs(7);e.xp6(4),e.Q6J("html",_.tooltips.plugins.clay.d),e.xp6(5),e.Q6J("ngClass",_.dCalc?_.icons.unlock:_.icons.lock),e.xp6(1),e.Q6J("ngIf",_.dCalc),e.xp6(1),e.Q6J("ngIf",!_.dCalc),e.xp6(1),e.Q6J("ngIf",_.form.showError("d",o,"dMin")),e.xp6(1),e.Q6J("ngIf",_.form.showError("d",o,"dMax"))}}function co(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,83),e.qZA())}function Oo(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,84),e.qZA())}function uo(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,85),e.qZA())}function Po(t,n){if(1&t&&(e.TgZ(0,"div",7)(1,"label",79)(2,"span",14),e.SDv(3,80),e.qZA(),e._UZ(4,"cd-helper",16),e.qZA(),e.TgZ(5,"div",10),e._UZ(6,"input",81),e.YNc(7,co,2,0,"span",12),e.YNc(8,Oo,2,0,"span",12),e.YNc(9,uo,2,0,"span",12),e.TgZ(10,"span",39),e.SDv(11,82),e.qZA()()()),2&t){const _=e.oxw(),o=e.MAs(7);e.xp6(4),e.Q6J("html",_.tooltips.plugins.lrc.l),e.xp6(3),e.Q6J("ngIf",_.form.showError("l",o,"required")),e.xp6(1),e.Q6J("ngIf",_.form.showError("l",o,"min")),e.xp6(1),e.Q6J("ngIf",_.form.showError("l",o,"unequal")),e.xp6(2),e.pQV(_.lrcGroups),e.QtT(11)}}function fo(t,n){1&t&&(e.TgZ(0,"option",37),e.SDv(1,86),e.qZA())}function Eo(t,n){if(1&t&&(e.TgZ(0,"option",51),e._uU(1),e.qZA()),2&t){const _=n.$implicit,o=e.oxw();e.Q6J("ngValue",_),e.xp6(1),e.AsE(" ",_," ( ",o.failureDomains[_].length," ) ")}}function go(t,n){1&t&&(e.TgZ(0,"option",37),e.SDv(1,90),e.qZA())}function po(t,n){1&t&&(e.TgZ(0,"option",37),e.SDv(1,91),e.qZA())}function Ro(t,n){if(1&t&&(e.TgZ(0,"option",51),e._uU(1),e.qZA()),2&t){const _=n.$implicit,o=e.oxw(2);e.Q6J("ngValue",_),e.xp6(1),e.AsE(" ",_," ( ",o.failureDomains[_].length," ) ")}}function mo(t,n){if(1&t&&(e.TgZ(0,"div",7)(1,"label",87),e.ynx(2),e.SDv(3,88),e.BQk(),e._UZ(4,"cd-helper",16),e.qZA(),e.TgZ(5,"div",10)(6,"select",89),e.YNc(7,go,2,0,"option",18),e.YNc(8,po,2,0,"option",18),e.YNc(9,Ro,2,3,"option",19),e.qZA()()()),2&t){const _=e.oxw();e.xp6(4),e.Q6J("html",_.tooltips.plugins.lrc.crushLocality),e.xp6(3),e.Q6J("ngIf",!_.failureDomains),e.xp6(1),e.Q6J("ngIf",_.failureDomainKeys.length>0),e.xp6(1),e.Q6J("ngForOf",_.failureDomainKeys)}}function Co(t,n){if(1&t&&(e.TgZ(0,"option",51),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_," ")}}const Ie=function(t,n,_){return[t,n,_]};function Mo(t,n){if(1&t&&(e.TgZ(0,"div",7)(1,"label",92),e.ynx(2),e.SDv(3,93),e.BQk(),e._UZ(4,"cd-helper",16),e.qZA(),e.TgZ(5,"div",10)(6,"select",94),e.YNc(7,Co,2,2,"option",19),e.qZA()()()),2&t){const _=e.oxw();e.xp6(4),e.Q6J("html",_.tooltips.plugins.clay.scalar_mds),e.xp6(3),e.Q6J("ngForOf",e.kEZ(2,Ie,_.PLUGIN.JERASURE,_.PLUGIN.ISA,_.PLUGIN.SHEC))}}function ho(t,n){if(1&t&&(e.TgZ(0,"option",51),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_," ")}}function So(t,n){if(1&t&&(e.TgZ(0,"div",7)(1,"label",95),e.ynx(2),e.SDv(3,96),e.BQk(),e._UZ(4,"cd-helper",16),e.qZA(),e.TgZ(5,"div",10)(6,"select",97),e.YNc(7,ho,2,2,"option",19),e.qZA()()()),2&t){const _=e.oxw();e.xp6(4),e.Q6J("html",_.tooltips.plugins[_.plugin].technique),e.xp6(3),e.Q6J("ngForOf",_.techniques)}}function To(t,n){1&t&&(e.TgZ(0,"span",46),e.SDv(1,101),e.qZA())}function Lo(t,n){if(1&t&&(e.TgZ(0,"div",7)(1,"label",98),e.ynx(2),e.SDv(3,99),e.BQk(),e._UZ(4,"cd-helper",16),e.qZA(),e.TgZ(5,"div",10),e._UZ(6,"input",100),e.YNc(7,To,2,0,"span",12),e.qZA()()),2&t){const _=e.oxw(),o=e.MAs(7);e.xp6(4),e.Q6J("html",_.tooltips.plugins.jerasure.packetSize),e.xp6(3),e.Q6J("ngIf",_.form.showError("packetSize",o,"min"))}}function Ao(t,n){1&t&&(e.TgZ(0,"option",37),e.SDv(1,102),e.qZA())}function Fo(t,n){if(1&t&&(e.TgZ(0,"option",51),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_.name," ")}}function No(t,n){if(1&t&&(e.TgZ(0,"option",51),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_," ")}}let bo=(()=>{class t extends T{constructor(_,o,i,s,c){super(),this.formBuilder=_,this.activeModal=o,this.taskWrapper=i,this.ecpService=s,this.actionLabels=c,this.submitAction=new e.vpe,this.tooltips=this.ecpService.formTooltips,this.PLUGIN={LRC:"lrc",SHEC:"shec",CLAY:"clay",JERASURE:"jerasure",ISA:"isa"},this.plugin=this.PLUGIN.JERASURE,this.icons=b.P,this.action=this.actionLabels.CREATE,this.resource="EC Profile",this.createForm(),this.setJerasureDefaults()}createForm(){this.form=this.formBuilder.group({name:[null,[l.kI.required,l.kI.pattern("[A-Za-z0-9_-]+"),E.h.custom("uniqueName",_=>this.names&&-1!==this.names.indexOf(_))]],plugin:[this.PLUGIN.JERASURE,[l.kI.required]],k:[4,[l.kI.required,E.h.custom("max",()=>this.baseValueValidation(!0)),E.h.custom("unequal",_=>this.lrcDataValidation(_)),E.h.custom("kLowerM",_=>this.shecDataValidation(_))]],m:[2,[l.kI.required,E.h.custom("max",()=>this.baseValueValidation())]],crushFailureDomain:"",crushRoot:null,crushDeviceClass:"",directory:"",technique:"reed_sol_van",packetSize:[2048],l:[3,[l.kI.required,E.h.custom("unequal",_=>this.lrcLocalityValidation(_))]],crushLocality:"",c:[2,[l.kI.required,E.h.custom("cGreaterM",_=>this.shecDurabilityValidation(_))]],d:[5,[l.kI.required,E.h.custom("dMin",_=>this.dMinValidation(_)),E.h.custom("dMax",_=>this.dMaxValidation(_))]],scalar_mds:[this.PLUGIN.JERASURE,[l.kI.required]]}),this.toggleDCalc(),this.form.get("k").valueChanges.subscribe(()=>this.updateValidityOnChange(["m","l","d"])),this.form.get("m").valueChanges.subscribe(()=>this.updateValidityOnChange(["k","l","c","d"])),this.form.get("l").valueChanges.subscribe(()=>this.updateValidityOnChange(["k","m"])),this.form.get("plugin").valueChanges.subscribe(_=>this.onPluginChange(_)),this.form.get("scalar_mds").valueChanges.subscribe(()=>this.setClayDefaultsForScalar())}baseValueValidation(_=!1){return this.validValidation(()=>this.getKMSum()>this.deviceCount&&this.form.getValue("k")>this.form.getValue("m")===_)}validValidation(_,o){return!((!this.form||o)&&this.plugin!==o)&&_()}getKMSum(){return this.form.getValue("k")+this.form.getValue("m")}lrcDataValidation(_){return this.validValidation(()=>{const o=this.form.getValue("m"),i=this.form.getValue("l"),s=_+o;return this.lrcMultiK=_/(s/i),_%(s/i)!=0},"lrc")}shecDataValidation(_){return this.validValidation(()=>this.form.getValue("m")>_,"shec")}lrcLocalityValidation(_){return this.validValidation(()=>{const o=this.getKMSum();return this.lrcGroups=_>0?o/_:0,_>0&&o%_!=0},"lrc")}shecDurabilityValidation(_){return this.validValidation(()=>{const o=this.form.getValue("m");return _>o},"shec")}dMinValidation(_){return this.validValidation(()=>this.getDMin()>_,"clay")}getDMin(){return this.form.getValue("k")+1}dMaxValidation(_){return this.validValidation(()=>_>this.getDMax(),"clay")}getDMax(){const _=this.form.getValue("m");return this.form.getValue("k")+_-1}toggleDCalc(){this.dCalc=!this.dCalc,this.form.get("d")[this.dCalc?"disable":"enable"](),this.calculateD()}calculateD(){this.plugin!==this.PLUGIN.CLAY||!this.dCalc||this.form.silentSet("d",this.getDMax())}updateValidityOnChange(_){_.forEach(o=>{"d"===o&&this.calculateD(),this.form.get(o).updateValueAndValidity({emitEvent:!1})})}onPluginChange(_){this.plugin=_,_===this.PLUGIN.JERASURE?this.setJerasureDefaults():_===this.PLUGIN.LRC?this.setLrcDefaults():_===this.PLUGIN.ISA?this.setIsaDefaults():_===this.PLUGIN.SHEC?this.setShecDefaults():_===this.PLUGIN.CLAY&&this.setClayDefaults(),this.updateValidityOnChange(["m"])}setJerasureDefaults(){this.techniques=["reed_sol_van","reed_sol_r6_op","cauchy_orig","cauchy_good","liberation","blaum_roth","liber8tion"],this.setDefaults({k:4,m:2,technique:"reed_sol_van"})}setLrcDefaults(){this.setDefaults({k:4,m:2,l:3})}setIsaDefaults(){this.techniques=["reed_sol_van","cauchy"],this.setDefaults({k:7,m:3,technique:"reed_sol_van"})}setShecDefaults(){this.setDefaults({k:4,m:3,c:2})}setClayDefaults(){this.setDefaults({k:4,m:2,scalar_mds:this.PLUGIN.JERASURE}),this.setClayDefaultsForScalar()}setClayDefaultsForScalar(){const _=this.form.getValue("scalar_mds");let o="reed_sol_van";_===this.PLUGIN.JERASURE?this.techniques=["reed_sol_van","reed_sol_r6_op","cauchy_orig","cauchy_good","liber8tion"]:_===this.PLUGIN.ISA?this.techniques=["reed_sol_van","cauchy"]:(o="single",this.techniques=["single","multiple"]),this.setDefaults({technique:o})}setDefaults(_){Object.keys(_).forEach(o=>{const i=this.form.get(o),s=i.value;i.pristine||"technique"===o&&!this.techniques.includes(s)||"k"===o&&[4,7].includes(s)||"m"===o&&[2,3].includes(s)?i.setValue(_[o]):i.updateValueAndValidity()})}ngOnInit(){this.ecpService.getInfo().subscribe(({plugins:_,names:o,directory:i,nodes:s})=>{this.initCrushNodeSelection(s,this.form.get("crushRoot"),this.form.get("crushFailureDomain"),this.form.get("crushDeviceClass")),this.plugins=_,this.names=o,this.form.silentSet("directory",i),this.preValidateNumericInputFields()})}preValidateNumericInputFields(){const _=["k","m","l","c","d"].map(o=>this.form.get(o));_.forEach(o=>{o.markAsTouched(),o.markAsDirty()}),_[1].updateValueAndValidity()}onSubmit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const _=this.createJson();this.taskWrapper.wrapTaskAroundCall({task:new v.R("ecp/create",{name:_.name}),call:this.ecpService.create(_)}).subscribe({error:()=>{this.form.setErrors({cdSubmitButton:!0})},complete:()=>{this.activeModal.close(),this.submitAction.emit(_)}})}createJson(){const _={technique:[this.PLUGIN.ISA,this.PLUGIN.JERASURE,this.PLUGIN.CLAY],packetSize:[this.PLUGIN.JERASURE],l:[this.PLUGIN.LRC],crushLocality:[this.PLUGIN.LRC],c:[this.PLUGIN.SHEC],d:[this.PLUGIN.CLAY],scalar_mds:[this.PLUGIN.CLAY]},o=new Z_,i=this.form.getValue("plugin");return Object.keys(this.form.controls).filter(s=>{const c=_[s],d=this.form.getValue(s);return(c&&c.includes(i)||!c)&&d&&""!==d}).forEach(s=>{this.extendJson(s,o)}),o}extendJson(_,o){const s=this.form.getValue(_);o[{crushFailureDomain:"crush-failure-domain",crushRoot:"crush-root",crushDeviceClass:"crush-device-class",packetSize:"packetsize",crushLocality:"crush-locality"}[_]||_]="crushRoot"===_?s.name:s}}return t.\u0275fac=function(_){return new(_||t)(e.Y36(be.O),e.Y36(f.Kz),e.Y36(de.P),e.Y36(Me),e.Y36(M.p4))},t.\u0275cmp=e.Xpm({type:t,selectors:[["cd-erasure-code-profile-form-modal"]],outputs:{submitAction:"submitAction"},features:[e.qOj],decls:98,vars:53,consts:function(){let n,_,o,i,s,c,d,P,p,R,h,S,m,u,A,$,I,D,x,y,Z,U,G,H,z,q,X,Q,w,J,k,V,Y,B,j,K,N,W,ee,_e,oe,te,ne,ie,se,ae,le,re,ce;return n="" + "\ufffd0\ufffd" + " " + "\ufffd1\ufffd" + "",_="Name",o="\uD50C\uB7EC\uADF8\uC778",i="\uB370\uC774\uD130 \uB369\uC5B4\uB9AC\uB4E4 (k)",s="\uCF54\uB529 \uB369\uC5B4\uB9AC\uB4E4 (m)",c="\uD06C\uB7EC\uC26C \uC2E4\uD328 \uB3C4\uBA54\uC778",d="\uD06C\uB7EC\uC26C\uB8E8\uD2B8",P="\uD06C\uB7EC\uC26C \uC7A5\uCE58 \uD074\uB798\uC2A4",p="Let Ceph decide",R="Available OSDs: \n " + "\ufffd0\ufffd" + "\n ",h="\uB514\uB809\uD1A0\uB9AC",S="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",m="\uC774\uB984\uC740 \uC601\uC22B\uC790, \uB300\uC2DC \uBC0F \uBC11\uC904\uB85C\uB9CC \uAD6C\uC131 \uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",u="\uC120\uD0DD\uD55C Erasure Code \uD504\uB85C\uD30C\uC77C \uC774\uB984\uC774 \uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC785\uB2C8\uB2E4.",A="\uB85C\uB529\uC911...",$="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",I="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",D="\uBC18\uB4DC\uC2DC 2\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uAC19\uC544\uC57C\uD569\uB2C8\uB2E4.",x="Chunks (k+m) have exceeded the available OSDs of \n " + "\ufffd0\ufffd" + ".\n ",y="For an equal distribution k has to be a multiple of (k+m)/l.",Z="K has to be equal to or greater than m in order to recover data correctly through c.",U="Distribution factor: \n " + "\ufffd0\ufffd" + "\n ",G="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",H="\uBC18\uB4DC\uC2DC 1\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uAC19\uC544\uC57C\uD569\uB2C8\uB2E4.",z="Chunks (k+m) have exceeded the available OSDs of \n " + "\ufffd0\ufffd" + ".\n ",q="\uB0B4\uAD6C\uC131 \uD3C9\uAC00(c)",X="\uBC18\uB4DC\uC2DC 1\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uAC19\uC544\uC57C\uD569\uB2C8\uB2E4.",Q="C has to be equal to or lower than m as m defines the amount of chunks that can be used.",w="Helper chunks (d)",J="Set d manually or use the plugin's default calculation that maximizes d.",k="D is automatically updated on k and m changes",V="D can be set from \n " + "\ufffd0\ufffd" + " to \n " + "\ufffd1\ufffd" + "\n ",Y="D can only be set to \n " + "\ufffd0\ufffd" + "\n ",B="D has to be greater than k (\n " + "\ufffd0\ufffd" + ").\n ",j="D has to be lower than k + m (\n " + "\ufffd0\ufffd" + ").\n ",K="\uC9C0\uC5ED (l)",N="Locality groups: \n " + "\ufffd0\ufffd" + "\n ",W="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",ee="\uBC18\uB4DC\uC2DC 1\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uAC19\uC544\uC57C\uD569\uB2C8\uB2E4.",_e="Can't split up chunks (k+m) correctly with the current locality.",oe="\uB85C\uB529\uC911...",te="\uD06C\uB7EC\uC26C \uC9C0\uC5ED",ne="\uB85C\uB529\uC911...",ie="\uC5C6\uC74C",se="Scalar mds",ae="\uAE30\uC220",le="\uD328\uD0B7\uD06C\uAE30",re="\uBC18\uB4DC\uC2DC 1\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uAC19\uC544\uC57C\uD569\uB2C8\uB2E4.",ce="\uB85C\uB529\uC911...",[[3,"modalRef"],[1,"modal-title"],n,[1,"modal-content"],["novalidate","",3,"formGroup"],["frm","ngForm"],[1,"modal-body"],[1,"form-group","row"],["for","name",1,"cd-col-form-label"],_,[1,"cd-col-form-input"],["type","text","id","name","name","name","placeholder","Name...","formControlName","name","autofocus","",1,"form-control"],["class","invalid-feedback",4,"ngIf"],["for","plugin",1,"cd-col-form-label"],[1,"required"],o,[3,"html"],["id","plugin","name","plugin","formControlName","plugin",1,"form-select"],["ngValue","",4,"ngIf"],[3,"ngValue",4,"ngFor","ngForOf"],["for","k",1,"cd-col-form-label"],i,["type","number","id","k","name","k","ng-model","$ctrl.erasureCodeProfile.k","placeholder","Data chunks...","formControlName","k","min","2",1,"form-control"],["class","form-text text-muted",4,"ngIf"],["for","m",1,"cd-col-form-label"],s,["type","number","id","m","name","m","placeholder","Coding chunks...","formControlName","m","min","1",1,"form-control"],["class","form-group row",4,"ngIf"],["for","crushFailureDomain",1,"cd-col-form-label"],c,["id","crushFailureDomain","name","crushFailureDomain","formControlName","crushFailureDomain",1,"form-select"],["for","crushRoot",1,"cd-col-form-label"],d,["id","crushRoot","name","crushRoot","formControlName","crushRoot",1,"form-select"],["for","crushDeviceClass",1,"cd-col-form-label"],P,["id","crushDeviceClass","name","crushDeviceClass","formControlName","crushDeviceClass",1,"form-select"],["ngValue",""],p,[1,"form-text","text-muted"],R,["for","directory",1,"cd-col-form-label"],h,["type","text","id","directory","name","directory","placeholder","Path...","formControlName","directory",1,"form-control"],[1,"modal-footer"],[3,"form","submitText","submitActionEvent"],[1,"invalid-feedback"],S,m,u,A,[3,"ngValue"],$,I,D,x,y,Z,U,G,H,z,["for","c",1,"cd-col-form-label"],q,["type","number","id","c","name","c","placeholder","Coding chunks...","formControlName","c","min","1",1,"form-control"],X,Q,["for","d",1,"cd-col-form-label"],w,[1,"input-group"],["type","number","id","d","name","d","placeholder","Helper chunks...","formControlName","d",1,"form-control"],["id","d-calc-btn","ngbTooltip",J,"type","button",1,"btn","btn-light",3,"click"],["aria-hidden","true",3,"ngClass"],[4,"ngIf"],k,V,Y,B,j,["for","l",1,"cd-col-form-label"],K,["type","number","id","l","name","l","placeholder","Coding chunks...","formControlName","l","min","1",1,"form-control"],N,W,ee,_e,oe,["for","crushLocality",1,"cd-col-form-label"],te,["id","crushLocality","name","crushLocality","formControlName","crushLocality",1,"form-select"],ne,ie,["for","scalar_mds",1,"cd-col-form-label"],se,["id","scalar_mds","name","scalar_mds","formControlName","scalar_mds",1,"form-select"],["for","technique",1,"cd-col-form-label"],ae,["id","technique","name","technique","formControlName","technique",1,"form-select"],["for","packetSize",1,"cd-col-form-label"],le,["type","number","id","packetSize","name","packetSize","placeholder","Packetsize...","formControlName","packetSize","min","1",1,"form-control"],re,ce]},template:function(_,o){if(1&_&&(e.TgZ(0,"cd-modal",0),e.ynx(1,1),e.SDv(2,2),e.ALo(3,"titlecase"),e.ALo(4,"upperFirst"),e.BQk(),e.ynx(5,3),e.TgZ(6,"form",4,5)(8,"div",6)(9,"div",7)(10,"label",8),e.SDv(11,9),e.qZA(),e.TgZ(12,"div",10),e._UZ(13,"input",11),e.YNc(14,G_,2,0,"span",12),e.YNc(15,H_,2,0,"span",12),e.YNc(16,z_,2,0,"span",12),e.qZA()(),e.TgZ(17,"div",7)(18,"label",13)(19,"span",14),e.SDv(20,15),e.qZA(),e._UZ(21,"cd-helper",16),e.qZA(),e.TgZ(22,"div",10)(23,"select",17),e.YNc(24,q_,2,0,"option",18),e.YNc(25,X_,2,2,"option",19),e.qZA(),e.YNc(26,Q_,2,0,"span",12),e.qZA()(),e.TgZ(27,"div",7)(28,"label",20)(29,"span",14),e.SDv(30,21),e.qZA(),e._UZ(31,"cd-helper",16),e.qZA(),e.TgZ(32,"div",10),e._UZ(33,"input",22),e.YNc(34,w_,2,0,"span",12),e.YNc(35,J_,2,0,"span",12),e.YNc(36,k_,2,1,"span",12),e.YNc(37,V_,2,0,"span",12),e.YNc(38,Y_,2,0,"span",12),e.YNc(39,B_,2,1,"span",23),e.qZA()(),e.TgZ(40,"div",7)(41,"label",24)(42,"span",14),e.SDv(43,25),e.qZA(),e._UZ(44,"cd-helper",16),e.qZA(),e.TgZ(45,"div",10),e._UZ(46,"input",26),e.YNc(47,j_,2,0,"span",12),e.YNc(48,K_,2,0,"span",12),e.YNc(49,W_,2,1,"span",12),e.qZA()(),e.YNc(50,oo,9,3,"div",27),e.YNc(51,ro,14,6,"div",27),e.YNc(52,Po,12,5,"div",27),e.TgZ(53,"div",7)(54,"label",28),e.ynx(55),e.SDv(56,29),e.BQk(),e._UZ(57,"cd-helper",16),e.qZA(),e.TgZ(58,"div",10)(59,"select",30),e.YNc(60,fo,2,0,"option",18),e.YNc(61,Eo,2,3,"option",19),e.qZA()()(),e.YNc(62,mo,10,4,"div",27),e.YNc(63,Mo,8,6,"div",27),e.YNc(64,So,8,2,"div",27),e.YNc(65,Lo,8,2,"div",27),e.TgZ(66,"div",7)(67,"label",31),e.ynx(68),e.SDv(69,32),e.BQk(),e._UZ(70,"cd-helper",16),e.qZA(),e.TgZ(71,"div",10)(72,"select",33),e.YNc(73,Ao,2,0,"option",18),e.YNc(74,Fo,2,2,"option",19),e.qZA()()(),e.TgZ(75,"div",7)(76,"label",34),e.ynx(77),e.SDv(78,35),e.BQk(),e._UZ(79,"cd-helper",16),e.qZA(),e.TgZ(80,"div",10)(81,"select",36)(82,"option",37),e.SDv(83,38),e.qZA(),e.YNc(84,No,2,2,"option",19),e.qZA(),e.TgZ(85,"span",39),e.SDv(86,40),e.qZA()()(),e.TgZ(87,"div",7)(88,"label",41),e.ynx(89),e.SDv(90,42),e.BQk(),e._UZ(91,"cd-helper",16),e.qZA(),e.TgZ(92,"div",10),e._UZ(93,"input",43),e.qZA()()(),e.TgZ(94,"div",44)(95,"cd-form-button-panel",45),e.NdJ("submitActionEvent",function(){return o.onSubmit()}),e.ALo(96,"titlecase"),e.ALo(97,"upperFirst"),e.qZA()()(),e.BQk(),e.qZA()),2&_){const i=e.MAs(7);e.Q6J("modalRef",o.activeModal),e.xp6(4),e.pQV(e.lcZ(3,41,o.action))(e.lcZ(4,43,o.resource)),e.QtT(2),e.xp6(2),e.Q6J("formGroup",o.form),e.xp6(8),e.Q6J("ngIf",o.form.showError("name",i,"required")),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",i,"pattern")),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",i,"uniqueName")),e.xp6(5),e.Q6J("html",o.tooltips.plugins[o.plugin].description),e.xp6(3),e.Q6J("ngIf",!o.plugins),e.xp6(1),e.Q6J("ngForOf",o.plugins),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",i,"required")),e.xp6(5),e.Q6J("html",o.tooltips.k),e.xp6(3),e.Q6J("ngIf",o.form.showError("k",i,"required")),e.xp6(1),e.Q6J("ngIf",o.form.showError("k",i,"min")),e.xp6(1),e.Q6J("ngIf",o.form.showError("k",i,"max")),e.xp6(1),e.Q6J("ngIf",o.form.showError("k",i,"unequal")),e.xp6(1),e.Q6J("ngIf",o.form.showError("k",i,"kLowerM")),e.xp6(1),e.Q6J("ngIf","lrc"===o.plugin),e.xp6(5),e.Q6J("html",o.tooltips.m),e.xp6(3),e.Q6J("ngIf",o.form.showError("m",i,"required")),e.xp6(1),e.Q6J("ngIf",o.form.showError("m",i,"min")),e.xp6(1),e.Q6J("ngIf",o.form.showError("m",i,"max")),e.xp6(1),e.Q6J("ngIf","shec"===o.plugin),e.xp6(1),e.Q6J("ngIf","clay"===o.plugin),e.xp6(1),e.Q6J("ngIf",o.plugin===o.PLUGIN.LRC),e.xp6(5),e.Q6J("html",o.tooltips.crushFailureDomain),e.xp6(3),e.Q6J("ngIf",!o.failureDomains),e.xp6(1),e.Q6J("ngForOf",o.failureDomainKeys),e.xp6(1),e.Q6J("ngIf",o.plugin===o.PLUGIN.LRC),e.xp6(1),e.Q6J("ngIf",o.PLUGIN.CLAY===o.plugin),e.xp6(1),e.Q6J("ngIf",e.kEZ(49,Ie,o.PLUGIN.JERASURE,o.PLUGIN.ISA,o.PLUGIN.CLAY).includes(o.plugin)),e.xp6(1),e.Q6J("ngIf",o.plugin===o.PLUGIN.JERASURE),e.xp6(5),e.Q6J("html",o.tooltips.crushRoot),e.xp6(3),e.Q6J("ngIf",!o.buckets),e.xp6(1),e.Q6J("ngForOf",o.buckets),e.xp6(5),e.Q6J("html",o.tooltips.crushDeviceClass),e.xp6(5),e.Q6J("ngForOf",o.devices),e.xp6(2),e.pQV(o.deviceCount),e.QtT(86),e.xp6(5),e.Q6J("html",o.tooltips.directory),e.xp6(4),e.Q6J("form",o.form)("submitText",e.lcZ(96,45,o.action)+" "+e.lcZ(97,47,o.resource))}},dependencies:[C.mk,C.sg,C.O5,Pe.S,$e.z,fe.p,Ee.U,ge.o,pe.b,Re.P,me.V,l._Y,l.YN,l.Kr,l.Fj,l.wV,l.EJ,l.JJ,l.JL,l.qQ,l.sg,l.u,f._L,C.rS,Ce.m]}),t})();var vo=r(7022);class $o{constructor(){this.erasureInfo=!1,this.crushInfo=!1,this.pgs=1,this.poolTypes=["erasure","replicated"],this.applications={selected:[],default:["cephfs","rbd","rgw"],available:[],validators:[l.kI.pattern("[A-Za-z0-9_]+"),l.kI.maxLength(128)],messages:new vo.a({empty:"No applications added",selectionLimit:{text:"Applications limit reached",tooltip:"A pool can only have up to four applications definitions."},customValidations:{pattern:"Allowed characters '_a-zA-Z0-9'",maxlength:"Maximum length is 128 characters"},filter:"Filter or add applications'",add:"Add application"})}}}var De=r(63285),xe=r(47640),Io=r(60192),Do=r(30490),ye=r(61350),xo=r(17932),yo=r(63622),Zo=r(60950);const Uo=["crushInfoTabs"],Go=["crushDeletionBtn"],Ho=["ecpInfoTabs"],zo=["ecpDeletionBtn"];function qo(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,42),e.qZA())}function Xo(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,43),e.qZA())}function Qo(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,44),e.qZA())}function wo(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,45),e.qZA())}function Jo(t,n){if(1&t&&(e.TgZ(0,"option",46),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("value",_),e.xp6(1),e.hij(" ",_," ")}}function ko(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,47),e.qZA())}function Vo(t,n){if(1&t&&(e.TgZ(0,"option",46),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("value",_),e.xp6(1),e.hij(" ",_," ")}}function Yo(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,58),e.qZA())}function Bo(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,59),e.qZA())}function jo(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,60),e.qZA())}function Ko(t,n){1&t&&(e.TgZ(0,"span",55),e.SDv(1,61),e.qZA())}function Wo(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"div",8)(1,"label",52),e.SDv(2,53),e.qZA(),e.TgZ(3,"div",11)(4,"input",54),e.NdJ("focus",function(){e.CHM(_);const i=e.oxw(3);return e.KtG(i.externalPgChange=!1)})("blur",function(){e.CHM(_);const i=e.oxw(3);return e.KtG(i.alignPgs())}),e.qZA(),e.YNc(5,Yo,2,0,"span",13),e.YNc(6,Bo,2,0,"span",13),e.YNc(7,jo,2,0,"span",13),e.TgZ(8,"span",55),e._UZ(9,"cd-doc",56),e.qZA(),e.YNc(10,Ko,2,0,"span",57),e.qZA()()}if(2&t){e.oxw(2);const _=e.MAs(2),o=e.oxw();e.xp6(5),e.Q6J("ngIf",o.form.showError("pgNum",_,"required")),e.xp6(1),e.Q6J("ngIf",o.form.showError("pgNum",_,"min")),e.xp6(1),e.Q6J("ngIf",o.form.showError("pgNum",_,"34")),e.xp6(3),e.Q6J("ngIf",o.externalPgChange)}}function et(t,n){if(1&t&&(e.TgZ(0,"span",41)(1,"ul",66)(2,"li"),e.SDv(3,67),e.qZA(),e.TgZ(4,"li"),e.SDv(5,68),e.qZA()()()),2&t){const _=e.oxw(4);e.xp6(3),e.pQV(_.getMinSize()),e.QtT(3),e.xp6(2),e.pQV(_.getMaxSize()),e.QtT(5)}}function _t(t,n){if(1&t&&(e.TgZ(0,"span",41),e.SDv(1,69),e.qZA()),2&t){const _=e.oxw(4);e.xp6(1),e.pQV(_.getMinSize())(_.getMaxSize()),e.QtT(1)}}function ot(t,n){1&t&&(e.TgZ(0,"span",70),e.SDv(1,71),e.qZA())}function tt(t,n){if(1&t&&(e.TgZ(0,"div",8)(1,"label",62),e.SDv(2,63),e.qZA(),e.TgZ(3,"div",11),e._UZ(4,"input",64),e.YNc(5,et,6,2,"span",13),e.YNc(6,_t,2,2,"span",13),e.YNc(7,ot,2,0,"span",65),e.qZA()()),2&t){e.oxw(2);const _=e.MAs(2),o=e.oxw();e.xp6(4),e.Q6J("max",o.getMaxSize())("min",o.getMinSize()),e.xp6(1),e.Q6J("ngIf",o.form.showError("size",_)),e.xp6(1),e.Q6J("ngIf",o.form.showError("size",_)),e.xp6(1),e.Q6J("ngIf",1===o.form.getValue("size"))}}function nt(t,n){1&t&&(e.TgZ(0,"div",8)(1,"label",72),e.SDv(2,73),e.qZA(),e.TgZ(3,"div",11)(4,"div",74),e._UZ(5,"input",75),e.TgZ(6,"label",76),e.SDv(7,77),e.qZA()()()())}function it(t,n){if(1&t&&(e.TgZ(0,"div")(1,"div",8)(2,"label",48),e.SDv(3,49),e.qZA(),e.TgZ(4,"div",11)(5,"select",50),e.YNc(6,Vo,2,2,"option",19),e.qZA()()(),e.YNc(7,Wo,11,4,"div",51),e.YNc(8,tt,8,5,"div",51),e.YNc(9,nt,8,0,"div",51),e.qZA()),2&t){const _=e.oxw(2);e.xp6(6),e.Q6J("ngForOf",_.pgAutoscaleModes),e.xp6(1),e.Q6J("ngIf","on"!==_.form.getValue("pgAutoscaleMode")),e.xp6(1),e.Q6J("ngIf",_.isReplicated),e.xp6(1),e.Q6J("ngIf",_.info.is_all_bluestore&&_.isErasure)}}function st(t,n){if(1&t&&e._UZ(0,"i",78),2&t){const _=e.oxw(2);e.Gre("",_.icons.warning," icon-warning-color")}}function at(t,n){1&t&&(e.TgZ(0,"option",17),e.SDv(1,92),e.qZA())}function lt(t,n){1&t&&(e.TgZ(0,"option",93),e.SDv(1,94),e.qZA()),2&t&&e.Q6J("ngValue",null)}function rt(t,n){1&t&&(e.TgZ(0,"option",93),e.SDv(1,95),e.qZA()),2&t&&e.Q6J("ngValue",null)}function ct(t,n){if(1&t&&(e.TgZ(0,"option",93),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_.name," ")}}const F=function(t){return[t]};function Ot(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"button",96),e.NdJ("click",function(){e.CHM(_);const i=e.oxw(4);return e.KtG(i.addErasureCodeProfile())}),e._UZ(1,"i",88),e.qZA()}if(2&t){const _=e.oxw(4);e.xp6(1),e.Q6J("ngClass",e.VKq(1,F,_.icons.add))}}function dt(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"button",97,98),e.NdJ("click",function(){e.CHM(_);const i=e.oxw(4);return e.KtG(i.deleteErasureCodeProfile())}),e._UZ(2,"i",88),e.qZA()}if(2&t){const _=e.oxw(4);e.xp6(2),e.Q6J("ngClass",e.VKq(1,F,_.icons.trash))}}const ut=function(){return["name"]};function Pt(t,n){if(1&t&&e._UZ(0,"cd-table-key-value",109),2&t){const _=e.oxw(5);e.Q6J("renderObjects",!0)("hideKeys",e.DdM(4,ut))("data",_.form.getValue("erasureProfile"))("autoReload",!1)}}function ft(t,n){1&t&&(e.TgZ(0,"span"),e.SDv(1,112),e.qZA())}function Et(t,n){if(1&t&&(e.TgZ(0,"li"),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.xp6(1),e.hij(" ",_," ")}}function gt(t,n){if(1&t&&(e.TgZ(0,"ul"),e.YNc(1,Et,2,1,"li",113),e.qZA()),2&t){const _=e.oxw(6);e.xp6(1),e.Q6J("ngForOf",_.ecpUsage)}}function pt(t,n){if(1&t&&(e.YNc(0,ft,2,0,"ng-template",null,110,e.W1O),e.YNc(2,gt,2,1,"ul",111)),2&t){const _=e.MAs(1),o=e.oxw(5);e.xp6(2),e.Q6J("ngIf",o.ecpUsage)("ngIfElse",_)}}function Rt(t,n){if(1&t&&(e.TgZ(0,"span",99)(1,"nav",100,101),e.ynx(3,102),e.TgZ(4,"a",103),e.SDv(5,104),e.qZA(),e.YNc(6,Pt,1,5,"ng-template",105),e.BQk(),e.ynx(7,106),e.TgZ(8,"a",103),e.SDv(9,107),e.qZA(),e.YNc(10,pt,3,2,"ng-template",105),e.BQk(),e.qZA(),e._UZ(11,"div",108),e.qZA()),2&t){const _=e.MAs(2);e.xp6(11),e.Q6J("ngbNavOutlet",_)}}const Ze=function(t){return{active:t}};function mt(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"div",8)(1,"label",80),e.SDv(2,81),e.qZA(),e.TgZ(3,"div",11)(4,"div",82)(5,"select",83),e.YNc(6,at,2,0,"option",84),e.YNc(7,lt,2,1,"option",85),e.YNc(8,rt,2,1,"option",85),e.YNc(9,ct,2,2,"option",86),e.qZA(),e.TgZ(10,"button",87),e.NdJ("click",function(){e.CHM(_);const i=e.oxw(3);return e.KtG(i.data.erasureInfo=!i.data.erasureInfo)}),e._UZ(11,"i",88),e.qZA(),e.YNc(12,Ot,2,3,"button",89),e.YNc(13,dt,3,3,"button",90),e.qZA(),e.YNc(14,Rt,12,1,"span",91),e.qZA()()}if(2&t){const _=e.oxw(3);e.xp6(6),e.Q6J("ngIf",!_.ecProfiles),e.xp6(1),e.Q6J("ngIf",_.ecProfiles&&0===_.ecProfiles.length),e.xp6(1),e.Q6J("ngIf",_.ecProfiles&&_.ecProfiles.length>0),e.xp6(1),e.Q6J("ngForOf",_.ecProfiles),e.xp6(1),e.Q6J("ngClass",e.VKq(9,Ze,_.data.erasureInfo)),e.xp6(1),e.Q6J("ngClass",e.VKq(11,F,_.icons.questionCircle)),e.xp6(1),e.Q6J("ngIf",!_.editing),e.xp6(1),e.Q6J("ngIf",!_.editing),e.xp6(1),e.Q6J("ngIf",_.data.erasureInfo&&_.form.getValue("erasureProfile"))}}function Ct(t,n){1&t&&(e.TgZ(0,"div",8)(1,"label",114),e.SDv(2,115),e.qZA(),e.TgZ(3,"div",11)(4,"span",55),e.SDv(5,116),e.qZA()()())}function Mt(t,n){1&t&&(e.TgZ(0,"span",55)(1,"span"),e.SDv(2,119),e.qZA(),e._uU(3,"\xa0 "),e.qZA())}function ht(t,n){if(1&t&&(e.TgZ(0,"option",93),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("ngValue",_),e.xp6(1),e.hij(" ",_.rule_name," ")}}function St(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"button",96),e.NdJ("click",function(){e.CHM(_);const i=e.oxw(5);return e.KtG(i.addCrushRule())}),e._UZ(1,"i",88),e.qZA()}if(2&t){const _=e.oxw(5);e.xp6(1),e.Q6J("ngClass",e.VKq(1,F,_.icons.add))}}function Tt(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"button",126,127),e.NdJ("click",function(){e.CHM(_);const i=e.oxw(5);return e.KtG(i.deleteCrushRule())}),e._UZ(2,"i",88),e.qZA()}if(2&t){const _=e.oxw(5);e.xp6(2),e.Q6J("ngClass",e.VKq(1,F,_.icons.trash))}}const Lt=function(){return["steps","type","rule_name"]};function At(t,n){if(1&t&&e._UZ(0,"cd-table-key-value",109),2&t){const _=e.oxw(6);e.Q6J("renderObjects",!1)("hideKeys",e.DdM(4,Lt))("data",_.form.getValue("crushRule"))("autoReload",!1)}}function Ft(t,n){if(1&t&&(e.TgZ(0,"li"),e._uU(1),e.qZA()),2&t){const _=n.$implicit,o=e.oxw(7);e.xp6(1),e.hij(" ",o.describeCrushStep(_)," ")}}function Nt(t,n){if(1&t&&(e.TgZ(0,"ol"),e.YNc(1,Ft,2,1,"li",113),e.qZA()),2&t){const _=e.oxw(6);e.xp6(1),e.Q6J("ngForOf",_.form.get("crushRule").value.steps)}}function bt(t,n){1&t&&(e.TgZ(0,"span"),e.SDv(1,136),e.qZA())}function vt(t,n){if(1&t&&(e.TgZ(0,"li"),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.xp6(1),e.hij(" ",_," ")}}function $t(t,n){if(1&t&&(e.TgZ(0,"ul"),e.YNc(1,vt,2,1,"li",113),e.qZA()),2&t){const _=e.oxw(7);e.xp6(1),e.Q6J("ngForOf",_.crushUsage)}}function It(t,n){if(1&t&&(e.YNc(0,bt,2,0,"ng-template",null,135,e.W1O),e.YNc(2,$t,2,1,"ul",111)),2&t){const _=e.MAs(1),o=e.oxw(6);e.xp6(2),e.Q6J("ngIf",o.crushUsage)("ngIfElse",_)}}function Dt(t,n){if(1&t&&(e.TgZ(0,"div",128)(1,"nav",100,129),e.ynx(3,130),e.TgZ(4,"a",103),e.SDv(5,131),e.qZA(),e.YNc(6,At,1,5,"ng-template",105),e.BQk(),e.ynx(7,132),e.TgZ(8,"a",103),e.SDv(9,133),e.qZA(),e.YNc(10,Nt,2,1,"ng-template",105),e.BQk(),e.ynx(11,106),e.TgZ(12,"a",103),e.SDv(13,134),e.qZA(),e.YNc(14,It,3,2,"ng-template",105),e.BQk(),e.qZA(),e._UZ(15,"div",108),e.qZA()),2&t){const _=e.MAs(2);e.xp6(15),e.Q6J("ngbNavOutlet",_)}}function xt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,137),e.qZA())}function yt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,138),e.qZA())}function Zt(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"div")(1,"div",120)(2,"select",121)(3,"option",93),e.SDv(4,122),e.qZA(),e.YNc(5,ht,2,2,"option",86),e.qZA(),e.TgZ(6,"button",123),e.NdJ("click",function(){e.CHM(_);const i=e.oxw(4);return e.KtG(i.data.crushInfo=!i.data.crushInfo)}),e._UZ(7,"i",88),e.qZA(),e.YNc(8,St,2,3,"button",89),e.YNc(9,Tt,3,3,"button",124),e.qZA(),e.YNc(10,Dt,16,1,"div",125),e.YNc(11,xt,2,0,"span",13),e.YNc(12,yt,2,0,"span",13),e.qZA()}if(2&t){e.oxw(3);const _=e.MAs(2),o=e.oxw();e.xp6(3),e.Q6J("ngValue",null),e.xp6(2),e.Q6J("ngForOf",o.current.rules),e.xp6(1),e.Q6J("ngClass",e.VKq(9,Ze,o.data.crushInfo)),e.xp6(1),e.Q6J("ngClass",e.VKq(11,F,o.icons.questionCircle)),e.xp6(1),e.Q6J("ngIf",o.isReplicated&&!o.editing),e.xp6(1),e.Q6J("ngIf",o.isReplicated&&!o.editing),e.xp6(1),e.Q6J("ngIf",o.data.crushInfo&&o.form.getValue("crushRule")),e.xp6(1),e.Q6J("ngIf",o.form.showError("crushRule",_,"required")),e.xp6(1),e.Q6J("ngIf",o.form.showError("crushRule",_,"tooFewOsds"))}}function Ut(t,n){if(1&t&&(e.TgZ(0,"div",8)(1,"label",114),e.SDv(2,117),e.qZA(),e.TgZ(3,"div",11),e.YNc(4,Mt,4,0,"ng-template",null,118,e.W1O),e.YNc(6,Zt,13,13,"div",111),e.qZA()()),2&t){const _=e.MAs(5),o=e.oxw(3);e.xp6(6),e.Q6J("ngIf",o.current.rules.length>0)("ngIfElse",_)}}function Gt(t,n){if(1&t&&(e.TgZ(0,"div")(1,"legend"),e.SDv(2,79),e.qZA(),e.YNc(3,mt,15,13,"div",51),e.YNc(4,Ct,6,0,"div",51),e.YNc(5,Ut,7,2,"div",51),e.qZA()),2&t){const _=e.oxw(2);e.xp6(3),e.Q6J("ngIf",_.isErasure),e.xp6(1),e.Q6J("ngIf",_.isErasure&&!_.editing),e.xp6(1),e.Q6J("ngIf",_.isReplicated||_.editing)}}function Ht(t,n){if(1&t&&(e.TgZ(0,"option",46),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("value",_),e.xp6(1),e.hij(" ",_," ")}}function zt(t,n){1&t&&(e.TgZ(0,"option",17),e.SDv(1,156),e.qZA())}function qt(t,n){1&t&&(e.TgZ(0,"option",17),e.SDv(1,157),e.qZA())}function Xt(t,n){if(1&t&&(e.TgZ(0,"option",46),e._uU(1),e.qZA()),2&t){const _=n.$implicit;e.Q6J("value",_),e.xp6(1),e.hij(" ",_," ")}}function Qt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,158),e.qZA())}function wt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,159),e.qZA())}function Jt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,160),e.qZA())}function kt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,161),e.qZA())}function Vt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,162),e.qZA())}function Yt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,163),e.qZA())}function Bt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,164),e.qZA())}function jt(t,n){if(1&t&&(e.TgZ(0,"div")(1,"div",8)(2,"label",144),e.SDv(3,145),e.qZA(),e.TgZ(4,"div",11)(5,"select",146),e.YNc(6,zt,2,0,"option",84),e.YNc(7,qt,2,0,"option",84),e.YNc(8,Xt,2,2,"option",19),e.qZA()()(),e.TgZ(9,"div",8)(10,"label",147),e.SDv(11,148),e.qZA(),e.TgZ(12,"div",11),e._UZ(13,"input",149),e.YNc(14,Qt,2,0,"span",13),e.YNc(15,wt,2,0,"span",13),e.YNc(16,Jt,2,0,"span",13),e.qZA()(),e.TgZ(17,"div",8)(18,"label",150),e.SDv(19,151),e.qZA(),e.TgZ(20,"div",11),e._UZ(21,"input",152),e.YNc(22,kt,2,0,"span",13),e.YNc(23,Vt,2,0,"span",13),e.YNc(24,Yt,2,0,"span",13),e.qZA()(),e.TgZ(25,"div",8)(26,"label",153),e.SDv(27,154),e.qZA(),e.TgZ(28,"div",11),e._UZ(29,"input",155),e.YNc(30,Bt,2,0,"span",13),e.qZA()()()),2&t){e.oxw(2);const _=e.MAs(2),o=e.oxw();e.xp6(6),e.Q6J("ngIf",!o.info.compression_algorithms),e.xp6(1),e.Q6J("ngIf",o.info.compression_algorithms&&0===o.info.compression_algorithms.length),e.xp6(1),e.Q6J("ngForOf",o.info.compression_algorithms),e.xp6(6),e.Q6J("ngIf",o.form.showError("minBlobSize",_,"min")),e.xp6(1),e.Q6J("ngIf",o.form.showError("minBlobSize",_,"maximum")),e.xp6(1),e.Q6J("ngIf",o.form.showError("minBlobSize",_,"pattern")),e.xp6(6),e.Q6J("ngIf",o.form.showError("maxBlobSize",_,"min")),e.xp6(1),e.Q6J("ngIf",o.form.showError("maxBlobSize",_,"minimum")),e.xp6(1),e.Q6J("ngIf",o.form.showError("maxBlobSize",_,"pattern")),e.xp6(6),e.Q6J("ngIf",o.form.showError("ratio",_,"min")||o.form.showError("ratio",_,"max"))}}function Kt(t,n){if(1&t&&(e.TgZ(0,"div",139)(1,"legend"),e.SDv(2,140),e.qZA(),e.TgZ(3,"div",8)(4,"label",141),e.SDv(5,142),e.qZA(),e.TgZ(6,"div",11)(7,"select",143),e.YNc(8,Ht,2,2,"option",19),e.qZA()()(),e.YNc(9,jt,31,10,"div",20),e.qZA()),2&t){const _=e.oxw(2);e.xp6(8),e.Q6J("ngForOf",_.info.compression_modes),e.xp6(1),e.Q6J("ngIf",_.hasCompressionEnabled())}}function Wt(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,165),e.qZA())}function en(t,n){1&t&&(e.TgZ(0,"span",41),e.SDv(1,166),e.qZA())}function _n(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"div",1)(1,"form",2,3)(3,"div",4)(4,"div",5),e.SDv(5,6),e.ALo(6,"titlecase"),e.ALo(7,"upperFirst"),e.qZA(),e.TgZ(8,"div",7)(9,"div",8)(10,"label",9),e.SDv(11,10),e.qZA(),e.TgZ(12,"div",11),e._UZ(13,"input",12),e.YNc(14,qo,2,0,"span",13),e.YNc(15,Xo,2,0,"span",13),e.YNc(16,Qo,2,0,"span",13),e.YNc(17,wo,2,0,"span",13),e.qZA()(),e.TgZ(18,"div",8)(19,"label",14),e.SDv(20,15),e.qZA(),e.TgZ(21,"div",11)(22,"select",16)(23,"option",17),e.SDv(24,18),e.qZA(),e.YNc(25,Jo,2,2,"option",19),e.qZA(),e.YNc(26,ko,2,0,"span",13),e.qZA()(),e.YNc(27,it,10,4,"div",20),e.TgZ(28,"div",8)(29,"label",21),e.SDv(30,22),e.qZA(),e.TgZ(31,"div",11)(32,"cd-select-badges",23),e.NdJ("selection",function(){e.CHM(_);const i=e.oxw();return e.KtG(i.appSelection())}),e.qZA(),e.YNc(33,st,1,3,"i",24),e.qZA()(),e.YNc(34,Gt,6,3,"div",20),e.YNc(35,Kt,10,2,"div",25),e.TgZ(36,"div")(37,"legend"),e.SDv(38,26),e.qZA(),e.TgZ(39,"div",8)(40,"label",27),e.ynx(41),e.SDv(42,28),e.BQk(),e.TgZ(43,"cd-helper")(44,"span"),e.SDv(45,29),e.qZA(),e._UZ(46,"br"),e.TgZ(47,"span"),e.SDv(48,30),e.qZA()()(),e.TgZ(49,"div",11),e._UZ(50,"input",31),e.YNc(51,Wt,2,0,"span",13),e.qZA()(),e.TgZ(52,"div",8)(53,"label",32),e.ynx(54),e.SDv(55,33),e.BQk(),e.TgZ(56,"cd-helper")(57,"span"),e.SDv(58,34),e.qZA(),e._UZ(59,"br"),e.TgZ(60,"span"),e.SDv(61,35),e.qZA()()(),e.TgZ(62,"div",11),e._UZ(63,"input",36),e.YNc(64,en,2,0,"span",13),e.qZA()()(),e.TgZ(65,"div",37)(66,"cd-rbd-configuration-form",38),e.NdJ("changes",function(i){e.CHM(_);const s=e.oxw();return e.KtG(s.currentConfigurationValues=i())}),e.qZA()()(),e.TgZ(67,"div",39)(68,"cd-form-button-panel",40),e.NdJ("submitActionEvent",function(){e.CHM(_);const i=e.oxw();return e.KtG(i.submit())}),e.ALo(69,"titlecase"),e.ALo(70,"upperFirst"),e.qZA()()()()()}if(2&t){const _=e.MAs(2),o=e.oxw();e.xp6(1),e.Q6J("formGroup",o.form),e.xp6(6),e.pQV(e.lcZ(6,26,o.action))(e.lcZ(7,28,o.resource)),e.QtT(5),e.xp6(7),e.Q6J("ngIf",o.form.showError("name",_,"required")),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",_,"uniqueName")),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",_,"rbdPool")),e.xp6(1),e.Q6J("ngIf",o.form.showError("name",_,"pattern")),e.xp6(8),e.Q6J("ngForOf",o.data.poolTypes),e.xp6(1),e.Q6J("ngIf",o.form.showError("poolType",_,"required")),e.xp6(1),e.Q6J("ngIf",o.isReplicated||o.isErasure),e.xp6(5),e.Q6J("customBadges",!0)("customBadgeValidators",o.data.applications.validators)("messages",o.data.applications.messages)("data",o.data.applications.selected)("options",o.data.applications.available)("selectionLimit",4),e.xp6(1),e.Q6J("ngIf",o.data.applications.selected<=0),e.xp6(1),e.Q6J("ngIf",o.isErasure||o.isReplicated),e.xp6(1),e.Q6J("ngIf",o.info.is_all_bluestore),e.xp6(16),e.Q6J("ngIf",o.form.showError("max_bytes",_,"pattern")),e.xp6(13),e.Q6J("ngIf",o.form.showError("max_objects",_,"min")),e.xp6(1),e.Q6J("hidden",o.isErasure||-1===o.data.applications.selected.indexOf("rbd")),e.xp6(1),e.Q6J("form",o.form)("initializeData",o.initializeConfigData),e.xp6(2),e.Q6J("form",o.form)("submitText",e.lcZ(69,30,o.action)+" "+e.lcZ(70,32,o.resource))}}let Ue=(()=>{class t extends M_.E{constructor(_,o,i,s,c,d,P,p,R,h,S){super(),this.dimlessBinaryPipe=_,this.route=o,this.router=i,this.modalService=s,this.poolService=c,this.authStorageService=d,this.formatter=P,this.taskWrapper=p,this.ecpService=R,this.crushRuleService=h,this.actionLabels=S,this.editing=!1,this.isReplicated=!1,this.isErasure=!1,this.data=new $o,this.externalPgChange=!1,this.current={rules:[]},this.initializeConfigData=new R_.t(1),this.currentConfigurationValues={},this.icons=b.P,this.crushUsage=void 0,this.ecpUsage=void 0,this.crushRuleMaxSize=10,this.editing=this.router.url.startsWith(`/pool/${M.MQ.EDIT}`),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource="pool",this.authenticate(),this.createForm()}authenticate(){if(this.permission=this.authStorageService.getPermissions().pool,!this.permission.read||!this.permission.update&&this.editing||!this.permission.create&&!this.editing)throw new m_._2}createForm(){const _=new Ne.d({mode:new l.p4("none"),algorithm:new l.p4(""),minBlobSize:new l.p4("",{updateOn:"blur"}),maxBlobSize:new l.p4("",{updateOn:"blur"}),ratio:new l.p4("",{updateOn:"blur"})});this.form=new Ne.d({name:new l.p4("",{validators:[l.kI.pattern(/^[.A-Za-z0-9_/-]+$/),l.kI.required,E.h.custom("rbdPool",()=>this.form&&this.form.getValue("name").includes("/")&&this.data&&-1!==this.data.applications.selected.indexOf("rbd"))]}),poolType:new l.p4("",{validators:[l.kI.required]}),crushRule:new l.p4(null,{validators:[E.h.custom("tooFewOsds",o=>this.info&&o&&this.info.osd_count<1),E.h.custom("required",o=>this.isReplicated&&this.info.crush_rules_replicated.length>0&&!o)]}),size:new l.p4("",{updateOn:"blur"}),erasureProfile:new l.p4(null),pgNum:new l.p4("",{validators:[l.kI.required]}),pgAutoscaleMode:new l.p4(null),ecOverwrites:new l.p4(!1),compression:_,max_bytes:new l.p4(""),max_objects:new l.p4(0)},[E.h.custom("form",()=>null)])}ngOnInit(){this.poolService.getInfo().subscribe(_=>{this.initInfo(_),this.editing?this.initEditMode():(this.setAvailableApps(),this.loadingReady()),this.listenToChanges(),this.setComplexValidators()})}initInfo(_){this.pgAutoscaleModes=_.pg_autoscale_modes,this.form.silentSet("pgAutoscaleMode",_.pg_autoscale_default_mode),this.form.silentSet("algorithm",_.bluestore_compression_algorithm),this.info=_,this.initEcp(_.erasure_code_profiles)}initEcp(_){this.setListControlStatus("erasureProfile",_),this.ecProfiles=_}setListControlStatus(_,o){const i=this.form.get(_),s=i.value;1!==o.length||s&&g().isEqual(s,o[0])?0===o.length&&s&&i.setValue(null):i.setValue(o[0]),o.length<=1?i.enabled&&i.disable():i.disabled&&i.enable()}initEditMode(){this.disableForEdit(),this.routeParamsSubscribe=this.route.params.subscribe(_=>this.poolService.get(_.name).subscribe(o=>{this.data.pool=o,this.initEditFormData(o),this.loadingReady()}))}disableForEdit(){["poolType","crushRule","size","erasureProfile","ecOverwrites"].forEach(_=>this.form.get(_).disable())}initEditFormData(_){this.initializeConfigData.next({initialData:_.configuration,sourceType:h_.h.pool}),this.poolTypeChange(_.type);const o=this.info.crush_rules_replicated.concat(this.info.crush_rules_erasure),i={name:_.pool_name,poolType:_.type,crushRule:o.find(s=>s.rule_name===_.crush_rule),size:_.size,erasureProfile:this.ecProfiles.find(s=>s.name===_.erasure_code_profile),pgAutoscaleMode:_.pg_autoscale_mode,pgNum:_.pg_num,ecOverwrites:_.flags_names.includes("ec_overwrites"),mode:_.options.compression_mode,algorithm:_.options.compression_algorithm,minBlobSize:this.dimlessBinaryPipe.transform(_.options.compression_min_blob_size),maxBlobSize:this.dimlessBinaryPipe.transform(_.options.compression_max_blob_size),ratio:_.options.compression_required_ratio,max_bytes:this.dimlessBinaryPipe.transform(_.quota_max_bytes),max_objects:_.quota_max_objects};Object.keys(i).forEach(s=>{const c=i[s];!g().isUndefined(c)&&""!==c&&this.form.silentSet(s,c)}),this.data.pgs=this.form.getValue("pgNum"),this.setAvailableApps(this.data.applications.default.concat(_.application_metadata)),this.data.applications.selected=_.application_metadata}setAvailableApps(_=this.data.applications.default){this.data.applications.available=g().uniq(_.sort()).map(o=>new C_.$(!1,o,""))}listenToChanges(){this.listenToChangesDuringAddEdit(),this.editing||this.listenToChangesDuringAdd()}listenToChangesDuringAddEdit(){this.form.get("pgNum").valueChanges.subscribe(_=>{const o=_-this.data.pgs;1===Math.abs(o)&&2!==_?this.doPgPowerJump(o):this.data.pgs=_})}doPgPowerJump(_){const o=this.calculatePgPower()+_;this.setPgs(-1===_?Math.round(o):Math.floor(o))}calculatePgPower(_=this.form.getValue("pgNum")){return Math.log(_)/Math.log(2)}setPgs(_){const o=Math.pow(2,_<0?0:_);this.data.pgs=o,this.form.silentSet("pgNum",o)}listenToChangesDuringAdd(){this.form.get("poolType").valueChanges.subscribe(_=>{this.poolTypeChange(_)}),this.form.get("crushRule").valueChanges.subscribe(_=>{this.crushDeletionBtn&&this.crushDeletionBtn.isOpen()&&this.crushDeletionBtn.close(),_&&(this.setCorrectMaxSize(_),this.crushRuleIsUsedBy(_.rule_name),this.replicatedRuleChange(),this.pgCalc())}),this.form.get("size").valueChanges.subscribe(()=>{this.pgCalc()}),this.form.get("erasureProfile").valueChanges.subscribe(_=>{this.ecpDeletionBtn&&this.ecpDeletionBtn.isOpen()&&this.ecpDeletionBtn.close(),_&&(this.ecpIsUsedBy(_.name),this.pgCalc())}),this.form.get("mode").valueChanges.subscribe(()=>{["minBlobSize","maxBlobSize","ratio"].forEach(_=>{this.form.get(_).updateValueAndValidity({emitEvent:!1})})}),this.form.get("minBlobSize").valueChanges.subscribe(()=>{this.form.get("maxBlobSize").updateValueAndValidity({emitEvent:!1})}),this.form.get("maxBlobSize").valueChanges.subscribe(()=>{this.form.get("minBlobSize").updateValueAndValidity({emitEvent:!1})})}poolTypeChange(_){if("replicated"===_?this.setTypeBooleans(!0,!1):this.setTypeBooleans(!1,"erasure"===_),!_||!this.info)return void(this.current.rules=[]);const o=this.info["crush_rules_"+_]||[];this.current.rules=o,!this.editing&&(this.isReplicated&&this.setListControlStatus("crushRule",o),this.replicatedRuleChange(),this.pgCalc())}setTypeBooleans(_,o){this.isReplicated=_,this.isErasure=o}replicatedRuleChange(){if(!this.isReplicated)return;const _=this.form.get("size");let o=this.form.getValue("size")||3;const i=this.getMinSize(),s=this.getMaxSize();o<i?o=i:o>s&&(o=s),o!==_.value&&this.form.silentSet("size",o)}getMinSize(){return!this.info||this.info.osd_count<1?0:1}getMaxSize(){const _=this.form.getValue("crushRule");return this.info?_?_.usable_size:Math.min(this.info.osd_count,3):0}pgCalc(){const _=this.form.getValue("poolType");if(!this.info||this.form.get("pgNum").dirty||!_)return;const o=100*this.info.osd_count,i=this.isReplicated?this.replicatedPgCalc(o):this.erasurePgCalc(o);if(!i)return;const s=this.data.pgs;this.alignPgs(i),this.externalPgChange||(this.externalPgChange=s!==this.data.pgs)}setCorrectMaxSize(_=this.form.getValue("crushRule")){if(!_)return;const i=T.searchFailureDomains(this.info.nodes,_.steps[0].item_name)[_.steps[1].type];_.usable_size=Math.min(i?i.length:this.crushRuleMaxSize,this.crushRuleMaxSize)}replicatedPgCalc(_){const o=this.form.get("size"),i=o.value;return o.valid&&i>0?_/i:0}erasurePgCalc(_){const o=this.form.get("erasureProfile"),i=o.value;return(o.valid||o.disabled)&&i?_/(i.k+i.m):0}alignPgs(_=this.form.getValue("pgNum")){this.setPgs(Math.round(this.calculatePgPower(_<1?1:_)))}setComplexValidators(){this.editing?this.form.get("name").setValidators([this.form.get("name").validator,E.h.custom("uniqueName",_=>this.data.pool&&this.info&&-1!==this.info.pool_names.indexOf(_)&&this.info.pool_names.indexOf(_)!==this.info.pool_names.indexOf(this.data.pool.pool_name))]):(E.h.validateIf(this.form.get("size"),()=>this.isReplicated,[E.h.custom("min",_=>this.form.getValue("size")&&_<this.getMinSize()),E.h.custom("max",_=>this.form.getValue("size")&&this.getMaxSize()<_)]),this.form.get("name").setValidators([this.form.get("name").validator,E.h.custom("uniqueName",_=>this.info&&-1!==this.info.pool_names.indexOf(_))])),this.setCompressionValidators()}setCompressionValidators(){E.h.validateIf(this.form.get("minBlobSize"),()=>this.hasCompressionEnabled(),[l.kI.min(0),E.h.custom("maximum",_=>this.oddBlobSize(_,this.form.getValue("maxBlobSize")))]),E.h.validateIf(this.form.get("maxBlobSize"),()=>this.hasCompressionEnabled(),[l.kI.min(0),E.h.custom("minimum",_=>this.oddBlobSize(this.form.getValue("minBlobSize"),_))]),E.h.validateIf(this.form.get("ratio"),()=>this.hasCompressionEnabled(),[l.kI.min(0),l.kI.max(1)])}oddBlobSize(_,o){const i=this.formatter.toBytes(_),s=this.formatter.toBytes(o);return Boolean(i&&s&&i>=s)}hasCompressionEnabled(){return this.form.getValue("mode")&&"none"!==this.form.get("mode").value.toLowerCase()}describeCrushStep(_){return[_.op.replace("_"," "),_.item_name||"",_.type?_.num+" type "+_.type:""].join(" ")}addErasureCodeProfile(){this.addModal(bo,_=>this.reloadECPs(_))}addModal(_,o){this.hideOpenTooltips(),this.modalService.show(_).componentInstance.submitAction.subscribe(s=>{o(s.name)})}hideOpenTooltips(){const _=o=>o&&o.isOpen()&&o.close();_(this.ecpDeletionBtn),_(this.crushDeletionBtn)}reloadECPs(_){this.reloadList({newItemName:_,getInfo:()=>this.ecpService.list(),initInfo:o=>this.initEcp(o),findNewItem:()=>this.ecProfiles.find(o=>o.name===_),controlName:"erasureProfile"})}reloadList({newItemName:_,getInfo:o,initInfo:i,findNewItem:s,controlName:c}){this.modalSubscription&&this.modalSubscription.unsubscribe(),o().subscribe(d=>{if(i(d),!_)return;const P=s();P&&this.form.get(c).setValue(P)})}deleteErasureCodeProfile(){this.deletionModal({value:this.form.getValue("erasureProfile"),usage:this.ecpUsage,deletionBtn:this.ecpDeletionBtn,dataName:"erasureInfo",getTabs:()=>this.ecpInfoTabs,tabPosition:"used-by-pools",nameAttribute:"name",itemDescription:"erasure code profile",reloadFn:()=>this.reloadECPs(),deleteFn:_=>this.ecpService.delete(_),taskName:"ecp/delete"})}deletionModal({value:_,usage:o,deletionBtn:i,dataName:s,getTabs:c,tabPosition:d,nameAttribute:P,itemDescription:p,reloadFn:R,deleteFn:h,taskName:S}){if(!_)return;if(o)return i.animation=!1,i.toggle(),this.data[s]=!0,void setTimeout(()=>{const u=c();u&&u.select(d)},50);const m=_[P];this.modalService.show(Fe.M,{itemDescription:p,itemNames:[m],submitActionObservable:()=>{const u=h(m);return u.subscribe(()=>R()),this.taskWrapper.wrapTaskAroundCall({task:new v.R(S,{name:m}),call:u})}})}addCrushRule(){this.addModal(y_,_=>this.reloadCrushRules(_))}reloadCrushRules(_){this.reloadList({newItemName:_,getInfo:()=>this.poolService.getInfo(),initInfo:o=>{this.initInfo(o),this.poolTypeChange("replicated")},findNewItem:()=>this.info.crush_rules_replicated.find(o=>o.rule_name===_),controlName:"crushRule"})}deleteCrushRule(){this.deletionModal({value:this.form.getValue("crushRule"),usage:this.crushUsage,deletionBtn:this.crushDeletionBtn,dataName:"crushInfo",getTabs:()=>this.crushInfoTabs,tabPosition:"used-by-pools",nameAttribute:"rule_name",itemDescription:"crush rule",reloadFn:()=>this.reloadCrushRules(),deleteFn:_=>this.crushRuleService.delete(_),taskName:"crushRule/delete"})}crushRuleIsUsedBy(_){this.crushUsage=_?this.info.used_rules[_]:void 0}ecpIsUsedBy(_){this.ecpUsage=_?this.info.used_profiles[_]:void 0}submit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const _={pool:this.form.getValue("name")};this.assignFormFields(_,[{externalFieldName:"pool_type",formControlName:"poolType"},{externalFieldName:"pg_autoscale_mode",formControlName:"pgAutoscaleMode",editable:!0},{externalFieldName:"pg_num",formControlName:"pgNum",replaceFn:i=>"on"===this.form.getValue("pgAutoscaleMode")?1:i,editable:!0},this.isReplicated?{externalFieldName:"size",formControlName:"size"}:{externalFieldName:"erasure_code_profile",formControlName:"erasureProfile",attr:"name"},{externalFieldName:"rule_name",formControlName:"crushRule",replaceFn:i=>this.isReplicated?i&&i.rule_name:void 0},{externalFieldName:"quota_max_bytes",formControlName:"max_bytes",replaceFn:this.formatter.toBytes,editable:!0,resetValue:this.editing?0:void 0},{externalFieldName:"quota_max_objects",formControlName:"max_objects",editable:!0,resetValue:this.editing?0:void 0}]),this.info.is_all_bluestore&&(this.assignFormField(_,{externalFieldName:"flags",formControlName:"ecOverwrites",replaceFn:()=>this.isErasure?["ec_overwrites"]:void 0}),"none"!==this.form.getValue("mode")?this.assignFormFields(_,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:i=>this.hasCompressionEnabled()&&i},{externalFieldName:"compression_algorithm",formControlName:"algorithm",editable:!0},{externalFieldName:"compression_min_blob_size",formControlName:"minBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_max_blob_size",formControlName:"maxBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_required_ratio",formControlName:"ratio",editable:!0,resetValue:0}]):this.editing&&this.assignFormFields(_,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:()=>"unset"},{externalFieldName:"srcpool",formControlName:"name",editable:!0,replaceFn:()=>this.data.pool.pool_name}]));const o=this.data.applications.selected;(o.length>0||this.editing)&&(_.application_metadata=o),this.isReplicated&&!g().isEmpty(this.currentConfigurationValues)&&(_.configuration=this.currentConfigurationValues),this.triggerApiTask(_)}assignFormFields(_,o){o.forEach(i=>this.assignFormField(_,i))}assignFormField(_,{externalFieldName:o,formControlName:i,attr:s,replaceFn:c,editable:d,resetValue:P}){if(this.editing&&(!d||this.form.get(i).pristine))return;const p=this.form.getValue(i);let R=c?c(p):s?g().get(p,s):p;if(!p||!R){if(!d||g().isUndefined(P))return;R=P}_[o]=R}triggerApiTask(_){this.taskWrapper.wrapTaskAroundCall({task:new v.R("pool/"+(this.editing?M.MQ.EDIT:M.MQ.CREATE),{pool_name:_.hasOwnProperty("srcpool")?_.srcpool:_.pool}),call:this.poolService[this.editing?M.MQ.UPDATE:M.MQ.CREATE](_)}).subscribe({error:o=>{g().isObject(o.error)&&"34"===o.error.code&&this.form.get("pgNum").setErrors({34:!0}),this.form.setErrors({cdSubmitButton:!0})},complete:()=>this.router.navigate(["/pool"])})}appSelection(){this.form.get("name").updateValueAndValidity({emitEvent:!1,onlySelf:!0})}}return t.\u0275fac=function(_){return new(_||t)(e.Y36(S_.$),e.Y36(Oe.gz),e.Y36(Oe.F0),e.Y36(De.Z),e.Y36(ue.q),e.Y36(xe.j),e.Y36(T_.H),e.Y36(de.P),e.Y36(Me),e.Y36(ve.H),e.Y36(M.p4))},t.\u0275cmp=e.Xpm({type:t,selectors:[["cd-pool-form"]],viewQuery:function(_,o){if(1&_&&(e.Gf(Uo,5),e.Gf(Go,5),e.Gf(Ho,5),e.Gf(zo,5)),2&_){let i;e.iGM(i=e.CRH())&&(o.crushInfoTabs=i.first),e.iGM(i=e.CRH())&&(o.crushDeletionBtn=i.first),e.iGM(i=e.CRH())&&(o.ecpInfoTabs=i.first),e.iGM(i=e.CRH())&&(o.ecpDeletionBtn=i.first)}},features:[e.qOj],decls:1,vars:1,consts:function(){let n,_,o,i,s,c,d,P,p,R,h,S,m,u,A,$,I,D,x,y,Z,U,G,H,z,q,X,Q,w,J,k,V,Y,B,j,K,N,W,ee,_e,oe,te,ne,ie,se,ae,le,re,ce,O,Xe,Qe,we,Je,ke,Ve,Ye,Be,je,Ke,We,e_,__,o_,t_,n_,i_,s_,a_,l_,r_,c_,O_,d_,u_,P_;return n="\n " + "\ufffd0\ufffd" + "\n " + "\ufffd1\ufffd" + "\n ",_="Name",o="\uC774\uB984...",i="\uD480 \uD615\uD0DC",s="-- \uD480 \uD615\uD0DC \uC120\uD0DD --",c="Applications",d="Pools should be associated with an application tag",P="Quotas",p="Max bytes",R="Leave it blank or specify 0 to disable this quota.",h="A valid quota should be greater than 0.",S="\uC608., 100 GiB",m="Max objects",u="Leave it blank or specify 0 to disable this quota.",A="A valid quota should be greater than 0.",$="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",I="\uC120\uD0DD\uD55C Ceph \uD480\uC774\uB984\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uC911\uC785\uB2C8\uB2E4.",D="It's not possible to create an RBD pool with '/' in the name. Please change the name or remove 'rbd' from the applications list.",x="Pool name can only contain letters, numbers, '.', '-', '_' or '/'.",y="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",Z="PG Autoscale",U="\uAC8C\uC7AC\uC704\uCE58 \uADF8\uB8F9",G="\uACC4\uC0B0 \uB3C4\uC6C0\uB9D0",H="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",z="\uC801\uC5B4\uB3C4 \uD558\uB098\uC758 \uAC8C\uC7AC\uC704\uCE58 \uADF8\uB8F9\uC774 \uD544\uC694\uD568!",q="\uD074\uB7EC\uC2A4\uD130\uB294 \uC774 \uB9CE\uC740 PG\uB4E4\uB97C \uCC98\uB9AC \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD544\uC694\uD55C PG \uC591\uC744 \uB2E4\uC2DC \uACC4\uC0B0\uD558\uC2ED\uC2DC\uC624.",X="The current PGs settings were calculated for you, you should make sure the values suit your needs before submit.",Q="\uBCF5\uC81C\uB418\uB294 \uD06C\uAE30",w="Minimum: \n " + "\ufffd0\ufffd" + "\n ",J="Maximum: \n " + "\ufffd0\ufffd" + "\n ",k="The size specified is out of range. A value from \n " + "\ufffd0\ufffd" + " to \n " + "\ufffd1\ufffd" + " is usable.\n ",V="A size of 1 will not create a replication of the object. The 'Replicated size' includes the object itself.",Y="Flags",B="EC \uB36E\uC5B4\uC4F0\uAE30",j="CRUSH",K="Erasure Code \uD504\uB85C\uD30C\uC77C",N="This profile can't be deleted as it is in use.",W="\uB85C\uB529\uC911...",ee="-- \uC0AC\uC6A9\uAC00\uB2A5\uD55C Erasure Code \uD504\uB85C\uD30C\uC77C \uC5C6\uC74C --",_e="-- \uD55C\uAC1C\uC758 Erasure Code \uD504\uB85C\uD30C\uC77C \uC120\uD0DD --",oe="Profile",te="Used by pools",ne="Profile is not in use.",ie="\uD06C\uB7EC\uC26C \uB8F0\uC14B",se="A new crush ruleset will be implicitly created.",ae="\uD06C\uB7EC\uC26C \uB8F0\uC14B",le="There are no rules.",re="-- \uD06C\uB7EC\uC26C \uB8F0 \uC120\uD0DD --",ce="Placement and\n replication strategies or distribution policies that allow to\n specify how CRUSH places data replicas.",O="This rule can't be deleted as it is in use.",Xe="\uD06C\uB7EC\uC26C \uB8F0",Qe="\uD06C\uB7EC\uC26C \uB2E8\uACC4\uB4E4",we="Used by pools",Je="Rule is not in use.",ke="\uC774 \uD544\uB4DC\uB294 \uC694\uAD6C\uB429\uB2C8\uB2E4!",Ve="The rule can't be used in the current cluster as it has too few OSDs to meet the minimum required OSD by this rule.",Ye="\uC555\uCD95",Be="Mode",je="\uC54C\uACE0\uB9AC\uC998",Ke="\uCD5C\uC18C blob \uD06C\uAE30",We="\uC608) 128KiB",e_="\uCD5C\uB300 blob \uD06C\uAE30",__="\uC608) 512KiB",o_="\uBE44\uC728",t_="\uC555\uCD95\uC728",n_="\uB85C\uB529\uC911...",i_="-- \uC774\uC6A9\uAC00\uB2A5\uD55C Erasure \uC555\uCD95\uC54C\uACE0\uB9AC\uC998 \uC5C6\uC74C --",s_="\uAC12\uC740 0\uBCF4\uB2E4 \uCEE4\uC57C\uD569\uB2C8\uB2E4",a_="Value should be less than the maximum blob size",l_="Size must be a number or in a valid format. eg: 5 GiB",r_="\uAC12\uC740 0\uBCF4\uB2E4 \uCEE4\uC57C\uD569\uB2C8\uB2E4",c_="\uAC12\uC740 \uCD5C\uC18C blob \uD06C\uAE30\uBCF4\uB2E4 \uCEE4\uC57C \uD569\uB2C8\uB2E4",O_="Size must be a number or in a valid format. eg: 5 GiB",d_="\uAC12\uC740 0.0\uACFC 1.0 \uC0AC\uC774 \uC5EC\uC57C \uD569\uB2C8\uB2E4.",u_="Size must be a number or in a valid format. eg: 5 GiB",P_="The value should be greater or equal to 0",[["class","cd-col-form",4,"cdFormLoading"],[1,"cd-col-form"],["name","form","novalidate","",3,"formGroup"],["formDir","ngForm"],[1,"card"],[1,"card-header"],n,[1,"card-body"],[1,"form-group","row"],["for","name",1,"cd-col-form-label","required"],_,[1,"cd-col-form-input"],["id","name","name","name","type","text","placeholder",o,"formControlName","name","autofocus","",1,"form-control"],["class","invalid-feedback",4,"ngIf"],["for","poolType",1,"cd-col-form-label","required"],i,["id","poolType","formControlName","poolType","name","poolType",1,"form-select"],["ngValue",""],s,[3,"value",4,"ngFor","ngForOf"],[4,"ngIf"],["for","applications",1,"cd-col-form-label"],c,["id","applications",3,"customBadges","customBadgeValidators","messages","data","options","selectionLimit","selection"],["title",d,3,"class",4,"ngIf"],["formGroupName","compression",4,"ngIf"],P,["for","max_bytes",1,"cd-col-form-label"],p,R,h,["id","max_bytes","name","max_bytes","type","text","formControlName","max_bytes","placeholder",S,"defaultUnit","GiB","cdDimlessBinary","",1,"form-control"],["for","max_objects",1,"cd-col-form-label"],m,u,A,["id","max_objects","min","0","name","max_objects","type","number","formControlName","max_objects",1,"form-control"],[3,"hidden"],[3,"form","initializeData","changes"],[1,"card-footer"],["wrappingClass","text-right",3,"form","submitText","submitActionEvent"],[1,"invalid-feedback"],$,I,D,x,[3,"value"],y,["for","pgAutoscaleMode",1,"cd-col-form-label"],Z,["id","pgAutoscaleMode","name","pgAutoscaleMode","formControlName","pgAutoscaleMode",1,"form-select"],["class","form-group row",4,"ngIf"],["for","pgNum",1,"cd-col-form-label","required"],U,["id","pgNum","name","pgNum","formControlName","pgNum","min","1","type","number","required","",1,"form-control",3,"focus","blur"],[1,"form-text","text-muted"],["section","pgs","docText",G],["class","form-text text-muted",4,"ngIf"],H,z,q,X,["for","size",1,"cd-col-form-label","required"],Q,["id","size","name","size","type","number","formControlName","size",1,"form-control",3,"max","min"],["class","text-warning-dark",4,"ngIf"],[1,"list-inline"],w,J,k,[1,"text-warning-dark"],V,[1,"cd-col-form-label"],Y,[1,"custom-control","custom-checkbox"],["type","checkbox","id","ec-overwrites","formControlName","ecOverwrites",1,"custom-control-input"],["for","ec-overwrites",1,"custom-control-label"],B,["title",d],j,["for","erasureProfile",1,"cd-col-form-label"],K,[1,"input-group","mb-1"],["id","erasureProfile","name","erasureProfile","formControlName","erasureProfile",1,"form-select"],["ngValue","",4,"ngIf"],[3,"ngValue",4,"ngIf"],[3,"ngValue",4,"ngFor","ngForOf"],["id","ecp-info-button","type","button",1,"btn","btn-light",3,"ngClass","click"],["aria-hidden","true",3,"ngClass"],["class","btn btn-light","type","button",3,"click",4,"ngIf"],["class","btn btn-light","type","button","ngbTooltip",N,"triggers","manual",3,"click",4,"ngIf"],["class","form-text text-muted","id","ecp-info-block",4,"ngIf"],W,[3,"ngValue"],ee,_e,["type","button",1,"btn","btn-light",3,"click"],["type","button","ngbTooltip",N,"triggers","manual",1,"btn","btn-light",3,"click"],["ecpDeletionBtn","ngbTooltip"],["id","ecp-info-block",1,"form-text","text-muted"],["ngbNav","",1,"nav-tabs"],["ecpInfoTabs","ngbNav"],["ngbNavItem","ecp-info"],["ngbNavLink",""],oe,["ngbNavContent",""],["ngbNavItem","used-by-pools"],te,[3,"ngbNavOutlet"],[3,"renderObjects","hideKeys","data","autoReload"],["ecpIsNotUsed",""],[4,"ngIf","ngIfElse"],ne,[4,"ngFor","ngForOf"],["for","crushRule",1,"cd-col-form-label"],ie,se,ae,["noRules",""],le,[1,"input-group"],["id","crushRule","formControlName","crushRule","name","crushSet",1,"form-select"],re,["id","crush-info-button","type","button","ngbTooltip",ce,1,"btn","btn-light",3,"ngClass","click"],["class","btn btn-light","type","button","ngbTooltip",O,"triggers","manual",3,"click",4,"ngIf"],["class","form-text text-muted","id","crush-info-block",4,"ngIf"],["type","button","ngbTooltip",O,"triggers","manual",1,"btn","btn-light",3,"click"],["crushDeletionBtn","ngbTooltip"],["id","crush-info-block",1,"form-text","text-muted"],["crushInfoTabs","ngbNav"],["ngbNavItem","crush-rule-info"],Xe,["ngbNavItem","crush-rule-steps"],Qe,we,["ruleIsNotUsed",""],Je,ke,Ve,["formGroupName","compression"],Ye,["for","mode",1,"cd-col-form-label"],Be,["id","mode","name","mode","formControlName","mode",1,"form-select"],["for","algorithm",1,"cd-col-form-label"],je,["id","algorithm","name","algorithm","formControlName","algorithm",1,"form-select"],["for","minBlobSize",1,"cd-col-form-label"],Ke,["id","minBlobSize","name","minBlobSize","formControlName","minBlobSize","type","text","min","0","placeholder",We,"defaultUnit","KiB","cdDimlessBinary","",1,"form-control"],["for","maxBlobSize",1,"cd-col-form-label"],e_,["id","maxBlobSize","type","text","min","0","formControlName","maxBlobSize","placeholder",__,"defaultUnit","KiB","cdDimlessBinary","",1,"form-control"],["for","ratio",1,"cd-col-form-label"],o_,["id","ratio","name","ratio","formControlName","ratio","type","number","min","0","max","1","step","0.1","placeholder",t_,1,"form-control"],n_,i_,s_,a_,l_,r_,c_,O_,d_,u_,P_]},template:function(_,o){1&_&&e.YNc(0,_n,71,34,"div",0),2&_&&e.Q6J("cdFormLoading",o.loading)},dependencies:[C.mk,C.sg,C.O5,f.uN,f.Pz,f.nv,f.Vx,f.tO,f.Dy,Pe.S,Io.m,Do.K,fe.p,ye.b,Ee.U,xo.Q,yo.y,ge.o,pe.b,Re.P,me.V,l._Y,l.YN,l.Kr,l.Fj,l.wV,l.Wl,l.EJ,l.JJ,l.JL,l.Q7,l.qQ,l.Fd,l.sg,l.u,l.x0,f._L,Zo.d,C.rS,Ce.m],styles:[".icon-warning-color[_ngcontent-%COMP%]{margin-left:3px}"]}),t})();var on=r(19773),tn=r(20687),nn=r(68136),he=r(69158),Se=r(83697),L=r(99466),sn=r(91801),an=r(68774),ln=r(66369),Ge=r(38047),Te=r(51847);class rn{constructor(n){this.pool_name=n}}var cn=r(64724),On=r(60251),He=r(76317),dn=r(94928),un=r(23240),ze=r(51295),Pn=r(59376),fn=r(42176);function En(t,n){if(1&t&&e._UZ(0,"cd-table-key-value",12),2&t){const _=e.oxw(2);e.Q6J("renderObjects",!0)("data",_.poolDetails)("autoReload",!1)}}function gn(t,n){if(1&t&&e._UZ(0,"cd-grafana",15),2&t){const _=e.oxw(3);e.MGl("grafanaPath","ceph-pool-detail?var-pool_name=",_.selection.pool_name,""),e.Q6J("type","metrics")}}function pn(t,n){1&t&&(e.ynx(0,13),e.TgZ(1,"a",5),e.SDv(2,14),e.qZA(),e.YNc(3,gn,1,2,"ng-template",7),e.BQk())}function Rn(t,n){if(1&t&&e._UZ(0,"cd-rbd-configuration-table",18),2&t){const _=e.oxw(3);e.Q6J("data",_.selectedPoolConfiguration)}}function mn(t,n){1&t&&(e.ynx(0,16),e.TgZ(1,"a",5),e.SDv(2,17),e.qZA(),e.YNc(3,Rn,1,1,"ng-template",7),e.BQk())}function Cn(t,n){if(1&t&&e._UZ(0,"cd-table",21),2&t){const _=e.oxw(3);e.Q6J("data",_.cacheTiers)("columns",_.cacheTierColumns)("autoSave",!1)}}function Mn(t,n){1&t&&(e.ynx(0,19),e.TgZ(1,"a",5),e.SDv(2,20),e.qZA(),e.YNc(3,Cn,1,3,"ng-template",7),e.BQk())}function hn(t,n){if(1&t&&(e.ynx(0,1),e.TgZ(1,"nav",2,3),e.ynx(3,4),e.TgZ(4,"a",5),e.SDv(5,6),e.qZA(),e.YNc(6,En,1,3,"ng-template",7),e.BQk(),e.YNc(7,pn,4,0,"ng-container",8),e.YNc(8,mn,4,0,"ng-container",9),e.YNc(9,Mn,4,0,"ng-container",10),e.qZA(),e._UZ(10,"div",11),e.BQk()),2&t){const _=e.MAs(2),o=e.oxw();e.xp6(7),e.Q6J("ngIf",o.permissions.grafana.read),e.xp6(1),e.Q6J("ngIf","replicated"===o.selection.type),e.xp6(1),e.Q6J("ngIf",(null==o.selection.tiers?null:o.selection.tiers.length)>0),e.xp6(1),e.Q6J("ngbNavOutlet",_)}}let Sn=(()=>{class t{constructor(_){this.poolService=_,this.cacheTierColumns=[],this.omittedPoolAttributes=["cdExecuting","cdIsBinary","stats"],this.cacheTierColumns=[{prop:"pool_name",name:"Name",flexGrow:3},{prop:"cache_mode",name:"Cache Mode",flexGrow:2},{prop:"cache_min_evict_age",name:"Min Evict Age",flexGrow:2},{prop:"cache_min_flush_age",name:"Min Flush Age",flexGrow:2},{prop:"target_max_bytes",name:"Target Max Bytes",flexGrow:2},{prop:"target_max_objects",name:"Target Max Objects",flexGrow:2}]}ngOnChanges(){this.selection&&(this.poolService.getConfiguration(this.selection.pool_name).subscribe(_=>{ze.T.updateChanged(this,{selectedPoolConfiguration:_})}),ze.T.updateChanged(this,{poolDetails:g().omit(this.selection,this.omittedPoolAttributes)}))}}return t.\u0275fac=function(_){return new(_||t)(e.Y36(ue.q))},t.\u0275cmp=e.Xpm({type:t,selectors:[["cd-pool-details"]],inputs:{cacheTiers:"cacheTiers",permissions:"permissions",selection:"selection"},features:[e.TTD],decls:1,vars:1,consts:function(){let n,_,o,i,s;return n="\uC138\uBD80\uC124\uBA85",_="\uC131\uB2A5 \uC138\uBD80\uC815\uBCF4\uB4E4",o="Pool details",i="\uC124\uC815",s="\uCF00\uC26C \uACC4\uCE35\uB4E4 \uC0C1\uC138\uC124\uBA85\uB4E4",[["cdTableDetail","",4,"ngIf"],["cdTableDetail",""],["ngbNav","","cdStatefulTab","pool-details",1,"nav-tabs"],["nav","ngbNav"],["ngbNavItem","details"],["ngbNavLink",""],n,["ngbNavContent",""],["ngbNavItem","performance-details",4,"ngIf"],["ngbNavItem","configuration",4,"ngIf"],["ngbNavItem","cache-tiers-details",4,"ngIf"],[3,"ngbNavOutlet"],[3,"renderObjects","data","autoReload"],["ngbNavItem","performance-details"],_,["title",o,"uid","-xyV8KCiz","grafanaStyle","three",3,"grafanaPath","type"],["ngbNavItem","configuration"],i,[3,"data"],["ngbNavItem","cache-tiers-details"],s,["columnMode","flex",3,"data","columns","autoSave"]]},template:function(_,o){1&_&&e.YNc(0,hn,11,4,"ng-container",0),2&_&&e.Q6J("ngIf",o.selection)},dependencies:[C.O5,f.uN,f.Pz,f.nv,f.Vx,f.tO,f.Dy,He.F,Se.a,ye.b,Pn.m,fn.P],changeDetection:0}),t})();const Tn=["poolUsageTpl"],Ln=["poolConfigurationSourceTpl"];function An(t,n){if(1&t){const _=e.EpF();e.TgZ(0,"cd-table",9,10),e.NdJ("fetchData",function(){e.CHM(_);const i=e.oxw();return e.KtG(i.taskListService.fetch())})("setExpandedRow",function(i){e.CHM(_);const s=e.oxw();return e.KtG(s.setExpandedRow(i))})("updateSelection",function(i){e.CHM(_);const s=e.oxw();return e.KtG(s.updateSelection(i))}),e._UZ(2,"cd-table-actions",11)(3,"cd-pool-details",12),e.qZA()}if(2&t){const _=e.oxw();e.Q6J("data",_.pools)("columns",_.columns)("hasDetails",!0)("status",_.tableStatus)("autoReload",-1),e.xp6(2),e.Q6J("permission",_.permissions.pool)("selection",_.selection)("tableActions",_.tableActions),e.xp6(1),e.Q6J("selection",_.expandedRow)("permissions",_.permissions)("cacheTiers",_.cacheTiers)}}function Fn(t,n){1&t&&e._UZ(0,"cd-grafana",14),2&t&&e.Q6J("grafanaPath","ceph-pools-overview?")("type","metrics")}function Nn(t,n){1&t&&(e.ynx(0,2),e.TgZ(1,"a",3),e.SDv(2,13),e.qZA(),e.YNc(3,Fn,1,2,"ng-template",5),e.BQk())}function bn(t,n){if(1&t&&e._UZ(0,"cd-usage-bar",16),2&t){const _=e.oxw().row;e.Q6J("total",_.stats.bytes_used.latest+_.stats.avail_raw.latest)("used",_.stats.bytes_used.latest)("title",_.pool_name)}}function vn(t,n){if(1&t&&e.YNc(0,bn,1,3,"cd-usage-bar",15),2&t){const _=n.row;e.Q6J("ngIf",null==_.stats||null==_.stats.avail_raw?null:_.stats.avail_raw.latest)}}const Le="pool";let $n=(()=>{class t extends nn.o{constructor(_,o,i,s,c,d,P,p,R,h,S){super(),this.poolService=_,this.taskWrapper=o,this.ecpService=i,this.authStorageService=s,this.taskListService=c,this.modalService=d,this.pgCategoryService=P,this.dimlessPipe=p,this.urlBuilder=R,this.configurationService=h,this.actionLabels=S,this.selection=new an.r,this.executingTasks=[],this.tableStatus=new he.E,this.cacheTiers=[],this.monAllowPoolDelete=!1,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{permission:"create",icon:b.P.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE},{permission:"update",icon:b.P.edit,routerLink:()=>this.urlBuilder.getEdit(encodeURIComponent(this.selection.first().pool_name)),name:this.actionLabels.EDIT},{permission:"delete",icon:b.P.destroy,click:()=>this.deletePoolModal(),name:this.actionLabels.DELETE,disable:this.getDisableDesc.bind(this)}],this.permissions.configOpt.read&&this.configurationService.get("mon_allow_pool_delete").subscribe(m=>{if(g().has(m,"value")){const u=g().find(m.value,A=>"mon"===A.section)||{value:!1};this.monAllowPoolDelete="true"===u.value}})}ngOnInit(){const _=(o,i,s)=>g().get(i,o)>g().get(s,o)?1:-1;this.columns=[{prop:"pool_name",name:"Name",flexGrow:4,cellTransformation:L.e.executing},{prop:"data_protection",name:"Data Protection",cellTransformation:L.e.badge,customTemplateConfig:{class:"badge-background-gray"},flexGrow:1.3},{prop:"application_metadata",name:"Applications",cellTransformation:L.e.badge,customTemplateConfig:{class:"badge-background-primary"},flexGrow:1.5},{prop:"pg_status",name:"PG Status",flexGrow:1.2,cellClass:({row:o,column:i,value:s})=>this.getPgStatusCellClass(o,i,s)},{prop:"crush_rule",name:"Crush Ruleset",isHidden:!0,flexGrow:2},{name:"Usage",prop:"usage",cellTemplate:this.poolUsageTpl,flexGrow:1.2},{prop:"stats.rd_bytes.rates",name:"Read bytes",comparator:(o,i,s,c)=>_("stats.rd_bytes.latest",s,c),cellTransformation:L.e.sparkline,flexGrow:1.5},{prop:"stats.wr_bytes.rates",name:"Write bytes",comparator:(o,i,s,c)=>_("stats.wr_bytes.latest",s,c),cellTransformation:L.e.sparkline,flexGrow:1.5},{prop:"stats.rd.rate",name:"Read ops",flexGrow:1,pipe:this.dimlessPipe,cellTransformation:L.e.perSecond},{prop:"stats.wr.rate",name:"Write ops",flexGrow:1,pipe:this.dimlessPipe,cellTransformation:L.e.perSecond}],this.taskListService.init(()=>this.ecpService.list().pipe((0,on.zg)(o=>(this.ecProfileList=o,this.poolService.getList()))),void 0,o=>{this.pools=this.transformPoolsData(o),this.tableStatus=new he.E},()=>{this.table.reset(),this.tableStatus=new he.E(sn.T.ValueException)},o=>o.name.startsWith(`${Le}/`),(o,i)=>i.metadata.pool_name===o.pool_name,{default:o=>new rn(o.pool_name)})}updateSelection(_){this.selection=_}deletePoolModal(){const _=this.selection.first().pool_name;this.modalService.show(Fe.M,{itemDescription:"Pool",itemNames:[_],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new v.R(`${Le}/${M.MQ.DELETE}`,{pool_name:_}),call:this.poolService.delete(_)})})}getPgStatusCellClass(_,o,i){return{"text-right":!0,[`pg-${this.pgCategoryService.getTypeByStates(i)}`]:!0}}getErasureCodeProfile(_){let o="";return g().forEach(this.ecProfileList,i=>{i.name===_&&(o=`EC: ${i.k}+${i.m}`)}),o}transformPoolsData(_){const o=["bytes_used","max_avail","avail_raw","percent_used","rd_bytes","wr_bytes","rd","wr"],i={latest:0,rate:0,rates:[]};return g().forEach(_,s=>{s.pg_status=this.transformPgStatus(s.pg_status);const c={};g().forEach(o,d=>{c[d]=s.stats&&s.stats[d]?s.stats[d]:i}),s.stats=c,s.usage=c.percent_used.latest,!s.cdExecuting&&s.pg_num+s.pg_placement_num!==s.pg_num_target+s.pg_placement_num_target&&(s.cdExecuting="Updating"),["rd_bytes","wr_bytes"].forEach(d=>{s.stats[d].rates=s.stats[d].rates.map(P=>P[1])}),s.cdIsBinary=!0,"erasure"===s.type&&(s.data_protection=this.getErasureCodeProfile(s.erasure_code_profile)),"replicated"===s.type&&(s.data_protection=`replica: \xd7${s.size}`)}),_}transformPgStatus(_){const o=[];return g().forEach(_,(i,s)=>{o.push(`${i} ${s}`)}),o.join(", ")}getSelectionTiers(){if(typeof this.expandedRow<"u"){const _=this.expandedRow.tiers;this.cacheTiers=this.pools.filter(o=>_.includes(o.pool))}}getDisableDesc(){return!this.selection?.hasSelection||!this.monAllowPoolDelete&&"Pool deletion is disabled by the mon_allow_pool_delete configuration setting."}setExpandedRow(_){super.setExpandedRow(_),this.getSelectionTiers()}}return t.\u0275fac=function(_){return new(_||t)(e.Y36(ue.q),e.Y36(de.P),e.Y36(Me),e.Y36(xe.j),e.Y36(Ge.j),e.Y36(De.Z),e.Y36(tn.j),e.Y36(ln.n),e.Y36(Te.F),e.Y36(cn.e),e.Y36(M.p4))},t.\u0275cmp=e.Xpm({type:t,selectors:[["cd-pool-list"]],viewQuery:function(_,o){if(1&_&&(e.Gf(Se.a,5),e.Gf(Tn,7),e.Gf(Ln,5)),2&_){let i;e.iGM(i=e.CRH())&&(o.table=i.first),e.iGM(i=e.CRH())&&(o.poolUsageTpl=i.first),e.iGM(i=e.CRH())&&(o.poolConfigurationSourceTpl=i.first)}},features:[e._Bn([Ge.j,{provide:Te.F,useValue:new Te.F(Le)}]),e.qOj],decls:10,vars:2,consts:function(){let n,_,o;return n="\uD480 \uBAA9\uB85D\uB4E4",_="\uD1B5\uD569 \uC131\uB2A5\uCE58",o="Ceph pools overview",[["ngbNav","",1,"nav-tabs"],["nav","ngbNav"],["ngbNavItem",""],["ngbNavLink",""],n,["ngbNavContent",""],["ngbNavItem","",4,"cdScope"],[3,"ngbNavOutlet"],["poolUsageTpl",""],["id","pool-list","selectionType","single",3,"data","columns","hasDetails","status","autoReload","fetchData","setExpandedRow","updateSelection"],["table",""],["id","pool-list-actions",1,"table-actions",3,"permission","selection","tableActions"],["cdTableDetail","","id","pool-list-details",3,"selection","permissions","cacheTiers"],_,["title",o,"uid","z99hzWtmk","grafanaStyle","two",3,"grafanaPath","type"],["decimals","2",3,"total","used","title",4,"ngIf"],["decimals","2",3,"total","used","title"]]},template:function(_,o){if(1&_&&(e.TgZ(0,"nav",0,1),e.ynx(2,2),e.TgZ(3,"a",3),e.SDv(4,4),e.qZA(),e.YNc(5,An,4,11,"ng-template",5),e.BQk(),e.YNc(6,Nn,4,0,"ng-container",6),e.qZA(),e._UZ(7,"div",7),e.YNc(8,vn,1,1,"ng-template",null,8,e.W1O)),2&_){const i=e.MAs(1);e.xp6(6),e.Q6J("cdScope","grafana"),e.xp6(1),e.Q6J("ngbNavOutlet",i)}},dependencies:[C.O5,f.uN,f.Pz,f.nv,f.Vx,f.tO,f.Dy,On.O,He.F,Se.a,dn.K,un.w,Sn],styles:["cd-pool-list .pg-clean{color:#008a00} cd-pool-list .pg-working{color:#25828e} cd-pool-list .pg-warning{color:#d48200} cd-pool-list .pg-unknown{color:#dc3545}"]}),t})(),qe=(()=>{class t{}return t.\u0275fac=function(_){return new(_||t)},t.\u0275mod=e.oAB({type:t}),t.\u0275inj=e.cJS({imports:[g_.t,C.ez,f.Oz,f_.m,Oe.Bz,l.UX,f.HK,E_.BlockModule]}),t})();const In=[{path:"",component:$n},{path:M.MQ.CREATE,component:Ue,data:{breadcrumbs:M.Qn.CREATE}},{path:`${M.MQ.EDIT}/:name`,component:Ue,data:{breadcrumbs:M.Qn.EDIT}}];let Dn=(()=>{class t{}return t.\u0275fac=function(_){return new(_||t)},t.\u0275mod=e.oAB({type:t}),t.\u0275inj=e.cJS({imports:[qe,Oe.Bz.forChild(In)]}),t})()}}]); \ No newline at end of file