From e636eb88101a51399057c86477af6677f5614d48 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sun, 25 Jun 2017 17:19:46 +0200 Subject: Requests -> RequestSchedulers --- client/src/app/+admin/admin-routing.module.ts | 4 +- client/src/app/+admin/admin.module.ts | 8 +-- client/src/app/+admin/index.ts | 5 -- client/src/app/+admin/request-schedulers/index.ts | 4 ++ .../request-schedulers-stats/index.ts | 1 + .../request-schedulers-stats.component.html | 46 +++++++++++++ .../request-schedulers-stats.component.scss | 8 +++ .../request-schedulers-stats.component.ts | 77 ++++++++++++++++++++++ .../request-schedulers.component.ts | 7 ++ .../request-schedulers.routes.ts | 27 ++++++++ .../app/+admin/request-schedulers/shared/index.ts | 2 + .../request-schedulers-stats-attributes.model.ts | 37 +++++++++++ .../shared/request-schedulers.service.ts | 35 ++++++++++ client/src/app/+admin/requests/index.ts | 4 -- .../src/app/+admin/requests/request-stats/index.ts | 1 - .../request-stats/request-stats.component.html | 46 ------------- .../request-stats/request-stats.component.scss | 8 --- .../request-stats/request-stats.component.ts | 77 ---------------------- .../src/app/+admin/requests/requests.component.ts | 7 -- client/src/app/+admin/requests/requests.routes.ts | 27 -------- client/src/app/+admin/requests/shared/index.ts | 2 - .../shared/request-stats-attributes.model.ts | 37 ----------- .../app/+admin/requests/shared/request.service.ts | 35 ---------- 23 files changed, 250 insertions(+), 255 deletions(-) create mode 100644 client/src/app/+admin/request-schedulers/index.ts create mode 100644 client/src/app/+admin/request-schedulers/request-schedulers-stats/index.ts create mode 100644 client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.html create mode 100644 client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.scss create mode 100644 client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.ts create mode 100644 client/src/app/+admin/request-schedulers/request-schedulers.component.ts create mode 100644 client/src/app/+admin/request-schedulers/request-schedulers.routes.ts create mode 100644 client/src/app/+admin/request-schedulers/shared/index.ts create mode 100644 client/src/app/+admin/request-schedulers/shared/request-schedulers-stats-attributes.model.ts create mode 100644 client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts delete mode 100644 client/src/app/+admin/requests/index.ts delete mode 100644 client/src/app/+admin/requests/request-stats/index.ts delete mode 100644 client/src/app/+admin/requests/request-stats/request-stats.component.html delete mode 100644 client/src/app/+admin/requests/request-stats/request-stats.component.scss delete mode 100644 client/src/app/+admin/requests/request-stats/request-stats.component.ts delete mode 100644 client/src/app/+admin/requests/requests.component.ts delete mode 100644 client/src/app/+admin/requests/requests.routes.ts delete mode 100644 client/src/app/+admin/requests/shared/index.ts delete mode 100644 client/src/app/+admin/requests/shared/request-stats-attributes.model.ts delete mode 100644 client/src/app/+admin/requests/shared/request.service.ts (limited to 'client/src') diff --git a/client/src/app/+admin/admin-routing.module.ts b/client/src/app/+admin/admin-routing.module.ts index 839913135..bcc94a9f3 100644 --- a/client/src/app/+admin/admin-routing.module.ts +++ b/client/src/app/+admin/admin-routing.module.ts @@ -3,7 +3,7 @@ import { RouterModule, Routes } from '@angular/router' import { AdminComponent } from './admin.component' import { FriendsRoutes } from './friends' -import { RequestsRoutes } from './requests' +import { RequestSchedulersRoutes } from './request-schedulers' import { UsersRoutes } from './users' import { VideoAbusesRoutes } from './video-abuses' @@ -18,7 +18,7 @@ const adminRoutes: Routes = [ pathMatch: 'full' }, ...FriendsRoutes, - ...RequestsRoutes, + ...RequestSchedulersRoutes, ...UsersRoutes, ...VideoAbusesRoutes ] diff --git a/client/src/app/+admin/admin.module.ts b/client/src/app/+admin/admin.module.ts index 9ecce5dc3..e4ba8e5b7 100644 --- a/client/src/app/+admin/admin.module.ts +++ b/client/src/app/+admin/admin.module.ts @@ -3,7 +3,7 @@ import { NgModule } from '@angular/core' import { AdminComponent } from './admin.component' import { AdminRoutingModule } from './admin-routing.module' import { FriendsComponent, FriendAddComponent, FriendListComponent, FriendService } from './friends' -import { RequestsComponent, RequestStatsComponent, RequestService } from './requests' +import { RequestSchedulersComponent, RequestSchedulersStatsComponent, RequestSchedulersService } from './request-schedulers' import { UsersComponent, UserAddComponent, UserListComponent, UserService } from './users' import { VideoAbusesComponent, VideoAbuseListComponent } from './video-abuses' import { SharedModule } from '../shared' @@ -21,8 +21,8 @@ import { SharedModule } from '../shared' FriendAddComponent, FriendListComponent, - RequestsComponent, - RequestStatsComponent, + RequestSchedulersComponent, + RequestSchedulersStatsComponent, UsersComponent, UserAddComponent, @@ -38,7 +38,7 @@ import { SharedModule } from '../shared' providers: [ FriendService, - RequestService, + RequestSchedulersService, UserService ] }) diff --git a/client/src/app/+admin/index.ts b/client/src/app/+admin/index.ts index 11e2587c0..b628a3662 100644 --- a/client/src/app/+admin/index.ts +++ b/client/src/app/+admin/index.ts @@ -1,6 +1 @@ -export * from './friends' -export * from './requests' -export * from './users' -export * from './admin-routing.module' export * from './admin.module' -export * from './admin.component' diff --git a/client/src/app/+admin/request-schedulers/index.ts b/client/src/app/+admin/request-schedulers/index.ts new file mode 100644 index 000000000..87b72e8c7 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/index.ts @@ -0,0 +1,4 @@ +export * from './request-schedulers-stats' +export * from './shared' +export * from './request-schedulers.component' +export * from './request-schedulers.routes' diff --git a/client/src/app/+admin/request-schedulers/request-schedulers-stats/index.ts b/client/src/app/+admin/request-schedulers/request-schedulers-stats/index.ts new file mode 100644 index 000000000..a3323e6be --- /dev/null +++ b/client/src/app/+admin/request-schedulers/request-schedulers-stats/index.ts @@ -0,0 +1 @@ +export * from './request-schedulers-stats.component' diff --git a/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.html b/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.html new file mode 100644 index 000000000..4508ab4c2 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.html @@ -0,0 +1,46 @@ +
+
+ +

