From: Tatjana Dehler Date: Tue, 11 Dec 2018 14:51:58 +0000 (+0100) Subject: mgr/dashboard: convert ``priorityAttrs`` from array to object X-Git-Tag: v14.1.0~306^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8bafab8e1542bd5bba10928a321365df2b7c310e;p=ceph-ci.git mgr/dashboard: convert ``priorityAttrs`` from array to object Convert ``priorityAttrs`` from array to object for better handling, e.g. to get rid of unnecessary for-loops. Signed-off-by: Tatjana Dehler --- diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html index 42934d711ea..79dc580a756 100755 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html @@ -46,23 +46,23 @@ -
+ osdRecvSpeedForm.showError(attr.key, formDir)}">
This field is required!
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.spec.ts index f67b084e0d5..7c679091a87 100755 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.spec.ts @@ -183,11 +183,13 @@ describe('OsdRecvSpeedModalComponent', () => { it('should set the description if one is given', () => { component.setDescription(configOptions); - component.priorityAttrs.forEach((p) => { - if (p.name === 'osd_recovery_sleep') { - expect(p.desc).toBe('Time in seconds to sleep before next recovery or backfill op'); + Object.keys(component.priorityAttrs).forEach((configOptionName) => { + if (configOptionName === 'osd_recovery_sleep') { + expect(component.priorityAttrs[configOptionName].desc).toBe( + 'Time in seconds to sleep before next recovery or backfill op' + ); } else { - expect(p.desc).toBe(''); + expect(component.priorityAttrs[configOptionName].desc).toBe(''); } }); }); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts index b6e5ffbfa65..b8fd4897b29 100755 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts @@ -21,7 +21,7 @@ import { NotificationService } from '../../../../shared/services/notification.se export class OsdRecvSpeedModalComponent implements OnInit { osdRecvSpeedForm: CdFormGroup; priorities = []; - priorityAttrs = []; + priorityAttrs = {}; constructor( public bsModalRef: BsModalRef, @@ -35,32 +35,28 @@ export class OsdRecvSpeedModalComponent implements OnInit { priority: new FormControl(null, { validators: [Validators.required] }), customizePriority: new FormControl(false) }); - this.priorityAttrs = [ - { - name: 'osd_max_backfills', + this.priorityAttrs = { + osd_max_backfills: { text: this.i18n('Max Backfills'), desc: '' }, - { - name: 'osd_recovery_max_active', + osd_recovery_max_active: { text: this.i18n('Recovery Max Active'), desc: '' }, - { - name: 'osd_recovery_max_single_start', + osd_recovery_max_single_start: { text: this.i18n('Recovery Max Single Start'), desc: '' }, - { - name: 'osd_recovery_sleep', + osd_recovery_sleep: { text: this.i18n('Recovery Sleep'), desc: '' } - ]; + }; - this.priorityAttrs.forEach((attr) => { + Object.keys(this.priorityAttrs).forEach((configOptionName) => { this.osdRecvSpeedForm.addControl( - attr.name, + configOptionName, new FormControl(null, { validators: [Validators.required] }) ); }); @@ -68,8 +64,8 @@ export class OsdRecvSpeedModalComponent implements OnInit { ngOnInit() { const observables = []; - this.priorityAttrs.forEach((configName) => { - observables.push(this.configService.get(configName.name)); + Object.keys(this.priorityAttrs).forEach((configOptionName) => { + observables.push(this.configService.get(configOptionName)); }); observableForkJoin(observables) @@ -101,11 +97,7 @@ export class OsdRecvSpeedModalComponent implements OnInit { setDescription(configOptions: Array) { configOptions.forEach((configOption) => { if (configOption.desc !== '') { - this.priorityAttrs.forEach((p) => { - if (p.name === configOption.name) { - p['desc'] = configOption.desc; - } - }); + this.priorityAttrs[configOption.name].desc = configOption.desc; } }); } @@ -134,8 +126,8 @@ export class OsdRecvSpeedModalComponent implements OnInit { onCustomizePriorityChange() { if (this.osdRecvSpeedForm.getValue('customizePriority')) { const values = {}; - this.priorityAttrs.forEach((attr) => { - values[attr.name] = this.osdRecvSpeedForm.getValue(attr.name); + Object.keys(this.priorityAttrs).forEach((configOptionName) => { + values[configOptionName] = this.osdRecvSpeedForm.getValue(configOptionName); }); const customPriority = { name: 'custom', @@ -180,8 +172,11 @@ export class OsdRecvSpeedModalComponent implements OnInit { submitAction() { const options = {}; - this.priorityAttrs.forEach((attr) => { - options[attr.name] = { section: 'osd', value: this.osdRecvSpeedForm.getValue(attr.name) }; + Object.keys(this.priorityAttrs).forEach((configOptionName) => { + options[configOptionName] = { + section: 'osd', + value: this.osdRecvSpeedForm.getValue(configOptionName) + }; }); this.configService.bulkCreate({ options: options }).subscribe(