You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by my...@apache.org on 2020/03/04 14:11:09 UTC

[incubator-dlab] 01/01: [DLAB-1565]: Convey billing for remote endpoints

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

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

commit 099d9524f0afb0d9df7229939fcf5eef183c2a34
Author: Mykola_Bodnar1 <bo...@gmail.com>
AuthorDate: Wed Mar 4 16:10:29 2020 +0200

    [DLAB-1565]: Convey billing for remote endpoints
---
 .../terraform/bin/deploy/endpoint_fab.py           | 80 +++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/infrastructure-provisioning/terraform/bin/deploy/endpoint_fab.py b/infrastructure-provisioning/terraform/bin/deploy/endpoint_fab.py
index 00111db..6be5e1e 100644
--- a/infrastructure-provisioning/terraform/bin/deploy/endpoint_fab.py
+++ b/infrastructure-provisioning/terraform/bin/deploy/endpoint_fab.py
@@ -647,6 +647,57 @@ def configure_guacamole():
         print('Failed to configure guacamole: ', str(err))
         return False
 
+def configure_billing_endpoint():
+    try:
+        if billing_enable:
+            billing_yml_path = "{}/conf/billing.yml".format(args.dlab_path)
+            with open(billing_yml_path, 'r') as config_yml_r:
+                config_orig = config_yml_r.read()
+
+            config_orig = config_orig.replace('billingEnabled: false', 'billingEnabled: true')
+            if args.cloud_provider == 'aws':
+                if args.aws_job_enabled == 'true':
+                    args.tag_resource_id = 'resourceTags' + ':' + args.tag_resource_id
+                config_orig = config_orig.replace('<BILLING_BUCKET_NAME>', args.billing_bucket)
+                config_orig = config_orig.replace('<AWS_JOB_ENABLED>', args.aws_job_enabled)
+                config_orig = config_orig.replace('<REPORT_PATH>', args.report_path)
+                config_orig = config_orig.replace('<ACCOUNT_ID>', args.billing_aws_account_id)
+                config_orig = config_orig.replace('<ACCESS_KEY_ID>', args.access_key_id)
+                config_orig = config_orig.replace('<SECRET_ACCESS_KEY>', args.secret_access_key)
+                config_orig = config_orig.replace('<CONF_BILLING_TAG>', args.billing_tag)
+                config_orig = config_orig.replace('<CONF_SERVICE_BASE_NAME>', args.service_base_name)
+                config_orig = config_orig.replace('<MONGODB_PASSWORD>', args.mongo_password)
+                config_orig = config_orig.replace('<DLAB_ID>', args.billing_dlab_id)
+                config_orig = config_orig.replace('<USAGE_DATE>', args.billing_usage_date)
+                config_orig = config_orig.replace('<PRODUCT>', args.billing_product)
+                config_orig = config_orig.replace('<USAGE_TYPE>', args.billing_usage_type)
+                config_orig = config_orig.replace('<USAGE>', args.billing_usage)
+                config_orig = config_orig.replace('<COST>', args.billing_cost)
+                config_orig = config_orig.replace('<RESOURCE_ID>', args.billing_resource_id)
+                config_orig = config_orig.replace('<TAGS>', args.billing_tags)
+            elif args.cloud_provider == 'azure':
+                config_orig = config_orig.replace('<CLIENT_ID>', args.azure_client_id)
+                config_orig = config_orig.replace('<CLIENT_SECRET>', args.azure_client_secret)
+                config_orig = config_orig.replace('<TENANT_ID>', args.tenant_id)
+                config_orig = config_orig.replace('<SUBSCRIPTION_ID>', args.subscription_id)
+                config_orig = config_orig.replace('<AUTHENTICATION_FILE>', args.authentication_file)
+                config_orig = config_orig.replace('<OFFER_NUMBER>', args.offer_number)
+                config_orig = config_orig.replace('<CURRENCY>', args.currency)
+                config_orig = config_orig.replace('<LOCALE>', args.locale)
+                config_orig = config_orig.replace('<REGION_INFO>', args.region_info)
+                config_orig = config_orig.replace('<MONGODB_PASSWORD>', args.mongo_password)
+            elif args.cloud_provider == 'gcp':
+                config_orig = config_orig.replace('<CONF_SERVICE_BASE_NAME>', args.service_base_name)
+                config_orig = config_orig.replace('<MONGO_PASSWORD>', args.mongo_password)
+                config_orig = config_orig.replace('<BILLING_DATASET_NAME>', args.billing_dataset_name)
+            f = open(path, 'w')
+            f.write(config_orig)
+            f.close()
+
+    except Exception as err:
+        traceback.print_exc()
+        print('Failed to configure billing: ', str(err))
+        return False
 
 def init_args():
     global args
