Ceph : Issueshttps://tracker.ceph.com/https://tracker.ceph.com/favicon.ico2020-06-04T08:09:20ZCeph
Redmine Ceph - Documentation #45874 (Fix Under Review): doc: Extend resolving conflict section in "Submit...https://tracker.ceph.com/issues/458742020-06-04T08:09:20ZStephan Müller
<p>Currently it's not clear how to easily continue with the backport script when a conflict is encountered.</p> Dashboard - Cleanup #45433 (Resolved): mgr/dashboard: Don't have two different unit test mechanicshttps://tracker.ceph.com/issues/454332020-05-07T15:13:20ZStephan Müller
<p>Use the <em>DEV</em> test method as default. To be able to do that our workaround needs to include a new statement. It has to set `testBedApi._instantiated` to false after every test.</p>
<p>This will look like the following in the end:</p>
<pre>
diff --git a/src/pybind/mgr/dashboard/frontend/src/testing/unit-test-helper.ts b/src/pybind/mgr/dashboard/frontend/src/testing/unit-test-helper.ts
index b7de47f303..e94c1a3df1 100644
--- a/src/pybind/mgr/dashboard/frontend/src/testing/unit-test-helper.ts
+++ b/src/pybind/mgr/dashboard/frontend/src/testing/unit-test-helper.ts
@@ -1,5 +1,5 @@
import { LOCALE_ID, TRANSLATIONS, TRANSLATIONS_FORMAT, Type } from '@angular/core';
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { ComponentFixture, getTestBed, TestBed } from '@angular/core/testing';
import { AbstractControl } from '@angular/forms';
import { By } from '@angular/platform-browser';
@@ -18,31 +18,28 @@ import {
AlertmanagerNotificationAlert,
PrometheusRule
} from '../app/shared/models/prometheus-alerts';
-import { _DEV_ } from '../unit-test-configuration';
import { CrushNode } from '../app/shared/models/crush-node';
import { CrushRule, CrushRuleConfig } from '../app/shared/models/crush-rule';
-export function configureTestBed(configuration: any, useOldMethod?: boolean) {
- if (_DEV_ && !useOldMethod) {
- const resetTestingModule = TestBed.resetTestingModule;
- beforeAll((done) =>
- (async () => {
- TestBed.resetTestingModule();
- TestBed.configureTestingModule(configuration);
- // prevent Angular from resetting testing module
- TestBed.resetTestingModule = () => TestBed;
- })()
- .then(done)
- .catch(done.fail)
- );
- afterAll(() => {
- TestBed.resetTestingModule = resetTestingModule;
- });
- } else {
- beforeEach(async(() => {
+export function configureTestBed(configuration: any) {
+ const testBedApi: any = getTestBed();
+ const resetTestingModule = TestBed.resetTestingModule;
+ beforeAll((done) =>
+ (async () => {
+ // prevent Angular from resetting testing module
+ TestBed.resetTestingModule = () => TestBed;
+ TestBed.resetTestingModule();
TestBed.configureTestingModule(configuration);
- }));
- }
+ })()
+ .then(done)
+ .catch(done.fail)
+ );
+ afterEach(() => {
+ testBedApi._instantiated = false;
+ });
+ afterAll(() => {
+ TestBed.resetTestingModule = resetTestingModule;
+ });
}
export class PermissionHelper {
</pre>
<p>This means to remove the unit test configuration and amending the documentation as well as the unit test script (And remove the usage of the second parameter).</p> Dashboard - Cleanup #39702 (Resolved): mgr/dashboard: OSD custom action button removalhttps://tracker.ceph.com/issues/397022019-05-10T14:17:22ZStephan Müller
<p>Currently the OSD page uses a custom action button dropdown, which is nearly a clone of the table actions button component, but it has a different behavior as it does not show the main action in the dropdown.</p> Dashboard - Cleanup #38936 (New): mgr/dashboard: Unify polling behaviorhttps://tracker.ceph.com/issues/389362019-03-25T13:41:58ZStephan Müller
<p>Unify the polling behavior means that all API calls should be handled similar on failure.</p>
<p>The idea is that the dashboard can recover from connection issues automatically, but it should not send out notification on every failure after the initial or it should raise the polling time on each failure.</p>
<p>INHO muting notifications that would be triggered after the initial failure sounds like the best idea.</p> Dashboard - Tasks #38072 (New): mgr/dashboard: Reflect RBD QoS setting values in formshttps://tracker.ceph.com/issues/380722019-01-29T10:58:04ZStephan Müller
<p>It would be great to see the global or pool values reflected as default parameters in the forms, you could use a toggle icon to show the default and the user specific value. IMHO a `link` and `unlink` icon would suite it best.</p>
<p>As discussed in <a class="external" href="https://github.com/ceph/ceph/pull/25233/">https://github.com/ceph/ceph/pull/25233/</a></p> Dashboard - Tasks #37951 (Resolved): mgr/dashboard: Provide values with different style in KV-tablehttps://tracker.ceph.com/issues/379512019-01-17T11:59:08ZStephan Müller
<p>Provide a method to style values in a key value table by their value.</p> Dashboard - Tasks #37950 (Resolved): mgr/dashboard: Application icons in notificationshttps://tracker.ceph.com/issues/379502019-01-17T11:55:20ZStephan Müller
<p>Notifications and alerts should show an application icon, that gives a hint about their origin.</p> Dashboard - Tasks #37585 (Closed): mgr/dashboard/docker: Add Alertmanager and rules to docker env...https://tracker.ceph.com/issues/375852018-12-10T14:35:24ZStephan Müller
<p>Add Alertmanager and Prometheus rules to the <a href="https://github.com/ricardoasmarques/ceph-dev-docker" class="external">ceph-docker</a> environment which is used for dashboard development.</p> Dashboard - Tasks #36467 (Resolved): mgr/dashboard: Add a unit test form helper to easily test formshttps://tracker.ceph.com/issues/364672018-10-16T14:48:07ZStephan Müller
Things it should do:
<ul>
<li>Check for an specific error for a form field</li>
<li>Set a form field</li>
<li>Validate if a change is ok to make</li>
<li>Control if the form element is shown in the template</li>
</ul> Dashboard - Tasks #25167 (New): mgr/dashboard: Display useful popovers in formshttps://tracker.ceph.com/issues/251672018-07-30T14:49:33ZStephan Müller
<p>Add useful popovers to each form attribute, for inexperienced users.</p> Dashboard - Tasks #25163 (New): mgr/dashboard: Extend the Ceph pool by configurationshttps://tracker.ceph.com/issues/251632018-07-30T14:26:53ZStephan Müller
<p>The ceph pool details found on /api/pools aren't complete yet and shall be extended by the missing configurations listed in <a class="external" href="http://docs.ceph.com/docs/master/rados/operations/pools/#get-pool-values">http://docs.ceph.com/docs/master/rados/operations/pools/#get-pool-values</a>.</p> Dashboard - Tasks #25162 (New): API interceptor should handle client and server side offline statushttps://tracker.ceph.com/issues/251622018-07-30T14:25:02ZStephan Müller
<p>API interceptor should handle client and server side offline status</p> Dashboard - Cleanup #25161 (Resolved): Every keystroke for the username in the RGW user form trig...https://tracker.ceph.com/issues/251612018-07-30T14:23:26ZStephan Müller
<p>Every keystroke for the username in the RGW user form triggers an API call, this should be minimized to at max 2 requests.</p> mgr - Tasks #25157 (New): Refine the details of the Ceph pools opticallyhttps://tracker.ceph.com/issues/251572018-07-30T14:04:23ZStephan Müller
<p>The details of the Ceph pools in the listing are relatively raw displayed. This should be enhanced and the details should be refined optically.</p>
<a name="Data-Table"></a>
<h2 >Data Table<a href="#Data-Table" class="wiki-anchor">¶</a></h2>
<ul>
<li>Replica size is only valid for replicated pools.</li>
<li>The "type" defines, which column is valid.</li>
<li>The minimum number of replicas is missing. Maybe even as an optional column.</li>
<li>Show the pool quota.</li>
</ul>
<a name="Details"></a>
<h2 >Details<a href="#Details" class="wiki-anchor">¶</a></h2>
<ul>
<li>Show Replica size only for replicated pools.</li>
<li>Only show erasure code profile on erasure coded pools.</li>
<li>Add a mouse over or hyper link for the properties.</li>
</ul> Dashboard - Cleanup #24134 (Resolved): Semi automatic Task creationhttps://tracker.ceph.com/issues/241342018-05-15T09:00:48ZStephan Müller
<p>I would like to have a service that wraps a task around a 'http' request and returns an observable like 'http' does.</p>
<p>This way it would be easy to use task without having to use the same code and mostly useless imports (only used for Task wrapping) over and over again.</p>