From 9db76caf8bb9307a573f9acbb83cadbc5cee63ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alfonso=20Mart=C3=ADnez?= Date: Thu, 7 Nov 2019 10:15:30 +0100 Subject: [PATCH] mgr/dashboard: do not show non-pool data in pool details MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: https://tracker.ceph.com/issues/42674 Signed-off-by: Alfonso Martínez --- .../pool-details/pool-details.component.html | 2 +- .../pool-details.component.spec.ts | 20 ++++++++++++++++++- .../pool-details/pool-details.component.ts | 5 +++++ .../pool-list/pool-list.component.spec.ts | 6 ------ .../pool/pool-list/pool-list.component.ts | 4 ---- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.html index 5fd9edbad3b..db33fad77c7 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.html @@ -4,7 +4,7 @@ diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.spec.ts index 7ee21b57e99..4bf43944a14 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.spec.ts @@ -71,7 +71,7 @@ describe('PoolDetailsComponent', () => { expect(tabs[0].active).toBeTruthy(); }); - it('current active status of tabs should not change when selection is same with previour selection', () => { + it('current active status of tabs should not change when selection is the same as previous selection', () => { fixture.detectChanges(); const tabs = poolDetailsComponent.tabsetChild.tabs; expect(tabs[0].active).toBeTruthy(); @@ -80,5 +80,23 @@ describe('PoolDetailsComponent', () => { fixture.detectChanges(); expect(tabs[1].active).toBeTruthy(); }); + + it('returns pool details correctly', () => { + const pool = { prop1: 1, cdIsBinary: true, prop2: 2, cdExecuting: true, prop3: 3 }; + const expectedPool = { prop1: 1, prop2: 2, prop3: 3 }; + + expect(poolDetailsComponent.filterNonPoolData(pool)).toEqual(expectedPool); + }); + + it('pool data filtering is called', () => { + const filterNonPoolDataSpy = spyOn( + poolDetailsComponent, + 'filterNonPoolData' + ).and.callThrough(); + + fixture.detectChanges(); + + expect(filterNonPoolDataSpy).toHaveBeenCalled(); + }); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.ts index b42a6a62a45..76365843e9c 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.ts @@ -1,6 +1,7 @@ import { Component, Input, OnChanges, ViewChild } from '@angular/core'; import { I18n } from '@ngx-translate/i18n-polyfill'; +import * as _ from 'lodash'; import { TabsetComponent } from 'ngx-bootstrap/tabs'; import { PoolService } from '../../../shared/api/pool.service'; @@ -69,4 +70,8 @@ export class PoolDetailsComponent implements OnChanges { }); } } + + filterNonPoolData(pool: object): object { + return _.omit(pool, ['cdExecuting', 'cdIsBinary']); + } } diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts index 50983ab85d5..3a365223ffd 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts @@ -75,12 +75,6 @@ describe('PoolListComponent', () => { expect(component.columns.every((column) => Boolean(column.prop))).toBeTruthy(); }); - it('returns pool details correctly', () => { - const pool = { prop1: 1, cdIsBinary: true, prop2: 2, cdExecuting: true, prop3: 3 }; - const expected = { prop1: 1, prop2: 2, prop3: 3 }; - expect(component.getPoolDetails(pool)).toEqual(expected); - }); - describe('monAllowPoolDelete', () => { let configOptRead: boolean; let configurationService: ConfigurationService; diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.ts index 6dee9e1baa5..72a330c1250 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.ts @@ -278,10 +278,6 @@ export class PoolListComponent implements OnInit { return strings.join(', '); } - getPoolDetails(pool: object) { - return _.omit(pool, ['cdExecuting', 'cdIsBinary']); - } - getSelectionTiers() { const cacheTierIds = this.selection.hasSingleSelection ? this.selection.first()['tiers'] || []