@@ -663,7 +714,7 @@ def init_args():
     parser.add_argument('--ss_host', type=str, default='')
     parser.add_argument('--ss_port', type=str, default='8443')
     parser.add_argument('--ssn_ui_host', type=str, default='')
-    # parser.add_argument('--mongo_password', type=str, default='')
+    parser.add_argument('--mongo_password', type=str, default='')
     parser.add_argument('--repository_address', type=str, default='')
     parser.add_argument('--repository_port', type=str, default='')
     parser.add_argument('--repository_user', type=str, default='')
@@ -698,6 +749,7 @@ def init_args():
     parser.add_argument('--azure_datalake_tag', type=str, default='')
     parser.add_argument('--azure_datalake_enabled', type=str, default='')
     parser.add_argument('--azure_client_id', type=str, default='')
+    parser.add_argument('--azure_client_secret', type=str, default='')
     parser.add_argument('--gcp_project_id', type=str, default='')
     parser.add_argument('--ldap_host', type=str, default='')
     parser.add_argument('--ldap_dn', type=str, default='')
@@ -711,6 +763,29 @@ def init_args():
     parser.add_argument('--shared_image_enabled', type=str, default='true')
     parser.add_argument('--image_enabled', type=str, default='true')
     parser.add_argument('--auth_file_path', type=str, default='')
+    parser.add_argument('--aws_job_enabled', type=str, default='false')
+    parser.add_argument('--billing_bucket', type=str, default='')
+    parser.add_argument('--report_path', type=str, default='')
+    parser.add_argument('--billing_aws_account_id', type=str, default='')
+    parser.add_argument('--access_key_id', type=str, default='')
+    parser.add_argument('--secret_access_key', type=str, default='')
+    parser.add_argument('--billing_tag', type=str, default='dlab')
+    parser.add_argument('--billing_dlab_id', type=str, default='')
+    parser.add_argument('--billing_usage_date', type=str, default='')
+    parser.add_argument('--billing_product', type=str, default='')
+    parser.add_argument('--billing_usage_type', type=str, default='')
+    parser.add_argument('--billing_usage', type=str, default='')
+    parser.add_argument('--billing_usage_cost', type=str, default='')
+    parser.add_argument('--billing_resource_id', type=str, default='')
+    parser.add_argument('--billing_tags', type=str, default='')
+    parser.add_argument('--tenant_id', type=str, default='')
+    parser.add_argument('--subscription_id', type=str, default='')
+    parser.add_argument('--authentication_file', type=str, default='')
+    parser.add_argument('--offer_number', type=str, default='')
+    parser.add_argument('--currency', type=str, default='')
+    parser.add_argument('--locale', type=str, default='')
+    parser.add_argument('--region_info', type=str, default='')
+    parser.add_argument('--billing_dataset_name', type=str, default='')
 
     # TEMPORARY
     parser.add_argument('--ssn_k8s_nlb_dns_name', type=str, default='')
@@ -817,6 +892,9 @@ def start_deploy():
     logging.info("Configuring guacamole")
     configure_guacamole()
 
+    logging.info("Configuring billing")
+    configure_billing_endpoint()
+
     logging.info("Starting supervisor")
     start_supervisor_endpoint()
 


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