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

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


The following commit(s) were added to refs/heads/DLAB-1571 by this push:
     new 41480c4  Added standard image format
41480c4 is described below

commit 41480c43d190134c9793c6022c9d76c38e1cdd21
Author: Oleh Fuks <olegfuk...@gmail.com>
AuthorDate: Tue Mar 31 15:59:53 2020 +0300

    Added standard image format
---
 .../java/com/epam/dlab/dto/billing/BillingResourceType.java |  3 ++-
 .../dlab/backendapi/service/impl/BillingServiceImpl.java    |  2 +-
 .../java/com/epam/dlab/backendapi/util/BillingUtils.java    | 13 +++++++++----
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/billing/BillingResourceType.java
 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/billing/BillingResourceType.java
index ac02ab1..7ad1082 100644
--- 
a/services/dlab-model/src/main/java/com/epam/dlab/dto/billing/BillingResourceType.java
+++ 
b/services/dlab-model/src/main/java/com/epam/dlab/dto/billing/BillingResourceType.java
@@ -26,5 +26,6 @@ public enum BillingResourceType {
     BUCKET,
     VOLUME,
     EXPLORATORY,
-    COMPUTATIONAL
+    COMPUTATIONAL,
+    IMAGE
 }
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
index 08502a2..22a4a13 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/impl/BillingServiceImpl.java
@@ -150,7 +150,7 @@ public class BillingServiceImpl implements BillingService {
         final Stream<BillingReportLine> billableUserInstances = 
exploratoryService.findAll(projects)
                 .stream()
                 .filter(userInstance -> 
Objects.nonNull(userInstance.getExploratoryId()))
-                .flatMap(ui -> BillingUtils.exploratoryBillingDataStream(ui, 
configuration.getMaxSparkInstanceCount()));
+                .flatMap(ui -> BillingUtils.exploratoryBillingDataStream(ui, 
configuration.getMaxSparkInstanceCount(), sbn));
 
         if (UserRoles.isAdmin(user)) {
             final Stream<BillingReportLine> billableEdges = projects
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/BillingUtils.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/BillingUtils.java
index 0fe4ebe..54489b2 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/util/BillingUtils.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/util/BillingUtils.java
@@ -41,11 +41,11 @@ import static 
com.epam.dlab.dto.billing.BillingResourceType.COMPUTATIONAL;
 import static com.epam.dlab.dto.billing.BillingResourceType.EDGE;
 import static com.epam.dlab.dto.billing.BillingResourceType.ENDPOINT;
 import static com.epam.dlab.dto.billing.BillingResourceType.EXPLORATORY;
+import static com.epam.dlab.dto.billing.BillingResourceType.IMAGE;
 import static com.epam.dlab.dto.billing.BillingResourceType.SSN;
 import static com.epam.dlab.dto.billing.BillingResourceType.VOLUME;
 
 public class BillingUtils {
-
     private static final String[] REPORT_HEADERS = {"DLab ID", "User", 
"Project", "DLab Resource Type", "Shape", "Product", "Cost"};
     private static final String REPORT_FIRST_LINE = "Service base name: %s. 
Available reporting period from: %s to: %s";
     private static final String TOTAL_LINE = "Total: %s %s";
@@ -59,9 +59,13 @@ public class BillingUtils {
     private static final String VOLUME_PRIMARY_COMPUTATIONAL_FORMAT = 
"%s-%s-volume-primary";
     private static final String VOLUME_SECONDARY_FORMAT = 
"%s-volume-secondary";
     private static final String VOLUME_SECONDARY_COMPUTATIONAL_FORMAT = 
"%s-%s-volume-secondary";
+    private static final String IMAGE_STANDARD_FORMAT = 
"%s-%s-%s-%s-notebook-image";
+    private static final String IMAGE_NAME_PREFIX = "docker.dlab-";
+
     private static final String VOLUME_PRIMARY = "Volume primary";
     private static final String VOLUME_SECONDARY = "Volume secondary";
     private static final String SHARED_RESOURCE = "Shared resource";
+    private static final String IMAGE_NAME = "Image";
 
     private static final String DATAENGINE_NAME_FORMAT = "%d x %s";
     private static final String DATAENGINE_SERVICE_NAME_FORMAT = "Master: 
%s%sSlave:  %d x %s";
@@ -95,7 +99,7 @@ public class BillingUtils {
         );
     }
 
-    public static Stream<BillingReportLine> 
exploratoryBillingDataStream(UserInstanceDTO userInstance, Integer 
maxSparkInstanceCount) {
+    public static Stream<BillingReportLine> 
exploratoryBillingDataStream(UserInstanceDTO userInstance, Integer 
maxSparkInstanceCount, String sbn) {
         final Stream<BillingReportLine> computationalStream = 
userInstance.getResources()
                 .stream()
                 .filter(cr -> cr.getComputationalId() != null)
@@ -110,11 +114,12 @@ public class BillingUtils {
                         getSlaveVolumes(userInstance, cr, 
maxSparkInstanceCount)
                 ));
         final String exploratoryId = userInstance.getExploratoryId();
+        final String imageId = String.format(IMAGE_STANDARD_FORMAT, sbn, 
userInstance.getProject(), userInstance.getEndpoint(), 
userInstance.getImageName().replace(IMAGE_NAME_PREFIX, ""));
         final String primaryVolumeId = String.format(VOLUME_PRIMARY_FORMAT, 
exploratoryId);
         final String secondaryVolumeId = 
String.format(VOLUME_SECONDARY_FORMAT, exploratoryId);
         final Stream<BillingReportLine> exploratoryStream = Stream.of(
-                
withUserProject(userInstance).resourceName(userInstance.getExploratoryName()).dlabId(exploratoryId).resourceType(EXPLORATORY)
-                        
.status(UserInstanceStatus.of(userInstance.getStatus())).shape(userInstance.getShape()).build(),
+                
withUserProject(userInstance).resourceName(userInstance.getExploratoryName()).dlabId(exploratoryId).resourceType(EXPLORATORY).status(UserInstanceStatus.of(userInstance.getStatus())).shape(userInstance.getShape()).build(),
+                
withUserProject(userInstance).resourceName(IMAGE_NAME).dlabId(imageId).resourceType(IMAGE).build(),
                 
withUserProject(userInstance).resourceName(VOLUME_PRIMARY).dlabId(primaryVolumeId).resourceType(VOLUME).build(),
                 
withUserProject(userInstance).resourceName(VOLUME_SECONDARY).dlabId(secondaryVolumeId).resourceType(VOLUME).build());
         return Stream.concat(computationalStream, exploratoryStream);


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

Reply via email to