]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Simplification of PoolForm method 24892/head
authorPatrick Nawracay <pnawracay@suse.com>
Fri, 2 Nov 2018 07:21:32 +0000 (08:21 +0100)
committerPatrick Nawracay <pnawracay@suse.com>
Fri, 2 Nov 2018 07:57:37 +0000 (08:57 +0100)
Signed-off-by: Patrick Nawracay <pnawracay@suse.com>
src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.ts

index 1eb9c6ab4961bc5054c3e7c95e8e068eaacc0601..1412fbea5884ce7b38fb324ef698938f0717e24b 100644 (file)
@@ -163,28 +163,27 @@ export class PoolFormComponent implements OnInit {
   }
 
   private initEditFormData(pool: Pool) {
-    const transform = {
-      name: 'pool_name',
-      poolType: 'type',
-      crushRule: (p) =>
-        this.info['crush_rules_' + p.type].find(
-          (rule: CrushRule) => rule.rule_name === p.crush_rule
-        ),
-      size: 'size',
-      erasureProfile: (p) => this.ecProfiles.find((ecp) => ecp.name === p.erasure_code_profile),
-      pgNum: 'pg_num',
-      ecOverwrites: (p) => p.flags_names.includes('ec_overwrites'),
-      mode: 'options.compression_mode',
-      algorithm: 'options.compression_algorithm',
-      minBlobSize: (p) => this.dimlessBinaryPipe.transform(p.options.compression_min_blob_size),
-      maxBlobSize: (p) => this.dimlessBinaryPipe.transform(p.options.compression_max_blob_size),
-      ratio: 'options.compression_required_ratio'
+    const dataMap = {
+      name: pool.pool_name,
+      poolType: pool.type,
+      crushRule: this.info['crush_rules_' + pool.type].find(
+        (rule: CrushRule) => rule.rule_name === pool.crush_rule
+      ),
+      size: pool.size,
+      erasureProfile: this.ecProfiles.find((ecp) => ecp.name === pool.erasure_code_profile),
+      pgNum: pool.pg_num,
+      ecOverwrites: pool.flags_names.includes('ec_overwrites'),
+      mode: pool.options.compression_mode,
+      algorithm: pool.options.compression_algorithm,
+      minBlobSize: this.dimlessBinaryPipe.transform(pool.options.compression_min_blob_size),
+      maxBlobSize: this.dimlessBinaryPipe.transform(pool.options.compression_max_blob_size),
+      ratio: pool.options.compression_required_ratio
     };
-    Object.keys(transform).forEach((key) => {
-      const attrib = transform[key];
-      const value = _.isFunction(attrib) ? attrib(pool) : _.get(pool, attrib);
+
+    Object.keys(dataMap).forEach((controlName: string) => {
+      const value = dataMap[controlName];
       if (!_.isUndefined(value) && value !== '') {
-        this.form.silentSet(key, value);
+        this.form.silentSet(controlName, value);
       }
     });
     this.data.applications.selected = pool.application_metadata;