You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by of...@apache.org on 2020/03/18 13:26:44 UTC
[incubator-dlab] branch DLAB-1571 updated: Added changes to Azure
remote billing
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 2aad4d7 Added changes to Azure remote billing
2aad4d7 is described below
commit 2aad4d787c61786ce80df9ba2380cbd65f62a600
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Wed Mar 18 15:26:27 2020 +0200
Added changes to Azure remote billing
---
.../billing/azure/dao/impl/BillingDAOImpl.java | 35 +++++++++-------------
1 file changed, 14 insertions(+), 21 deletions(-)
diff --git a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java
index 34901d0..2e3da13 100644
--- a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java
+++ b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/dao/impl/BillingDAOImpl.java
@@ -20,10 +20,10 @@
package com.epam.dlab.billing.azure.dao.impl;
import com.epam.dlab.billing.azure.dao.BillingDAO;
+import com.epam.dlab.billing.azure.model.AzureDailyResourceInvoice;
import com.epam.dlab.dto.billing.BillingData;
import com.epam.dlab.exceptions.DlabException;
import lombok.extern.slf4j.Slf4j;
-import org.bson.Document;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.GroupOperation;
@@ -37,12 +37,6 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
-import static com.epam.dlab.model.aws.ReportLine.FIELD_COST;
-import static com.epam.dlab.model.aws.ReportLine.FIELD_CURRENCY_CODE;
-import static com.epam.dlab.model.aws.ReportLine.FIELD_DLAB_ID;
-import static com.epam.dlab.model.aws.ReportLine.FIELD_PRODUCT;
-import static com.epam.dlab.model.aws.ReportLine.FIELD_RESOURCE_TYPE;
-import static com.epam.dlab.model.aws.ReportLine.FIELD_USAGE_DATE;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.group;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregation;
@@ -61,7 +55,7 @@ public class BillingDAOImpl implements BillingDAO {
GroupOperation groupOperation = getGroupOperation();
Aggregation aggregation = newAggregation(groupOperation);
- return mongoTemplate.aggregate(aggregation, "billing", Document.class).getMappedResults()
+ return mongoTemplate.aggregate(aggregation, "billing", AzureDailyResourceInvoice.class).getMappedResults()
.stream()
.map(this::toBillingData)
.collect(Collectors.toList());
@@ -78,7 +72,7 @@ public class BillingDAOImpl implements BillingDAO {
MatchOperation matchOperation = Aggregation.match(Criteria.where("dlab_id").in(dlabIds));
Aggregation aggregation = newAggregation(matchOperation, groupOperation);
- return mongoTemplate.aggregate(aggregation, "billing", Document.class).getMappedResults()
+ return mongoTemplate.aggregate(aggregation, "billing", AzureDailyResourceInvoice.class).getMappedResults()
.stream()
.map(this::toBillingData)
.collect(Collectors.toList());
@@ -89,21 +83,20 @@ public class BillingDAOImpl implements BillingDAO {
}
private GroupOperation getGroupOperation() {
- return group(FIELD_PRODUCT, FIELD_CURRENCY_CODE, FIELD_RESOURCE_TYPE, FIELD_DLAB_ID)
- .min(FIELD_USAGE_DATE).as("from")
- .max(FIELD_USAGE_DATE).as("to")
- .sum(FIELD_COST).as(FIELD_COST);
+ return group("meterCategory", "currencyCode", "dlabId")
+ .min("usageStartDate").as("usageStartDate")
+ .max("usageEndDate").as("usageEndDate")
+ .sum("cost").as("cost");
}
- private BillingData toBillingData(Document billingData) {
+ private BillingData toBillingData(AzureDailyResourceInvoice billingData) {
return BillingData.builder()
- .tag(billingData.getString(FIELD_DLAB_ID))
- .usageDateFrom(Optional.ofNullable(billingData.getString("from")).map(LocalDate::parse).orElse(null))
- .usageDateTo(Optional.ofNullable(billingData.getString("to")).map(LocalDate::parse).orElse(null))
- .product(billingData.getString(FIELD_PRODUCT))
- .usageType(billingData.getString(FIELD_RESOURCE_TYPE))
- .cost(BigDecimal.valueOf(billingData.getDouble(FIELD_COST)).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue())
- .currency(billingData.getString(FIELD_CURRENCY_CODE))
+ .tag(billingData.getDlabId())
+ .usageDateFrom(Optional.ofNullable(billingData.getUsageStartDate()).map(LocalDate::parse).orElse(null))
+ .usageDateTo(Optional.ofNullable(billingData.getUsageEndDate()).map(LocalDate::parse).orElse(null))
+ .product(billingData.getMeterCategory())
+ .cost(BigDecimal.valueOf(billingData.getCost()).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue())
+ .currency(billingData.getCurrencyCode())
.build();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org