]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.ts
import quincy beta 17.1.0
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / pool / pool-form / pool-form.component.ts
index a3cec3854857101d630c58cbde99302b1c86f6df..5f0bc095628bd8611e0c3d56811906a93b6d86ae 100644 (file)
@@ -82,6 +82,7 @@ export class PoolFormComponent extends CdForm implements OnInit {
   pgAutoscaleModes: string[];
   crushUsage: string[] = undefined; // Will only be set if a rule is used by some pool
   ecpUsage: string[] = undefined; // Will only be set if a rule is used by some pool
+  crushRuleMaxSize = 10;
 
   private modalSubscription: Subscription;
 
@@ -155,7 +156,7 @@ export class PoolFormComponent extends CdForm implements OnInit {
           validators: [
             CdValidators.custom(
               'tooFewOsds',
-              (rule: any) => this.info && rule && this.info.osd_count < rule.min_size
+              (rule: any) => this.info && rule && this.info.osd_count < 1
             ),
             CdValidators.custom(
               'required',
@@ -169,15 +170,13 @@ export class PoolFormComponent extends CdForm implements OnInit {
         }),
         erasureProfile: new FormControl(null),
         pgNum: new FormControl('', {
-          validators: [Validators.required, Validators.min(1)]
+          validators: [Validators.required]
         }),
         pgAutoscaleMode: new FormControl(null),
         ecOverwrites: new FormControl(false),
         compression: compressionForm,
         max_bytes: new FormControl(''),
-        max_objects: new FormControl(0, {
-          validators: [Validators.min(0)]
-        })
+        max_objects: new FormControl(0)
       },
       [CdValidators.custom('form', (): null => null)]
     );
@@ -422,10 +421,6 @@ export class PoolFormComponent extends CdForm implements OnInit {
     if (!this.info || this.info.osd_count < 1) {
       return 0;
     }
-    const rule = this.form.getValue('crushRule');
-    if (rule) {
-      return rule.min_size;
-    }
     return 1;
   }
 
@@ -469,8 +464,8 @@ export class PoolFormComponent extends CdForm implements OnInit {
       rule.steps[0].item_name
     );
     const currentDomain = domains[rule.steps[1].type];
-    const usable = currentDomain ? currentDomain.length : rule.max_size;
-    rule.usable_size = Math.min(usable, rule.max_size);
+    const usable = currentDomain ? currentDomain.length : this.crushRuleMaxSize;
+    rule.usable_size = Math.min(usable, this.crushRuleMaxSize);
   }
 
   private replicatedPgCalc(pgs: number): number {
@@ -667,6 +662,7 @@ export class PoolFormComponent extends CdForm implements OnInit {
       return;
     }
     if (usage) {
+      deletionBtn.animation = false;
       deletionBtn.toggle();
       this.data[dataName] = true;
       setTimeout(() => {