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/16 15:40:24 UTC
[incubator-dlab] 07/09: Changed config file
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
commit 27bd697da366098c4d3272b0e4d06bb7fa08ad9f
Author: Oleh Fuks <ol...@gmail.com>
AuthorDate: Mon Mar 16 15:15:14 2020 +0200
Changed config file
---
services/billing-azure/billing.yml | 21 +-----
.../dlab/billing/azure/BillingSchedulerAzure.java | 80 ++++++++--------------
.../azure/config/BillingConfigurationAzure.java | 5 +-
.../billing/azure/config/DlabConfiguration.java | 47 -------------
.../src/main/resources/application.yml | 28 +++++++-
5 files changed, 60 insertions(+), 121 deletions(-)
diff --git a/services/billing-azure/billing.yml b/services/billing-azure/billing.yml
index da47bd1..aec73ce 100644
--- a/services/billing-azure/billing.yml
+++ b/services/billing-azure/billing.yml
@@ -55,23 +55,4 @@ aggregationOutputMongoDataSource:
ssnStorageAccountTagName: <AZURE_SSN_STORAGE_ACCOUNT_TAG>
sharedStorageAccountTagName: <AZURE_SHARED_STORAGE_ACCOUNT_TAG>
-datalakeTagName: <AZURE_DATALAKE_TAG>
-
-# Logging configuration.
-logging:
- # Default logging level
- level: INFO
- # Logging levels for appenders.
- loggers:
- com.epam: DEBUG
- org.apache.http: WARN
- org.mongodb.driver: WARN
- org.hibernate: WARN
- #Logging appenders
- appenders:
- #- type: console
- - type: file
- currentLogFilename: /var/opt/dlab/log/ssn/billing.log
- archive: true
- archivedLogFilenamePattern: /var/opt/dlab/log/ssn/billing-%d{yyyy-MM-dd}.log.gz
- archivedFileCount: 10
\ No newline at end of file
+datalakeTagName: <AZURE_DATALAKE_TAG>
\ No newline at end of file
diff --git a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/BillingSchedulerAzure.java b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/BillingSchedulerAzure.java
index d0b4dba..0e11a1f 100644
--- a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/BillingSchedulerAzure.java
+++ b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/BillingSchedulerAzure.java
@@ -22,18 +22,13 @@ package com.epam.dlab.billing.azure;
import com.epam.dlab.MongoKeyWords;
import com.epam.dlab.billing.azure.config.AzureAuthFile;
import com.epam.dlab.billing.azure.config.BillingConfigurationAzure;
-import com.epam.dlab.billing.azure.logging.AppenderConsole;
-import com.epam.dlab.billing.azure.logging.AppenderFile;
import com.epam.dlab.billing.azure.model.AzureDailyResourceInvoice;
import com.epam.dlab.billing.azure.model.AzureDlabBillableResource;
import com.epam.dlab.billing.azure.model.BillingPeriod;
import com.epam.dlab.exceptions.DlabException;
-import com.epam.dlab.exceptions.InitializationException;
import com.epam.dlab.util.mongo.modules.IsoDateModule;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
-import com.fasterxml.jackson.datatype.guava.GuavaModule;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.UpdateOptions;
@@ -44,8 +39,10 @@ import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
-import java.io.FileInputStream;
+import javax.annotation.PostConstruct;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -57,59 +54,43 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Slf4j
+@Component
public class BillingSchedulerAzure {
private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
private BillingConfigurationAzure billingConfigurationAzure;
private MongoDbBillingClient mongoDbBillingClient;
- public BillingSchedulerAzure(String filePath) throws IOException, InitializationException {
- try (FileInputStream fin = new FileInputStream(filePath)) {
- final ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory()).registerModule(new GuavaModule());
- objectMapper.registerSubtypes(AppenderFile.class, AppenderConsole.class);
- this.billingConfigurationAzure = objectMapper.readValue(fin,
- BillingConfigurationAzure.class);
+ @Autowired
+ public BillingSchedulerAzure(BillingConfigurationAzure configuration) throws IOException {
+ billingConfigurationAzure = configuration;
+ Path path = Paths.get(billingConfigurationAzure.getAuthenticationFile());
- Path path = Paths.get(billingConfigurationAzure.getAuthenticationFile());
-
- if (path.toFile().exists()) {
-
- log.info("Read and override configs using auth file");
-
- try {
- AzureAuthFile azureAuthFile = new ObjectMapper().readValue(path.toFile(), AzureAuthFile.class);
- this.billingConfigurationAzure.setClientId(azureAuthFile.getClientId());
- this.billingConfigurationAzure.setClientSecret(azureAuthFile.getClientSecret());
- this.billingConfigurationAzure.setTenantId(azureAuthFile.getTenantId());
- this.billingConfigurationAzure.setSubscriptionId(azureAuthFile.getSubscriptionId());
- } catch (IOException e) {
- log.error("Cannot read configuration file", e);
- throw e;
- }
- log.info("Configs from auth file are used");
- } else {
- log.info("Configs from yml file are used");
+ if (path.toFile().exists()) {
+ log.info("Read and override configs using auth file");
+ try {
+ AzureAuthFile azureAuthFile = new ObjectMapper().readValue(path.toFile(), AzureAuthFile.class);
+ this.billingConfigurationAzure.setClientId(azureAuthFile.getClientId());
+ this.billingConfigurationAzure.setClientSecret(azureAuthFile.getClientSecret());
+ this.billingConfigurationAzure.setTenantId(azureAuthFile.getTenantId());
+ this.billingConfigurationAzure.setSubscriptionId(azureAuthFile.getSubscriptionId());
+ } catch (IOException e) {
+ log.error("Cannot read configuration file", e);
+ throw e;
}
-
- this.mongoDbBillingClient = new MongoDbBillingClient
- (billingConfigurationAzure.getAggregationOutputMongoDataSource().getHost(),
- billingConfigurationAzure.getAggregationOutputMongoDataSource().getPort(),
- billingConfigurationAzure.getAggregationOutputMongoDataSource().getDatabase(),
- billingConfigurationAzure.getAggregationOutputMongoDataSource().getUsername(),
- billingConfigurationAzure.getAggregationOutputMongoDataSource().getPassword());
- this.billingConfigurationAzure.getLogging().configure();
- }
- }
-
- public static void main(String[] args) throws Exception {
- if (args != null && args.length == 2) {
- BillingSchedulerAzure billingSchedulerAzure = new BillingSchedulerAzure(args[1]);
- billingSchedulerAzure.start();
-
+ log.info("Configs from auth file are used");
} else {
- log.info("Wrong arguments. Please provide with path to billing configuration");
+ log.info("Configs from yml file are used");
}
+
+ this.mongoDbBillingClient = new MongoDbBillingClient
+ (billingConfigurationAzure.getAggregationOutputMongoDataSource().getHost(),
+ billingConfigurationAzure.getAggregationOutputMongoDataSource().getPort(),
+ billingConfigurationAzure.getAggregationOutputMongoDataSource().getDatabase(),
+ billingConfigurationAzure.getAggregationOutputMongoDataSource().getUsername(),
+ billingConfigurationAzure.getAggregationOutputMongoDataSource().getPassword());
}
+ @PostConstruct
public void start() {
if (billingConfigurationAzure.isBillingEnabled()) {
executorService.scheduleWithFixedDelay(new CalculateBilling(billingConfigurationAzure,
@@ -139,8 +120,7 @@ public class BillingSchedulerAzure {
@Slf4j
private static class CalculateBilling implements Runnable {
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern
- ("yyyy-MM-dd'T'HH:mm:ss" +
- ".SSS'Z");
+ ("yyyy-MM-dd'T'HH:mm:ss.SSS'Z");
private static final String SCHEDULER_ID = "azureBillingScheduler";
private AzureBillingDetailsService azureBillingDetailsService;
private BillingConfigurationAzure billingConfigurationAzure;
diff --git a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/BillingConfigurationAzure.java b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/BillingConfigurationAzure.java
index 4bd69ce..2130192 100644
--- a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/BillingConfigurationAzure.java
+++ b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/BillingConfigurationAzure.java
@@ -20,7 +20,11 @@
package com.epam.dlab.billing.azure.config;
import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+@Configuration
+@ConfigurationProperties("dlab")
@Data
public class BillingConfigurationAzure {
private long initialDelay;
@@ -43,6 +47,5 @@ public class BillingConfigurationAzure {
private String sharedStorageAccountTagName;
private String datalakeTagName;
- private LoggingConfigurationFactory logging;
private AggregationOutputMongoDataSource aggregationOutputMongoDataSource;
}
diff --git a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/DlabConfiguration.java b/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/DlabConfiguration.java
deleted file mode 100644
index c1163c0..0000000
--- a/services/billing-azure/src/main/java/com/epam/dlab/billing/azure/config/DlabConfiguration.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package com.epam.dlab.billing.azure.config;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@ConfigurationProperties("dlab")
-@Data
-public class DlabConfiguration {
- private long initialDelay;
- private long period;
- private String clientId;
- private String clientSecret;
- private String tenantId;
- private String subscriptionId;
- private String authenticationFile;
- private String offerNumber;
- private String currency;
- private String locale;
- private String regionInfo;
- private boolean billingEnabled;
- private String ssnStorageAccountTagName;
- private String sharedStorageAccountTagName;
- private String datalakeTagName;
- private LoggingConfigurationFactory logging;
- private AggregationOutputMongoDataSource aggregationOutputMongoDataSource;
-}
diff --git a/services/billing-azure/src/main/resources/application.yml b/services/billing-azure/src/main/resources/application.yml
index 52e6862..962141e 100644
--- a/services/billing-azure/src/main/resources/application.yml
+++ b/services/billing-azure/src/main/resources/application.yml
@@ -8,8 +8,6 @@ spring:
database: dlabdb
port: 27017
host: localhost
-dlab:
-
server:
port: 8088
@@ -33,4 +31,28 @@ keycloak:
resource: sss
credentials.secret: cf5a484b-039b-4161-8707-ad65c0f25962
ssl-required: none
- auth-server-url: http://52.11.45.11:8080/auth
\ No newline at end of file
+ auth-server-url: http://52.11.45.11:8080/auth
+
+dlab:
+ clientId: <CLIENT_ID>
+ clientSecret: <CLIENT_SECRET>
+ tenantId: <TENANT_ID>
+ subscriptionId: <SUBSCRIPTION_ID>
+ authenticationFile: <AUTHENTICATION_FILE>
+ # Billing configuration for RateCard API. For more details please see https://msdn.microsoft.com/en-us/library/mt219004.aspx
+ offerNumber: <OFFER_NUMBER>
+ currency: <CURRENCY>
+ locale: <LOCALE>
+ regionInfo: <REGION_INFO>
+ initialDelay: 10
+ period: 60
+ billingEnabled: false
+ aggregationOutputMongoDataSource:
+ host: localhost
+ port: 27017
+ username: admin
+ password: <MONGODB_PASSWORD>
+ database: dlabdb
+ ssnStorageAccountTagName: <AZURE_SSN_STORAGE_ACCOUNT_TAG>
+ sharedStorageAccountTagName: <AZURE_SHARED_STORAGE_ACCOUNT_TAG>
+ datalakeTagName: <AZURE_DATALAKE_TAG>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org