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

bhliva pushed a commit to branch feature/projects
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/feature/projects by this push:
     new 2ff5858  DLAB-778, 783, 788, 790 added possibility to use tags in 
resources
2ff5858 is described below

commit 2ff585863a8ed57f7f3ef0e5c6adb683c285f22f
Author: bhliva <bohdan_hl...@epam.com>
AuthorDate: Tue Jun 18 14:24:02 2019 +0300

    DLAB-778, 783, 788, 790 added possibility to use tags in resources
---
 .../java/com/epam/dlab/dto/UserInstanceDTO.java    | 12 ++++---
 .../computational/AwsComputationalResource.java    |  5 +--
 .../SparkStandaloneClusterResource.java            |  5 +--
 .../computational/UserComputationalResource.java   |  5 ++-
 .../dlab/dto/exploratory/ExploratoryCreateDTO.java | 22 ++++++++++++
 .../computational/GcpComputationalResource.java    |  6 ++--
 .../epam/dlab/model/exploratory/Exploratory.java   |  2 ++
 .../epam/dlab/backendapi/domain/EndpointDTO.java   |  1 +
 .../epam/dlab/backendapi/domain/ProjectDTO.java    |  2 ++
 .../epam/dlab/backendapi/modules/DevModule.java    |  1 +
 .../dlab/backendapi/modules/ProductionModule.java  |  1 +
 .../backendapi/resources/ExploratoryResource.java  |  2 ++
 .../resources/dto/ComputationalCreateFormDTO.java  |  2 ++
 .../resources/dto/ExploratoryCreateFormDTO.java    |  6 ++++
 .../epam/dlab/backendapi/service/TagService.java   |  9 +++++
 .../dlab/backendapi/service/TagServiceImpl.java    | 40 ++++++++++++++++++++++
 .../service/impl/ComputationalServiceImpl.java     | 24 ++++++++-----
 .../service/impl/ExploratoryServiceImpl.java       | 13 +++++--
 .../epam/dlab/backendapi/util/RequestBuilder.java  | 12 ++++---
 .../resources/ExploratoryResourceTest.java         | 14 +++++---
 .../service/impl/ComputationalServiceImplTest.java | 30 ++++++++++------
 .../service/impl/ExploratoryServiceImplTest.java   | 28 +++++++++------
 .../InfrastructureTemplateServiceBaseTest.java     |  6 ++--
 .../dlab/backendapi/util/RequestBuilderTest.java   |  6 ++--
 24 files changed, 196 insertions(+), 58 deletions(-)

diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/UserInstanceDTO.java 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/UserInstanceDTO.java
index 1cb4efc..5dae5ef 100644
--- a/services/dlab-model/src/main/java/com/epam/dlab/dto/UserInstanceDTO.java
+++ b/services/dlab-model/src/main/java/com/epam/dlab/dto/UserInstanceDTO.java
@@ -28,10 +28,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * Stores info about the user notebook.
@@ -79,6 +76,8 @@ public class UserInstanceDTO {
        private LocalDateTime lastActivity;
        @JsonProperty("cluster_config")
        private List<ClusterConfig> clusterConfig;
+       @JsonProperty
+       private Map<String, String> tags;
 
        /**
         * Sets the user login name.
@@ -174,4 +173,9 @@ public class UserInstanceDTO {
                setEndpoint(endpoint);
                return this;
        }
+
+       public UserInstanceDTO withTags(Map<String, String> tags) {
+               setTags(tags);
+               return this;
+       }
 }
diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/computational/AwsComputationalResource.java
 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/computational/AwsComputationalResource.java
index 928733d..8a268c5 100644
--- 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/computational/AwsComputationalResource.java
+++ 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/aws/computational/AwsComputationalResource.java
@@ -31,6 +31,7 @@ import lombok.ToString;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Stores info about the user's computational resources for notebook.
@@ -62,10 +63,10 @@ public class AwsComputationalResource extends 
UserComputationalResource {
                                                                        String 
instanceId, String masterShape, String slaveShape, Boolean slaveSpot,
                                                                        Integer 
slaveSpotPctPrice, String slaveNumber, String version,
                                                                        
List<ResourceURL> resourceURL, LocalDateTime lastActivity,
-                                                                       
List<ClusterConfig> config) {
+                                                                       
List<ClusterConfig> config, Map<String, String> tags) {
 
                super(computationalName, computationalId, imageName, 
templateName, status, uptime, schedulerJobData,
-                               reuploadKeyRequired, resourceURL, lastActivity);
+                               reuploadKeyRequired, resourceURL, lastActivity, 
tags);
                this.instanceId = instanceId;
                this.masterShape = masterShape;
                this.slaveShape = slaveShape;
diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/SparkStandaloneClusterResource.java
 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/SparkStandaloneClusterResource.java
index 50d2c48..82f5660 100644
--- 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/SparkStandaloneClusterResource.java
+++ 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/SparkStandaloneClusterResource.java
@@ -32,6 +32,7 @@ import org.hibernate.validator.constraints.NotBlank;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -51,10 +52,10 @@ public class SparkStandaloneClusterResource extends 
UserComputationalResource {
                                                                                
  SchedulerJobDTO schedulerJobData, boolean reuploadKeyRequired,
                                                                                
  String dataEngineInstanceCount, String dataEngineInstanceShape,
                                                                                
  List<ResourceURL> resourceURL, LocalDateTime lastActivity,
-                                                                               
  List<ClusterConfig> config) {
+                                                                               
  List<ClusterConfig> config, Map<String, String> tags) {
 
                super(computationalName, computationalId, imageName, 
templateName, status, uptime, schedulerJobData,
-                               reuploadKeyRequired, resourceURL, lastActivity);
+                               reuploadKeyRequired, resourceURL, lastActivity, 
tags);
                this.dataEngineInstanceCount = dataEngineInstanceCount;
                this.dataEngineInstanceShape = dataEngineInstanceShape;
                this.config = config;
diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/UserComputationalResource.java
 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/UserComputationalResource.java
index 14f2b4a..678025f 100644
--- 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/UserComputationalResource.java
+++ 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/computational/UserComputationalResource.java
@@ -31,6 +31,7 @@ import lombok.NoArgsConstructor;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 @Data
 @NoArgsConstructor
@@ -63,11 +64,12 @@ public class UserComputationalResource {
        @JsonProperty("instance_id")
        private String instanceId;
        protected List<ClusterConfig> config;
+       private Map<String,String> tags;
 
        public UserComputationalResource(String computationalName, String 
computationalId, String imageName,
                                                                         String 
templateName, String status, Date uptime, SchedulerJobDTO schedulerData,
                                                                         
boolean reuploadKeyRequired, List<ResourceURL> resourceUrl,
-                                                                        
LocalDateTime lastActivity) {
+                                                                        
LocalDateTime lastActivity, Map<String,String> tags) {
                this.computationalName = computationalName;
                this.computationalId = computationalId;
                this.imageName = imageName;
@@ -78,6 +80,7 @@ public class UserComputationalResource {
                this.reuploadKeyRequired = reuploadKeyRequired;
                this.resourceUrl = resourceUrl;
                this.lastActivity = lastActivity;
+               this.tags = tags;
        }
 
        public DataEngineType getDataEngineType() {
diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ExploratoryCreateDTO.java
 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ExploratoryCreateDTO.java
index 9eca961..0a4c407 100644
--- 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ExploratoryCreateDTO.java
+++ 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/exploratory/ExploratoryCreateDTO.java
@@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.base.MoreObjects.ToStringHelper;
 
 import java.util.List;
+import java.util.Map;
 
 public class ExploratoryCreateDTO<T extends ExploratoryCreateDTO<?>> extends 
ExploratoryBaseDTO<T> {
 
@@ -36,6 +37,12 @@ public class ExploratoryCreateDTO<T extends 
ExploratoryCreateDTO<?>> extends Exp
        private String imageName;
        @JsonProperty("spark_configurations")
        private List<ClusterConfig> clusterConfig;
+       @JsonProperty("tags")
+       private Map<String, String> tags;
+       @JsonProperty("project")
+       private String project;
+       @JsonProperty("endpoint")
+       private String endpoint;
 
        /**
         * Return the list of GIT credentials.
@@ -67,6 +74,21 @@ public class ExploratoryCreateDTO<T extends 
ExploratoryCreateDTO<?>> extends Exp
                return self;
        }
 
+       public T withTags(Map<String, String> tags) {
+               this.tags = tags;
+               return self;
+       }
+
+       public T withEndpoint(String endpoint) {
+               this.endpoint = endpoint;
+               return self;
+       }
+
+       public T withProject(String project) {
+               this.project = project;
+               return self;
+       }
+
        public String getImageName() {
                return imageName;
        }
diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/computational/GcpComputationalResource.java
 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/computational/GcpComputationalResource.java
index 061fa06..b56bbd8 100644
--- 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/computational/GcpComputationalResource.java
+++ 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/gcp/computational/GcpComputationalResource.java
@@ -31,6 +31,7 @@ import lombok.ToString;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Stores info about the user's computational resources for notebook.
@@ -61,9 +62,10 @@ public class GcpComputationalResource extends 
UserComputationalResource {
                                                                        
SchedulerJobDTO schedulerJobData, boolean reuploadKeyRequired,
                                                                        String 
instanceId, String masterShape, String slaveShape, String slaveNumber,
                                                                        String 
masterNumber, String preemptibleNumber, String version,
-                                                                       
List<ResourceURL> resourceURL, LocalDateTime lastActivity) {
+                                                                       
List<ResourceURL> resourceURL, LocalDateTime lastActivity,
+                                                                       
Map<String, String> tags) {
                super(computationalName, computationalId, imageName, 
templateName, status, uptime, schedulerJobData,
-                               reuploadKeyRequired, resourceURL, lastActivity);
+                               reuploadKeyRequired, resourceURL, lastActivity, 
tags);
                this.instanceId = instanceId;
                this.masterShape = masterShape;
                this.slaveShape = slaveShape;
diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Exploratory.java
 
b/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Exploratory.java
index dd8dcbb..4b67f70 100644
--- 
a/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Exploratory.java
+++ 
b/services/dlab-model/src/main/java/com/epam/dlab/model/exploratory/Exploratory.java
@@ -35,5 +35,7 @@ public class Exploratory {
        private final String shape;
        private final String imageName;
        private final String endpoint;
+       private final String project;
+       private final String exploratoryTag;
        private final List<ClusterConfig> clusterConfig;
 }
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EndpointDTO.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EndpointDTO.java
index e3c467c..15c2f18 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EndpointDTO.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/EndpointDTO.java
@@ -10,4 +10,5 @@ public class EndpointDTO {
        private final String name;
        private final String url;
        private final String account;
+       private final String tag;
 }
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java
index 1b60b59..07b281f 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/domain/ProjectDTO.java
@@ -15,5 +15,7 @@ public class ProjectDTO {
        private final Set<String> endpoints;
        @NotNull
        private final Set<String> groups;
+       @NotNull
+       private final String tag;
        private final Integer budget;
 }
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
index 2f6ae9b..dc24362 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/DevModule.java
@@ -76,6 +76,7 @@ public class DevModule extends 
ModuleBase<SelfServiceApplicationConfiguration> i
                bind(BackupService.class).to(BackupServiceImpl.class);
                bind(BackupDao.class).to(BackupDaoImpl.class);
                bind(ExploratoryService.class).to(ExploratoryServiceImpl.class);
+               bind(TagService.class).to(TagServiceImpl.class);
                bind(InactivityService.class).to(InactivityServiceImpl.class);
                bind(SystemUserInfoService.class).toInstance(new 
SystemUserInfoService() {
                        @Override
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
index 2ed65c4..4a3bc70 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/modules/ProductionModule.java
@@ -91,5 +91,6 @@ public class ProductionModule extends 
ModuleBase<SelfServiceApplicationConfigura
                bind(EndpointDAO.class).to(EndpointDAOImpl.class);
                bind(ProjectService.class).to(ProjectServiceImpl.class);
                bind(ProjectDAO.class).to(ProjectDAOImpl.class);
+               bind(TagService.class).to(TagServiceImpl.class);
        }
 }
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ExploratoryResource.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ExploratoryResource.java
index e6aa295..d397e98 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ExploratoryResource.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/ExploratoryResource.java
@@ -169,6 +169,8 @@ public class ExploratoryResource implements ExploratoryAPI {
                                .clusterConfig(formDTO.getClusterConfig())
                                .shape(formDTO.getShape())
                                .endpoint(formDTO.getEndpoint())
+                               .project(formDTO.getProject())
+                               .exploratoryTag(formDTO.getExploratoryTag())
                                .build();
        }
 }
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ComputationalCreateFormDTO.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ComputationalCreateFormDTO.java
index baf9bc7..ce619e4 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ComputationalCreateFormDTO.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ComputationalCreateFormDTO.java
@@ -48,6 +48,8 @@ public class ComputationalCreateFormDTO {
        @NotBlank
        @JsonProperty
        private String project;
+       @JsonProperty("custom_tag")
+       private String customTag;
 
        @NotBlank
        @JsonProperty("notebook_name")
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ExploratoryCreateFormDTO.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ExploratoryCreateFormDTO.java
index 2cb3344..18de17a 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ExploratoryCreateFormDTO.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/dto/ExploratoryCreateFormDTO.java
@@ -45,6 +45,8 @@ public class ExploratoryCreateFormDTO {
        @NotBlank
        @JsonProperty
        private String project;
+       @JsonProperty
+       private String exploratoryTag;
 
        @NotBlank
        @JsonProperty
@@ -168,6 +170,10 @@ public class ExploratoryCreateFormDTO {
                this.endpoint = endpoint;
        }
 
+       public String getExploratoryTag() {
+               return exploratoryTag;
+       }
+
        @Override
        public String toString() {
                return MoreObjects.toStringHelper(this)
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/TagService.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/TagService.java
new file mode 100644
index 0000000..f436f6d
--- /dev/null
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/TagService.java
@@ -0,0 +1,9 @@
+package com.epam.dlab.backendapi.service;
+
+import com.epam.dlab.auth.UserInfo;
+
+import java.util.Map;
+
+public interface TagService {
+       Map<String, String> getResourceTags(UserInfo userInfo, String endpoint, 
String project, String customTag);
+}
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/TagServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/TagServiceImpl.java
new file mode 100644
index 0000000..c601815
--- /dev/null
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/TagServiceImpl.java
@@ -0,0 +1,40 @@
+package com.epam.dlab.backendapi.service;
+
+import com.epam.dlab.auth.UserInfo;
+import com.epam.dlab.backendapi.dao.EndpointDAO;
+import com.epam.dlab.backendapi.dao.ProjectDAO;
+import com.epam.dlab.backendapi.domain.EndpointDTO;
+import com.epam.dlab.backendapi.domain.ProjectDTO;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
+@Singleton
+public class TagServiceImpl implements TagService {
+       private final EndpointDAO endpointDAO;
+       private final ProjectDAO projectDAO;
+
+       @Inject
+       public TagServiceImpl(EndpointDAO endpointDAO, ProjectDAO projectDAO) {
+               this.endpointDAO = endpointDAO;
+               this.projectDAO = projectDAO;
+       }
+
+       @Override
+       public Map<String, String> getResourceTags(UserInfo userInfo, String 
endpoint, String project,
+                                                                               
           String customTag) {
+               Map<String, String> tags = new HashMap<>();
+               tags.put("user_tag", userInfo.getName());
+               endpointDAO.get(endpoint)
+                               .map(EndpointDTO::getTag)
+                               .ifPresent(tag -> tags.put("endpoint_tag", 
tag));
+                       projectDAO.get(project)
+                               .map(ProjectDTO::getTag)
+                               .ifPresent(tag -> tags.put("project_tag", tag));
+               Optional.ofNullable(customTag).ifPresent(t -> 
tags.put("custom_tag", t));
+               return tags;
+       }
+}
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
index cc4ae0a..4a6ab80 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImpl.java
@@ -29,6 +29,7 @@ import com.epam.dlab.backendapi.domain.RequestId;
 import com.epam.dlab.backendapi.resources.dto.ComputationalCreateFormDTO;
 import com.epam.dlab.backendapi.resources.dto.SparkStandaloneClusterCreateForm;
 import com.epam.dlab.backendapi.service.ComputationalService;
+import com.epam.dlab.backendapi.service.TagService;
 import com.epam.dlab.backendapi.util.RequestBuilder;
 import com.epam.dlab.constants.ServiceConsts;
 import com.epam.dlab.dto.UserInstanceDTO;
@@ -48,6 +49,7 @@ import lombok.extern.slf4j.Slf4j;
 
 import java.util.EnumMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 
 import static com.epam.dlab.dto.UserInstanceStatus.*;
@@ -81,12 +83,12 @@ public class ComputationalServiceImpl implements 
ComputationalService {
        @Inject
        @Named(ServiceConsts.PROVISIONING_SERVICE_NAME)
        private RESTService provisioningService;
-
        @Inject
        private RequestBuilder requestBuilder;
-
        @Inject
        private RequestId requestId;
+       @Inject
+       private TagService tagService;
 
 
        @BudgetLimited
@@ -94,13 +96,14 @@ public class ComputationalServiceImpl implements 
ComputationalService {
        public boolean createSparkCluster(UserInfo userInfo, 
SparkStandaloneClusterCreateForm form,
                                                                          
@Project String project) {
 
-               if (computationalDAO.addComputational(userInfo.getName(), 
form.getNotebookName(),
-                               createInitialComputationalResource(form))) {
 
+               final UserInstanceDTO instance =
+                               
exploratoryDAO.fetchExploratoryFields(userInfo.getName(), 
form.getNotebookName());
+               final SparkStandaloneClusterResource compResource = 
createInitialComputationalResource(form);
+               compResource.setTags(tagService.getResourceTags(userInfo, 
instance.getEndpoint(), project,
+                               form.getCustomTag()));
+               if (computationalDAO.addComputational(userInfo.getName(), 
form.getNotebookName(), compResource)) {
                        try {
-                               UserInstanceDTO instance =
-                                               
exploratoryDAO.fetchExploratoryFields(userInfo.getName(), 
form.getNotebookName());
-
                                ComputationalBase<?> dto = 
requestBuilder.newComputationalCreate(userInfo, instance, form);
 
                                String uuid = 
provisioningService.post(ComputationalAPI.COMPUTATIONAL_CREATE_SPARK,
@@ -157,13 +160,16 @@ public class ComputationalServiceImpl implements 
ComputationalService {
        public boolean createDataEngineService(UserInfo userInfo, 
ComputationalCreateFormDTO formDTO,
                                                                                
   UserComputationalResource computationalResource, @Project String project) {
 
+               final UserInstanceDTO instance = 
exploratoryDAO.fetchExploratoryFields(userInfo.getName(), formDTO
+                               .getNotebookName());
+               final Map<String, String> tags = 
tagService.getResourceTags(userInfo, instance.getEndpoint(), project,
+                               formDTO.getCustomTag());
+               computationalResource.setTags(tags);
                boolean isAdded = 
computationalDAO.addComputational(userInfo.getName(), formDTO.getNotebookName(),
                                computationalResource);
 
                if (isAdded) {
                        try {
-                               UserInstanceDTO instance = 
exploratoryDAO.fetchExploratoryFields(userInfo.getName(), formDTO
-                                               .getNotebookName());
                                String uuid = 
provisioningService.post(COMPUTATIONAL_CREATE_CLOUD_SPECIFIC, 
userInfo.getAccessToken(),
                                                
requestBuilder.newComputationalCreate(userInfo, instance, formDTO), 
String.class);
                                requestId.put(userInfo.getName(), uuid);
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
index 0489f71..a043b52 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImpl.java
@@ -28,6 +28,7 @@ import com.epam.dlab.backendapi.dao.GitCredsDAO;
 import com.epam.dlab.backendapi.dao.ImageExploratoryDao;
 import com.epam.dlab.backendapi.domain.RequestId;
 import com.epam.dlab.backendapi.service.ExploratoryService;
+import com.epam.dlab.backendapi.service.TagService;
 import com.epam.dlab.backendapi.util.RequestBuilder;
 import com.epam.dlab.constants.ServiceConsts;
 import com.epam.dlab.dto.StatusEnvBaseDTO;
@@ -73,6 +74,8 @@ public class ExploratoryServiceImpl implements 
ExploratoryService {
        private RequestBuilder requestBuilder;
        @Inject
        private RequestId requestId;
+       @Inject
+       private TagService tagService;
 
        @BudgetLimited
        @Override
@@ -95,12 +98,14 @@ public class ExploratoryServiceImpl implements 
ExploratoryService {
        public String create(UserInfo userInfo, Exploratory exploratory, 
@Project String project) {
                boolean isAdded = false;
                try {
-                       
exploratoryDAO.insertExploratory(getUserInstanceDTO(userInfo, exploratory, 
project));
+                       final UserInstanceDTO userInstanceDTO = 
getUserInstanceDTO(userInfo, exploratory, project);
+                       exploratoryDAO.insertExploratory(userInstanceDTO);
                        isAdded = true;
                        final ExploratoryGitCredsDTO gitCreds = 
gitCredsDAO.findGitCreds(userInfo.getName());
                        log.debug("Created exploratory environment {} for user 
{}", exploratory.getName(), userInfo.getName());
                        final String uuid = 
provisioningService.post(EXPLORATORY_CREATE, userInfo.getAccessToken(),
-                                       
requestBuilder.newExploratoryCreate(exploratory, userInfo, gitCreds), 
String.class);
+                                       
requestBuilder.newExploratoryCreate(exploratory, userInfo, gitCreds, 
userInstanceDTO.getTags()),
+                                       String.class);
                        requestId.put(userInfo.getName(), uuid);
                        return uuid;
                } catch (Exception t) {
@@ -321,7 +326,9 @@ public class ExploratoryServiceImpl implements 
ExploratoryService {
                                
.withClusterConfig(exploratory.getClusterConfig())
                                .withShape(exploratory.getShape())
                                .withProject(project)
-                               .withEndpoint(exploratory.getEndpoint());
+                               .withEndpoint(exploratory.getEndpoint())
+                               .withTags(tagService.getResourceTags(userInfo, 
exploratory.getEndpoint(), project,
+                                               
exploratory.getExploratoryTag()));
                if (StringUtils.isNotBlank(exploratory.getImageName())) {
                        final List<LibInstallDTO> libInstallDtoList = 
getImageRelatedLibraries(userInfo, exploratory
                                        .getImageName());
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java
index b120c53..350fa0e 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/RequestBuilder.java
@@ -68,6 +68,7 @@ import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import static com.epam.dlab.cloud.CloudProvider.*;
@@ -196,7 +197,8 @@ public class RequestBuilder {
 
        @SuppressWarnings("unchecked")
        public <T extends ExploratoryCreateDTO<T>> T 
newExploratoryCreate(Exploratory exploratory, UserInfo userInfo,
-                                                                               
                                                          
ExploratoryGitCredsDTO exploratoryGitCredsDTO) {
+                                                                               
                                                          
ExploratoryGitCredsDTO exploratoryGitCredsDTO,
+                                                                               
                                                          Map<String, String> 
tags) {
 
                T exploratoryCreate;
 
@@ -220,7 +222,6 @@ public class RequestBuilder {
                                exploratoryCreate = (T) 
newResourceSysBaseDTO(userInfo, ExploratoryCreateGcp.class)
                                                
.withNotebookInstanceType(exploratory.getShape());
                                break;
-
                        default:
                                throw new 
IllegalArgumentException(UNSUPPORTED_CLOUD_PROVIDER_MESSAGE + cloudProvider());
                }
@@ -230,7 +231,10 @@ public class RequestBuilder {
                                
.withApplicationName(getApplicationNameFromImage(exploratory.getDockerImage()))
                                
.withGitCreds(exploratoryGitCredsDTO.getGitCreds())
                                .withImageName(exploratory.getImageName())
-                               
.withClusterConfig(exploratory.getClusterConfig());
+                               
.withClusterConfig(exploratory.getClusterConfig())
+                               .withProject(exploratory.getProject())
+                               .withEndpoint(exploratory.getEndpoint())
+                               .withTags(tags);
        }
 
        @SuppressWarnings("unchecked")
@@ -586,7 +590,7 @@ public class RequestBuilder {
                return dto;
 
 
-    }
+       }
 
        public ExploratoryCheckInactivityAction 
newExploratoryCheckInactivityAction(UserInfo userInfo,
                                                                                
                                                                                
UserInstanceDTO userInstance) {
diff --git 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
index 0462732..25cc0b7 100644
--- 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
+++ 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/resources/ExploratoryResourceTest.java
@@ -63,7 +63,8 @@ public class ExploratoryResourceTest extends TestBase {
 
        @Test
        public void create() {
-               when(exploratoryService.create(any(UserInfo.class), 
any(Exploratory.class), anyString())).thenReturn("someUuid");
+               when(exploratoryService.create(any(UserInfo.class), 
any(Exploratory.class), anyString())).thenReturn(
+                               "someUuid");
                final Response response = resources.getJerseyTest()
                                
.target("/infrastructure_provision/exploratory_environment")
                                .request()
@@ -74,14 +75,16 @@ public class ExploratoryResourceTest extends TestBase {
                assertEquals("someUuid", response.readEntity(String.class));
                assertEquals(MediaType.APPLICATION_JSON, 
response.getHeaderString(HttpHeaders.CONTENT_TYPE));
 
-               verify(exploratoryService).create(getUserInfo(), 
getExploratory(getExploratoryCreateFormDTO()), "project");
+               verify(exploratoryService).create(refEq(getUserInfo()), 
refEq(getExploratory(getExploratoryCreateFormDTO())),
+                               eq("project"));
                verifyNoMoreInteractions(exploratoryService);
        }
 
        @Test
        public void createWithFailedAuth() throws AuthenticationException {
                authFailSetup();
-               when(exploratoryService.create(any(UserInfo.class), 
any(Exploratory.class), anyString())).thenReturn("someUuid");
+               when(exploratoryService.create(any(UserInfo.class), 
any(Exploratory.class), anyString())).thenReturn(
+                               "someUuid");
                final Response response = resources.getJerseyTest()
                                
.target("/infrastructure_provision/exploratory_environment")
                                .request()
@@ -304,6 +307,7 @@ public class ExploratoryResourceTest extends TestBase {
                ecfDto.setVersion("someVersion");
                ecfDto.setImageName("someImageName");
                ecfDto.setProject("project");
+               ecfDto.setEndpoint("endpoint");
                return ecfDto;
        }
 
@@ -318,6 +322,8 @@ public class ExploratoryResourceTest extends TestBase {
                                .imageName(formDTO.getImageName())
                                .templateName(formDTO.getTemplateName())
                                .version(formDTO.getVersion())
-                               .shape(formDTO.getShape()).build();
+                               .shape(formDTO.getShape())
+                               .endpoint(formDTO.getEndpoint())
+                               .project(formDTO.getProject()).build();
        }
 }
diff --git 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
index 03e0c0b..6da6ee8 100644
--- 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
+++ 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ComputationalServiceImplTest.java
@@ -26,6 +26,7 @@ import com.epam.dlab.backendapi.dao.ExploratoryDAO;
 import com.epam.dlab.backendapi.domain.RequestId;
 import com.epam.dlab.backendapi.resources.dto.ComputationalCreateFormDTO;
 import com.epam.dlab.backendapi.resources.dto.SparkStandaloneClusterCreateForm;
+import com.epam.dlab.backendapi.service.TagService;
 import com.epam.dlab.backendapi.util.RequestBuilder;
 import com.epam.dlab.dto.SchedulerJobDTO;
 import com.epam.dlab.dto.UserInstanceDTO;
@@ -96,6 +97,8 @@ public class ComputationalServiceImplTest {
        private RequestBuilder requestBuilder;
        @Mock
        private RequestId requestId;
+       @Mock
+       private TagService tagService;
 
        @InjectMocks
        private ComputationalServiceImpl computationalService;
@@ -151,9 +154,12 @@ public class ComputationalServiceImplTest {
        public void createSparkClusterWhenResourceAlreadyExists() {
                when(computationalDAO.addComputational(anyString(), anyString(),
                                
any(SparkStandaloneClusterResource.class))).thenReturn(false);
+               when(exploratoryDAO.fetchExploratoryFields(anyString(), 
anyString())).thenReturn(userInstance);
+
 
                boolean creationResult =
-                               
computationalService.createSparkCluster(userInfo, 
(SparkStandaloneClusterCreateForm) formList.get(0), "");
+                               
computationalService.createSparkCluster(userInfo, 
(SparkStandaloneClusterCreateForm) formList.get(0),
+                                               "");
                assertFalse(creationResult);
 
                verify(computationalDAO).addComputational(eq(USER), 
eq(EXPLORATORY_NAME), refEq(sparkClusterResource));
@@ -172,13 +178,13 @@ public class ComputationalServiceImplTest {
 
                SparkStandaloneClusterCreateForm sparkClusterCreateForm = 
(SparkStandaloneClusterCreateForm) formList.get(0);
                try {
-                       computationalService.createSparkCluster(userInfo, 
sparkClusterCreateForm,"");
+                       computationalService.createSparkCluster(userInfo, 
sparkClusterCreateForm, "");
                } catch (ResourceNotFoundException e) {
                        assertEquals("Exploratory for user with name not 
found", e.getMessage());
                }
 
-               verify(computationalDAO).addComputational(USER, 
EXPLORATORY_NAME, sparkClusterResource);
-               
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusFailed,
 "self"));
+               verify(computationalDAO, never()).addComputational(USER, 
EXPLORATORY_NAME, sparkClusterResource);
+               verify(computationalDAO, 
never()).updateComputationalStatus(refEq(computationalStatusDTOWithStatusFailed,
 "self"));
                verify(exploratoryDAO).fetchExploratoryFields(USER, 
EXPLORATORY_NAME);
                verifyNoMoreInteractions(configuration, computationalDAO, 
exploratoryDAO);
        }
@@ -366,10 +372,12 @@ public class ComputationalServiceImplTest {
 
        @Test
        public void createDataEngineServiceWhenComputationalResourceNotAdded() {
+               when(exploratoryDAO.fetchExploratoryFields(anyString(), 
anyString())).thenReturn(userInstance);
                when(computationalDAO.addComputational(anyString(), 
anyString(), any(UserComputationalResource.class)))
                                .thenReturn(false);
 
-               boolean creationResult = 
computationalService.createDataEngineService(userInfo, formList.get(1), 
ucResource, "");
+               boolean creationResult = 
computationalService.createDataEngineService(userInfo, formList.get(1), 
ucResource,
+                               "");
                assertFalse(creationResult);
 
                verify(computationalDAO).addComputational(eq(USER), 
eq(EXPLORATORY_NAME), refEq(ucResource));
@@ -389,16 +397,15 @@ public class ComputationalServiceImplTest {
                try {
                        computationalService.createDataEngineService(userInfo, 
formList.get(1), ucResource, "");
                } catch (DlabException e) {
-                       assertEquals("Could not send request for creation the 
computational resource compName: " +
-                                       "Exploratory for user with name not 
found", e.getMessage());
+                       assertEquals("Exploratory for user with name not 
found", e.getMessage());
                }
 
-               verify(computationalDAO)
+               verify(computationalDAO, never())
                                .addComputational(eq(USER), 
eq(EXPLORATORY_NAME), refEq(ucResource));
 
                verify(exploratoryDAO).fetchExploratoryFields(USER, 
EXPLORATORY_NAME);
 
-               
verify(computationalDAO).updateComputationalStatus(refEq(computationalStatusDTOWithStatusFailed,
 "self"));
+               verify(computationalDAO, 
never()).updateComputationalStatus(refEq(computationalStatusDTOWithStatusFailed,
 "self"));
                verifyNoMoreInteractions(computationalDAO, exploratoryDAO);
        }
 
@@ -658,7 +665,7 @@ public class ComputationalServiceImplTest {
        }
 
        private UserInstanceDTO getUserInstanceDto() {
-               return new 
UserInstanceDTO().withUser(USER).withExploratoryName(EXPLORATORY_NAME);
+               return new 
UserInstanceDTO().withUser(USER).withExploratoryName(EXPLORATORY_NAME).withTags(Collections.emptyMap());
        }
 
        private List<ComputationalCreateFormDTO> getFormList() {
@@ -670,6 +677,7 @@ public class ComputationalServiceImplTest {
                ComputationalCreateFormDTO desClusterForm = new 
ComputationalCreateFormDTO();
                desClusterForm.setNotebookName(EXPLORATORY_NAME);
                desClusterForm.setName(COMP_NAME);
+
                return Arrays.asList(sparkClusterForm, desClusterForm);
        }
 
@@ -687,6 +695,7 @@ public class ComputationalServiceImplTest {
                                .imageName("dataengine")
                                .status(CREATING.toString())
                                .dataEngineInstanceCount(String.valueOf(2))
+                               .tags(Collections.emptyMap())
                                .build();
        }
 
@@ -698,6 +707,7 @@ public class ComputationalServiceImplTest {
                ucResource.setStatus(status.toString());
                ucResource.setLastActivity(LAST_ACTIVITY);
                ucResource.setComputationalId(COMP_ID);
+               ucResource.setTags(Collections.emptyMap());
                final SchedulerJobDTO schedulerData = new SchedulerJobDTO();
                schedulerData.setCheckInactivityRequired(true);
                schedulerData.setMaxInactivity(MAX_INACTIVITY);
diff --git 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java
 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java
index a3d9682..6a4e771 100644
--- 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java
+++ 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/ExploratoryServiceImplTest.java
@@ -24,6 +24,7 @@ import com.epam.dlab.backendapi.dao.ComputationalDAO;
 import com.epam.dlab.backendapi.dao.ExploratoryDAO;
 import com.epam.dlab.backendapi.dao.GitCredsDAO;
 import com.epam.dlab.backendapi.domain.RequestId;
+import com.epam.dlab.backendapi.service.TagService;
 import com.epam.dlab.backendapi.util.RequestBuilder;
 import com.epam.dlab.dto.StatusEnvBaseDTO;
 import com.epam.dlab.dto.UserInstanceDTO;
@@ -78,6 +79,8 @@ public class ExploratoryServiceImplTest {
        private RequestBuilder requestBuilder;
        @Mock
        private RequestId requestId;
+       @Mock
+       private TagService tagService;
 
        @InjectMocks
        private ExploratoryServiceImpl exploratoryService;
@@ -109,7 +112,7 @@ public class ExploratoryServiceImplTest {
                                .thenReturn(UUID);
                when(requestId.put(anyString(), anyString())).thenReturn(UUID);
 
-               String uuid = exploratoryService.start(userInfo, 
EXPLORATORY_NAME, "");
+               String uuid = exploratoryService.start(userInfo, 
EXPLORATORY_NAME, "project");
                assertNotNull(uuid);
                assertEquals(UUID, uuid);
 
@@ -128,7 +131,7 @@ public class ExploratoryServiceImplTest {
                doThrow(new ResourceNotFoundException("Exploratory for user 
with name not found"))
                                
.when(exploratoryDAO).fetchExploratoryFields(anyString(), anyString());
                try {
-                       exploratoryService.start(userInfo, EXPLORATORY_NAME, 
"");
+                       exploratoryService.start(userInfo, EXPLORATORY_NAME, 
"project");
                } catch (DlabException e) {
                        assertEquals("Could not exploratory/start exploratory 
environment expName: Exploratory for user with " +
                                        "name not found", e.getMessage());
@@ -254,13 +257,13 @@ public class ExploratoryServiceImplTest {
                ExploratoryCreateDTO ecDto = new ExploratoryCreateDTO();
                Exploratory exploratory = 
Exploratory.builder().name(EXPLORATORY_NAME).build();
                
when(requestBuilder.newExploratoryCreate(any(Exploratory.class), 
any(UserInfo.class),
-                               
any(ExploratoryGitCredsDTO.class))).thenReturn(ecDto);
+                               any(ExploratoryGitCredsDTO.class), 
anyMapOf(String.class, String.class))).thenReturn(ecDto);
                String exploratoryCreate = "exploratory/create";
                when(provisioningService.post(anyString(), anyString(), 
any(ExploratoryCreateDTO.class), any()))
                                .thenReturn(UUID);
                when(requestId.put(anyString(), anyString())).thenReturn(UUID);
 
-               String uuid = exploratoryService.create(userInfo, exploratory, 
"");
+               String uuid = exploratoryService.create(userInfo, exploratory, 
"project");
                assertNotNull(uuid);
                assertEquals(UUID, uuid);
 
@@ -268,7 +271,7 @@ public class ExploratoryServiceImplTest {
                userInstance.withResources(Collections.emptyList());
                verify(exploratoryDAO).insertExploratory(userInstance);
                verify(gitCredsDAO).findGitCreds(USER);
-               verify(requestBuilder).newExploratoryCreate(exploratory, 
userInfo, egcDto);
+               verify(requestBuilder).newExploratoryCreate(exploratory, 
userInfo, egcDto, Collections.emptyMap());
                verify(provisioningService).post(exploratoryCreate, TOKEN, 
ecDto, String.class);
                verify(requestId).put(USER, UUID);
                verifyNoMoreInteractions(exploratoryDAO, gitCredsDAO, 
requestBuilder, provisioningService, requestId);
@@ -283,7 +286,7 @@ public class ExploratoryServiceImplTest {
                                "Exploratory for user with name not found");
 
                Exploratory exploratory = 
Exploratory.builder().name(EXPLORATORY_NAME).build();
-               exploratoryService.create(userInfo, exploratory, "");
+               exploratoryService.create(userInfo, exploratory, "project");
        }
 
        @Test
@@ -291,7 +294,7 @@ public class ExploratoryServiceImplTest {
                doThrow(new 
RuntimeException()).when(exploratoryDAO).insertExploratory(any(UserInstanceDTO.class));
                Exploratory exploratory = 
Exploratory.builder().name(EXPLORATORY_NAME).build();
                try {
-                       exploratoryService.create(userInfo, exploratory, "");
+                       exploratoryService.create(userInfo, exploratory, 
"project");
                } catch (DlabException e) {
                        assertEquals("Could not create exploratory environment 
expName for user test: null",
                                        e.getMessage());
@@ -312,11 +315,12 @@ public class ExploratoryServiceImplTest {
                Exploratory exploratory = 
Exploratory.builder().name(EXPLORATORY_NAME).build();
 
                doThrow(new DlabException("Cannot create instance of resource 
class ")).when(requestBuilder)
-                               .newExploratoryCreate(any(Exploratory.class), 
any(UserInfo.class), any(ExploratoryGitCredsDTO.class));
+                               .newExploratoryCreate(any(Exploratory.class), 
any(UserInfo.class), any(ExploratoryGitCredsDTO.class),
+                                               anyMapOf(String.class, 
String.class));
 
                
when(exploratoryDAO.updateExploratoryStatus(any(StatusEnvBaseDTO.class))).thenReturn(mock(UpdateResult.class));
                try {
-                       exploratoryService.create(userInfo, exploratory, "");
+                       exploratoryService.create(userInfo, exploratory, 
"project");
                } catch (DlabException e) {
                        assertEquals("Could not create exploratory environment 
expName for user test: Cannot create instance " +
                                        "of resource class ", e.getMessage());
@@ -328,7 +332,7 @@ public class ExploratoryServiceImplTest {
                userInstance.withResources(Collections.emptyList());
                verify(exploratoryDAO).insertExploratory(userInstance);
                verify(gitCredsDAO).findGitCreds(USER);
-               verify(requestBuilder).newExploratoryCreate(exploratory, 
userInfo, egcDto);
+               verify(requestBuilder).newExploratoryCreate(exploratory, 
userInfo, egcDto, Collections.emptyMap());
                
verify(exploratoryDAO).updateExploratoryStatus(refEq(statusEnvBaseDTO, "self"));
                verifyNoMoreInteractions(exploratoryDAO, gitCredsDAO, 
requestBuilder);
        }
@@ -526,7 +530,9 @@ public class ExploratoryServiceImplTest {
                compResource.setStatus("stopped");
                compResource.setComputationalId("compId");
                return new 
UserInstanceDTO().withUser(USER).withExploratoryName(EXPLORATORY_NAME).withStatus("running")
-                               .withResources(singletonList(compResource));
+                               .withResources(singletonList(compResource))
+                               .withTags(Collections.emptyMap())
+                               .withProject("project");
        }
 
        private StatusEnvBaseDTO getStatusEnvBaseDTOWithStatus(String status) {
diff --git 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java
 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java
index 770274e..b2979fa 100644
--- 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java
+++ 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/service/impl/InfrastructureTemplateServiceBaseTest.java
@@ -77,7 +77,7 @@ public class InfrastructureTemplateServiceBaseTest {
                emDto2.setExploratoryEnvironmentShapes(shapes2);
                List<ExploratoryMetadataDTO> expectedEmdDtoList = 
Arrays.asList(emDto1, emDto2);
                when(projectDAO.get(anyString())).thenReturn(Optional.of(new 
ProjectDTO("project", Collections.emptySet(),
-                               Collections.singleton("project"), null)));
+                               Collections.singleton("project"), null, null)));
                when(provisioningService.get(anyString(), anyString(), 
any())).thenReturn(expectedEmdDtoList.toArray());
                
when(settingsDAO.getConfOsFamily()).thenReturn("someConfOsFamily");
 
@@ -116,7 +116,7 @@ public class InfrastructureTemplateServiceBaseTest {
                                computationalMetadataDTO
                );
                when(projectDAO.get(anyString())).thenReturn(Optional.of(new 
ProjectDTO("project", Collections.emptySet(),
-                               Collections.singleton("project"), null)));
+                               Collections.singleton("project"), null, null)));
                when(provisioningService.get(anyString(), anyString(), 
any())).thenReturn(expectedCmdDtoList.toArray(new 
ComputationalMetadataDTO[]{}));
 
                List<FullComputationalTemplate> expectedFullCmdDtoList = 
expectedCmdDtoList.stream()
@@ -158,7 +158,7 @@ public class InfrastructureTemplateServiceBaseTest {
                List<ComputationalMetadataDTO> expectedCmdDtoList = 
Collections.singletonList(computationalMetadataDTO);
                when(provisioningService.get(anyString(), anyString(), 
any())).thenReturn(expectedCmdDtoList.toArray(new 
ComputationalMetadataDTO[]{}));
                when(projectDAO.get(anyString())).thenReturn(Optional.of(new 
ProjectDTO("project", Collections.emptySet(),
-                               Collections.singleton("project"), null)));
+                               Collections.singleton("project"), null, null)));
 
                UserInfo userInfo = new UserInfo("test", "token");
                try {
diff --git 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/util/RequestBuilderTest.java
 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/util/RequestBuilderTest.java
index adb46f0..ff3e765 100644
--- 
a/services/self-service/src/test/java/com/epam/dlab/backendapi/util/RequestBuilderTest.java
+++ 
b/services/self-service/src/test/java/com/epam/dlab/backendapi/util/RequestBuilderTest.java
@@ -308,7 +308,7 @@ public class RequestBuilderTest {
                when(settingsDAO.getAwsVpcId()).thenReturn("someAwsVpcId");
                
when(settingsDAO.getConfTagResourceId()).thenReturn("someConfTagResourceId");
 
-               requestBuilder.newExploratoryCreate(exploratory, userInfo, 
egcDto);
+               requestBuilder.newExploratoryCreate(exploratory, userInfo, 
egcDto, null);
 
                verify(configuration, times(3)).getCloudProvider();
                verify(settingsDAO).getServiceBaseName();
@@ -336,7 +336,7 @@ public class RequestBuilderTest {
                
when(settingsDAO.getAzureVpcName()).thenReturn("someAzureVpcId");
                
when(settingsDAO.getAzureDataLakeClientId()).thenReturn("someId");
 
-               requestBuilder.newExploratoryCreate(exploratory, userInfo, 
egcDto);
+               requestBuilder.newExploratoryCreate(exploratory, userInfo, 
egcDto, null);
 
                verify(configuration, times(3)).getCloudProvider();
                verify(settingsDAO, times(2)).isAzureDataLakeEnabled();
@@ -357,7 +357,7 @@ public class RequestBuilderTest {
                when(settingsDAO.getServiceBaseName()).thenReturn("someSBN");
                
when(settingsDAO.getConfOsFamily()).thenReturn("someConfOsFamily");
 
-               requestBuilder.newExploratoryCreate(exploratory, userInfo, 
egcDto);
+               requestBuilder.newExploratoryCreate(exploratory, userInfo, 
egcDto, null);
 
                verify(configuration, times(3)).getCloudProvider();
                verify(configuration).getMaxUserNameLength();


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

Reply via email to