# All files / src/app/shared/api mgr-module.service.ts

100% Statements 21/21
66.67% Branches 2/3
100% Functions 7/7
100% Lines 19/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    689x
    9x

    9x

    9x
    25x

    25x

    9x
    6x

    9x
    11x

    9x
    1x

    9x
    1x

    9x
    1x

    9x
    11x

    9x
     import { HttpClient } from '@angular/common/http';
    import { Injectable } from '@angular/core';

    import { Observable } from 'rxjs';

    import { ApiModule } from './api.module';

    @Injectable({
      providedIn: ApiModule
    })
    export class MgrModuleService {
      private url = 'api/mgr/module';

      constructor(private http: HttpClient) {}

      /**
       * Get the list of Ceph Mgr modules and their state (enabled/disabled).
       * @return {Observable<Object[]>}
       */
      list(): Observable<Object[]> {
        return this.http.get<Object[]>(`${this.url}`);
      }

      /**
       * Get the Ceph Mgr module configuration.
       * @param {string} module The name of the mgr module.
       * @return {Observable<Object>}
       */
      getConfig(module: string): Observable<Object> {
        return this.http.get(`${this.url}/${module}`);
      }

      /**
       * Update the Ceph Mgr module configuration.
       * @param {string} module The name of the mgr module.
       * @param {object} config The configuration.
       * @return {Observable<Object>}
       */
      updateConfig(module: string, config: Object): Observable<Object> {
        return this.http.put(`${this.url}/${module}`, { config: config });
      }

      /**
       * Enable the Ceph Mgr module.
       * @param {string} module The name of the mgr module.
       */
      enable(module: string) {
        return this.http.post(`${this.url}/${module}/enable`, null);
      }

      /**
       * Disable the Ceph Mgr module.
       * @param {string} module The name of the mgr module.
       */
      disable(module: string) {
        return this.http.post(`${this.url}/${module}/disable`, null);
      }

      /**
       * Get the Ceph Mgr module options.
       * @param {string} module The name of the mgr module.
       * @return {Observable<Object>}
       */
      getOptions(module: string): Observable<Object> {
        return this.http.get(`${this.url}/${module}/options`);
      }
    }