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