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/08/06 15:09:28 UTC

[incubator-dlab] branch DLAB-1984 created (now 6e66bda)

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

dgnatyshyn pushed a change to branch DLAB-1984
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git.


      at 6e66bda  [DLAB-1984]: Allowed to create EMR/Dataproc with GPU for Jupyter, fixed libs groups, ungit for zeppelin

This branch includes the following new commits:

     new 6e66bda  [DLAB-1984]: Allowed to create EMR/Dataproc with GPU for Jupyter, fixed libs groups, ungit for zeppelin

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@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org


[incubator-dlab] 01/01: [DLAB-1984]: Allowed to create EMR/Dataproc with GPU for Jupyter, fixed libs groups, ungit for zeppelin

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

dgnatyshyn pushed a commit to branch DLAB-1984
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit 6e66bdaf336a6a35479e2a6f9098b539a6e1d6d1
Author: Dmytro_Gnatyshyn <di...@ukr.net>
AuthorDate: Thu Aug 6 18:08:44 2020 +0300

    [DLAB-1984]: Allowed to create EMR/Dataproc with GPU for Jupyter, fixed libs groups, ungit for zeppelin
---
 ...mputational-resource-create-dialog.component.ts | 37 +++++++++++---------
 .../create-environment.component.scss              |  2 +-
 .../detail-dialog/detail-dialog.component.html     | 40 +++++++++++++---------
 .../install-libraries.component.ts                 | 35 +++++--------------
 4 files changed, 53 insertions(+), 61 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts
