You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by yt...@apache.org on 2021/06/15 07:45:41 UTC

[incubator-datalab] branch DATALAB-1939 created (now 66cc8e2)

This is an automated email from the ASF dual-hosted git repository.

ytykhun pushed a change to branch DATALAB-1939
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git.


      at 66cc8e2  [DATALAB-1939] showed all resources which will be terminated

This branch includes the following new commits:

     new 66cc8e2  [DATALAB-1939] showed all resources which will be terminated

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org


[incubator-datalab] 01/01: [DATALAB-1939] showed all resources which will be terminated

Posted by yt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ytykhun pushed a commit to branch DATALAB-1939
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit 66cc8e2fae88c9ea5a7683987f5fc0ddd4f1d34a
Author: Yurii Tykhun <ty...@gmail.com>
AuthorDate: Tue Jun 15 10:44:54 2021 +0300

    [DATALAB-1939] showed all resources which will be terminated
---
 .../app/administration/project/project.component.ts  | 20 +++++++++++---------
 .../create-environment.component.html                |  8 ++++----
 .../create-environment.component.ts                  | 20 ++++++++++----------
 3 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts
index ba60451..2e28831 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts
@@ -26,7 +26,7 @@ import { ProjectDataService } from './project-data.service';
 import {HealthStatusService, ProjectService, UserResourceService} from '../../core/services';
 import { NotificationDialogComponent } from '../../shared/modal-dialog/notification-dialog';
 import { ProjectListComponent } from './project-list/project-list.component';