Requests stats

+ + +
+
+
{{ statsTitles[requestSchedulerName] }}
+ +
+
+
+ Remaining requests: + {{ stats[requestSchedulerName].totalRequests }} +
+ +
+ Interval seconds between requests: + {{ stats[requestSchedulerName].secondsInterval }} +
+ +
+ Remaining time before the scheduled request: + {{ stats[requestSchedulerName].remainingSeconds }} +
+
+ +
+
+ Maximum number of different pods for a scheduled request: + {{ stats[requestSchedulerName].requestsLimitPods }} +
+ +
+ Maximum number of requests per pod for a scheduled request: + {{ stats[requestSchedulerName].requestsLimitPerPod }} +
+
+
+
+
+
+ +
+
diff --git a/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.scss b/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.scss new file mode 100644 index 000000000..b2c413259 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.scss @@ -0,0 +1,8 @@ +.label-description { + font-weight: bold; + color: black; +} + +.requests-limit { + margin-top: 20px; +} diff --git a/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.ts b/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.ts new file mode 100644 index 000000000..4e3fabc64 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/request-schedulers-stats/request-schedulers-stats.component.ts @@ -0,0 +1,77 @@ +import { Component, OnInit, OnDestroy } from '@angular/core' + +import { NotificationsService } from 'angular2-notifications' + +import { RequestSchedulersService, RequestSchedulerStatsAttributes } from '../shared' +import { RequestSchedulerStats } from '../../../../../../shared' + +@Component({ + selector: 'my-request-schedulers-stats', + templateUrl: './request-schedulers-stats.component.html', + styleUrls: [ './request-schedulers-stats.component.scss' ] +}) +export class RequestSchedulersStatsComponent implements OnInit, OnDestroy { + statsTitles = { + requestScheduler: 'Basic request scheduler', + requestVideoEventScheduler: 'Video events request scheduler', + requestVideoQaduScheduler: 'Quick and dirty video updates request scheduler' + } + + stats: RequestSchedulerStats + + private intervals: { [ id: string ]: number } = { + requestScheduler: null, + requestVideoEventScheduler: null, + requestVideoQaduScheduler: null + } + + private timeouts: { [ id: string ]: number } = { + requestScheduler: null, + requestVideoEventScheduler: null, + requestVideoQaduScheduler: null + } + + constructor ( + private notificationsService: NotificationsService, + private requestService: RequestSchedulersService + ) { } + + ngOnInit () { + this.getStats() + this.runIntervals() + } + + ngOnDestroy () { + Object.keys(this.stats).forEach(requestSchedulerName => { + if (this.intervals[requestSchedulerName] !== null) { + window.clearInterval(this.intervals[requestSchedulerName]) + } + + if (this.timeouts[requestSchedulerName] !== null) { + window.clearTimeout(this.timeouts[requestSchedulerName]) + } + }) + } + + getStats () { + this.requestService.getStats().subscribe( + stats => this.stats = stats, + + err => this.notificationsService.error('Error', err.text) + ) + } + + private runIntervals () { + Object.keys(this.intervals).forEach(requestSchedulerName => { + this.intervals[requestSchedulerName] = window.setInterval(() => { + const stats: RequestSchedulerStatsAttributes = this.stats[requestSchedulerName] + + stats.remainingMilliSeconds -= 1000 + + if (stats.remainingMilliSeconds <= 0) { + this.timeouts[requestSchedulerName] = window.setTimeout(() => this.getStats(), stats.remainingMilliSeconds + 100) + } + }, 1000) + }) + } +} diff --git a/client/src/app/+admin/request-schedulers/request-schedulers.component.ts b/client/src/app/+admin/request-schedulers/request-schedulers.component.ts new file mode 100644 index 000000000..5444d6ea5 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/request-schedulers.component.ts @@ -0,0 +1,7 @@ +import { Component } from '@angular/core' + +@Component({ + template: '' +}) +export class RequestSchedulersComponent { +} diff --git a/client/src/app/+admin/request-schedulers/request-schedulers.routes.ts b/client/src/app/+admin/request-schedulers/request-schedulers.routes.ts new file mode 100644 index 000000000..4961c646b --- /dev/null +++ b/client/src/app/+admin/request-schedulers/request-schedulers.routes.ts @@ -0,0 +1,27 @@ +import { Routes } from '@angular/router' + +import { RequestSchedulersComponent } from './request-schedulers.component' +import { RequestSchedulersStatsComponent } from './request-schedulers-stats' + +export const RequestSchedulersRoutes: Routes = [ + { + path: 'requests', + component: RequestSchedulersComponent, + children: [ + { + path: '', + redirectTo: 'stats', + pathMatch: 'full' + }, + { + path: 'stats', + component: RequestSchedulersStatsComponent, + data: { + meta: { + title: 'Request stats' + } + } + } + ] + } +] diff --git a/client/src/app/+admin/request-schedulers/shared/index.ts b/client/src/app/+admin/request-schedulers/shared/index.ts new file mode 100644 index 000000000..1a0174409 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/shared/index.ts @@ -0,0 +1,2 @@ +export * from './request-schedulers-stats-attributes.model' +export * from './request-schedulers.service' diff --git a/client/src/app/+admin/request-schedulers/shared/request-schedulers-stats-attributes.model.ts b/client/src/app/+admin/request-schedulers/shared/request-schedulers-stats-attributes.model.ts new file mode 100644 index 000000000..6e19a0e44 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/shared/request-schedulers-stats-attributes.model.ts @@ -0,0 +1,37 @@ +import { RequestSchedulerStatsAttributes as FormatedRequestSchedulerStatsAttributes } from '../../../../../../shared' + +export interface Request { + request: any + to: any +} + +export class RequestSchedulerStatsAttributes implements FormatedRequestSchedulerStatsAttributes { + requestsLimitPods: number + requestsLimitPerPod: number + milliSecondsInterval: number + remainingMilliSeconds: number + totalRequests: number + + constructor (hash: { + requestsLimitPods: number, + requestsLimitPerPod: number, + milliSecondsInterval: number, + remainingMilliSeconds: number, + totalRequests: number + }) { + this.requestsLimitPods = hash.requestsLimitPods + this.requestsLimitPerPod = hash.requestsLimitPerPod + this.milliSecondsInterval = hash.milliSecondsInterval + this.remainingMilliSeconds = hash.remainingMilliSeconds + this.totalRequests = hash.totalRequests + } + + get remainingSeconds () { + return Math.floor(this.remainingMilliSeconds / 1000) + } + + get secondsInterva () { + return Math.floor(this.milliSecondsInterval / 1000) + } + +} diff --git a/client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts b/client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts new file mode 100644 index 000000000..e9b166f78 --- /dev/null +++ b/client/src/app/+admin/request-schedulers/shared/request-schedulers.service.ts @@ -0,0 +1,35 @@ +import { Injectable } from '@angular/core' +import { Observable } from 'rxjs/Observable' +import 'rxjs/add/operator/catch' +import 'rxjs/add/operator/map' + +import { RequestSchedulerStats } from '../../../../../../shared' +import { AuthHttp, RestExtractor } from '../../../shared' +import { RequestSchedulerStatsAttributes } from './request-schedulers-stats-attributes.model' + +@Injectable() +export class RequestSchedulersService { + private static BASE_REQUEST_URL = API_URL + '/api/v1/request-schedulers/' + + constructor ( + private authHttp: AuthHttp, + private restExtractor: RestExtractor + ) {} + + getStats (): Observable { + return this.authHttp.get(RequestSchedulersService.BASE_REQUEST_URL + 'stats') + .map(this.restExtractor.extractDataGet) + .map(this.buildRequestObjects) + .catch((res) => this.restExtractor.handleError(res)) + } + + private buildRequestObjects (data: RequestSchedulerStats) { + const requestSchedulers = {} + + Object.keys(data).forEach(requestSchedulerName => { + requestSchedulers[requestSchedulerName] = new RequestSchedulerStatsAttributes(data[requestSchedulerName]) + }) + + return requestSchedulers + } +} diff --git a/client/src/app/+admin/requests/index.ts b/client/src/app/+admin/requests/index.ts deleted file mode 100644 index d96a893c3..000000000 --- a/client/src/app/+admin/requests/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './request-stats' -export * from './shared' -export * from './requests.component' -export * from './requests.routes' diff --git a/client/src/app/+admin/requests/request-stats/index.ts b/client/src/app/+admin/requests/request-stats/index.ts deleted file mode 100644 index 740c401bb..000000000 --- a/client/src/app/+admin/requests/request-stats/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './request-stats.component' diff --git a/client/src/app/+admin/requests/request-stats/request-stats.component.html b/client/src/app/+admin/requests/request-stats/request-stats.component.html deleted file mode 100644 index 4508ab4c2..000000000 --- a/client/src/app/+admin/requests/request-stats/request-stats.component.html +++ /dev/null @@ -1,46 +0,0 @@ -
-
- -

Requests stats

- - -
-
-
{{ statsTitles[requestSchedulerName] }}
- -
-
-
- Remaining requests: - {{ stats[requestSchedulerName].totalRequests }} -
- -
- Interval seconds between requests: - {{ stats[requestSchedulerName].secondsInterval }} -
- -
- Remaining time before the scheduled request: - {{ stats[requestSchedulerName].remainingSeconds }} -
-
- -
-
- Maximum number of different pods for a scheduled request: - {{ stats[requestSchedulerName].requestsLimitPods }} -
- -
- Maximum number of requests per pod for a scheduled request: - {{ stats[requestSchedulerName].requestsLimitPerPod }} -
-
-
-
-
-
- -
-
diff --git a/client/src/app/+admin/requests/request-stats/request-stats.component.scss b/client/src/app/+admin/requests/request-stats/request-stats.component.scss deleted file mode 100644 index b2c413259..000000000 --- a/client/src/app/+admin/requests/request-stats/request-stats.component.scss +++ /dev/null @@ -1,8 +0,0 @@ -.label-description { - font-weight: bold; - color: black; -} - -.requests-limit { - margin-top: 20px; -} diff --git a/client/src/app/+admin/requests/request-stats/request-stats.component.ts b/client/src/app/+admin/requests/request-stats/request-stats.component.ts deleted file mode 100644 index 140aaf47e..000000000 --- a/client/src/app/+admin/requests/request-stats/request-stats.component.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Component, OnInit, OnDestroy } from '@angular/core' - -import { NotificationsService } from 'angular2-notifications' - -import { RequestService, RequestSchedulerStatsAttributes } from '../shared' -import { RequestScheduler } from '../../../../../../shared' - -@Component({ - selector: 'my-request-stats', - templateUrl: './request-stats.component.html', - styleUrls: [ './request-stats.component.scss' ] -}) -export class RequestStatsComponent implements OnInit, OnDestroy { - statsTitles = { - requestScheduler: 'Basic request scheduler', - requestVideoEventScheduler: 'Video events request scheduler', - requestVideoQaduScheduler: 'Quick and dirty video updates request scheduler' - } - - stats: RequestScheduler - - private intervals: { [ id: string ]: number } = { - requestScheduler: null, - requestVideoEventScheduler: null, - requestVideoQaduScheduler: null - } - - private timeouts: { [ id: string ]: number } = { - requestScheduler: null, - requestVideoEventScheduler: null, - requestVideoQaduScheduler: null - } - - constructor ( - private notificationsService: NotificationsService, - private requestService: RequestService - ) { } - - ngOnInit () { - this.getStats() - this.runIntervals() - } - - ngOnDestroy () { - Object.keys(this.stats).forEach(requestSchedulerName => { - if (this.intervals[requestSchedulerName] !== null) { - window.clearInterval(this.intervals[requestSchedulerName]) - } - - if (this.timeouts[requestSchedulerName] !== null) { - window.clearTimeout(this.timeouts[requestSchedulerName]) - } - }) - } - - getStats () { - this.requestService.getStats().subscribe( - stats => this.stats = stats, - - err => this.notificationsService.error('Error', err.text) - ) - } - - private runIntervals () { - Object.keys(this.intervals).forEach(requestSchedulerName => { - this.intervals[requestSchedulerName] = window.setInterval(() => { - const stats: RequestSchedulerStatsAttributes = this.stats[requestSchedulerName] - - stats.remainingMilliSeconds -= 1000 - - if (stats.remainingMilliSeconds <= 0) { - this.timeouts[requestSchedulerName] = window.setTimeout(() => this.getStats(), stats.remainingMilliSeconds + 100) - } - }, 1000) - }) - } -} diff --git a/client/src/app/+admin/requests/requests.component.ts b/client/src/app/+admin/requests/requests.component.ts deleted file mode 100644 index 88a90fa4e..000000000 --- a/client/src/app/+admin/requests/requests.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from '@angular/core' - -@Component({ - template: '' -}) -export class RequestsComponent { -} diff --git a/client/src/app/+admin/requests/requests.routes.ts b/client/src/app/+admin/requests/requests.routes.ts deleted file mode 100644 index 84db3fea8..000000000 --- a/client/src/app/+admin/requests/requests.routes.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Routes } from '@angular/router' - -import { RequestsComponent } from './requests.component' -import { RequestStatsComponent } from './request-stats' - -export const RequestsRoutes: Routes = [ - { - path: 'requests', - component: RequestsComponent, - children: [ - { - path: '', - redirectTo: 'stats', - pathMatch: 'full' - }, - { - path: 'stats', - component: RequestStatsComponent, - data: { - meta: { - title: 'Request stats' - } - } - } - ] - } -] diff --git a/client/src/app/+admin/requests/shared/index.ts b/client/src/app/+admin/requests/shared/index.ts deleted file mode 100644 index 857fe9d29..000000000 --- a/client/src/app/+admin/requests/shared/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './request-stats-attributes.model' -export * from './request.service' diff --git a/client/src/app/+admin/requests/shared/request-stats-attributes.model.ts b/client/src/app/+admin/requests/shared/request-stats-attributes.model.ts deleted file mode 100644 index 394acc73d..000000000 --- a/client/src/app/+admin/requests/shared/request-stats-attributes.model.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { RequestSchedulerAttributes as FormatedRequestSchedulerAttributes } from '../../../../../../shared' - -export interface Request { - request: any - to: any -} - -export class RequestSchedulerStatsAttributes implements FormatedRequestSchedulerAttributes { - requestsLimitPods: number - requestsLimitPerPod: number - milliSecondsInterval: number - remainingMilliSeconds: number - totalRequests: number - - constructor (hash: { - requestsLimitPods: number, - requestsLimitPerPod: number, - milliSecondsInterval: number, - remainingMilliSeconds: number, - totalRequests: number - }) { - this.requestsLimitPods = hash.requestsLimitPods - this.requestsLimitPerPod = hash.requestsLimitPerPod - this.milliSecondsInterval = hash.milliSecondsInterval - this.remainingMilliSeconds = hash.remainingMilliSeconds - this.totalRequests = hash.totalRequests - } - - get remainingSeconds () { - return Math.floor(this.remainingMilliSeconds / 1000) - } - - get secondsInterva () { - return Math.floor(this.milliSecondsInterval / 1000) - } - -} diff --git a/client/src/app/+admin/requests/shared/request.service.ts b/client/src/app/+admin/requests/shared/request.service.ts deleted file mode 100644 index 53682b111..000000000 --- a/client/src/app/+admin/requests/shared/request.service.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Injectable } from '@angular/core' -import { Observable } from 'rxjs/Observable' -import 'rxjs/add/operator/catch' -import 'rxjs/add/operator/map' - -import { RequestScheduler } from '../../../../../../shared' -import { AuthHttp, RestExtractor } from '../../../shared' -import { RequestSchedulerStatsAttributes } from './request-stats-attributes.model' - -@Injectable() -export class RequestService { - private static BASE_REQUEST_URL = API_URL + '/api/v1/requests/' - - constructor ( - private authHttp: AuthHttp, - private restExtractor: RestExtractor - ) {} - - getStats (): Observable { - return this.authHttp.get(RequestService.BASE_REQUEST_URL + 'stats') - .map(this.restExtractor.extractDataGet) - .map(this.buildRequestObjects) - .catch((res) => this.restExtractor.handleError(res)) - } - - private buildRequestObjects (data: RequestScheduler) { - const requestSchedulers = {} - - Object.keys(data).forEach(requestSchedulerName => { - requestSchedulers[requestSchedulerName] = new RequestSchedulerStatsAttributes(data[requestSchedulerName]) - }) - - return requestSchedulers - } -} -- cgit v1.2.3