You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by dg...@apache.org on 2021/02/19 12:59:44 UTC

[incubator-datalab] branch DATALAB-2299 created (now e3f0369)

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

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


      at e3f0369  Merge branch 'develop' of github.com:apache/incubator-dlab into Odahu_UI

This branch includes the following new commits:

     new 1141602  Fix odahu requests
     new 848adbd  Fixed roles for ODAHU on backend
     new f158160  [DATALAB-2299]: Fixed conflicts for detail dialogs
     new e3f0369  Merge branch 'develop' of github.com:apache/incubator-dlab into Odahu_UI

The 4 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/04: Fix odahu requests

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

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

commit 114160210874f52e19b1c2fbd545514cddc8c989
Author: Dmytro_Gnatyshyn <di...@ukr.net>
AuthorDate: Fri Feb 19 11:15:37 2021 +0200

    Fix odahu requests
---
 .../create-odahu-claster/create-odahu-cluster.component.ts  | 13 ++++++++-----
 .../src/app/administration/odahu/odahu-data.service.ts      |  5 +----
 .../webapp/src/app/administration/odahu/odahu.component.ts  |  2 +-
 .../src/main/resources/webapp/src/app/app.routing.module.ts |  8 ++++----
 .../app/core/services/applicationServiceFacade.service.ts   |  3 +++
 .../webapp/src/app/shared/navbar/navbar.component.html      | 10 +++++-----
 6 files changed, 22 insertions(+), 19 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts
