From 1fea3afa730cbf49834130efbcef5c1b54735dae Mon Sep 17 00:00:00 2001 From: jem Date: Fri, 25 Jun 2021 17:15:42 +0200 Subject: [PATCH] use dda-python-teraform instead of outdated python-terraform --- .github/workflows/stable.yml | 4 +- .github/workflows/unstable.yml | 4 +- .travis.yml | 7 --- README.md | 2 +- requirements.txt | 4 ++ src/main/python/ddadevops/__init__.py | 2 +- .../ddadevops/devops_terraform_build.py | 47 +------------------ 7 files changed, 11 insertions(+), 59 deletions(-) delete mode 100644 .travis.yml create mode 100644 requirements.txt diff --git a/.github/workflows/stable.yml b/.github/workflows/stable.yml index 6b08b75..0436fda 100644 --- a/.github/workflows/stable.yml +++ b/.github/workflows/stable.yml @@ -20,11 +20,11 @@ jobs: - name: install dependencies run: | python -m pip install --upgrade pip - pip install pybuilder ddadevops deprecation setuptools + pip install -r requirements.txt - name: build stable release env: - TWINE_USERNAME: dda + TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_DDA }} run: | pyb -P version=${{ github.ref }} publish upload diff --git a/.github/workflows/unstable.yml b/.github/workflows/unstable.yml index af51685..d7fd8b4 100644 --- a/.github/workflows/unstable.yml +++ b/.github/workflows/unstable.yml @@ -20,11 +20,11 @@ jobs: - name: install dependencies run: | python -m pip install --upgrade pip - pip install pybuilder ddadevops deprecation setuptools + pip install -r requirements.txt - name: build unstable release env: - TWINE_USERNAME: dda + TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_DDA }} run: | pyb publish upload diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8043b3f..0000000 --- a/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ - -language: python -python: - - "3.7" -before_script: sudo apt-get install pychecker -install: pip install pybuilder -script: pyb clean install_dependencies publish \ No newline at end of file diff --git a/README.md b/README.md index 16249a6..cf26f75 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ pip3 install pybuilder ddadevops deprecation --user export PATH=$PATH:~/.local/bin # in case of using terraform -pip3 install python-terraform --user +pip3 install dda-python-terraform --user # in case of using AwsMixin pip3 install boto3 --user diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2a0dc66 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +pybuilder +ddadevops +deprecation +setuptools \ No newline at end of file diff --git a/src/main/python/ddadevops/__init__.py b/src/main/python/ddadevops/__init__.py index c77c8f4..b1436e3 100644 --- a/src/main/python/ddadevops/__init__.py +++ b/src/main/python/ddadevops/__init__.py @@ -6,7 +6,7 @@ terraform, dda-pallet, aws & hetzner-cloud. from .credential import gopass_credential_from_env_path, gopass_credential_from_path, gopass_password_from_path, gopass_field_from_path from .devops_build import DevopsBuild, create_devops_build_config, get_devops_build, get_tag_from_latest_commit -from .devops_terraform_build import WorkaroundTerraform, DevopsTerraformBuild, create_devops_terraform_build_config +from .devops_terraform_build import DevopsTerraformBuild, create_devops_terraform_build_config from .devops_docker_build import DevopsDockerBuild, create_devops_docker_build_config from .hetzner_mixin import HetznerMixin, add_hetzner_mixin_config from .aws_backend_properties_mixin import AwsBackendPropertiesMixin, add_aws_backend_properties_mixin_config diff --git a/src/main/python/ddadevops/devops_terraform_build.py b/src/main/python/ddadevops/devops_terraform_build.py index a21b039..0cf8c28 100644 --- a/src/main/python/ddadevops/devops_terraform_build.py +++ b/src/main/python/ddadevops/devops_terraform_build.py @@ -5,7 +5,6 @@ from pkg_resources import * from python_terraform import * from .python_util import filter_none from .devops_build import DevopsBuild, create_devops_build_config -from typing import Optional import sys @@ -33,50 +32,6 @@ def create_devops_terraform_build_config(stage, 'additional_tfvar_files': additional_tfvar_files}) return ret - -class WorkaroundTerraform(Terraform): - def __init__(self, working_dir=None, - targets=None, - state=None, - variables=None, - parallelism=None, - var_file=None, - terraform_bin_path=None, - is_env_vars_included=True, - ): - super().__init__(working_dir, targets, state, variables, parallelism, - var_file, terraform_bin_path, is_env_vars_included) - self.latest_cmd = '' - - def refresh( - self, - dir_or_plan: Optional[str] = None, - input: bool = False, - no_color: Type[TerraformFlag] = IsFlagged, - **kwargs, - ) -> CommandOutput: - """Refer to https://terraform.io/docs/commands/refresh.html - - no-color is flagged by default - :param no_color: disable color of stdout - :param input: disable prompt for a missing variable - :param dir_or_plan: folder relative to working folder - :param kwargs: same as kwags in method 'cmd' - :returns return_code, stdout, stderr - """ - default = kwargs.copy() - default["input"] = input - default["no_color"] = no_color - option_dict = self._generate_default_options(default) - args = self._generate_default_args(dir_or_plan) - return self.cmd("refresh", *args, **option_dict) - - def generate_cmd_string(self, cmd, *args, **kwargs): - result = super().generate_cmd_string(cmd, *args, **kwargs) - self.latest_cmd = ' '.join(result) - return result - - class DevopsTerraformBuild(DevopsBuild): def __init__(self, project, config): @@ -140,7 +95,7 @@ class DevopsTerraformBuild(DevopsBuild): self.rescue_local_state() def init_client(self): - tf = WorkaroundTerraform(working_dir=self.build_path()) + tf = Terraform(working_dir=self.build_path()) tf.init() self.print_terraform_command(tf) if self.use_workspace: