]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/ceph-service.service.ts
import 15.2.9
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / api / ceph-service.service.ts
index f1e4003b11b9340e6952efbfefed9f1aa3048c98..2a857dcaadb8475fcbf4d7fcd33e92d39cd3bb1d 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClient, HttpParams } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 
+import * as _ from 'lodash';
 import { Observable } from 'rxjs';
 
 import { Daemon } from '../models/daemon.interface';
@@ -25,4 +26,26 @@ export class CephServiceService {
   getDaemons(serviceName?: string): Observable<Daemon[]> {
     return this.http.get<Daemon[]>(`${this.url}/${serviceName}/daemons`);
   }
+
+  create(serviceSpec: { [key: string]: any }) {
+    const serviceName = serviceSpec['service_id']
+      ? `${serviceSpec['service_type']}.${serviceSpec['service_id']}`
+      : serviceSpec['service_type'];
+    return this.http.post(
+      this.url,
+      {
+        service_name: serviceName,
+        service_spec: serviceSpec
+      },
+      { observe: 'response' }
+    );
+  }
+
+  delete(serviceName: string) {
+    return this.http.delete(`${this.url}/${serviceName}`, { observe: 'response' });
+  }
+
+  getKnownTypes(): Observable<string[]> {
+    return this.http.get<string[]>(`${this.url}/known_types`);
+  }
 }