You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by bh...@apache.org on 2019/10/02 10:59:17 UTC

[incubator-dlab] branch develop updated: DLAB-1171 project field added to billing report for AZURE and GCP

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 9e83bea  DLAB-1171 project field added to billing report for AZURE and GCP
9e83bea is described below

commit 9e83bea63365053f8d842d38561e1ff50ad6b14b
Author: bhliva <bo...@epam.com>
AuthorDate: Wed Oct 2 13:59:06 2019 +0300

    DLAB-1171 project field added to billing report for AZURE and GCP
---
 .../epam/dlab/backendapi/dao/BaseBillingDAO.java   |   1 +
 .../dlab/backendapi/dao/aws/AwsBillingDAO.java     |   1 -
 .../dlab/backendapi/dao/azure/AzureBillingDAO.java | 167 +++++++++++----------
 .../dlab/backendapi/dao/gcp/GcpBillingDao.java     |   2 +-
 4 files changed, 86 insertions(+), 85 deletions(-)

diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseBillingDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseBillingDAO.java
index ea0cf06..fee2e00 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseBillingDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/BaseBillingDAO.java
@@ -82,6 +82,7 @@ public abstract class BaseBillingDAO<T extends BillingFilter> extends BaseDAO im
 	private static final String TOTAL_FIELD_NAME = "total";
 	private static final String COST_FIELD = "$cost";
 	public static final String SHARED_RESOURCE_NAME = "Shared resource";
