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