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/02/20 10:38:00 UTC

[incubator-dlab] branch DLAB-1476 updated (518c54c -> 620ee0f)

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

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


 discard 518c54c  Added dir option to mock
     add 5014ead  [DLAB-1522]: Removed libs request after libs window is closed (#587)
     add 3209cd4  [DLAB-1430]: SSL certs added to post-deployment configuration script
     add 9614361  Merge pull request #589 from apache/DLAB-1430
     add 5b8e867  [DLAB-1515] Fixed issue with disappearing notebooks templates
     add 8471546  [DLAB-22]: Added hint about failed computational resource in show active mode (#590)
     add fcd9794  [DLAB-1516]: Subnet search should be by CIDR according to VPC ID
     add 8f13d95  Merge pull request #591 from apache/DLAB-1516
     add 5adc03f  [DLAB-1521] Added notebook name as unique parameter per project while creating notebook
     add 9553ac2  DLAB-1532 added endpoint_name to shared container name
     add 49ff0f1  DLAB-1532 added endpoint_name to container name
     add c129b0c  Merge pull request #592 from leonidfrolov/DLAB-1532
     add 4b12539  [DLAB-1535] Fixed issue with project filter on Billing page for Edges
     add 9b55558  [DLAB-1522]: Made notebook name unique per project (#593)
     add f7fdef2  Merge pull request #11 from apache/develop
     add 70b9b17  [DLAB-1538]: fixed project creation fails
     add 3ceb493  Merge pull request #594 from leonidfrolov/develop
     add c32f80d  [DLAB-1467]: Added terraform scripts for endpoint deployment on Azure
     add c110950  [DLAB-1467]: Added terraform scripts for endpoint deployment on Azure
     add ca9ad21  [DLAB-1467]: Added terraform scripts for endpoint deployment on Azure
     add c22ecd7  [DLAB-1467]: Added terraform scripts for endpoint deployment on Azure
     add 8a7830c  [DLAB-1467]: Added terraform scripts for endpoint deployment on Azure
     add 7f86e01  [DLAB-1467]: Added terraform scripts for endpoint deployment on Azure
     add e19aec1  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 28dbde9  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add fbc2ed2  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add db9264d  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add d07e834  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 07e713c  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 882a9e6  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add f57ea18  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add b39ee4c  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 15a5288  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 668ed46  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 4200b8b  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add f5c21a5  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add b20d09d  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 96ce0cb  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 853a083  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add ae860d9  Added missed parameters
     add 3f06079  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 5a183c6  Merge remote-tracking branch 'origin/DLAB-1467' into DLAB-1467
     add 0b16e34  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add fc05b59  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add d42fe44  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 3d65876  Added azure auth file config
     add ca182bc  Merge remote-tracking branch 'origin/DLAB-1467' into DLAB-1467
     add fc22e2a  [DLAB-1467]: Added terraform scripts for deploying DLab endpoint
     add 596df9f  Merge branch 'develop' of github.com:apache/incubator-dlab into DLAB-1467
     add 43582b5  [DLAB-1467]: debug
     add d235af9  [DLAB-1467]: debug
     add 549e5ef  Added conf_cloud_provider parameter
     add f4dfe74  Merge remote-tracking branch 'origin/DLAB-1467' into DLAB-1467
     add fefdf67  Added ldap parameters
     add 9882030  Merge remote-tracking branch 'origin/DLAB-1467' into DLAB-1467
     add ed9f676  [DLAB-1467]: added datalake_enabled parameter
     add e77d9f0  Added azure auth file while notebook configure action
     add 4349c4d  Merge remote-tracking branch 'origin/DLAB-1467' into DLAB-1467
     add a295241  [DLAB-1467]: added datalake_enabled parameter
     add 358f986  Merge pull request #595 from apache/DLAB-1467
     add bbf80c7  [DLAB-1544]: Changed behavior of Show Active button for notebooks (#596)
     add ef8a2bb  [DLAB-1536]: removed bucket creation
     add 15354dc  Merge pull request #597 from apache/DLAB-1536
     add 0db6391  DLAB-1530 Added Endpoint_tag for EMR
     add 1417c34  DLAB-1530 removed unnecessary back slash
     add 35921fb  Merge pull request #598 from leonidfrolov/DLAB-1530
     add 58e121d  [DLAB-1492]: added missed notebooks images
     add 3dc8216  Merge pull request #599 from apache/DLAB-1492
     add fa9b02f  DLAB-1532 added endpoint name to user container name that is written to result.json
     add 0a6096e  Merge branch 'develop' of https://github.com/leonidfrolov/incubator-dlab into develop
     add 7caab91  Merge pull request #600 from leonidfrolov/develop
     add 71bf40d  DLAB-1547 fixed error with emr creation
     add 08a5fb2  Merge pull request #601 from leonidfrolov/DLAB-1530
     add 984cded  [DLAB-1543]: Fixed issues on billing page (#602)
     add dcf62cb  DLAB-24 defined function to get index from service account name and changed all functions that use service account email
     add 56f218f  DLAB-24 added unique index to ssn service account id and role when creating and terminating ssn
     add b50d2f6  DLAB-24 added sbn argument to create instance script
     add a45188f  DLAB-24 updated get_index_by_service_account_name function
     add 4d1a702  DLAB-24 removed excessive sbn
     add 3f6abc7  DLAB-24 added print statement for testing
     add 6cedabe  DLAB-24 changed get index function to use sbn, accountID is not in format sbnindex instead of sbn-index, as when index is not defined sbn- is not a valid accountID
     add f6dd83a  DLAB-24 added print statement for testing
     add fc94a86  DLAB-24 removed print statement for testing
     add f059e53  DLAB-24 added page size for request in get_index_by_service_account_name
     add f2cc806  DLAB-24 updated get_index_by_service_account_name function to use page token
     add 5f6587e  DLAB-24 added print statement for testing
     add f5b6405  DLAB-24 made index for ssn to include "-" .e.g. -5354s
     add 0d732ab  DLAB-24 added unique index for project creation and termination
     add 73b6798  DLAB-24 removed -
     add 662cf2e  DLAB-24 replaced - with _
     add f64ff69  DLAB-24 removed "_" from the index
     add ecaf70c  DLAB-24 removed print in meta.lib, changed print in action lib
     add 541c47c  DLAB-24 added check for get_service_account if unique_index exists and added "-" before the index
     add 25b561c  DLAB-24 get_index_by_service_account_name doesnt need service base name anymore
     add 11f7e69  DLAB-24 to generate service account email new variable is used
     add ae55d2c  DLAB-24 added '-' before index in ssn-role name
     add 992804f  DLAB-24 rearranged structure of edge and ps role names
     add 3eac3b6  DLAB-24 added prints for testing
     add 7d1d9d7  DLAB-24 moved some variable definition, removed testing prints, removed unused lines
     add dc78929  DLAB-24 fixed error
     add 9356de7  DLAB-24 fixed error
     add c7d72d2  DLAB-24 fixed error
     add a4ef0e8  DLAB-24 added print statements in get_index_by_service_account_name function
     add fc3d5c7  DLAB-24 defined necessary variable
     add 0dfcb2b  DLAB-24 changed necessary variable
     add df26a38  DLAB-24 added variable, removed uuid generation from fabfile
     add 61440c3  DLAB-24 changed print in get_index_by_service_name
     add b0b0489  DLAB-24 changed print in get_index_by_service_name
     add d774cca  DLAB-24 returned deleted lines
     add 593b21f  DLAB-24 replaced service_id_variable with service_base_name
     add a938391  DLAB-24 distinguished ssn_unique_index
     add 512926e  DLAB-24 changed print in get_index... function
     add a38e329  DLAB-24 fixed error
     add 002b33c  DLAB-24 removed unnecessary lib
     add 75a0636  Merge pull request #603 from leonidfrolov/DLAB-24
     add abae905  DLAB-24 fixed mistake
     add e342f01  Merge pull request #604 from leonidfrolov/DLAB-24
     add 134fe6e  [Dlab-1422] The endpoint URL verification (#588)
     add 5e25a7d  [DLAB-1527]: Rarely notebook is not created successful from the first attempt fixed
     add 6b0c738  [DLAB-1527]: fixes for RedHat implemented
     add 44d2823  [DLAB-1527]: fixes for RedHat updated
     add 0a9f4f6  Merge pull request #605 from apache/DLAB-1527
     add 5fe0f7c  [DLAB-1527]: function for apt-get/yum fixed
     add 1fed9bd  [DLAB-1527]: function for apt-get/yum fixed
     add 4e2365a  Merge pull request #606 from apache/DLAB-1527
     add 0ebbb5c  [DLAB-1549]: Prevented lib_groups requests if library managements popup is not opened (#607)
     new e472804  Merge branch 'DLAB-1476' of https://github.com/apache/incubator-dlab into DLAB-1476
     new 620ee0f  [DLAB-1476]: Added demo screenshots for links

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (518c54c)
            \
             N -- N -- N   refs/heads/DLAB-1476 (620ee0f)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 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.


Summary of changes:
 .../scripts/post-deployment_configuration.py       |  69 +++++-------
 .../src/general/conf/dlab.ini                      |   2 +-
 .../src/general/lib/gcp/actions_lib.py             |  41 ++++---
 .../src/general/lib/gcp/meta_lib.py                |  56 +++++++++-
 .../src/general/lib/os/debian/common_lib.py        |  42 +++++--
 .../src/general/lib/os/debian/edge_lib.py          |   7 +-
 .../src/general/lib/os/debian/notebook_lib.py      |  64 ++++++-----
 .../src/general/lib/os/debian/ssn_lib.py           |  19 ++--
 .../src/general/lib/os/fab.py                      |   5 +-
 .../src/general/lib/os/redhat/common_lib.py        |  44 ++++++--
 .../src/general/lib/os/redhat/edge_lib.py          |   8 +-
 .../src/general/lib/os/redhat/notebook_lib.py      |  60 +++++-----
 .../src/general/lib/os/redhat/ssn_lib.py           |  21 ++--
 .../scripts/aws/dataengine-service_configure.py    |   2 +-
 .../scripts/aws/dataengine-service_create.py       |   4 +-
 .../scripts/aws/dataengine-service_prepare.py      |   6 +-
 .../src/general/scripts/aws/dataengine_prepare.py  |   4 +-
 .../src/general/scripts/aws/project_prepare.py     |   2 +-
 .../src/general/scripts/aws/ssn_configure.py       |   4 +
 .../src/general/scripts/azure/edge_configure.py    |   4 +-
 .../src/general/scripts/azure/edge_prepare.py      |   2 +-
 .../src/general/scripts/azure/project_prepare.py   |   4 +-
 .../src/general/scripts/azure/ssn_configure.py     |   4 +
 .../general/scripts/gcp/common_create_instance.py  |   3 +-
 .../scripts/gcp/common_create_service_account.py   |  10 +-
 .../general/scripts/gcp/common_prepare_notebook.py |   4 +-
 .../scripts/gcp/dataengine-service_configure.py    |   6 +-
 .../scripts/gcp/dataengine-service_prepare.py      |   6 +-
 .../src/general/scripts/gcp/dataengine_prepare.py  |   8 +-
 .../src/general/scripts/gcp/edge_configure.py      |  30 ++---
 .../src/general/scripts/gcp/edge_terminate.py      |   2 +-
 .../src/general/scripts/gcp/project_prepare.py     |  57 +++++-----
 .../src/general/scripts/gcp/project_terminate.py   |  10 +-
 .../src/general/scripts/gcp/ssn_configure.py       |  26 +++--
 .../src/general/scripts/gcp/ssn_prepare.py         |  21 ++--
 .../scripts/gcp/ssn_terminate_gcp_resources.py     |   2 +-
 infrastructure-provisioning/src/ssn/fabfile.py     |   7 +-
 .../terraform/azure/endpoint/main/instance.tf      |  70 ++++++++++++
 .../main/s3.tf => azure/endpoint/main/main.tf}     |  28 +++--
 .../terraform/azure/endpoint/main/network.tf       |  98 +++++++++++++++++
 .../{aws => azure}/endpoint/main/outputs.tf        |   8 +-
 .../terraform/azure/endpoint/main/sg.tf            |  72 ++++++++++++
 .../{aws => azure}/endpoint/main/variables.tf      |  57 ++++------
 .../terraform/bin/deploy/endpoint_fab.py           | 121 ++++++++-------------
 .../terraform/bin/deploy/provisioning.yml          |   1 +
 infrastructure-provisioning/terraform/bin/dlab.py  |  74 ++++++++++++-
 .../terraform/gcp/endpoint/main/buckets.tf         |  35 ------
 .../terraform/gcp/endpoint/main/variables.tf       |   4 -
 .../dlab/login/resources/css/login.css             |   1 +
 services/{billing-aws => billing-azure}/Dockerfile |   4 +-
 .../billing/gcp/service/BillingServiceImpl.java    |   2 +-
 .../epam/dlab/billing/gcp/util/BillingUtils.java   |   6 +-
 .../epam/dlab/dto/azure/AzureCloudSettings.java    |  16 +++
 services/provisioning-service/provisioning.yml     |   1 +
 .../epam/dlab/backendapi/CloudConfiguration.java   |   1 +
 ...rovisioningServiceApplicationConfiguration.java |   2 +-
 .../backendapi/core/commands/CommandBuilder.java   |  11 +-
 .../core/commands/CommandExecutorMockAsync.java    |   6 +-
 .../backendapi/core/commands/RunDockerCommand.java |   5 +
 .../response/handlers/ComputationalConfigure.java  |  42 ++++---
 .../resources/GitExploratoryResource.java          |   7 ++
 .../dlab/backendapi/resources/ImageResource.java   |  11 +-
 .../dlab/backendapi/resources/LibraryResource.java |  11 +-
 .../backendapi/resources/base/EdgeService.java     |   8 ++
 .../resources/base/ExploratoryService.java         |   8 ++
 .../resources/base/InfrastructureService.java      |  43 ++++----
 .../service/impl/CheckInactivityServiceImpl.java   |  23 +++-
 .../service/impl/ProjectServiceImpl.java           |  13 ++-
 .../service/impl/SparkClusterService.java          |  27 ++++-
 .../epam/dlab/backendapi/dao/ExploratoryDAO.java   |  29 ++++-
 .../epam/dlab/backendapi/domain/EndpointDTO.java   |   8 +-
 .../backendapi/resources/EndpointResource.java     |   3 +-
 .../backendapi/resources/ExploratoryResource.java  |   4 +
 ...ateFormDTO.java => ExploratoryCreatePopUp.java} |  20 ++--
 .../backendapi/service/ExploratoryService.java     |   3 +
 .../service/impl/EndpointServiceImpl.java          |   1 +
 .../service/impl/ExploratoryServiceImpl.java       |  16 +++
 .../services/applicationServiceFacade.service.ts   |   7 ++
 .../src/app/core/services/userResource.service.ts  |   8 ++
 .../webapp/src/app/core/util/sortUtils.ts          |   5 +
 .../reporting-grid/reporting-grid.component.html   |   2 +-
 .../reporting-grid/reporting-grid.component.scss   |   4 +
 .../cluster-details/cluster-details.component.html |   6 +-
 .../cluster-details/cluster-details.component.ts   |  23 +++-
 .../computational-resource-create.model.ts         |   2 +-
 .../computational-resource.model.ts}               |  30 +++--
 .../create-environment.component.html              |   3 +-
 .../create-environment.component.ts                |  19 +++-
 .../demo-picture-dialog.component.html}            |  12 +-
 .../demo-picture-dialog.component.scss}            |   6 +
 .../demo-picture-dialog.component.ts}              |  10 +-
 .../index.ts                                       |  12 +-
 .../detail-dialog/detail-dialog.component.html     |   8 +-
 .../detail-dialog/detail-dialog.component.ts       |  32 +++++-
 .../install-libraries.component.scss               |   9 ++
 .../install-libraries.component.ts                 |  12 +-
 .../filter-libs.model.ts => notebook.model.ts}     |  30 +++--
 .../src/app/resources/resources-grid/index.ts      |   2 +
 .../resources-grid/resources-grid.component.scss   |   4 +
 .../resources-grid/resources-grid.component.ts     |  49 +++++++--
 .../edge-action-dialog.component.ts                |  24 ++--
 .../webapp/src/assets/img/demo/Jupyter.png         | Bin 0 -> 115150 bytes
 .../webapp/src/assets/img/demo/Rstudio.png         | Bin 0 -> 210897 bytes
 .../webapp/src/assets/img/demo/handoop_cluster.png | Bin 0 -> 105996 bytes
 .../webapp/src/assets/img/demo/spark_cluster.png   | Bin 0 -> 75258 bytes
 .../webapp/src/assets/img/demo/tensorboard.png     | Bin 0 -> 61639 bytes
 .../resources/webapp/src/assets/img/demo/ungit.png | Bin
 .../webapp/src/assets/img/demo/zeppeling.png       | Bin 0 -> 146524 bytes
 .../webapp/src/assets/styles/_dialogs.scss         |   8 ++
 .../resources/webapp/src/assets/styles/_theme.scss |  36 ++----
 .../webapp/src/dictionary/azure.dictionary.ts      |   2 +-
 111 files changed, 1321 insertions(+), 610 deletions(-)
 create mode 100644 infrastructure-provisioning/terraform/azure/endpoint/main/instance.tf
 rename infrastructure-provisioning/terraform/{aws/endpoint/main/s3.tf => azure/endpoint/main/main.tf} (59%)
 create mode 100644 infrastructure-provisioning/terraform/azure/endpoint/main/network.tf
 copy infrastructure-provisioning/terraform/{aws => azure}/endpoint/main/outputs.tf (81%)
 create mode 100644 infrastructure-provisioning/terraform/azure/endpoint/main/sg.tf
 copy infrastructure-provisioning/terraform/{aws => azure}/endpoint/main/variables.tf (75%)
 delete mode 100644 infrastructure-provisioning/terraform/gcp/endpoint/main/buckets.tf
 copy services/{billing-aws => billing-azure}/Dockerfile (92%)
 copy services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/{ExploratoryImageCreateFormDTO.java => ExploratoryCreatePopUp.java} (74%)
 copy services/self-service/src/main/resources/webapp/src/app/resources/{exploratory/install-libraries/filter-libs.model.ts => computational/computational-resource.model.ts} (63%)
 copy services/self-service/src/main/resources/webapp/src/app/{shared/modal-dialog/progress-dialog/progress-dialog.component.html => resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.html} (73%)
 copy services/self-service/src/main/resources/webapp/src/app/{swagger/swagger.component.scss => resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.scss} (95%)
 copy services/self-service/src/main/resources/webapp/src/app/resources/exploratory/{ami-create-dialog/ami-create-dialog.component.ts => demo-picture-dialog/demo-picture-dialog.component.ts} (92%)
 copy services/self-service/src/main/resources/webapp/src/app/resources/exploratory/{ami-create-dialog => demo-picture-dialog}/index.ts (79%)
 copy services/self-service/src/main/resources/webapp/src/app/resources/exploratory/{install-libraries/filter-libs.model.ts => notebook.model.ts} (67%)
 create mode 100644 services/self-service/src/main/resources/webapp/src/assets/img/demo/Jupyter.png
 create mode 100644 services/self-service/src/main/resources/webapp/src/assets/img/demo/Rstudio.png
 create mode 100644 services/self-service/src/main/resources/webapp/src/assets/img/demo/handoop_cluster.png
 create mode 100644 services/self-service/src/main/resources/webapp/src/assets/img/demo/spark_cluster.png
 create mode 100644 services/self-service/src/main/resources/webapp/src/assets/img/demo/tensorboard.png
 copy doc/ungit_push.png => services/self-service/src/main/resources/webapp/src/assets/img/demo/ungit.png (100%)
 create mode 100644 services/self-service/src/main/resources/webapp/src/assets/img/demo/zeppeling.png


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


