You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by dg...@apache.org on 2020/01/28 16:35:21 UTC
[incubator-dlab] 03/03: [DLAB-1357]: Added stop/start action for
ODAHU
This is an automated email from the ASF dual-hosted git repository.
dgnatyshyn pushed a commit to branch DLAB-1357
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit 722ff6e5b20349130eb2153c6a56bb07950f6657
Author: Dmytro Gnatyshyn <di...@ukr.net>
AuthorDate: Tue Jan 28 18:34:39 2020 +0200
[DLAB-1357]: Added stop/start action for ODAHU
---
.../legion-deployment-data.service.ts | 6 ++--
.../legion-deployment.component.ts | 22 +++++++--------
.../legion-list/legion-list.component.html | 32 +++++++++++-----------
.../legion-list/legion-list.component.ts | 13 +++++++--
.../services/applicationServiceFacade.service.ts | 6 ++++
.../app/core/services/legion-deployment.service.ts | 10 ++++++-
6 files changed, 55 insertions(+), 34 deletions(-)
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment-data.service.ts b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment-data.service.ts
index ddce4e7..83dfeaf 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment-data.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment-data.service.ts
@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core';
-import {BehaviorSubject, Observable} from "rxjs";
-import {LegionDeploymentService} from "../../core/services";
+import {BehaviorSubject, Observable} from 'rxjs';
+import {LegionDeploymentService} from '../../core/services';
@Injectable({
@@ -21,7 +21,7 @@ export class LegionDeploymentDataService {
private getClastersList(): void {
this.legionDeploymentService.getOduhuClustersList().subscribe(
(response: any ) => {
- return this._legionClasters.next(response)
+ return this._legionClasters.next(response);
});
}
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment.component.ts
index 98c5753..f6fffe0 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-deployment.component.ts
@@ -1,16 +1,16 @@
import { Component, OnInit } from '@angular/core';
-import {LegionDeploymentDataService} from "./legion-deployment-data.service";
-import {Subscription} from "rxjs";
-import {MatDialog} from "@angular/material/dialog";
-import {ToastrService} from "ngx-toastr";
-import {CreateLegionClusterComponent} from "./create-legion-claster/create-legion-cluster.component";
-import {HealthStatusService, LegionDeploymentService} from "../../core/services";
+import {LegionDeploymentDataService} from './legion-deployment-data.service';
+import {Subscription} from 'rxjs';
+import {MatDialog} from '@angular/material/dialog';
+import {ToastrService} from 'ngx-toastr';
+import {CreateLegionClusterComponent} from './create-legion-claster/create-legion-cluster.component';
+import {HealthStatusService, LegionDeploymentService} from '../../core/services';
-// export interface OdahuCluster {
-// name: string;
-// project: string;
-// endpoint: string;
-// }
+export interface OdahuCluster {
+ name: string;
+ project: string;
+ endpoint: string;
+}
@Component({
selector: 'dlab-legion-deployment',
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.html
index a981af4..11325bc 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.html
@@ -1,6 +1,6 @@
<table mat-table [dataSource]="dataSource" class="legion-clasters-table mat-elevation-z6 selection">
- <ng-container matColumnDef="name">
+ <ng-container matColumnDef="project">
<th mat-header-cell *matHeaderCellDef class="project"> Project name </th>
<td mat-cell *matCellDef="let element" class="project">
<span *ngIf="element && element.project">{{element.project}}</span>
@@ -41,36 +41,36 @@
<bubble-up #actions class="list-menu" position="bottom-left" alternative="top-left">
<ul class="list-unstyled">
<div class="active-items"></div>
- <li class="project-seting-item">
+ <li class="project-seting-item" *ngIf="element.status === 'STOPPED'" (click)="odahuAction(element, 'start')">
<i class="material-icons">play_circle_outline</i>
<a class="action">
Start
</a>
</li>
- <li class="project-seting-item">
+ <li class="project-seting-item" *ngIf="element.status === 'RUNNING'" (click)="odahuAction(element, 'stop')">
<i class="material-icons">pause_circle_outline</i>
<a class="action" >
Stop
</a>
</li>
- <li class="project-seting-item ">
+ <li class="project-seting-item" (click)="odahuAction(element, 'terminate')">
<i class="material-icons">phonelink_off</i>
<a class="action">
Terminate
</a>
</li>
- <li class="project-seting-item">
- <i class="material-icons">arrow_downward</i>
- <a>
- Scale-down
- </a>
- </li>
- <li class="project-seting-item">
- <i class="material-icons">arrow_upward</i>
- <a class="action">
- Scale-up
- </a>
- </li>
+ <!--<li class="project-seting-item">-->
+ <!--<i class="material-icons">arrow_downward</i>-->
+ <!--<a>-->
+ <!--Scale-down-->
+ <!--</a>-->
+ <!--</li>-->
+ <!--<li class="project-seting-item">-->
+ <!--<i class="material-icons">arrow_upward</i>-->
+ <!--<a class="action">-->
+ <!--Scale-up-->
+ <!--</a>-->
+ <!--</li>-->
</ul>
</bubble-up>
</td>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.ts
index e31d67a..106fc7c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/legion-deployment/legion-list/legion-list.component.ts
@@ -1,7 +1,8 @@
import { Component, OnInit } from '@angular/core';
-import {Subscription} from "rxjs";
-import {LegionDeploymentDataService} from "../legion-deployment-data.service";
+import {Subscription} from 'rxjs';
+import {LegionDeploymentDataService} from '../legion-deployment-data.service';
import { MatTableDataSource } from '@angular/material/table';
+import {LegionDeploymentService} from '../../../core/services';
@Component({
selector: 'legion-list',
@@ -12,10 +13,11 @@ export class LegionListComponent implements OnInit {
private legionClustersList: any[];
private subscriptions: Subscription = new Subscription();
public dataSource: MatTableDataSource<any>;
- displayedColumns: string[] = ['name', 'endpoint-url', 'legion-name', 'legion-status', "actions"];
+ displayedColumns: string[] = ['project', 'endpoint-url', 'legion-name', 'legion-status', 'actions'];
constructor(
private legionDeploymentDataService: LegionDeploymentDataService,
+ private legionDeploymentService: LegionDeploymentService
) { }
ngOnInit() {
@@ -28,4 +30,9 @@ export class LegionListComponent implements OnInit {
}));
}
+ private odahuAction(element: any, action: string) {
+ this.legionDeploymentService.odahuAction(element, action).subscribe(v =>
+ this.legionDeploymentDataService.updateClasters()
+ );
+ }
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts
index 413f525..5c4e6c9 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts
@@ -613,6 +613,12 @@ export class ApplicationServiceFacade {
null);
}
+ public odahuStartStop(data, params): Observable<any> {
+ return this.buildRequest(HTTPMethod.POST,
+ this.requestRegistry.Item(ApplicationServiceFacade.ODAHU) + `/${params}`,
+ data);
+ }
+
private setupRegistry(): void {
this.requestRegistry = new Dictionary<string>();
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/legion-deployment.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/legion-deployment.service.ts
index 8ff928a..1b0872e 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/legion-deployment.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/legion-deployment.service.ts
@@ -1,5 +1,5 @@
import { Injectable } from '@angular/core';
-import {from, Observable} from "rxjs";
+import {Observable} from 'rxjs';
import { map, catchError } from 'rxjs/operators';
import { ApplicationServiceFacade } from './applicationServiceFacade.service';
import { ErrorUtils } from '../util';
@@ -24,4 +24,12 @@ export class LegionDeploymentService {
map(response => response),
catchError(ErrorUtils.handleServiceError));
}
+
+ public odahuAction(data, action) {
+ return this.applicationServiceFacade
+ .odahuStartStop(data, action)
+ .pipe(
+ map(response => response),
+ catchError(ErrorUtils.handleServiceError));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org