All files / src/app/ceph/performance-counter/table-performance-counter table-performance-counter.component.ts

95.83% Statements 23/24
78.57% Branches 11/14
83.33% Functions 5/6
95% Lines 19/20

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 68 69 70 71 72 73 74 759x   9x   9x                       9x 5x 5x     9x           9x           9x   5x   9x 5x                                       9x 2x         2x 1x 1x   1x         9x  
import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';
 
import { I18n } from '@ngx-translate/i18n-polyfill';
 
import { PerformanceCounterService } from '../../../shared/api/performance-counter.service';
import { CdTableColumn } from '../../../shared/models/cd-table-column';
import { CdTableFetchDataContext } from '../../../shared/models/cd-table-fetch-data-context';
 
/**
 * Display the specified performance counters in a datatable.
 */
@Component({
  selector: 'cd-table-performance-counter',
  template: require('./table-performance-counter.component.html'),
  styles: []
})
export class TablePerformanceCounterComponent implements OnInit {
  columns: Array<CdTableColumn> = [];
  counters: Array<object> = [];
 
  @ViewChild('valueTpl')
  public valueTpl: TemplateRef<any>;
 
  /**
   * The service type, e.g. 'rgw', 'mds', 'mon', 'osd', ...
   */
  @Input()
  serviceType: string;
 
  /**
   * The service identifier.
   */
  @Input()
  serviceId: string;
 
  constructor(private performanceCounterService: PerformanceCounterService, private i18n: I18n) {}
 
  ngOnInit() {
    this.columns = [
      {
        name: this.i18n('Name'),
        prop: 'name',
        flexGrow: 1
      },
      {
        name: this.i18n('Description'),
        prop: 'description',
        flexGrow: 1
      },
      {
        name: this.i18n('Value'),
        prop: 'value',
        cellTemplate: this.valueTpl,
        flexGrow: 1
      }
    ];
  }
 
  getCounters(context: CdTableFetchDataContext) {
    this.performanceCounterService.get(this.serviceType, this.serviceId).subscribe(
      (resp: object[]) => {
        this.counters = resp;
      },
      (error) => {
        if (error.status === 404) {
          error.preventDefault();
          this.counters = null;
        } else {
          context.error();
        }
      }
    );
  }
}