[incubator-dlab] 01/02: Merge branch 'DLAB-1476' of https://github.com/apache/incubator-dlab into DLAB-1476

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

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

commit e4728048cf9af01cca5a279f59c2ea86ad10e2ac
Merge: 0ebbb5c 87b609e
Author: Dmytro Gnatyshyn <di...@ukr.net>
AuthorDate: Wed Feb 19 11:08:25 2020 +0200

    Merge branch 'DLAB-1476' of https://github.com/apache/incubator-dlab into DLAB-1476

 .../backendapi/core/commands/CommandExecutorMockAsync.java    | 11 +++++++++--
 .../com/epam/dlab/backendapi/modules/ProductionModule.java    |  7 ++++++-
 2 files changed, 15 insertions(+), 3 deletions(-)


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


[incubator-dlab] 02/02: [DLAB-1476]: Added demo screenshots for links

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

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

commit 620ee0fc0c2c9fb95ff6a22d38244ae913885dbd
Author: Dmytro Gnatyshyn <di...@ukr.net>
AuthorDate: Thu Feb 20 12:35:20 2020 +0200

    [DLAB-1476]: Added demo screenshots for links
---
 .../cluster-details/cluster-details.component.html |   6 +-
 .../cluster-details/cluster-details.component.ts   |  23 ++++-
 .../demo-picture-dialog.component.html             |  28 ++++++
 .../demo-picture-dialog.component.scss             |  24 ++++++
 .../demo-picture-dialog.component.ts               |  94 +++++++++++++++++++++
 .../exploratory/demo-picture-dialog/index.ts       |  39 +++++++++
 .../detail-dialog/detail-dialog.component.html     |   8 +-
 .../detail-dialog/detail-dialog.component.ts       |  32 ++++++-
 .../src/app/resources/resources-grid/index.ts      |   2 +
 .../webapp/src/assets/img/demo/Jupyter.png         | Bin 0 -> 115150 bytes
 .../webapp/src/assets/img/demo/Rstudio.png         | Bin 0 -> 210897 bytes
 .../webapp/src/assets/img/demo/handoop_cluster.png | Bin 0 -> 105996 bytes
 .../webapp/src/assets/img/demo/spark_cluster.png   | Bin 0 -> 75258 bytes
 .../webapp/src/assets/img/demo/tensorboard.png     | Bin 0 -> 61639 bytes
 .../resources/webapp/src/assets/img/demo/ungit.png | Bin 0 -> 98113 bytes
 .../webapp/src/assets/img/demo/zeppeling.png       | Bin 0 -> 146524 bytes
 .../webapp/src/assets/styles/_dialogs.scss         |   8 ++
 17 files changed, 256 insertions(+), 8 deletions(-)

diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html
index 04ea086..8ce7fed 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html
@@ -100,8 +100,10 @@
           <div class="m-top-10">
             <p *ngFor="let item of resource.computational_url" class="ellipsis flex">
               <span class="strong">{{ item.description }}:</span>&nbsp;
-              <a href="{{item.url}}" target="_blank" matTooltip="{{item.url}}"
-                matTooltipPosition="above">{{ item.url }}</a>
+              <a *ngIf="demoMode" href="{{item.url}}" target="_blank" matTooltip="{{item.url}}"
+                 matTooltipPosition="above">{{ item.url }}</a>
+              <span *ngIf="demoMode" class="fake-link" (click)="openDemoLink(item.description)" matTooltip="{{item.url}}"
+                    matTooltipPosition="above">{{ item.url }}</span>
             </p>
           </div>
         </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
index 75ea01e..d724f71 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
@@ -18,7 +18,7 @@
  */
 
 import { Component, ViewChild, OnInit, Inject } from '@angular/core';
-import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import {MatDialogRef, MAT_DIALOG_DATA, MatDialog} from '@angular/material/dialog';
 import { FormGroup, FormBuilder } from '@angular/forms';
 import { ToastrService } from 'ngx-toastr';
 
@@ -26,6 +26,7 @@ import { DateUtils, CheckUtils } from '../../../core/util';
 import { DataengineConfigurationService } from '../../../core/services';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { CLUSTER_CONFIGURATION } from '../computational-resource-create-dialog/cluster-configuration-templates';
