/*-
* ========================LICENSE_START=================================
- * ORAN-OSC
+ * O-RAN-SC
* %%
- * Copyright (C) 2019 AT&T Intellectual Property and Nokia
+ * Copyright (C) 2019 AT&T Intellectual Property
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* limitations under the License.
* ========================LICENSE_END===================================
*/
+import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { HttpHeaders } from "@angular/common/http";
-import { Observable } from "rxjs";
-import { HttpErrorResponse } from "@angular/common/http";
+import { Observable } from 'rxjs';
+import { DashboardService } from '../dashboard/dashboard.service';
@Injectable({
providedIn: 'root'
})
export class StatsService {
+
+ private component = 'admin';
+
baseJSONServerUrl = 'http://localhost:3000';
dataMetrics = [{}];
latencyMetrics;
'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
})
};
-
- constructor(private httpClient: HttpClient) {
- //this.loadConfig();
- //this.getLoad();
-
+
+ constructor(
+ private dashboardSvc: DashboardService,
+ private httpClient: HttpClient) {
+ // this.loadConfig();
+ // this.getLoad();
}
getMetrics() {
-
return this.dataMetrics; // @TODO implement the service to fetch the backend data
}
}
getLoad(): Observable<number> {
- //this.loadMetrics = this.getRandomValue();
+ // this.loadMetrics = this.getRandomValue();
this.httpClient.get(this.hostURL + this.loadPath).subscribe((res) => {
console.log(res);
console.log('stats.service.getLoad(): ' + res['load']);
});
return this.load;
}
-
- putLoad(value: number) {
- //this.loadMetrics = this.getRandomValue();
- const jsonValue = '{ "load": ' + value + ' }';
- console.log(jsonValue);
- this.httpClient.put(this.hostURL + this.loadPath, jsonValue , this.httpOptions).subscribe((res) => {
- console.log(res);
- });
+
+ getRandomValue() {
+ return Math.round((Math.random() * (20 - 0)) + 0);
}
- putDelay(value: number) {
- //this.loadMetrics = this.getRandomValue();
- const jsonValue = '{ "delay": ' + value + ' }';
- console.log(jsonValue);
- this.httpClient.put(this.hostURL + this.delayPath, jsonValue , this.httpOptions).subscribe((res) => {
- console.log(res);
+ // Gets xApp metrics Kibana url for the named application
+ getAppMetricsUrl(appName: string) {
+ const path = this.dashboardSvc.buildPath(this.component, null, 'metrics');
+ return this.httpClient.get(path, {
+ params: new HttpParams()
+ .set('app', appName)
});
}
-
- getCpuMetrics() {
- this.cpuMetrics = this.getRandomValue();
- return this.cpuMetrics;
- }
- getRandomValue() {
- return Math.round((Math.random() * (20 - 0)) + 0);
- }
-
saveConfig(key: string, value: string) {
- if(key == 'jsonURL')
+ if (key === 'jsonURL') {
this.baseJSONServerUrl = value;
-
- console.log('save this.baseJSONServerUrl '+this.baseJSONServerUrl);
- const jsonValue = '{"id": "' + key + '", "value": "' + value + '"}';
- console.log(jsonValue);
- this.httpClient.put(this.baseJSONServerUrl + '/config/' + key , jsonValue, this.httpOptions).subscribe((res) => {
- console.log(res);
- });
-
-
+ }
+ console.log('save this.baseJSONServerUrl ' + this.baseJSONServerUrl);
+ const jsonValue = '{"id": "' + key + '", "value": "' + value + '"}';
+ console.log(jsonValue);
+ this.httpClient.put(this.baseJSONServerUrl + '/config/' + key , jsonValue, this.httpOptions).subscribe((res) => {
+ console.log(res);
+ });
}
-
+
loadConfig() {
- console.log('load this.baseJSONServerUrl '+this.baseJSONServerUrl);
+ console.log('load this.baseJSONServerUrl ' + this.baseJSONServerUrl);
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
this.delayMax = res[5].value;
this.loadMax = res[6].value;
},
- (err: HttpErrorResponse) => {
- console.log (err.message);
+ (her: HttpErrorResponse) => {
+ console.log ('loadConfig failed: ' + her.message);
});
}
}