index 9f319cc..f2c424e 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts
@@ -83,6 +83,7 @@ export class ComputationalResourceCreateDialogComponent implements OnInit {
 
   public selectImage($event) {
     this.selectedImage = $event;
+    console.log(this.selectedImage);
     this.filterShapes();
     this.getComputationalResourceLimits();
 
@@ -267,32 +268,36 @@ export class ComputationalResourceCreateDialogComponent implements OnInit {
 
   private filterShapes(): void {
     const allowed: any = ['GPU optimized'];
+    let filtered;
+
+    const reduceShapes = (obj, key) => {
+      obj[key] = this.selectedImage.computation_resources_shapes[key];
+      return obj;
+    };
+
+    const filteredShapeKeys = Object.keys(
+      SortUtils.shapesSort(this.selectedImage.computation_resources_shapes));
+
+    const filterShapes = (filter) => filteredShapeKeys
+      .filter(filter)
+      .reduce(reduceShapes, {});
+
     if (this.notebook_instance.template_name.toLowerCase().indexOf('tensorflow') !== -1
       || this.notebook_instance.template_name.toLowerCase().indexOf('deep learning') !== -1
     ) {
-      const filtered = Object.keys(
-        SortUtils.shapesSort(this.selectedImage.computation_resources_shapes))
-        .filter(key => allowed.includes(key))
-        .reduce((obj, key) => {
-          obj[key] = this.selectedImage.computation_resources_shapes[key];
-          return obj;
-        }, {});
+      filtered = filterShapes(key => allowed.includes(key));
       if (this.PROVIDER !== 'azure') {
         const images = this.clusterTypes.filter(image => image.image === 'docker.dlab-dataengine');
         this.clusterTypes = images;
         this.selectedImage = this.clusterTypes[0];
       }
-      this.selectedImage.computation_resources_shapes = filtered;
+    } else if (this.notebook_instance.template_name.toLowerCase().indexOf('jupyter notebook') !== -1 &&
+      this.selectedImage.image === 'docker.dlab-dataengine-service') {
+      filtered = filterShapes(v => v);
     } else {
-      const filtered = Object.keys(
-        SortUtils.shapesSort(this.selectedImage.computation_resources_shapes))
-        .filter(key => !(allowed.includes(key)))
-        .reduce((obj, key) => {
-          obj[key] = this.selectedImage.computation_resources_shapes[key];
-          return obj;
-        }, {});
-      this.selectedImage.computation_resources_shapes = filtered;
+      filtered = filterShapes(key => !(allowed.includes(key)));
     }
+    this.selectedImage.computation_resources_shapes = filtered;
   }
 
   private filterAvailableSpots() {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss
index 6711ad4..f02436e 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss
@@ -55,7 +55,7 @@
   .error {
     position: absolute;
     right: 0;
-    top: 35px;
+    top: 38px;
   }
 
   &.name-control {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
index 409e3ae..541c8a1 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
@@ -59,24 +59,30 @@
               {{upTimeSince || "not specified."}}</p>
             <p *ngIf="notebook.url?.length">Open following URL(s) in your browser to access this box:</p>
             <div class="links_block">
-              <p *ngFor="let item of notebook.url" (mouseleave)="hideCopyIcon()">
-                <span class="description">{{item.description}}: &nbsp;</span>
-                <a (mouseover)="showCopyIcon(item.description)"
-                   (click)="logAction(notebook.name, item.description)"
-                   class="ellipsis none-select" matTooltip="{{item.url}}"
-                   matTooltipPosition="above"
-                   href="{{item.url}}"
-                  target="_blank"
-                   (contextmenu)="false"
-                >
-                  &nbsp;{{item.url}}
-                </a>
-                <span (click)="logAction(notebook.name, item.description, 'Copy');$event.stopPropagation()" *ngIf="isCopyIconVissible[item.description]" [matTooltip]="isCopied ? 'Copy ' + item.description + ' url': 'Copied'" matTooltipPosition="above" class="copy-icon-wrapper">
-                  <span  class="link-icon" (click)="copyBucketName(item.url)" >
-                    <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
-                   </span>
+              <ng-container *ngFor="let item of notebook.url">
+                <span class="d-none" *ngIf="item.description === 'Ungit' && notebook.template_name.toLowerCase().indexOf('deep learning') !== -1; else ungit">
                 </span>
-              </p>
+                <ng-template #ungit>
+                  <p (mouseleave)="hideCopyIcon()">
+                    <span class="description">{{item.description}}: &nbsp;</span>
+                    <a (mouseover)="showCopyIcon(item.description)"
+                       (click)="logAction(notebook.name, item.description)"
+                       class="ellipsis none-select" matTooltip="{{item.url}}"
+                       matTooltipPosition="above"
+                       href="{{item.url}}"
+                      target="_blank"
+                       (contextmenu)="false"
+                    >
+                      &nbsp;{{item.url}}
+                    </a>
+                    <span (click)="logAction(notebook.name, item.description, 'Copy');$event.stopPropagation()" *ngIf="isCopyIconVissible[item.description]" [matTooltip]="isCopied ? 'Copy ' + item.description + ' url': 'Copied'" matTooltipPosition="above" class="copy-icon-wrapper">
+                      <span  class="link-icon" (click)="copyBucketName(item.url)" >
+                        <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
+                       </span>
+                    </span>
+                  </p>
+                </ng-template>
+              </ng-container>
             </div>
             <p class="flex" *ngIf="notebook.username">Node User: &nbsp;<span
                 class="strong">{{ notebook.username }}</span></p>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
index 94c7009..909fa4d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
@@ -172,13 +172,12 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy {
       }
       this.lib = {name: '', version: ''};
     } else if ($event.model.type === 'destination') {
-      this.resetDialog();
       this.destination = $event.model.value;
       this.destination && this.destination.type === 'СOMPUTATIONAL'
         ? this.model.computational_name = this.destination.name
         : this.model.computational_name = null;
-      this.uploadLibGroups();
-      this.getInstalledLibsByResource();
+      this.resetDialog();
+      // this.getInstalledLibsByResource();
       this.libSearch.disable();
     }
     this.filterList();
@@ -345,7 +344,8 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy {
             libs => {
               this.filteredList = [libs];
               this.filteredList.forEach(lib => {
-                lib.isInSelectedList = this.model.selectedLibs.some(el => lib.name.toLowerCase() === el.name.substring(0, el.name.lastIndexOf(':')).toLowerCase());
+                lib.isInSelectedList = this.model.selectedLibs
+                  .some(el => lib.name.toLowerCase() === el.name.substring(0, el.name.lastIndexOf(':')).toLowerCase());
                 lib.isInstalled = this.notebookLibs.some(libr => {
                     return lib.name.toLowerCase() === libr.name.substring(0, libr.name.lastIndexOf(':')).toLowerCase() &&
                       this.group === libr.group &&
@@ -360,7 +360,7 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy {
                 || error.status === HTTP_STATUS_CODES.BAD_REQUEST
                 || error.status === HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR) {
                 this.validity_format = error.message;
-                if (error.message.indexOf('query param artifact') !== -1) {
+                if (error.message.indexOf('query param artifact') !== -1 || error.message.indexOf('Illegal character') !== -1) {
                   this.validity_format = 'Wrong library name format. Should be <groupId>:<artifactId>:<versionId>.';
                 }
                 if (error.message.indexOf('not found') !== -1) {
@@ -394,8 +394,8 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy {
 
   }
 
-  private selectorsReset(): void {
-    this.destination = this.getResourcesList()[0];
+  private selectorsReset(leaveDestanation?): void {
+    if (!leaveDestanation) this.destination = this.getResourcesList()[0];
     this.uploadLibGroups();
     this.getInstalledLibsByResource();
     this.libSearch.disable();
@@ -414,7 +414,7 @@ export class InstallLibrariesComponent implements OnInit, OnDestroy {
 
     clearTimeout(this.clear);
     clearTimeout(this.loadLibsTimer);
-    this.selectorsReset();
+    this.selectorsReset(true);
   }
 
   public toggleFilterRow(): void {
@@ -489,25 +489,6 @@ export class ErrorLibMessageDialogComponent {
     <h4 class="modal-title" *ngIf="data.type === 'available'">Version is not available</h4>
     <button type="button" class="close" (click)="dialogRef.close()">&times;</button>
   </div>
-<!--  <mat-list class="resources">-->
-
-<!--    <mat-list-item class="list-header">-->
-<!--      <div class="object">Name</div>-->
-<!--      <div class="size">Version</div>-->
-<!--    </mat-list-item>-->
-
-<!--    <div class="scrolling-content delete-list" id="scrolling">-->
-
-<!--      <mat-list-item *ngFor="let lib of data.add_pkgs" class="delete-item">-->
-<!--        <div class="object">-->
-<!--         {{lib}}-->
-<!--        </div>-->
-<!--        <div class="size">v2.3.4</div>-->
-<!--      </mat-list-item>-->
-
-<!--    </div>-->
-<!--  </mat-list>-->
-
   <div class="lib-list" *ngIf="data.type === 'added'">
     <span class="strong dependency-title">Dependency: </span><span class="packeges" *ngFor="let pack of data.lib.add_pkgs; index as i">{{pack + (i !== data.lib.add_pkgs.length - 1 ? ', ' : '')}}</span>
   </div>


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