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 2019/11/11 11:30:54 UTC
[incubator-dlab] branch DLAB-1230 updated: [DLAB-1230] Fixed
billing issues with edges [Azure]
This is an automated email from the ASF dual-hosted git repository.
ofuks pushed a commit to branch DLAB-1230
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-1230 by this push:
new bb4f91f [DLAB-1230] Fixed billing issues with edges [Azure]
bb4f91f is described below
commit bb4f91fa417dc96c11adac41d622abf4b668e74e
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Mon Nov 11 13:30:35 2019 +0200
[DLAB-1230] Fixed billing issues with edges [Azure]
---
.../azure/AzureBillableResourcesService.java | 40 ++++++++++------------
1 file changed, 19 insertions(+), 21 deletions(-)
diff --git a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/AzureBillableResourcesService.java b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/AzureBillableResourcesService.java
index 7b5fd61..fa3a518 100644
--- a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/AzureBillableResourcesService.java
+++ b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/AzureBillableResourcesService.java
@@ -161,31 +161,26 @@ public class AzureBillableResourcesService {
private Set<AzureDlabBillableResource> getEdgeAndStorageAccount() {
Set<AzureDlabBillableResource> billableResources = new HashSet<>();
- try {
-
- final FindIterable<Document> prjDocuments = mongoDbBillingClient.getDatabase()
- .getCollection("Projects").find();
- final List<Document> edges = StreamSupport.stream(prjDocuments.spliterator(), false)
- .flatMap(d -> ((List<Document>) d.get("endpoints")).stream())
- .map(d -> (Document) d.get("edgeInfo"))
- .collect(Collectors.toList());
- List<EdgeInfoAzure> edgeInfoList = objectMapper.readValue(
- objectMapper.writeValueAsString(edges),
- new com.fasterxml.jackson.core.type.TypeReference<List<EdgeInfoAzure>>() {
- });
-
- Optional.ofNullable(edgeInfoList).ifPresent(e -> e.stream().filter(Objects::nonNull).forEach(
- edgeInfoAzure -> billableResources.addAll(getEdgeAndStorageAccount(edgeInfoAzure))));
+ Map<String, List<Document>> projectEndpoints = StreamSupport.stream(mongoDbBillingClient.getDatabase()
+ .getCollection("Projects").find().spliterator(), false)
+ .collect(Collectors.toMap(key -> key.getString("name").toLowerCase(),
+ value -> (List<Document>) value.get("endpoints")));
+
+ projectEndpoints.forEach((key, value) -> value.forEach(endpoint -> {
+ try {
+ billableResources.addAll(getEdgeAndStorageAccount(key, objectMapper.readValue(
+ objectMapper.writeValueAsString(endpoint.get("edgeInfo")),
+ new com.fasterxml.jackson.core.type.TypeReference<EdgeInfoAzure>() {
+ })));
+ } catch (IOException ex) {
+ log.error("Error during preparation of billable resources", ex);
+ }
+ }));
- return billableResources;
- } catch (IOException e) {
- log.error("Error during preparation of billable resources", e);
- }
return billableResources;
}
- private Set<AzureDlabBillableResource> getEdgeAndStorageAccount(EdgeInfoAzure edgeInfoAzure) {
-
+ private Set<AzureDlabBillableResource> getEdgeAndStorageAccount(String projectName, EdgeInfoAzure edgeInfoAzure) {
Set<AzureDlabBillableResource> billableResources = new HashSet<>();
if (StringUtils.isNotEmpty(edgeInfoAzure.getUserContainerName())) {
@@ -193,6 +188,7 @@ public class AzureBillableResourcesService {
.id(edgeInfoAzure.getUserStorageAccountTagName())
.type(DlabResourceType.EDGE_STORAGE_ACCOUNT)
.user(SHARED_RESOURCE)
+ .project(projectName)
.build());
}
@@ -201,12 +197,14 @@ public class AzureBillableResourcesService {
.id(edgeInfoAzure.getInstanceId())
.type(DlabResourceType.EDGE)
.user(SHARED_RESOURCE)
+ .project(projectName)
.build());
billableResources.add(AzureDlabBillableResource.builder()
.id(edgeInfoAzure.getInstanceId() + "-volume-primary")
.type(DlabResourceType.VOLUME)
.user(SHARED_RESOURCE)
+ .project(projectName)
.build());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org