diff --git a/build.py b/build.py index ad69202..e5d9ef6 100644 --- a/build.py +++ b/build.py @@ -27,11 +27,12 @@ use_plugin("python.distutils") default_task = "publish" name = "ddadevops" -version = "0.4.0.dev15" +version = "0.4.0.dev18" summary = "tools to support builds combining gopass, terraform, dda-pallet, aws & hetzner-cloud" description = __doc__ authors = [Author("meissa GmbH", "buero@meissa-gmbh.de")] url = "https://github.com/DomainDrivenArchitecture/dda-devops-build" +requires_python = ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4,<3.9" license = "Apache Software License" @init @@ -52,7 +53,17 @@ def initialize(project): 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Operating System :: POSIX :: Linux', + 'Operating System :: OS Independent', + 'Development Status :: 5 - Production/Stable', + 'Environment :: Console', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: Apache Software License', 'Topic :: Software Development :: Build Tools', + 'Topic :: Software Development :: Quality Assurance', + 'Topic :: Software Development :: Testing' ]) diff --git a/src/main/python/ddadevops/aws_mixin.py b/src/main/python/ddadevops/aws_mixin.py index 6a3068c..d803280 100644 --- a/src/main/python/ddadevops/aws_mixin.py +++ b/src/main/python/ddadevops/aws_mixin.py @@ -15,6 +15,7 @@ class AwsMixin(DevopsTerraformBuild): def __init__(self, project, config): super().__init__(project, config) + project.build_depends_on('boto3') aws_mixin_config = config['AwsMixin'] self.account_name = aws_mixin_config['account_name'] @@ -41,6 +42,17 @@ class AwsMixin(DevopsTerraformBuild): tf.plan(capture_output=False, var=self.project_vars(), var_file=self.backend_config()) + def apply(self, p_auto_approve=False): + tf = self.init_client() + tf.apply(capture_output=False, auto_approve=p_auto_approve, + var=self.project_vars(), var_file=self.backend_config()) + self.write_output(tf) + + def destroy(self, p_auto_approve=False): + tf = self.init_client() + tf.destroy(capture_output=False, auto_approve=p_auto_approve, + var=self.project_vars(), var_file=self.backend_config()) + def get_username_from_account(self, p_account_name): login_id = execute('cat ~/.aws/accounts | grep -A 2 "\[' + p_account_name + '\]" | grep username | awk -F= \'{print $2}\'', shell=True) diff --git a/src/main/python/ddadevops/devops_terraform_build.py b/src/main/python/ddadevops/devops_terraform_build.py index e84dfa7..46bd5ce 100644 --- a/src/main/python/ddadevops/devops_terraform_build.py +++ b/src/main/python/ddadevops/devops_terraform_build.py @@ -26,6 +26,7 @@ class DevopsTerraformBuild(DevopsBuild): def __init__(self, project, config): super().__init__(project, config) + project.build_depends_on('python-terraform') self.additional_vars = config['additional_vars'] self.terraform_build_commons_dir_name = config['terraform_build_commons_dir_name'] self.output_json_name = config['output_json_name']