From c5e6ecb54758673828a4a0ed3c817c53bde0d9ee Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Fri, 20 Mar 2020 11:27:04 +0100 Subject: [PATCH] mgr/dashboard: adapt to new `ServiceDescription.to_json()` `ServiceDescription.to_json()` is now based on `ServiceSpec.to_json()` Signed-off-by: Sebastian Wagner --- .../services/services.component.spec.ts | 26 ++++++++++++------- .../cluster/services/services.component.ts | 16 ++++++------ .../app/shared/api/ceph-service.service.ts | 6 ++--- .../app/shared/models/service.interface.ts | 13 ++++++++-- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.spec.ts index f247dc2b840..6e467ca2a55 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.spec.ts @@ -27,20 +27,26 @@ describe('ServicesComponent', () => { const services = [ { - container_image_id: 'e70344c77bcbf3ee389b9bf5128f635cf95f3d59e005c5d8e67fc19bcc74ed23', - container_image_name: 'docker.io/ceph/daemon-base:latest-master-devel', + service_type: 'osd', service_name: 'osd', - size: 3, - running: 3, - last_refresh: '2020-02-25T04:33:26.465699' + status: { + container_image_id: 'e70344c77bcbf3ee389b9bf5128f635cf95f3d59e005c5d8e67fc19bcc74ed23', + container_image_name: 'docker.io/ceph/daemon-base:latest-master-devel', + size: 3, + running: 3, + last_refresh: '2020-02-25T04:33:26.465699' + } }, { - container_image_id: 'e70344c77bcbf3ee389b9bf5128f635cf95f3d59e005c5d8e67fc19bcc74ed23', - container_image_name: 'docker.io/ceph/daemon-base:latest-master-devel', + service_type: 'crash', service_name: 'crash', - size: 1, - running: 1, - last_refresh: '2020-02-25T04:33:26.465766' + status: { + container_image_id: 'e70344c77bcbf3ee389b9bf5128f635cf95f3d59e005c5d8e67fc19bcc74ed23', + container_image_name: 'docker.io/ceph/daemon-base:latest-master-devel', + size: 1, + running: 1, + last_refresh: '2020-02-25T04:33:26.465766' + } } ]; diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.ts index 39180889ada..74f059f5e60 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.ts @@ -8,7 +8,7 @@ import { CdTableColumn } from '../../../shared/models/cd-table-column'; import { CdTableFetchDataContext } from '../../../shared/models/cd-table-fetch-data-context'; import { CdTableSelection } from '../../../shared/models/cd-table-selection'; import { Permissions } from '../../../shared/models/permissions'; -import { CephService } from '../../../shared/models/service.interface'; +import { CephServiceSpec } from '../../../shared/models/service.interface'; import { AuthStorageService } from '../../../shared/services/auth-storage.service'; @Component({ @@ -32,7 +32,7 @@ export class ServicesComponent implements OnChanges, OnInit { docsUrl: string; columns: Array = []; - services: Array = []; + services: Array = []; isLoadingServices = false; selection = new CdTableSelection(); @@ -54,27 +54,27 @@ export class ServicesComponent implements OnChanges, OnInit { }, { name: this.i18n('Container image name'), - prop: 'container_image_name', + prop: 'status.container_image_name', flexGrow: 3 }, { name: this.i18n('Container image ID'), - prop: 'container_image_id', + prop: 'status.container_image_id', flexGrow: 3 }, { name: this.i18n('Running'), - prop: 'running', + prop: 'status.running', flexGrow: 1 }, { name: this.i18n('Size'), - prop: 'size', + prop: 'status.size', flexGrow: 1 }, { name: this.i18n('Last Refreshed'), - prop: 'last_refresh', + prop: 'status.last_refresh', flexGrow: 1 } ]; @@ -105,7 +105,7 @@ export class ServicesComponent implements OnChanges, OnInit { } this.isLoadingServices = true; this.cephServiceService.list().subscribe( - (services: CephService[]) => { + (services: CephServiceSpec[]) => { this.services = services; this.isLoadingServices = false; }, diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/api/ceph-service.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/api/ceph-service.service.ts index 8df6cb93c65..f1e4003b11b 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/api/ceph-service.service.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/api/ceph-service.service.ts @@ -4,7 +4,7 @@ import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { Daemon } from '../models/daemon.interface'; -import { CephService } from '../models/service.interface'; +import { CephServiceSpec } from '../models/service.interface'; import { ApiModule } from './api.module'; @Injectable({ @@ -15,11 +15,11 @@ export class CephServiceService { constructor(private http: HttpClient) {} - list(serviceName?: string): Observable { + list(serviceName?: string): Observable { const options = serviceName ? { params: new HttpParams().set('service_name', serviceName) } : {}; - return this.http.get(this.url, options); + return this.http.get(this.url, options); } getDaemons(serviceName?: string): Observable { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts index f1acdd4d6d5..151e0bd2987 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/models/service.interface.ts @@ -1,8 +1,17 @@ -export interface CephService { +export interface CephServiceStatus { container_image_id: string; container_image_name: string; - service_name: string; size: number; running: number; last_refresh: Date; + created: Date; +} + +// This will become handy when creating arbitrary services +export interface CephServiceSpec { + service_name: string; + service_type: string; + service_id: string; + unmanaged: boolean; + status: CephServiceStatus; } -- 2.39.5