-import {ExploratoryModel} from '../../resources/resources-grid/resources-grid.model';
+import { EnvironmentsDataService } from '../management/management-data.service';
 
 export interface Endpoint {
   name: string;
@@ -67,7 +67,7 @@ export class ProjectComponent implements OnInit, OnDestroy {
     private projectService: ProjectService,
     private projectDataService: ProjectDataService,
     private healthStatusService: HealthStatusService,
-    private userResourceService: UserResourceService
+    private environmentsDataService: EnvironmentsDataService
   ) { }
 
   ngOnInit() {
@@ -85,10 +85,9 @@ export class ProjectComponent implements OnInit, OnDestroy {
   }
 
   private getResources() {
-    this.userResourceService.getUserProvisionedResources()
-      .subscribe((result: any) => {
-        this.resources = ExploratoryModel.loadEnvironments(result);
-      });
+    this.environmentsDataService.getEnvironmentDataDirect().subscribe((data: any) => {
+      this.resources = data;
+    });
   }
 
   refreshGrid() {
@@ -125,13 +124,16 @@ export class ProjectComponent implements OnInit, OnDestroy {
 
   private toggleStatusRequest(data, action, isOnlyOneEdge?) {
     if ( action === 'terminate') {
-      const projectsResources = this.resources.filter(resource => resource.project === data.project_name);
-      const activeProjectsResources = projectsResources.length ? projectsResources[0].exploratory
+      const projectsResources = this.resources
+        .filter(resource => resource.project === data.project_name && resource.resource_type !== "edge node");
+
+      const activeProjectsResources = projectsResources?.length ? projectsResources
         .filter(expl => expl.status !== 'terminated' && expl.status !== 'terminating' && expl.status !== 'failed') : [];
+        
       const termResources = data.endpoint.reduce((res, endp) => {
         res.push(...activeProjectsResources.filter(resource => resource.endpoint === endp));
         return res;
-        }, []).map(resource => resource.name);
+      }, []).map(resource => resource.resource_name);
 
       if (termResources.length === 0 && !isOnlyOneEdge) {
         this.edgeNodeAction(data, action);
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
index b3f280c..56b12c9 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
@@ -223,7 +223,7 @@
                 <span class="form-field-wrapper" [ngClass]="{ 'not-active': !createExploratoryForm.controls['shape'].value}">
                 <mat-form-field>
                   <mat-label>Select GPU type</mat-label>
-                  <mat-select formControlName="gpuType" disableOptionCentering [disabled]="!createExploratoryForm.controls['shape'].value"
+                  <mat-select formControlName="gpu_type" disableOptionCentering [disabled]="!createExploratoryForm.controls['shape'].value"
                               panelClass="create-resources-dialog" placeholder="GPU type">
                       <mat-option *ngFor="let list_item of gpuTypes" [value]="list_item" (click)="setCount('', list_item)">
                         {{ list_item}}
@@ -245,12 +245,12 @@
                        [matTooltip]="'Please, select GPU type.'"
                        matTooltipPosition="above"
                        [matTooltipClass]="'full-size-tooltip'"
-                       [matTooltipDisabled]="!!createExploratoryForm.controls['gpuType'].value"
+                       [matTooltipDisabled]="!!createExploratoryForm.controls['gpu_type'].value"
                   >
-                <span class="form-field-wrapper" [ngClass]="{ 'not-active': !createExploratoryForm.controls['gpuType'].value}">
+                <span class="form-field-wrapper" [ngClass]="{ 'not-active': !createExploratoryForm.controls['gpu_type'].value}">
                 <mat-form-field>
                   <mat-label>Select GPU count</mat-label>
-                  <mat-select formControlName="gpuCount" disableOptionCentering [disabled]="!createExploratoryForm.controls['gpuType'].value"
+                  <mat-select formControlName="gpu_count" disableOptionCentering [disabled]="!createExploratoryForm.controls['gpu_type'].value"
                               panelClass="create-resources-dialog" placeholder="GPU count">
                       <mat-option *ngFor="let list_item of gpuCount" [value]="list_item">
                         {{ list_item }}
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts
index 0acb47f..958261a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts
@@ -105,7 +105,7 @@ export class ExploratoryEnvironmentCreateComponent implements OnInit {
   }
 
   public setEndpoints(project) {
-    const controls = ['endpoint', 'version', 'shape', 'gpuType', 'gpuCount'];
+    const controls = ['endpoint', 'version', 'shape', 'gpu_type', 'gpu_count'];
     this.resetSelections(controls);
     
     this.endpoints = project.endpoints
@@ -152,11 +152,11 @@ export class ExploratoryEnvironmentCreateComponent implements OnInit {
 
   public getShapes(template) {
     this.selectedImage = null;
-    const controls = ['notebook_image_name', 'shape', 'gpuType', 'gpuCount'];
+    const controls = ['notebook_image_name', 'shape', 'gpu_type', 'gpu_count'];
 
     controls.forEach(control => {
       this.createExploratoryForm.controls[control].setValue(null);
-      if (control === 'gpuType' || control === 'gpuCount') {
+      if (control === 'gpu_type' || control === 'gpu_count') {
         this.createExploratoryForm.controls[control].clearValidators();
         this.createExploratoryForm.controls[control].updateValueAndValidity();
       }
@@ -208,7 +208,7 @@ export class ExploratoryEnvironmentCreateComponent implements OnInit {
     };
 
     data.cluster_config = data.cluster_config ? JSON.parse(data.cluster_config) : null;
-    
+
     this.userResourceService.createExploratoryEnvironment({ ...parameters, ...data }).subscribe((response: any) => {
       if (response.status === HTTP_STATUS_CODES.OK) this.dialogRef.close();
     }, error => this.toastr.error(error.message || 'Exploratory creation failed!', 'Oops!'));
@@ -236,7 +236,7 @@ export class ExploratoryEnvironmentCreateComponent implements OnInit {
     this.additionalParams.gpu = !this.additionalParams.gpu;
     this.createExploratoryForm.controls['gpu_enabled'].setValue(this.additionalParams.gpu);
 
-    const controls = ['gpuType', 'gpuCount'];
+    const controls = ['gpu_type', 'gpu_count'];
     if (!this.additionalParams.gpu) {
       controls.forEach(control => {
         this.createExploratoryForm.controls[control].setValue(null);
@@ -256,7 +256,7 @@ export class ExploratoryEnvironmentCreateComponent implements OnInit {
   }
 
   public setInstanceSize() {
-    const controls = ['gpuType', 'gpuCount'];
+    const controls = ['gpu_type', 'gpu_count'];
     controls.forEach(control => {
       this.createExploratoryForm.controls[control].setValue(null);
     });
@@ -266,8 +266,8 @@ export class ExploratoryEnvironmentCreateComponent implements OnInit {
     if (gpuType && this.currentTemplate.image === 'docker.datalab-deeplearning') {
       this.additionalParams.gpu = true;
       this.createExploratoryForm.controls['gpu_enabled'].setValue(this.additionalParams.gpu);
-      this.createExploratoryForm.controls['gpuCount'].setValidators([Validators.required]);
-      this.createExploratoryForm.controls['gpuCount'].updateValueAndValidity();
+      this.createExploratoryForm.controls['gpu_count'].setValidators([Validators.required]);
+      this.createExploratoryForm.controls['gpu_count'].updateValueAndValidity();
     }
     // if (type === 'master') {
       const masterShape = this.createExploratoryForm.controls['shape'].value;
@@ -293,8 +293,8 @@ export class ExploratoryEnvironmentCreateComponent implements OnInit {
       ]],
       cluster_config: ['', [this.validConfiguration.bind(this)]],
       custom_tag: ['', [Validators.pattern(PATTERNS.namePattern)]],
-      gpuType: [null],
-      gpuCount: [null],
+      gpu_type: [null],
+      gpu_count: [null],
       gpu_enabled: [false]
     });
   }

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org