You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by om...@apache.org on 2019/09/03 09:54:36 UTC
[incubator-dlab] branch DLAB-terraform updated: add no color param
This is an automated email from the ASF dual-hosted git repository.
omartushevskyi pushed a commit to branch DLAB-terraform
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
The following commit(s) were added to refs/heads/DLAB-terraform by this push:
new fc800ed add no color param
new c9319f4 Merge pull request #279 from bohdana-kuzmenko/DLAB-terraform
fc800ed is described below
commit fc800edba0cb149bc38f4d6bf6c7c7908a69bd3f
Author: bogdana <bo...@gmail.com>
AuthorDate: Tue Sep 3 12:27:06 2019 +0300
add no color param
---
infrastructure-provisioning/terraform/bin/dlab.py | 91 +++++++++++++++--------
1 file changed, 58 insertions(+), 33 deletions(-)
diff --git a/infrastructure-provisioning/terraform/bin/dlab.py b/infrastructure-provisioning/terraform/bin/dlab.py
index fa10042..35a575d 100644
--- a/infrastructure-provisioning/terraform/bin/dlab.py
+++ b/infrastructure-provisioning/terraform/bin/dlab.py
@@ -143,6 +143,9 @@ class ParamsBuilder:
def add_str(self, name, desc, **kwargs):
return self.add(str, name, desc, **kwargs)
+ def add_bool(self, name, desc, **kwargs):
+ return self.add(bool, name, desc, **kwargs)
+
def add_int(self, name, desc, **kwargs):
return self.add(int, name, desc, **kwargs)
@@ -212,6 +215,10 @@ class TerraformProviderError(Exception):
class TerraformProvider:
+
+ def __init__(self, no_color=False):
+ self.no_color = '-no-color' if no_color else ''
+
def initialize(self):
"""Initialize terraform
@@ -222,7 +229,8 @@ class TerraformProvider:
"""
logging.info('terraform init')
terraform_success_init = 'Terraform has been successfully initialized!'
- terraform_init_result = Console.execute('terraform init')
+ command = 'terraform init {}'.format(self.no_color)
+ terraform_init_result = Console.execute(command)
logging.info(terraform_init_result)
if terraform_success_init not in terraform_init_result:
raise TerraformProviderError(terraform_init_result)
@@ -238,13 +246,13 @@ class TerraformProvider:
"""
logging.info('terraform validate')
terraform_success_validate = 'Success!'
- terraform_validate_result = Console.execute('terraform validate')
+ terraform_validate_result = Console.execute(
+ 'terraform validate {}'.format(self.no_color))
logging.info(terraform_validate_result)
if terraform_success_validate not in terraform_validate_result:
raise TerraformProviderError(terraform_validate_result)
- @staticmethod
- def apply(tf_params, cli_args):
+ def apply(self, tf_params, cli_args):
"""Run terraform
Args:
@@ -257,13 +265,12 @@ class TerraformProvider:
args_str = get_var_args_string(cli_args)
params_str = get_args_string(tf_params)
- command = ('terraform apply -auto-approve {} {}'
- .format(params_str, args_str))
+ command = ('terraform apply -auto-approve {} {} {}'
+ .format(self.no_color, params_str, args_str))
logging.info(command)
Console.execute_to_command_line(command)
- @staticmethod
- def destroy(tf_params, cli_args):
+ def destroy(self, tf_params, cli_args):
"""Destroy terraform
Args:
@@ -275,8 +282,8 @@ class TerraformProvider:
logging.info('terraform destroy')
args_str = get_var_args_string(cli_args)
params_str = get_args_string(tf_params)
- command = ('terraform destroy -auto-approve {} {}'
- .format(params_str, args_str))
+ command = ('terraform destroy -auto-approve {} {} {}'
+ .format(self.no_color, params_str, args_str))
logging.info(command)
Console.execute_to_command_line(command)
state_file = tf_params['-state']
@@ -306,6 +313,7 @@ class AbstractDeployBuilder:
args = self.parse_args()
self.service_args = args.get('service')
+ self.no_color = self.service_args.get('no_color')
state_dir = self.service_args.get('state')
if not state_dir:
self.output_dir = None
@@ -318,8 +326,8 @@ class AbstractDeployBuilder:
self.output_dir = (os.path.join(state_dir, service_name))
self.tf_output = os.path.join(self.output_dir, 'output.json')
self.tf_params = {
- '-state': os.path.join(self.output_dir,
- '{}.tfstate'.format(self.name))
+ '-state': os.path.join(
+ self.output_dir, '{}.tfstate'.format(self.name))
}
else:
sys.stdout.write('path doesn\'t exist')
@@ -384,15 +392,15 @@ class AbstractDeployBuilder:
return False
def apply(self):
- terraform = TerraformProvider()
+ terraform = TerraformProvider(self.no_color)
terraform.apply(self.tf_params, self.terraform_args)
def destroy(self):
- terraform = TerraformProvider()
+ terraform = TerraformProvider(self.no_color)
terraform.destroy(self.tf_params, self.terraform_args)
def store_output_to_file(self):
- terraform = TerraformProvider()
+ terraform = TerraformProvider(self.no_color)
output = terraform.output(self.tf_params, '-json')
output = {key: value.get('value')
for key, value in json.loads(output).items()}
@@ -466,7 +474,7 @@ class AbstractDeployBuilder:
"""
self.validate_params()
tf_location = self.terraform_location
- terraform = TerraformProvider()
+ terraform = TerraformProvider(self.no_color)
os.chdir(tf_location)
try:
terraform.initialize()
@@ -536,6 +544,8 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
def cli_args(self):
params = ParamsBuilder()
(params
+ .add_bool('--no_color', 'no color console_output', group='service',
+ default=False)
.add_str('--state', 'State file path', group='service')
.add_str('--access_key_id', 'AWS Access Key ID', required=True,
group='k8s')
@@ -552,13 +562,15 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
.add_str('--pkey', 'path to key', required=True, group='service')
.add_str('--region', 'Name of AWS region.', default='us-west-2',
group=('k8s', 'helm_charts'))
- .add_str('--secret_access_key', 'AWS Secret Access Key', required=True,
+ .add_str('--secret_access_key', 'AWS Secret Access Key',
+ required=True,
group='k8s')
.add_str('--service_base_name',
'Any infrastructure value (should be unique if '
'multiple SSN\'s have been deployed before).',
default='k8s', group=('k8s', 'helm_charts'))
- .add_int('--ssn_k8s_masters_count', 'Count of K8S masters.', default=3,
+ .add_int('--ssn_k8s_masters_count', 'Count of K8S masters.',
+ default=3,
group='k8s')
.add_int('--ssn_k8s_workers_count', 'Count of K8S workers', default=2,
group=('k8s', 'helm_charts'))
@@ -617,12 +629,15 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
default='user:tag', group=('k8s', 'helm_charts'))
.add_str('--additional_tag', 'Additional tag.',
default='product:dlab', group='k8s')
- .add_str('--billing_bucket', 'Billing bucket name', group='helm_charts')
+ .add_str('--billing_bucket', 'Billing bucket name',
+ group='helm_charts')
.add_str('--billing_bucket_path',
- 'The path to billing reports directory in S3 bucket', default='',
+ 'The path to billing reports directory in S3 bucket',
+ default='',
group='helm_charts')
.add_str('--billing_aws_job_enabled',
- 'Billing format. Available options: true (aws), false(epam)', default='false',
+ 'Billing format. Available options: true (aws), false(epam)',
+ default='false',
group='helm_charts')
.add_str('--billing_aws_account_id',
'The ID of Amazon account', default='',
@@ -659,7 +674,8 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
'Column name in report file that contains tags',
default='line_item_operation,line_item_line_item_description',
group='helm_charts')
- .add_str('--billing_tag', 'Billing tag', default='dlab', group='helm_charts')
+ .add_str('--billing_tag', 'Billing tag', default='dlab',
+ group='helm_charts')
# Tmp for jenkins job
.add_str('--endpoint_id', 'Endpoint Id',
default='user:tag', group=())
@@ -719,7 +735,7 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
time.sleep(60)
def select_master_ip(self):
- terraform = TerraformProvider()
+ terraform = TerraformProvider(self.no_color)
output = terraform.output(self.tf_params,
'-json ssn_k8s_masters_ip_addresses')
ips = json.loads(output)
@@ -740,7 +756,7 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
def run_remote_terraform(self):
logging.info('apply helm charts')
args = self.parse_args()
- dns_name = json.loads(TerraformProvider()
+ dns_name = json.loads(TerraformProvider(self.no_color)
.output(self.tf_params,
'-json ssn_k8s_alb_dns_name'))
logging.info('apply ssn-helm-charts')
@@ -761,16 +777,20 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
def output_terraform_result(self):
dns_name = json.loads(
- TerraformProvider().output(self.tf_params,
- '-json ssn_k8s_alb_dns_name'))
+ TerraformProvider(self.no_color).output(self.tf_params,
+ '-json ssn_k8s_alb_dns_name'))
ssn_bucket_name = json.loads(
- TerraformProvider().output(self.tf_params, '-json ssn_bucket_name'))
+ TerraformProvider(self.no_color).output(self.tf_params,
+ '-json ssn_bucket_name'))
ssn_k8s_sg_id = json.loads(
- TerraformProvider().output(self.tf_params, '-json ssn_k8s_sg_id'))
+ TerraformProvider(self.no_color).output(self.tf_params,
+ '-json ssn_k8s_sg_id'))
ssn_subnet = json.loads(
- TerraformProvider().output(self.tf_params, '-json ssn_subnet'))
+ TerraformProvider(self.no_color).output(self.tf_params,
+ '-json ssn_subnet'))
ssn_vpc_id = json.loads(
- TerraformProvider().output(self.tf_params, '-json ssn_vpc_id'))
+ TerraformProvider(self.no_color).output(self.tf_params,
+ '-json ssn_vpc_id'))
logging.info("""
DLab SSN K8S cluster has been deployed successfully!
@@ -814,7 +834,8 @@ class AWSK8sSourceBuilder(AbstractDeployBuilder):
def deploy(self):
logging.info('deploy')
output = ' '.join(
- TerraformProvider().output(self.tf_params, '-json').split())
+ TerraformProvider(self.no_color).output(self.tf_params,
+ '-json').split())
self.fill_args_from_dict(json.loads(output))
self.select_master_ip()
self.add_ip_to_known_hosts(self.ip)
@@ -867,8 +888,11 @@ class AWSEndpointBuilder(AbstractDeployBuilder):
def cli_args(self):
params = ParamsBuilder()
(params
+ .add_bool('--no_color', 'no color console_output', group='service',
+ default=False)
.add_str('--state', 'State file path', group='service')
- .add_str('--secret_access_key', 'AWS Secret Access Key', required=True,
+ .add_str('--secret_access_key', 'AWS Secret Access Key',
+ required=True,
group='endpoint')
.add_str('--access_key_id', 'AWS Access Key ID', required=True,
group='endpoint')
@@ -879,7 +903,8 @@ class AWSEndpointBuilder(AbstractDeployBuilder):
group='endpoint')
.add_str('--vpc_id', 'ID of AWS VPC if you already have VPC created.',
group='endpoint')
- .add_str('--vpc_cidr', 'CIDR for VPC creation. Conflicts with vpc_id.',
+ .add_str('--vpc_cidr',
+ 'CIDR for VPC creation. Conflicts with vpc_id.',
default='172.31.0.0/16', group='endpoint')
.add_str('--ssn_subnet',
'ID of AWS Subnet if you already have subnet created.',
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org