+import {DemoPictureDialogComponent} from '../../exploratory/demo-picture-dialog';
 
 @Component({
   selector: 'dlab-cluster-details',
@@ -46,13 +47,15 @@ export class DetailComputationalResourcesComponent implements OnInit {
   tooltip: boolean = false;
   config: Array<{}> = [];
   public configurationForm: FormGroup;
+  private demoMode: boolean = true;
 
   constructor(
     @Inject(MAT_DIALOG_DATA) public data: any,
     public toastr: ToastrService,
     public dialogRef: MatDialogRef<DetailComputationalResourcesComponent>,
     private dataengineConfigurationService: DataengineConfigurationService,
-    private _fb: FormBuilder
+    private _fb: FormBuilder,
+    private dialog: MatDialog
   ) { }
 
   ngOnInit() {
@@ -117,4 +120,20 @@ export class DetailComputationalResourcesComponent implements OnInit {
         ? (control.value && control.value !== null && CheckUtils.isJSON(control.value) ? null : { valid: false })
         : null;
   }
+
+  private openDemoLink(template) {
+    const demoData = {
+      title: template.slice(0, -3),
+      url: ''
+    };
+
+    if (this.data.resource.image === 'docker.dlab-dataengine') {
+      demoData.url = 'assets/img/demo/spark_cluster.png';
+    } else {
+      demoData.url = 'assets/img/demo/handoop_cluster.png';
+    }
+    this.dialog.open(DemoPictureDialogComponent, { data: demoData, panelClass: 'modal-fullscreen' })
+      .afterClosed().subscribe(() => console.log('done'));
+  }
+
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.html
new file mode 100644
index 0000000..a45900a
--- /dev/null
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.html
@@ -0,0 +1,28 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<div class="ami-dialog" id="dialog-box">
+  <header class="dialog-header">
+    <h4 class="modal-title">Demo {{data.title}}</h4>
+    <button type="button" class="close" (click)="dialogRef.close()">&times;</button>
+  </header>
+  <div class="dialog-content">
+    <img class="demo-picture" src="{{data.url}}" alt="">
+  </div>
+</div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.scss
new file mode 100644
index 0000000..1668e5f
--- /dev/null
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.scss
@@ -0,0 +1,24 @@
+/*!
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+
+.demo-picture{
+  width: 100%;
+}
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.ts
new file mode 100644
index 0000000..dd13006
--- /dev/null
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/demo-picture-dialog.component.ts
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { Component, OnInit, Inject } from '@angular/core';
+import { FormGroup, FormBuilder, Validators } from '@angular/forms';
+import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import { ToastrService } from 'ngx-toastr';
+
+import { UserResourceService } from '../../../core/services';
+import { HTTP_STATUS_CODES } from '../../../core/util';
+import { DICTIONARY } from '../../../../dictionary/global.dictionary';
+
+@Component({
+  selector: 'demo-picture-dialog',
+  templateUrl: './demo-picture-dialog.component.html',
+  styleUrls: ['./demo-picture-dialog.component.scss']
+})
+export class DemoPictureDialogComponent implements OnInit {
+  readonly DICTIONARY = DICTIONARY;
+  public notebook: any;
+  public createAMIForm: FormGroup;
+  public provider: string;
+  namePattern = '[-_a-zA-Z0-9]+';
+  delimitersRegex = /[-_]?/g;
+  imagesList: any;
+
+  constructor(
+    @Inject(MAT_DIALOG_DATA) public data: any,
+    public toastr: ToastrService,
+    public dialogRef: MatDialogRef<DemoPictureDialogComponent>,
+    private _userResource: UserResourceService,
+    private _fb: FormBuilder,
+  ) { }
+
+  ngOnInit() {
+    this.notebook = this.data;
+    this.provider = this.data.cloud_provider;
+
+    this.initFormModel();
+    this._userResource.getImagesList(this.data.project).subscribe(res => this.imagesList = res);
+  }
+
+  public assignChanges(data) {
+    this._userResource.createAMI(data).subscribe(
+      response => response.status === HTTP_STATUS_CODES.ACCEPTED && this.dialogRef.close(),
+      error => this.toastr.error(error.message || `Image creation failed!`, 'Oops!'));
+  }
+
+  private initFormModel(): void {
+    this.createAMIForm = this._fb.group({
+      name: ['', [Validators.required, Validators.pattern(this.namePattern), this.providerMaxLength, this.checkDuplication.bind(this)]],
+      description: [''],
+      exploratory_name: [this.notebook.name]
+    });
+  }
+
+  private providerMaxLength(control) {
+    if (control && control.value)
+      return control.value.length <= 10 ? null : { valid: false };
+  }
+
+  private checkDuplication(control) {
+    if (control.value)
+      return this.isDuplicate(control.value) ? { duplication: true } : null;
+  }
+
+  private isDuplicate(value: string) {
+    for (let index = 0; index < this.imagesList.length; index++) {
+      if (this.delimitersFiltering(value) === this.delimitersFiltering(this.imagesList[index].name))
+        return true;
+    }
+    return false;
+  }
+
+  private delimitersFiltering(resource): string {
+    return resource.replace(this.delimitersRegex, '').toString().toLowerCase();
+  }
+}
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/index.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/index.ts
new file mode 100644
index 0000000..dd32784
--- /dev/null
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/demo-picture-dialog/index.ts
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { MaterialModule } from '../../../shared/material.module';
+
+import { DemoPictureDialogComponent } from './demo-picture-dialog.component';
+export * from './demo-picture-dialog.component';
+
+@NgModule({
+  imports: [
+    CommonModule,
+    MaterialModule,
+    FormsModule,
+    ReactiveFormsModule
+  ],
+  declarations: [DemoPictureDialogComponent],
+  entryComponents: [DemoPictureDialogComponent],
+  exports: [DemoPictureDialogComponent]
+})
+export class DemoPictureDialogModule {}
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 4977b22..1950044 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
@@ -48,14 +48,18 @@
             <div class="links_block">
               <p *ngFor="let item of notebook.url">
                 <span class="description">{{item.description}}: &nbsp;</span>
-                <a class="ellipsis" matTooltip="{{item.url}}" matTooltipPosition="above" href="{{item.url}}"
+                <a *ngIf="!demoMode" class="ellipsis" matTooltip="{{item.url}}" matTooltipPosition="above" href="{{item.url}}"
                   target="_blank">
                   &nbsp;{{item.url}}
                 </a>
+                <span *ngIf="demoMode" (click)="openDemoLink(item.description)" class="ellipsis fake-link" matTooltip="{{item.url}}" matTooltipPosition="above">
+                  &nbsp;{{item.url}}
+                </span>
               </p>
+
             </div>
             <p class="flex" *ngIf="notebook.username">Node User: &nbsp;<span
-                class="strong">{{ notebook.username }}</span></p>
+                class="strong" >{{ notebook.username }}</span></p>
             <p class="flex" *ngIf="notebook.password">Password: &nbsp;<span
                 class="strong">{{ notebook.password }}</span></p>
 
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 1fa43ca..6aae7ca 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
@@ -20,12 +20,14 @@
 import { Component, ViewChild, OnInit, Inject } from '@angular/core';
 import { FormGroup, FormBuilder } from '@angular/forms';
 import { ToastrService } from 'ngx-toastr';
-import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+import {MatDialogRef, MAT_DIALOG_DATA, MatDialog} from '@angular/material/dialog';
 
 import { DateUtils, CheckUtils } 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 {AmiCreateDialogComponent} from '../ami-create-dialog';
+import {DemoPictureDialogComponent} from '../demo-picture-dialog';
 
 @Component({
   selector: 'detail-dialog',
@@ -41,17 +43,20 @@ export class DetailDialogComponent implements OnInit {
   upTimeSince: string = '';
   tooltip: boolean = false;
   config: Array<{}> = [];
+  demoMode: boolean = true;
 
   public configurationForm: FormGroup;
 
   @ViewChild('configurationNode', { static: false }) configuration;
 
+
   constructor(
     @Inject(MAT_DIALOG_DATA) public data: any,
     private dataengineConfigurationService: DataengineConfigurationService,
     private _fb: FormBuilder,
     public dialogRef: MatDialogRef<DetailDialogComponent>,
-    public toastr: ToastrService
+    public toastr: ToastrService,
+    private dialog: MatDialog
   ) {
     this.notebook = data;
   }
@@ -120,4 +125,27 @@ export class DetailDialogComponent implements OnInit {
         ? (control.value && control.value !== null && CheckUtils.isJSON(control.value) ? null : { valid: false })
         : null;
   }
+
+  private openDemoLink(template) {
+    const demoData = {
+      title: template,
+      url: ''
+    };
+
+     if (template === 'Jupyter') {
+      demoData.url = 'assets/img/demo/Jupyter.png';
+    } else if (template === 'Ungit') {
+       demoData.url = 'assets/img/demo/ungit.png';
+    } else if (template === 'TensorBoard') {
+       demoData.url = 'assets/img/demo/tensorboard.png';
+    } else if (template === 'RStudio') {
+      demoData.url = 'assets/img/demo/Rstudio.png';
+    } else if (template === 'Apache Zeppelin') {
+       demoData.url = 'assets/img/demo/zeppeling.png';
+    } else {
+      demoData.url = 'assets/img/demo/Jupyter.png';
+    }
+    this.dialog.open(DemoPictureDialogComponent, { data: demoData, panelClass: 'modal-fullscreen' })
+      .afterClosed().subscribe(() => console.log('done'));
+  }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts
index 39a9732..e5ab331 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts
@@ -32,6 +32,7 @@ import { InstallLibrariesModule } from '../exploratory/install-libraries';
 import { AmiCreateDialogModule } from '../exploratory/ami-create-dialog';
 import { SchedulerModule } from '../scheduler';
 import { UnderscorelessPipeModule } from '../../core/pipes/underscoreless-pipe';
+import {DemoPictureDialogModule} from '../exploratory/demo-picture-dialog';
 
 @NgModule({
   imports: [
@@ -47,6 +48,7 @@ import { UnderscorelessPipeModule } from '../../core/pipes/underscoreless-pipe';
     InstallLibrariesModule,
     SchedulerModule,
     AmiCreateDialogModule,
+    DemoPictureDialogModule,
     UnderscorelessPipeModule,
     MaterialModule
   ],
diff --git a/services/self-service/src/main/resources/webapp/src/assets/img/demo/Jupyter.png b/services/self-service/src/main/resources/webapp/src/assets/img/demo/Jupyter.png
new file mode 100644
index 0000000..6fea12e
Binary files /dev/null and b/services/self-service/src/main/resources/webapp/src/assets/img/demo/Jupyter.png differ
diff --git a/services/self-service/src/main/resources/webapp/src/assets/img/demo/Rstudio.png b/services/self-service/src/main/resources/webapp/src/assets/img/demo/Rstudio.png
new file mode 100644
index 0000000..45f7367
Binary files /dev/null and b/services/self-service/src/main/resources/webapp/src/assets/img/demo/Rstudio.png differ
diff --git a/services/self-service/src/main/resources/webapp/src/assets/img/demo/handoop_cluster.png b/services/self-service/src/main/resources/webapp/src/assets/img/demo/handoop_cluster.png
new file mode 100644
index 0000000..741f9b1
Binary files /dev/null and b/services/self-service/src/main/resources/webapp/src/assets/img/demo/handoop_cluster.png differ
diff --git a/services/self-service/src/main/resources/webapp/src/assets/img/demo/spark_cluster.png b/services/self-service/src/main/resources/webapp/src/assets/img/demo/spark_cluster.png
new file mode 100644
index 0000000..79999b9
Binary files /dev/null and b/services/self-service/src/main/resources/webapp/src/assets/img/demo/spark_cluster.png differ
diff --git a/services/self-service/src/main/resources/webapp/src/assets/img/demo/tensorboard.png b/services/self-service/src/main/resources/webapp/src/assets/img/demo/tensorboard.png
new file mode 100644
index 0000000..5387534
Binary files /dev/null and b/services/self-service/src/main/resources/webapp/src/assets/img/demo/tensorboard.png differ
diff --git a/services/self-service/src/main/resources/webapp/src/assets/img/demo/ungit.png b/services/self-service/src/main/resources/webapp/src/assets/img/demo/ungit.png
new file mode 100644
index 0000000..aa7fa9f
Binary files /dev/null and b/services/self-service/src/main/resources/webapp/src/assets/img/demo/ungit.png differ
diff --git a/services/self-service/src/main/resources/webapp/src/assets/img/demo/zeppeling.png b/services/self-service/src/main/resources/webapp/src/assets/img/demo/zeppeling.png
new file mode 100644
index 0000000..ed71f56
Binary files /dev/null and b/services/self-service/src/main/resources/webapp/src/assets/img/demo/zeppeling.png differ
diff --git a/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss b/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
index f1fa89f..6acdc96 100644
--- a/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
+++ b/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
@@ -335,6 +335,14 @@ mat-dialog-container {
   top: 49%;
 }
 
+.fake-link{
+  color: #35afd5;
+  text-decoration: none;
+  transition: all 0.45s ease-in-out;
+  line-height: 19px;
+  cursor: pointer;
+}
+
 @media screen and (max-width: 1280px) {
   .modal-fullscreen {
     max-width: 100vw !important;


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