From 4768de19841ee4568a9beac3ad2f5cb67d23d7d0 Mon Sep 17 00:00:00 2001 From: Stefan Reimer Date: Wed, 11 Sep 2024 01:11:12 +0000 Subject: [PATCH] feat: pulumi version bump, minor fixes --- Dockerfile | 2 +- cloudbender/pulumi.py | 10 ++++++++-- cloudbender/stack.py | 3 +-- pyproject.toml | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index f567903..5f2ab31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ARG RUNTIME_VERSION="3.11" -ARG DISTRO_VERSION="3.19" +ARG DISTRO_VERSION="3.20" FROM python:${RUNTIME_VERSION}-alpine${DISTRO_VERSION} AS builder ARG RUNTIME_VERSION="3.11" diff --git a/cloudbender/pulumi.py b/cloudbender/pulumi.py index 30cceed..d584fbc 100644 --- a/cloudbender/pulumi.py +++ b/cloudbender/pulumi.py @@ -57,6 +57,8 @@ def pulumi_ws(func): self.work_dir = tempfile.mkdtemp( dir=tempfile.gettempdir(), prefix="cloudbender-" ) + cwd = os.getcwd() + os.chdir(self.work_dir) # add all artifact_paths/pulumi to the search path for easier # imports in the pulumi code @@ -146,7 +148,8 @@ def pulumi_ws(func): try: _min_version = self._pulumi_code.MIN_CLOUDBENDER_VERSION if semver.compare( - semver.Version.parse(__version__.strip("v")).finalize_version(), + semver.Version.parse( + __version__.strip("v")).finalize_version(), _min_version.strip("v")) < 0: raise ValueError( f"Minimal required CloudBender version is {_min_version}, but we are {__version__}!" @@ -189,7 +192,7 @@ def pulumi_ws(func): ) project_settings = pulumi.automation.ProjectSettings( - name=project_name, runtime="python", backend={"url": pulumi_backend} + name=project_name, runtime="python", backend=pulumi.automation.ProjectBackend(url=pulumi_backend) ) self.pulumi_ws_opts = pulumi.automation.LocalWorkspaceOptions( @@ -202,6 +205,9 @@ def pulumi_ws(func): response = func(self, *args, **kwargs) # Cleanup temp workspace + if cwd: + os.chdir(cwd) + if self.work_dir and os.path.exists(self.work_dir): shutil.rmtree(self.work_dir) diff --git a/cloudbender/stack.py b/cloudbender/stack.py index b5b1a25..dc21cb3 100644 --- a/cloudbender/stack.py +++ b/cloudbender/stack.py @@ -535,7 +535,6 @@ class Stack(object): logger.info("Passed.") return 0 - @pulumi_ws def get_outputs(self, include=".*", values=False): """gets outputs of the stack""" @@ -852,6 +851,7 @@ class Stack(object): return status + @pulumi_ws @exec_hooks def update(self): """Updates an existing stack""" @@ -1305,7 +1305,6 @@ class Stack(object): logger.info(" ".join([self.region, self.stackname, text])) def _get_pulumi_stack(self, create=False): - if create: pulumi_stack = pulumi.automation.create_or_select_stack( stack_name=self.pulumi_stackname, diff --git a/pyproject.toml b/pyproject.toml index e7122fe..917c3ea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ authors = [ description = "Deploy and maintain infrastructure in automated and trackable manner" readme = "README.md" license = "AGPL-3.0-or-later" -requires-python = ">=3.9" +requires-python = ">=3.11" dependencies = [ "boto3==1.35.15", "mock==5.1.0",