+	protected static final String FIELD_PROJECT = "project";
 
 	@Inject
 	protected SettingsDAO settings;
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/aws/AwsBillingDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/aws/AwsBillingDAO.java
index b31eb99..aa78255 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/aws/AwsBillingDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/aws/AwsBillingDAO.java
@@ -42,7 +42,6 @@ public class AwsBillingDAO extends BaseBillingDAO<AwsBillingFilter> {
     public static final String USAGE_DATE_START = "usage_date_start";
     public static final String USAGE_DATE_END = "usage_date_end";
     public static final String TAG_RESOURCE_ID = "tag_resource_id";
-    private static final String FIELD_PROJECT = "project";
 
     @Override
     protected Bson sortCriteria() {
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/azure/AzureBillingDAO.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/azure/AzureBillingDAO.java
index 66a9b4c..863f3eb 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/azure/AzureBillingDAO.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/azure/AzureBillingDAO.java
@@ -38,88 +38,89 @@ import java.util.List;
 @Singleton
 @Slf4j
 public class AzureBillingDAO extends BaseBillingDAO<AzureBillingFilter> {
-    public static final String SIZE = "size";
-
-    @Override
-    protected List<Bson> cloudMatchCriteria(AzureBillingFilter filter) {
-        if (!filter.getCategory().isEmpty()) {
-            return Collections.singletonList(Filters.in(MongoKeyWords.METER_CATEGORY, filter.getCategory()));
-        } else {
-            return Collections.emptyList();
-        }
-    }
-
-    @Override
-    protected Bson groupCriteria() {
-        return Aggregates.group(getGroupingFields(
-                MongoKeyWords.DLAB_USER,
-                MongoKeyWords.DLAB_ID,
-                MongoKeyWords.RESOURCE_TYPE,
-                MongoKeyWords.METER_CATEGORY,
-                MongoKeyWords.CURRENCY_CODE),
-                Accumulators.sum(MongoKeyWords.COST, MongoKeyWords.prepend$(MongoKeyWords.COST)),
-                Accumulators.min(MongoKeyWords.USAGE_FROM, MongoKeyWords.prepend$(MongoKeyWords.USAGE_DAY)),
-                Accumulators.max(MongoKeyWords.USAGE_TO, MongoKeyWords.prepend$(MongoKeyWords.USAGE_DAY))
-        );
-    }
-
-    @Override
-    protected Bson sortCriteria() {
-        return Aggregates.sort(Sorts.ascending(
-                MongoKeyWords.prependId(MongoKeyWords.DLAB_USER),
-                MongoKeyWords.prependId(MongoKeyWords.DLAB_ID),
-                MongoKeyWords.prependId(MongoKeyWords.RESOURCE_TYPE),
-                MongoKeyWords.prependId(MongoKeyWords.METER_CATEGORY)));
-    }
-
-    @Override
-    protected String getServiceBaseName() {
-        return settings.getServiceBaseName().replace("_", "-").toLowerCase();
-    }
-
-    @Override
-    protected String getSsnShape() {
-        return settings.getAzureSsnInstanceSize();
-    }
-
-    @Override
-    protected String shapeFieldName() {
-        return SIZE;
-    }
-
-    @Override
-    protected String dlabIdFieldName() {
-        return MongoKeyWords.DLAB_ID;
-    }
-
-    @Override
-    protected String productFieldName() {
-        return MongoKeyWords.METER_CATEGORY;
-    }
-
-    @Override
-    protected String costFieldName() {
-        return MongoKeyWords.COST_STRING;
-    }
-
-    @Override
-    protected String usageDateFromFieldName() {
-        return MongoKeyWords.USAGE_FROM;
-    }
-
-    @Override
-    protected String usageDateToFieldName() {
-        return MongoKeyWords.USAGE_TO;
-    }
-
-    @Override
-    protected String currencyCodeFieldName() {
-        return MongoKeyWords.CURRENCY_CODE;
-    }
-
-    @Override
-    protected String resourceType(Document id) {
-        return DlabResourceType.getResourceTypeName(id.getString(MongoKeyWords.RESOURCE_TYPE));
-    }
+	public static final String SIZE = "size";
+
+	@Override
+	protected List<Bson> cloudMatchCriteria(AzureBillingFilter filter) {
+		if (!filter.getCategory().isEmpty()) {
+			return Collections.singletonList(Filters.in(MongoKeyWords.METER_CATEGORY, filter.getCategory()));
+		} else {
+			return Collections.emptyList();
+		}
+	}
+
+	@Override
+	protected Bson groupCriteria() {
+		return Aggregates.group(getGroupingFields(
+				MongoKeyWords.DLAB_USER,
+				MongoKeyWords.DLAB_ID,
+				MongoKeyWords.RESOURCE_TYPE,
+				MongoKeyWords.METER_CATEGORY,
+				MongoKeyWords.CURRENCY_CODE,
+				FIELD_PROJECT),
+				Accumulators.sum(MongoKeyWords.COST, MongoKeyWords.prepend$(MongoKeyWords.COST)),
+				Accumulators.min(MongoKeyWords.USAGE_FROM, MongoKeyWords.prepend$(MongoKeyWords.USAGE_DAY)),
+				Accumulators.max(MongoKeyWords.USAGE_TO, MongoKeyWords.prepend$(MongoKeyWords.USAGE_DAY))
+		);
+	}
+
+	@Override
+	protected Bson sortCriteria() {
+		return Aggregates.sort(Sorts.ascending(
+				MongoKeyWords.prependId(MongoKeyWords.DLAB_USER),
+				MongoKeyWords.prependId(MongoKeyWords.DLAB_ID),
+				MongoKeyWords.prependId(MongoKeyWords.RESOURCE_TYPE),
+				MongoKeyWords.prependId(MongoKeyWords.METER_CATEGORY)));
+	}
+
+	@Override
+	protected String getServiceBaseName() {
+		return settings.getServiceBaseName().replace("_", "-").toLowerCase();
+	}
+
+	@Override
+	protected String getSsnShape() {
+		return settings.getAzureSsnInstanceSize();
+	}
+
+	@Override
+	protected String shapeFieldName() {
+		return SIZE;
+	}
+
+	@Override
+	protected String dlabIdFieldName() {
+		return MongoKeyWords.DLAB_ID;
+	}
+
+	@Override
+	protected String productFieldName() {
+		return MongoKeyWords.METER_CATEGORY;
+	}
+
+	@Override
+	protected String costFieldName() {
+		return MongoKeyWords.COST_STRING;
+	}
+
+	@Override
+	protected String usageDateFromFieldName() {
+		return MongoKeyWords.USAGE_FROM;
+	}
+
+	@Override
+	protected String usageDateToFieldName() {
+		return MongoKeyWords.USAGE_TO;
+	}
+
+	@Override
+	protected String currencyCodeFieldName() {
+		return MongoKeyWords.CURRENCY_CODE;
+	}
+
+	@Override
+	protected String resourceType(Document id) {
+		return DlabResourceType.getResourceTypeName(id.getString(MongoKeyWords.RESOURCE_TYPE));
+	}
 
 }
diff --git a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/gcp/GcpBillingDao.java b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/gcp/GcpBillingDao.java
index e03ac01..b9d1488 100644
--- a/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/gcp/GcpBillingDao.java
+++ b/services/self-service/src/main/java/com/epam/dlab/backendapi/dao/gcp/GcpBillingDao.java
@@ -46,7 +46,7 @@ public class GcpBillingDao extends BaseBillingDAO<GcpBillingFilter> {
     @Override
     protected Bson groupCriteria() {
         return group(getGroupingFields(USER, FIELD_DLAB_ID, DLAB_RESOURCE_TYPE, FIELD_PRODUCT,
-                currencyCodeFieldName()),
+                currencyCodeFieldName(), FIELD_PROJECT),
                 sum(FIELD_COST, "$" + FIELD_COST),
                 min(USAGE_FROM, "$" + FIELD_USAGE_DATE),
                 max(USAGE_TO, "$" + FIELD_USAGE_DATE)


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