""" Common Actions for the Java Workflows """ import os from aws_lambda_builders.actions import ActionFailedError, BaseAction, Purpose class JavaCopyDependenciesAction(BaseAction): """ Class for copying Java dependencies from artifact folder to dependencies folder """ NAME = "JavaCopyDependencies" DESCRIPTION = "Copying dependencies" PURPOSE = Purpose.COPY_SOURCE def __init__(self, artifacts_dir, dependencies_dir, os_utils): self.artifacts_dir = artifacts_dir self.dependencies_dir = dependencies_dir self.os_utils = os_utils def execute(self): self._copy_dependencies() def _copy_dependencies(self): """ copy the entire lib directory from artifact folder to dependencies folder """ try: dependencies_lib_dir = os.path.join(self.dependencies_dir, "lib") if not self.os_utils.exists(dependencies_lib_dir): self.os_utils.makedirs(dependencies_lib_dir) lib_folder = os.path.join(self.artifacts_dir, "lib") self.os_utils.copytree(lib_folder, dependencies_lib_dir) except Exception as ex: raise ActionFailedError(str(ex)) class JavaMoveDependenciesAction(BaseAction): """ Class for Moving Java dependencies from artifact folder to dependencies folder """ NAME = "JavaMoveDependencies" DESCRIPTION = "Move dependencies" PURPOSE = Purpose.MOVE_DEPENDENCIES def __init__(self, artifacts_dir, dependencies_dir, os_utils): self.artifacts_dir = artifacts_dir self.dependencies_dir = dependencies_dir self.os_utils = os_utils def execute(self): self._move_dependencies() def _move_dependencies(self): """ Move the entire lib directory from artifact folder to dependencies folder """ try: dependencies_lib_dir = os.path.join(self.dependencies_dir, "lib") lib_folder = os.path.join(self.artifacts_dir, "lib") self.os_utils.move(lib_folder, dependencies_lib_dir) except Exception as ex: raise ActionFailedError(str(ex))