index 20e84b4..4010e78 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts
@@ -66,13 +66,16 @@ export class CreateOdahuClusterComponent implements OnInit {
   }
 
   public setEndpoints(project): void {
+    console.log(project);
+    console.log(this.data);
     this.endpoints = project.endpoints
-      .filter(e => e.status === 'RUNNING' && !this.data.some(odahu => odahu.status !== 'FAILED'
-        && odahu.status !== 'TERMINATED'
-        && odahu.endpoint === e.name
-        && odahu.project === project.name)
-      )
+      // .filter(e => e.status === 'RUNNING' && !this.data.some(odahu => odahu.status !== 'FAILED'
+      //   && odahu.status !== 'TERMINATED'
+      //   && odahu.endpoint === e.name
+      //   && odahu.project === project.name)
+      // )
       .map(e => e.name);
+    console.log(project.endpoints);
   }
 
   private initFormModel(): void {
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-data.service.ts b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-data.service.ts
index d8a30a6..1875cc1 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-data.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-data.service.ts
@@ -3,10 +3,7 @@ import {BehaviorSubject, Observable} from 'rxjs';
 import {OdahuDeploymentService} from '../../core/services';
 
 
-@Injectable({
-  providedIn: 'root'
-})
-
+@Injectable()
 export class OdahuDataService {
   _odahuClasters = new BehaviorSubject<any>(null);
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu.component.ts
index 642b311..f591452 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu.component.ts
@@ -3,7 +3,7 @@ import {OdahuDataService} from './odahu-data.service';
 import {Subscription} from 'rxjs';
 import {MatDialog} from '@angular/material/dialog';
 import {ToastrService} from 'ngx-toastr';
-import {CreateOdahuClusterComponent} from './create-odahu-claster/create-odahu-cluster.component';
+import {CreateOdahuClusterComponent} from './create-odahu-claster';
 import {HealthStatusService, OdahuDeploymentService} from '../../core/services';
 
 export interface OdahuCluster {
diff --git a/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts b/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
index f25f5ae..0387a34 100644
--- a/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
@@ -64,10 +64,10 @@ const routes: Routes = [{
       canActivate: [AuthorizationGuard, AdminGuard],
     },
      {
-    //   path: 'odahu',
-    //   component: OdahuComponent,
-    //   canActivate: [AuthorizationGuard, AdminGuard],
-    // }, {
+      path: 'odahu',
+      component: OdahuComponent,
+      canActivate: [AuthorizationGuard, AdminGuard],
+    }, {
       path: 'roles',
       component: RolesComponent,
       canActivate: [AuthorizationGuard, AdminGuard],
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 86374b0..7d91013 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
@@ -779,6 +779,9 @@ export class ApplicationServiceFacade {
     this.requestRegistry.Add(ApplicationServiceFacade.ENDPOINT, '/api/endpoint');
     this.requestRegistry.Add(ApplicationServiceFacade.ENDPOINT_CONNECTION, '/api/endpoint/url/');
 
+    //Odahu
+    this.requestRegistry.Add(ApplicationServiceFacade.ODAHU, '/api/odahu');
+
     // audit
     this.requestRegistry.Add(ApplicationServiceFacade.AUDIT, '/api/audit');
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
index 931fb4a..648d41d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
@@ -88,11 +88,11 @@
               <span *ngIf="isExpanded; else projects">Projects</span>
               <ng-template #projects><i class="material-icons">dns</i></ng-template>
             </a>
-<!--            <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'" [routerLink]="['/odahu']"-->
-<!--               [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">-->
-<!--              <span *ngIf="isExpanded; else odahu">Odahu deployment</span>-->
-<!--              <ng-template #odahu><i class="material-icons">get_app</i></ng-template>-->
-<!--            </a>-->
+            <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'" [routerLink]="['/odahu']"
+               [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
+              <span *ngIf="isExpanded; else odahu">Odahu deployment</span>
+              <ng-template #odahu><i class="material-icons">get_app</i></ng-template>
+            </a>
             <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'"
               [routerLink]="['/environment_management']" [routerLinkActive]="['active']"
               [routerLinkActiveOptions]="{exact:true}">


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


[incubator-datalab] 04/04: Merge branch 'develop' of github.com:apache/incubator-dlab into Odahu_UI

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

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

commit e3f0369d42b4f66feff2ea17551942c27cba60b2
Merge: f158160 9bda6de
Author: Dmytro_Gnatyshyn <di...@ukr.net>
AuthorDate: Fri Feb 19 14:58:28 2021 +0200

    Merge branch 'develop' of github.com:apache/incubator-dlab into Odahu_UI

 .../reporting-grid/reporting-grid.component.html   | 24 ++++++----
 .../reporting-grid/reporting-grid.component.scss   | 41 +++++++++++++---
 .../reporting-grid/reporting-grid.component.ts     | 55 ++++++----------------
 .../resources-grid/resources-grid.component.html   |  4 +-
 .../shared/form-controls/dropdowns.component.scss  |  7 +--
 5 files changed, 70 insertions(+), 61 deletions(-)



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


[incubator-datalab] 02/04: Fixed roles for ODAHU on backend

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

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

commit 848adbdb9b8d2b658421f1d9bbd82009bffad4ad
Author: Dmytro_Gnatyshyn <di...@ukr.net>
AuthorDate: Fri Feb 19 11:57:52 2021 +0200

    Fixed roles for ODAHU on backend
---
 .../com/epam/datalab/backendapi/resources/OdahuResource.java   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/OdahuResource.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/OdahuResource.java
index 14c977d..4989893 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/OdahuResource.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/OdahuResource.java
@@ -52,14 +52,14 @@ public class OdahuResource {
 	}
 
 	@GET
-	@RolesAllowed("/api/odahu")
+//	@RolesAllowed("/api/odahu")
 	@Produces(MediaType.APPLICATION_JSON)
 	public Response getOdahuClusters(@Parameter(hidden = true) @Auth UserInfo userInfo) {
 		return Response.ok(odahuService.findOdahu()).build();
 	}
 
 	@POST
-	@RolesAllowed("/api/odahu")
+//	@RolesAllowed("/api/odahu")
 	public Response createOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo,
 	                                   @Parameter(hidden = true) @Context UriInfo uriInfo,
 	                                   @Valid OdahuCreateDTO odahuCreateDTO) {
@@ -70,7 +70,7 @@ public class OdahuResource {
 
 	@Path("start")
 	@POST
-	@RolesAllowed("/api/odahu")
+//	@RolesAllowed("/api/odahu")
 	public Response startOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo,
 	                                  @Valid OdahuActionDTO startOdahuDTO) {
 		odahuService.start(startOdahuDTO.getName(), startOdahuDTO.getProject(), startOdahuDTO.getEndpoint(), userInfo);
@@ -79,7 +79,7 @@ public class OdahuResource {
 
 	@Path("stop")
 	@POST
-	@RolesAllowed("/api/odahu")
+//	@RolesAllowed("/api/odahu")
 	public Response stopOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo,
 	                                 @Valid OdahuActionDTO stopOdahuDTO) {
 		odahuService.stop(stopOdahuDTO.getName(), stopOdahuDTO.getProject(), stopOdahuDTO.getEndpoint(), userInfo);
@@ -88,7 +88,7 @@ public class OdahuResource {
 
 	@Path("terminate")
 	@POST
-	@RolesAllowed("/api/odahu")
+//	@RolesAllowed("/api/odahu")
 	public Response terminateOdahuCluster(@Parameter(hidden = true) @Auth UserInfo userInfo,
 	                                      @Valid OdahuActionDTO terminateOdahuDTO) {
 		odahuService.terminate(terminateOdahuDTO.getName(), terminateOdahuDTO.getProject(), terminateOdahuDTO.getEndpoint(), userInfo);


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


[incubator-datalab] 03/04: [DATALAB-2299]: Fixed conflicts for detail dialogs

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

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

commit f1581600026ebad7aa75155bf8b877c62b235e51
Author: Dmytro_Gnatyshyn <di...@ukr.net>
AuthorDate: Fri Feb 19 14:56:18 2021 +0200

    [DATALAB-2299]: Fixed conflicts for detail dialogs
---
 .../management-grid/management-grid.component.html |   2 +-
 .../management-grid/management-grid.component.ts   |   2 +-
 .../create-odahu-cluster.component.ts              |  15 +-
 .../odahu/odahu-grid/odahu-grid.component.ts       |   3 +-
 .../resources/webapp/src/app/app.routing.module.ts |  10 +-
 .../webapp/src/app/core/services/index.ts          |   2 +-
 .../app/core/services/odahu-deployment.service.ts  |   9 +-
 .../bucket-browser/bucket-browser.component.ts     |   1 -
 .../folder-tree/folder-tree.component.ts           |   5 -
 .../detail-dialog/detail-dialog.component.html     |   2 +-
 .../detail-dialog/detail-dialog.component.ts       |   4 +-
 .../resources-grid/resources-grid.component.html   |  36 ++--
 .../resources-grid/resources-grid.component.ts     |  14 +-
 .../resources-grid/resources-grid.model.ts         | 212 ++++++++-------------
 .../src/app/resources/resources.component.ts       |   4 +-
 .../main/resources/webapp/src/app/shared/index.ts  |   1 -
 .../modal-dialog/edge-action-dialog/index.ts       |   2 +-
 .../webapp/src/app/shared/navbar/index.ts          |   4 +-
 18 files changed, 140 insertions(+), 188 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
index d8d83a5..2168c02 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
@@ -38,7 +38,7 @@
         </th>
         <td mat-cell *matCellDef="let element">
           <div
-            *ngIf="element.type !== 'edge node' && (element.status==='running' || element.status==='stopped') && !clustersInProgress(element.resources)"
+            *ngIf="element.type !== 'odahu' && element.type !== 'edge node' && (element.status==='running' || element.status==='stopped') && !clustersInProgress(element.resources || [])"
              class="empty-checkbox"
              [ngClass]="{'checked': element.isSelected}"
              (click)="toggleActionForAll(element);$event.stopPropagation()"
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
index 53d00cb..4a3a692 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
@@ -213,7 +213,7 @@ export class ManagementGridComponent implements OnInit, AfterViewInit, AfterView
     this.allActiveNotebooks = this.allFilteredEnvironmentData
       .filter(v => v.name &&
       (v.status === 'running' || v.status === 'stopped') &&
-      !this.clustersInProgress(v.resources));
+      !this.clustersInProgress(v.resources || []));
     this.checkFilters();
   }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts
index 4010e78..a4f8360 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/create-odahu-claster/create-odahu-cluster.component.ts
@@ -66,16 +66,13 @@ export class CreateOdahuClusterComponent implements OnInit {
   }
 
   public setEndpoints(project): void {
-    console.log(project);
-    console.log(this.data);
     this.endpoints = project.endpoints
-      // .filter(e => e.status === 'RUNNING' && !this.data.some(odahu => odahu.status !== 'FAILED'
-      //   && odahu.status !== 'TERMINATED'
-      //   && odahu.endpoint === e.name
-      //   && odahu.project === project.name)
-      // )
+      .filter(e => e.status === 'RUNNING' && !this.data.some(odahu => odahu.status !== 'FAILED'
+        && odahu.status !== 'TERMINATED'
+        && odahu.endpoint === e.name
+        && odahu.project === project.name)
+      )
       .map(e => e.name);
-    console.log(project.endpoints);
   }
 
   private initFormModel(): void {
@@ -87,7 +84,7 @@ export class CreateOdahuClusterComponent implements OnInit {
     });
   }
 
-  private createOdahuCluster(value): void {
+  public createOdahuCluster(value): void {
     this.dialogRef.close();
     this.odahuDeploymentService.createOdahuNewCluster(value).subscribe(() => {
       this.toastr.success('Odahu cluster creation is processing!', 'Success!');
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-grid/odahu-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-grid/odahu-grid.component.ts
index 817d12b..cf05944 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-grid/odahu-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/odahu/odahu-grid/odahu-grid.component.ts
@@ -2,9 +2,10 @@ import { Component, OnInit } from '@angular/core';
 import {Subscription} from 'rxjs';
 import {OdahuDataService} from '../odahu-data.service';
 import { MatTableDataSource } from '@angular/material/table';
-import {OdahuDeploymentService} from '../../../core/services';
+
 import {ToastrService} from 'ngx-toastr';
 import {MatDialog} from '@angular/material/dialog';
+import {OdahuDeploymentService} from '../../../core/services';
 import {OdahuActionDialogComponent} from '../../../shared/modal-dialog/odahu-action-dialog';
 
 @Component({
diff --git a/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts b/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
index 0387a34..fc001d4 100644
--- a/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
@@ -26,17 +26,17 @@ import { ResourcesComponent } from './resources/resources.component';
 import { AccessNotebookGuideComponent, PublicKeyGuideComponent } from './help';
 import { NotFoundComponent } from './service-pages/not-found/not-found.component';
 import { AccessDeniedComponent } from './service-pages/access-denied/access-denied.component';
-import { ReportingComponent } from './reports/reporting/reporting.component';
 import { WebterminalComponent } from './webterminal/webterminal.component';
-import { ManagementComponent } from './administration/management/management.component';
+import { ManagementComponent } from './administration/management';
 import { ProjectComponent } from './administration/project/project.component';
 import { RolesComponent } from './administration/roles/roles.component';
-import { SwaggerComponent } from './swagger/swagger.component';
+import { SwaggerComponent } from './swagger';
 import { AuthorizationGuard, CheckParamsGuard, CloudProviderGuard, AdminGuard, AuditGuard } from './core/services';
-import {AuditComponent} from './reports/audit/audit.component';
 import {ConfigurationComponent} from './administration/configuration/configuration.component';
-import {OdahuComponent} from './administration/odahu/odahu.component';
 import {ProjectAdminGuard} from './core/services/projectAdmin.guard';
+import {ReportingComponent} from './reports/reporting/reporting.component';
+import {OdahuComponent} from './administration/odahu/odahu.component';
+import {AuditComponent} from './reports/audit/audit.component';
 
 const routes: Routes = [{
   path: 'login',
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/index.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/index.ts
index 4e9a898..d847415 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/index.ts
@@ -38,5 +38,5 @@ export * from './rolesManagement.service';
 export * from './dataengineConfiguration.service';
 export * from './storage.service';
 export * from './project.service';
-export * from './endpoint.service';
 export * from './odahu-deployment.service';
+export * from './endpoint.service';
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts
index f6fe528..6a324f7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts
@@ -1,12 +1,11 @@
 import { Injectable } from '@angular/core';
-import {Observable} from 'rxjs';
-import { map, catchError } from 'rxjs/operators';
+import { Observable } from 'rxjs';
+import { catchError, map } from 'rxjs/operators';
+
 import { ApplicationServiceFacade } from './applicationServiceFacade.service';
 import { ErrorUtils } from '../util';
 
-@Injectable({
-  providedIn: 'root'
-})
+@Injectable()
 
 export class OdahuDeploymentService {
   constructor(private applicationServiceFacade: ApplicationServiceFacade) { }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
index 4c82dc7..7e8ceaf 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
@@ -268,7 +268,6 @@ export class BucketBrowserComponent implements OnInit, OnDestroy {
   }
 
   public deleteAddedFile(file) {
-    console.log('deleteAddedFile');
     if ( file.subscr && file.request) {
       this.dialog.open(BucketConfirmationDialogComponent, {data: {items: file, type: 'cancel-uploading'} , width: '550px'})
         .afterClosed().subscribe((res) => {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
index 1721bbc..900723d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
@@ -76,8 +76,6 @@ export class FolderTreeComponent implements OnDestroy {
         this.dataSource.data = data;
         const subject = this.dataSource._flattenedData;
         const subjectData = subject.getValue();
-        console.log('selected', this.selectedFolder);
-        console.log('data', subjectData);
           if (this.selectedFolder) {
             if (this.cloud !== 'azure') {
               this.selectedFolder = subjectData.find(v => v.item === this.selectedFolder.item &&
@@ -86,8 +84,6 @@ export class FolderTreeComponent implements OnDestroy {
               const selectedFolderPath = this.selectedFolder.obj.slice(0, this.selectedFolder.obj.lastIndexOf('/') + 1);
               this.selectedFolder = subjectData.find(v => {
                 const objectPath = v.obj.slice(0, v.obj.lastIndexOf('/') + 1);
-                console.log('objectPath', selectedFolderPath);
-                console.log('selectedFolderPath', selectedFolderPath);
                 return v.item === this.selectedFolder.item &&
                   v.level === this.selectedFolder.level && objectPath === selectedFolderPath;
               });
@@ -164,7 +160,6 @@ export class FolderTreeComponent implements OnDestroy {
     if (el) {
       this.treeControl.expand(el);
       this.selectedFolder = el;
-      console.log(this.selectedFolder);
       const path = this.getPath(el);
       this.path = [];
       const data = {
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 3d2dfda..51d6883 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
@@ -23,7 +23,7 @@
     <button type="button" class="close" (click)="dialogRef.close()">&times;</button>
   </header>
   <div class="dialog-content">
-    <div *ngIf="data.legion">
+    <div *ngIf="data.odahu">
       <table class="detail-header">
         <tr>
           <td>{{odahu.name}}</td>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
index 5902275..58b8fbf 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
@@ -26,9 +26,9 @@ import {DateUtils, CheckUtils, HelpUtils} from '../../../core/util';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { DataengineConfigurationService } from '../../../core/services';
 import { CLUSTER_CONFIGURATION } from '../../computational/computational-resource-create-dialog/cluster-configuration-templates';
-import {BucketBrowserComponent} from '../../bucket-browser/bucket-browser.component';
 import {CopyPathUtils} from '../../../core/util/copyPathUtils';
 import {AuditService} from '../../../core/services/audit.service';
+import {BucketBrowserComponent} from '../../bucket-browser/bucket-browser.component';
 
 @Component({
   selector: 'detail-dialog',
@@ -38,7 +38,7 @@ import {AuditService} from '../../../core/services/audit.service';
 
 export class DetailDialogComponent implements OnInit {
   readonly DICTIONARY = DICTIONARY;
-  readonly PROVIDER = this.data.notebook.cloud_provider.toLowerCase();
+  readonly PROVIDER = this.data.pro?.cloud_provider?.toLowerCase() || this.data.odahu?.cloud_provider?.toLowerCase();
   public isCopied: boolean = true;
   notebook: any;
   upTimeInHours: number;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
index 0b08163..e0c6321 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
@@ -134,7 +134,7 @@
                           matTooltipPosition="above" class="ellipsis">
                   {{ element.tags.custom_tag }}
                 </mat-chip>
-                <mat-chip matTooltip="User tag: {{ element.tags.user_tag }}" matTooltipPosition="above" class="ellipsis">
+                <mat-chip *ngIf="element.tags.user_tag" matTooltip="User tag: {{ element.tags.user_tag }}" matTooltipPosition="above" class="ellipsis">
                   {{ element.tags.user_tag }}
                 </mat-chip>
                 <mat-chip matTooltip="Project tag: {{ element.tags.project_tag }}" matTooltipPosition="above" class="ellipsis">
@@ -149,9 +149,9 @@
               </computational-resources-list>
             </td>
             <td *ngIf="healthStatus?.billingEnabled" class="cost-col">
-              <span class="total_cost">{{ element.billing.report_lines.length ? (element.cost | localcurrency) : 'N/A' }}</span>
+              <span class="total_cost">{{ element.billing?.report_lines?.length ? (element.cost | localcurrency) : 'N/A' }}</span>
               <span (click)="element.billing && printCostDetails(element)" class="currency_details"
-                    [ngClass]="{ 'not-allowed' : !element.billing.report_lines.length }">
+                    [ngClass]="{ 'not-allowed' : !element.billing?.report_lines?.length }">
               <i class="material-icons">help_outline</i>
             </span>
             </td>
@@ -252,25 +252,31 @@
                 </ul>
                 <ul class="list-unstyled" *ngIf="element.shape === 'odahu cluster'">
                   <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>
+                    <div>
+                      <i class="material-icons">play_circle_outline</i>
+                      <a class="action">
+                        Start
+                      </a>
+                    </div>
                   </li>
                   <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>
+                    <div>
+                      <i class="material-icons">pause_circle_outline</i>
+                      <a class="action" >
+                        Stop
+                      </a>
+                    </div>
                   </li>
                   <li class="project-seting-item"
                       [ngClass]="{'disabled': element.status === 'stopped' || element.status.toLowerCase() === 'stopping' || element.status.toLowerCase() === 'starting'}"
                       *ngIf="element.status === element.status !== 'terminated' && element.status !== 'terminating'" (click)="odahuAction(element, 'terminate')"
                   >
-                    <i class="material-icons">phonelink_off</i>
-                    <a class="action">
-                      Terminate
-                    </a>
+                    <div>
+                      <i class="material-icons">phonelink_off</i>
+                      <a class="action">
+                        Terminate
+                      </a>
+                    </div>
                   </li>
                 </ul>
               </bubble-up>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
index cdb4407..a41a314 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
@@ -23,7 +23,7 @@ import { animate, state, style, transition, trigger } from '@angular/animations'
 import { ToastrService } from 'ngx-toastr';
 import { MatDialog } from '@angular/material/dialog';
 import {ProjectService, UserResourceService, OdahuDeploymentService} from '../../core/services';
-import { ExploratoryModel, Exploratory } from './resources-grid.model';
+import { ExploratoryModel } from './resources-grid.model';
 import { FilterConfigurationModel } from './filter-configuration.model';
 import { GeneralEnvironmentStatus } from '../../administration/management/management.model';
 import { ConfirmationDialogType } from '../../shared';
@@ -37,12 +37,12 @@ import { ConfirmationDialogComponent } from '../../shared/modal-dialog/confirmat
 import { SchedulerComponent } from '../scheduler';
 import { DICTIONARY } from '../../../dictionary/global.dictionary';
 import {ProgressBarService} from '../../core/services/progress-bar.service';
-import {OdahuActionDialogComponent} from '../../shared/modal-dialog/odahu-action-dialog';
 import {ComputationModel} from '../computational/computational-resource.model';
 import {NotebookModel} from '../exploratory/notebook.model';
 import {AuditService} from '../../core/services/audit.service';
-import {JAN} from '@angular/material/core';
-import {ReconfirmationDialogComponent} from '../../administration/management/management-grid/management-grid.component';
+import {NotificationDialogComponent} from '../../shared/modal-dialog/notification-dialog';
+import {OdahuActionDialogComponent} from '../../shared/modal-dialog/odahu-action-dialog';
+
 
 export interface SharedEndpoint {
   edge_node_ip: string;
@@ -96,7 +96,7 @@ export class ResourcesGridComponent implements OnInit {
   @Input() projects: Array<any>;
   @Output() getEnvironments: EventEmitter<any> = new EventEmitter();
 
-  environments: Exploratory[];
+  environments;
 
   collapseFilterRow: boolean = false;
   filtering: boolean = false;
@@ -104,7 +104,7 @@ export class ResourcesGridComponent implements OnInit {
   activeProject: any;
   healthStatus: GeneralEnvironmentStatus;
 
-  filteredEnvironments: Exploratory[] = [];
+  filteredEnvironments = [];
   filterConfiguration: FilterConfigurationModel = new FilterConfigurationModel('', [], [], [], '', '');
   filterForm: FilterConfigurationModel = new FilterConfigurationModel('', [], [], [], '', '');
 
@@ -322,7 +322,7 @@ export class ResourcesGridComponent implements OnInit {
   }
 
   private getDefaultFilterConfiguration(): void {
-    const data: Exploratory[] = this.environments;
+    const data = this.environments;
     const shapes = [], statuses = [], resources = [];
 
     data.filter(elem => elem.exploratory.map((item: any) => {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts
index 1465199..8f9ecce 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.model.ts
@@ -57,141 +57,95 @@ export class ExploratoryModel {
   public static loadEnvironments(data: Array<any>) {
     if (data) {
 
-
-  //     return data.map((value) => {
-  //       const exploratory = value.exploratory.map(el => {
-  //         let provider;
-  //         if (el.cloud_provider) {
-  //           provider = el.cloud_provider.toLowerCase();
-  //         }
-  //         return new ExploratoryModel(
-  //           provider,
-  //           el.exploratory_name,
-  //           el.template_name,
-  //           el.image,
-  //           el.status,
-  //           el.shape,
-  //           el.computational_resources,
-  //           el.up_time,
-  //           el.exploratory_url,
-  //           value.shared[el.endpoint].edge_node_ip,
-  //           el.private_ip,
-  //           el.exploratory_user,
-  //           el.exploratory_pass,
-  //           value.shared[el.endpoint][DICTIONARY[provider].bucket_name],
-  //           value.shared[el.endpoint][DICTIONARY[provider].shared_bucket_name],
-  //           el.error_message,
-  //           el[DICTIONARY[provider].billing.cost],
-  //           el[DICTIONARY[provider].billing.currencyCode],
-  //           el.billing,
-  //           el.libs,
-  //           value.shared[el.endpoint][DICTIONARY[provider].user_storage_account_name],
-  //           value.shared[el.endpoint][DICTIONARY[provider].shared_storage_account_name],
-  //           value.shared[el.endpoint][DICTIONARY[provider].datalake_name],
-  //           value.shared[el.endpoint][DICTIONARY[provider].datalake_user_directory_name],
-  //           value.shared[el.endpoint][DICTIONARY[provider].datalake_shared_directory_name],
-  //           el.project,
-  //           el.endpoint,
-  //           el.tags
-  //         );
-  //       });
-  //
-  //       const odahu = value.odahu.map(el => {
-  //         let provider;
-  //         if (el.cloud_provider) {
-  //           provider = el.cloud_provider.toLowerCase();
-  //         } else {
-  //           provider = 'azure';
-  //         }
-  //         return new ExploratoryModel(
-  //           provider,
-  //           el.name,
-  //           el.template_name,
-  //           el.image,
-  //           el.status.toLowerCase(),
-  //           'odahu cluster',
-  //           [],
-  //           el.up_time,
-  //           el.urls,
-  //           value.shared[el.endpoint].edge_node_ip,
-  //           el.private_ip,
-  //           el.exploratory_user,
-  //           el.exploratory_pass,
-  //           el.grafana_admin,
-  //           el.grafana_pass,
-  //           el.error_message,
-  //           el[DICTIONARY[provider].billing.cost],
-  //           el[DICTIONARY[provider].billing.currencyCode],
-  //           [],
-  //           [],
-  //           '',
-  //           '',
-  //           '',
-  //           '',
-  //           '',
-  //           el.project,
-  //           el.endpoint,
-  //           el.tags
-  //         )});
-  //       return {
-  //         project: value.project,
-  //         exploratory: [...exploratory, ...odahu]
-  //       };
-  //     });
-  //   }
-  // }
-
-
       return data.map((value) => {
+        const exploratory = value.exploratory.map(el => {
+          const provider = el.cloud_provider.toLowerCase();
+          const billing = value.exploratoryBilling.filter(res => res.name === el.exploratory_name)[0];
+          return new ExploratoryModel(
+            provider,
+            el.exploratory_name,
+            el.template_name,
+            el.image,
+            el.status,
+            el.shape,
+            el.computational_resources,
+            el.up_time,
+            el.exploratory_url,
+            value.shared[el.endpoint].edge_node_ip,
+            el.private_ip,
+            el.exploratory_user,
+            el.exploratory_pass,
+            value.shared[el.endpoint][DICTIONARY[provider].bucket_name],
+            value.shared[el.endpoint][DICTIONARY[provider].shared_bucket_name],
+            el.error_message,
+            billing ? billing.total_cost : '',
+            billing ? billing.currency : '',
+            billing,
+            el.libs,
+            value.shared[el.endpoint][DICTIONARY[provider].user_storage_account_name],
+            value.shared[el.endpoint][DICTIONARY[provider].shared_storage_account_name],
+            value.shared[el.endpoint][DICTIONARY[provider].datalake_name],
+            value.shared[el.endpoint][DICTIONARY[provider].datalake_user_directory_name],
+            value.shared[el.endpoint][DICTIONARY[provider].datalake_shared_directory_name],
+            el.project,
+            el.endpoint,
+            el.tags,
+            value.shared[el.endpoint].status,
+            !!el.computational_resources.filter(resource => resource.status !== 'terminated' && resource.status !== 'failed').length
+          );
+        });
+
+        const odahu = value.odahu.map(el => {
+          let provider;
+          if (el.cloud_provider) {
+            provider = el.cloud_provider.toLowerCase();
+          } else {
+            provider = 'azure';
+          }
+          return new ExploratoryModel(
+            provider,
+            el.name,
+            el.template_name,
+            el.image,
+            el.status.toLowerCase(),
+            'odahu cluster',
+            [],
+            el.up_time,
+            el.urls,
+            value.shared[el.endpoint].edge_node_ip,
+            el.private_ip,
+            el.exploratory_user,
+            el.exploratory_pass,
+            el.grafana_admin,
+            el.grafana_pass,
+            el.error_message,
+            el[DICTIONARY[provider].billing.cost],
+            el[DICTIONARY[provider].billing.currencyCode],
+            [],
+            [],
+            '',
+            '',
+            '',
+            '',
+            '',
+            el.project,
+            el.endpoint,
+            el.tags,
+            '',
+            false,
+          ); });
         return {
           project: value.project,
-          projectEndpoints: value.shared,
-          endpoints: value.endpoints,
-          exploratory: value.exploratory.map(el => {
-            const provider = el.cloud_provider.toLowerCase();
-            const billing = value.exploratoryBilling.filter(res => res.name === el.exploratory_name)[0];
-            return new ExploratoryModel(
-              provider,
-              el.exploratory_name,
-              el.template_name,
-              el.image,
-              el.status,
-              el.shape,
-              el.computational_resources,
-              el.up_time,
-              el.exploratory_url,
-              value.shared[el.endpoint].edge_node_ip,
-              el.private_ip,
-              el.exploratory_user,
-              el.exploratory_pass,
-              value.shared[el.endpoint][DICTIONARY[provider].bucket_name],
-              value.shared[el.endpoint][DICTIONARY[provider].shared_bucket_name],
-              el.error_message,
-              billing ? billing.total_cost : '',
-              billing ? billing.currency : '',
-              billing,
-              el.libs,
-              value.shared[el.endpoint][DICTIONARY[provider].user_storage_account_name],
-              value.shared[el.endpoint][DICTIONARY[provider].shared_storage_account_name],
-              value.shared[el.endpoint][DICTIONARY[provider].datalake_name],
-              value.shared[el.endpoint][DICTIONARY[provider].datalake_user_directory_name],
-              value.shared[el.endpoint][DICTIONARY[provider].datalake_shared_directory_name],
-              el.project,
-              el.endpoint,
-              el.tags,
-              value.shared[el.endpoint].status,
-              !!el.computational_resources.filter(resource => resource.status !== 'terminated' && resource.status !== 'failed').length
-            );
-          })
+          exploratory: [...exploratory, ...odahu]
         };
       });
     }
   }
 }
 
-export interface Exploratory {
-  project: string;
-  endpoints: [];
-  projectEndpoints: [];
-  exploratory: ExploratoryModel[];
-}
+// export interface Exploratory {
+//   project: string;
+//   endpoints: [];
+//   projectEndpoints: [];
+//   exploratory: ExploratoryModel[];
+// }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
index f944230..a5185b0 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
@@ -23,11 +23,11 @@ import { MatDialog } from '@angular/material/dialog';
 
 import { ResourcesGridComponent } from './resources-grid/resources-grid.component';
 import { ExploratoryEnvironmentCreateComponent } from './exploratory/create-environment';
-import { Exploratory } from './resources-grid/resources-grid.model';
 import {ApplicationSecurityService, HealthStatusService} from '../core/services';
 import { ManageUngitComponent } from './manage-ungit/manage-ungit.component';
 import {BucketBrowserComponent} from './bucket-browser/bucket-browser.component';
 
+
 @Component({
   selector: 'datalab-resources',
   templateUrl: 'resources.component.html',
@@ -35,7 +35,7 @@ import {BucketBrowserComponent} from './bucket-browser/bucket-browser.component'
 })
 
 export class ResourcesComponent implements OnInit, AfterViewInit {
-  public exploratoryEnvironments: Exploratory[] = [];
+  public exploratoryEnvironments = [];
   public healthStatus: any;
   projects = [];
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/index.ts b/services/self-service/src/main/resources/webapp/src/app/shared/index.ts
index 620cb7d..0c56c01 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/index.ts
@@ -21,4 +21,3 @@ export * from './modal-dialog/confirmation-dialog';
 export * from './modal-dialog/progress-dialog';
 
 export * from './bubble';
-export * from './inform-message';
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/edge-action-dialog/index.ts b/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/edge-action-dialog/index.ts
index fd6e98a..c91d503 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/edge-action-dialog/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/modal-dialog/edge-action-dialog/index.ts
@@ -21,7 +21,7 @@ import { NgModule } from '@angular/core';
 import { CommonModule } from '@angular/common';
 import { EdgeActionDialogComponent } from './edge-action-dialog.component';
 import { MaterialModule } from '../../material.module';
-import {FormsModule} from "@angular/forms";
+import {FormsModule} from '@angular/forms';
 
 export * from './edge-action-dialog.component';
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/index.ts b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/index.ts
index 65cf645..0041163 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/index.ts
@@ -22,10 +22,11 @@ import { CommonModule } from '@angular/common';
 import { RouterModule } from '@angular/router';
 import { MaterialModule } from '../material.module';
 import { ProgressDialogModule, BubbleModule } from '../index';
-
 import { NavbarComponent } from './navbar.component';
 import { NotificationDialogModule } from '../modal-dialog/notification-dialog';
 import {EdgeActionDialogModule} from '../modal-dialog/edge-action-dialog';
+import {OdahuActionDialogModule} from '../modal-dialog/odahu-action-dialog';
+
 
 export * from './navbar.component';
 
@@ -38,6 +39,7 @@ export * from './navbar.component';
     EdgeActionDialogModule,
     ProgressDialogModule,
     BubbleModule,
+    OdahuActionDialogModule
   ],
   declarations: [NavbarComponent],
   exports: [NavbarComponent, RouterModule]


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