|
|
|
@ -2,7 +2,7 @@ from pathlib import Path
|
|
|
|
|
from dda_python_terraform import Terraform, IsFlagged
|
|
|
|
|
from packaging import version
|
|
|
|
|
|
|
|
|
|
from ..domain import Devops, BuildType
|
|
|
|
|
from ..domain import Devops, TerraformDomain, BuildType
|
|
|
|
|
from ..infrastructure import FileApi, ResourceApi, TerraformApi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -58,7 +58,9 @@ class TerraformService:
|
|
|
|
|
def rescue_local_state(self, devops: Devops):
|
|
|
|
|
terraform_domain = devops.specialized_builds[BuildType.TERRAFORM]
|
|
|
|
|
if terraform_domain.is_local_state():
|
|
|
|
|
self.file_api.cp(f"{devops.build_path()}/terraform.tfstate", ".", check=False)
|
|
|
|
|
self.file_api.cp(
|
|
|
|
|
f"{devops.build_path()}/terraform.tfstate", ".", check=False
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def initialize_build_dir(self, devops: Devops):
|
|
|
|
|
terraform = devops.specialized_builds[BuildType.TERRAFORM]
|
|
|
|
@ -74,12 +76,17 @@ class TerraformService:
|
|
|
|
|
|
|
|
|
|
# TODO: internal?
|
|
|
|
|
def init_client(self, devops: Devops):
|
|
|
|
|
terraform_domain = devops.specialized_builds[BuildType.TERRAFORM]
|
|
|
|
|
terraform_domain: TerraformDomain = devops.specialized_builds[
|
|
|
|
|
BuildType.TERRAFORM
|
|
|
|
|
]
|
|
|
|
|
terraform = Terraform(
|
|
|
|
|
working_dir=devops.build_path(),
|
|
|
|
|
terraform_semantic_version=terraform_domain.tf_terraform_semantic_version,
|
|
|
|
|
)
|
|
|
|
|
terraform.init()
|
|
|
|
|
if terraform_domain.is_local_state():
|
|
|
|
|
terraform.init()
|
|
|
|
|
else:
|
|
|
|
|
terraform.init(backend_config=terraform_domain.backend_config())
|
|
|
|
|
self.__print_terraform_command__(terraform, devops)
|
|
|
|
|
if terraform_domain.tf_use_workspace:
|
|
|
|
|
try:
|
|
|
|
|