import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
-import { AuthService } from './auth.service';
-import { CephfsService } from './cephfs.service';
-import { ConfigurationService } from './configuration.service';
-import { DashboardService } from './dashboard.service';
-import { HostService } from './host.service';
-import { LoggingService } from './logging.service';
-import { MonitorService } from './monitor.service';
-import { OsdService } from './osd.service';
-import { PerformanceCounterService } from './performance-counter.service';
-import { PoolService } from './pool.service';
-import { RbdMirroringService } from './rbd-mirroring.service';
-import { RbdService } from './rbd.service';
-import { RgwBucketService } from './rgw-bucket.service';
-import { RgwDaemonService } from './rgw-daemon.service';
-import { RgwUserService } from './rgw-user.service';
-import { TcmuIscsiService } from './tcmu-iscsi.service';
-
@NgModule({
- imports: [CommonModule],
- declarations: [],
- providers: [
- AuthService,
- CephfsService,
- ConfigurationService,
- DashboardService,
- HostService,
- MonitorService,
- OsdService,
- PoolService,
- RbdService,
- RbdMirroringService,
- RgwBucketService,
- RgwDaemonService,
- RgwUserService,
- PerformanceCounterService,
- LoggingService,
- TcmuIscsiService
- ]
+ imports: [CommonModule]
})
export class ApiModule {}
import { Credentials } from '../models/credentials';
import { AuthStorageService } from '../services/auth-storage.service';
+import { ApiModule } from './api.module';
-@Injectable()
+@Injectable({
+ providedIn: ApiModule
+})
export class AuthService {
-
- constructor(private authStorageService: AuthStorageService,
- private http: HttpClient) {
- }
+ constructor(private authStorageService: AuthStorageService, private http: HttpClient) {}
login(credentials: Credentials) {
- return this.http.post('api/auth', credentials).toPromise().then((resp: Credentials) => {
- this.authStorageService.set(resp.username);
- });
+ return this.http
+ .post('api/auth', credentials)
+ .toPromise()
+ .then((resp: Credentials) => {
+ this.authStorageService.set(resp.username);
+ });
}
logout() {
- return this.http.delete('api/auth').toPromise().then(() => {
- this.authStorageService.remove();
- });
+ return this.http
+ .delete('api/auth')
+ .toPromise()
+ .then(() => {
+ this.authStorageService.remove();
+ });
}
}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class CephfsService {
baseURL = 'api/cephfs';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class ConfigurationService {
constructor(private http: HttpClient) {}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class DashboardService {
constructor(private http: HttpClient) {}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class HostService {
constructor(private http: HttpClient) {
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class LoggingService {
constructor(private http: HttpClient) {
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class MonitorService {
constructor(private http: HttpClient) {}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class OsdService {
private path = 'api/osd';
import { of as observableOf } from 'rxjs';
import { mergeMap } from 'rxjs/operators';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class PerformanceCounterService {
private url = 'api/perf_counters';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class PoolService {
constructor(private http: HttpClient) {
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class RbdMirroringService {
constructor(private http: HttpClient) {}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class RbdService {
constructor(private http: HttpClient) {
import { forkJoin as observableForkJoin, of as observableOf } from 'rxjs';
import { mergeMap } from 'rxjs/operators';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class RgwBucketService {
private url = '/api/rgw/proxy/bucket';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class RgwDaemonService {
private url = 'api/rgw/daemon';
import {forkJoin as observableForkJoin, of as observableOf } from 'rxjs';
import { mergeMap } from 'rxjs/operators';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class RgwUserService {
private url = '/api/rgw/proxy/user';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
-@Injectable()
+import { ApiModule } from './api.module';
+
+@Injectable({
+ providedIn: ApiModule
+})
export class TcmuIscsiService {
constructor(private http: HttpClient) {
import { FinishedTask } from '../models/finished-task';
import { AuthStorageService } from './auth-storage.service';
import { NotificationService } from './notification.service';
+import { ServicesModule } from './services.module';
-@Injectable()
+@Injectable({
+ providedIn: ServicesModule
+})
export class ApiInterceptorService implements HttpInterceptor {
constructor(
private router: Router,
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
import { AuthStorageService } from './auth-storage.service';
+import { ServicesModule } from './services.module';
-@Injectable()
+@Injectable({
+ providedIn: ServicesModule
+})
export class AuthGuardService implements CanActivate {
constructor(private router: Router, private authStorageService: AuthStorageService) {
import { Injectable } from '@angular/core';
-@Injectable()
+import { ServicesModule } from './services.module';
+
+@Injectable({
+ providedIn: ServicesModule
+})
export class AuthStorageService {
constructor() {
import * as _ from 'lodash';
-@Injectable()
+import { ServicesModule } from './services.module';
+
+@Injectable({
+ providedIn: ServicesModule
+})
export class FormatterService {
constructor() {}
import { of as observableOf } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
+import { ServicesModule } from './services.module';
+
/**
* This service checks if a route can be activated by executing a
* REST API call to '/api/<apiPath>/status'. If the returned response
* },
* ...
*/
-@Injectable()
+@Injectable({
+ providedIn: ServicesModule
+})
export class ModuleStatusGuardService implements CanActivate, CanActivateChild {
constructor(private http: HttpClient, private router: Router) {}
import { NotificationType } from '../enum/notification-type.enum';
import { CdNotification } from '../models/cd-notification';
import { FinishedTask } from '../models/finished-task';
+import { ServicesModule } from './services.module';
import { TaskManagerMessageService } from './task-manager-message.service';
-@Injectable()
+@Injectable({
+ providedIn: ServicesModule
+})
export class NotificationService {
// Observable sources
private dataSource = new BehaviorSubject<CdNotification[]>([]);
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
-import { AuthGuardService } from './auth-guard.service';
-import { AuthStorageService } from './auth-storage.service';
-import { FormatterService } from './formatter.service';
-import { ModuleStatusGuardService } from './module-status-guard.service';
-import { NotificationService } from './notification.service';
-import { SummaryService } from './summary.service';
-import { TaskManagerMessageService } from './task-manager-message.service';
-import { TaskManagerService } from './task-manager.service';
-
@NgModule({
- imports: [CommonModule],
- declarations: [],
- providers: [
- AuthGuardService,
- AuthStorageService,
- FormatterService,
- SummaryService,
- ModuleStatusGuardService,
- NotificationService,
- TaskManagerService,
- TaskManagerMessageService
- ]
+ imports: [CommonModule]
})
export class ServicesModule {}
import { Subject } from 'rxjs';
import { AuthStorageService } from './auth-storage.service';
+import { ServicesModule } from './services.module';
-@Injectable()
+@Injectable({
+ providedIn: ServicesModule
+})
export class SummaryService {
// Observable sources
private summaryDataSource = new Subject();
import { Components } from '../enum/components.enum';
import { FinishedTask } from '../models/finished-task';
import { Task } from '../models/task';
+import { ServicesModule } from './services.module';
class TaskManagerMessage {
descr: (metadata) => string;
success: (metadata) => string;
error: (metadata) => object;
- constructor(descr: (metadata) => string,
- success: (metadata) => string,
- error: (metadata) => object) {
+ constructor(
+ descr: (metadata) => string,
+ success: (metadata) => string,
+ error: (metadata) => object
+ ) {
this.descr = descr;
this.success = success;
this.error = error;
}
}
-@Injectable()
+@Injectable({
+ providedIn: ServicesModule
+})
export class TaskManagerMessageService {
-
messages = {
'rbd/create': new TaskManagerMessage(
(metadata) => `Create RBD '${metadata.pool_name}/${metadata.image_name}'`,
(metadata) => `RBD '${metadata.pool_name}/${metadata.image_name}'
has been flattened successfully`,
() => {
- return {
- };
+ return {};
}
),
'rbd/snap/create': new TaskManagerMessage(
- (metadata) => `Create snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
- (metadata) => `Snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
- `has been created successfully`,
+ (metadata) =>
+ `Create snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
+ (metadata) =>
+ `Snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
+ `has been created successfully`,
(metadata) => {
return {
'17': `Name '${metadata.snapshot_name}' is already in use.`
}
),
'rbd/snap/edit': new TaskManagerMessage(
- (metadata) => `Update snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
- (metadata) => `Snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
- `has been updated successfully`,
+ (metadata) =>
+ `Update snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
+ (metadata) =>
+ `Snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
+ `has been updated successfully`,
() => {
return {
'16': `Cannot unprotect snapshot because it contains child images.`
}
),
'rbd/snap/delete': new TaskManagerMessage(
- (metadata) => `Delete snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
- (metadata) => `Snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
- `has been deleted successfully`,
+ (metadata) =>
+ `Delete snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
+ (metadata) =>
+ `Snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
+ `has been deleted successfully`,
() => {
return {
'16': `Snapshot is protected.`
}
),
'rbd/snap/rollback': new TaskManagerMessage(
- (metadata) => `Rollback snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
- (metadata) => `Snapshot ` +
- `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
- `has been rolled back successfully`,
+ (metadata) =>
+ `Rollback snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}'`,
+ (metadata) =>
+ `Snapshot ` +
+ `'${metadata.pool_name}/${metadata.image_name}@${metadata.snapshot_name}' ` +
+ `has been rolled back successfully`,
() => {
- return {
- };
+ return {};
}
)
};
},
(metadata) => 'Task executed successfully',
() => {
- return {
- };
+ return {};
}
);
- constructor() { }
+ constructor() {}
getSuccessMessage(finishedTask: FinishedTask) {
const taskManagerMessage = this.messages[finishedTask.name] || this.defaultMessage;
getErrorMessage(finishedTask: FinishedTask) {
const taskManagerMessage = this.messages[finishedTask.name] || this.defaultMessage;
- return taskManagerMessage.error(finishedTask.metadata)[finishedTask.exception.code] ||
- finishedTask.exception.detail;
+ return (
+ taskManagerMessage.error(finishedTask.metadata)[finishedTask.exception.code] ||
+ finishedTask.exception.detail
+ );
}
getDescription(task: Task) {
import { ExecutingTask } from '../models/executing-task';
import { FinishedTask } from '../models/finished-task';
import { Task } from '../models/task';
+import { ServicesModule } from './services.module';
import { SummaryService } from './summary.service';
class TaskSubscription {
}
}
-@Injectable()
+@Injectable({
+ providedIn: ServicesModule
+})
export class TaskManagerService {
subscriptions: Array<TaskSubscription> = [];