From 9dbc5f8ab0afc2f36ff5cd8ab7bf8d204c21cf04 Mon Sep 17 00:00:00 2001 From: Michael Jerger Date: Sun, 5 Mar 2023 13:59:40 +0100 Subject: [PATCH] add doc --- doc/architecture.md | 12 +++++++ src/main/python/ddadevops/application.py | 42 +++++++++++++++--------- 2 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 doc/architecture.md diff --git a/doc/architecture.md b/doc/architecture.md new file mode 100644 index 0000000..577a2c7 --- /dev/null +++ b/doc/architecture.md @@ -0,0 +1,12 @@ +```mermaid +classDiagram + DevopsBuild <|-- DevopsDockerBuild + DevopsBuild <|-- DevopsTerraformBuild + + DevopsBuild <|-- C4kMixin + + DevopsBuild *-- BuildService + DevopsDockerBuild *-- BuildService + DevopsDockerBuild *-- DockerBuildService + C4kMixin *-- C4kBuildService +``` \ No newline at end of file diff --git a/src/main/python/ddadevops/application.py b/src/main/python/ddadevops/application.py index 83ea4ae..24bfbcc 100644 --- a/src/main/python/ddadevops/application.py +++ b/src/main/python/ddadevops/application.py @@ -2,14 +2,15 @@ from .domain import Build, DockerBuild, C4kBuild from .infrastructure import FileApi, ResourceApi, DockerApi -class BuildService(): +class BuildService: def __init__(self): self.file_api = FileApi() def initialize_build_dir(self, build: Build): self.file_api.clean_dir(build.build_path()) -class DockerBuildService(): + +class DockerBuildService: def __init__(self): self.build_service = BuildService() self.file_api = FileApi() @@ -17,25 +18,28 @@ class DockerBuildService(): self.docker_api = DockerApi() def __copy_build_resource_file_from_package__(self, build: DockerBuild): - data = self.resource_api.read_resource("src/main/resources/docker/" + build.name) - self.file_api.write_to_file(build.build_path() + '/' + build.name, data) + data = self.resource_api.read_resource( + "src/main/resources/docker/" + build.name + ) + self.file_api.write_to_file(build.build_path() + "/" + build.name, data) def __copy_build_resources_from_package__(self, build: DockerBuild): self.__copy_build_resource_file_from_package__( - 'image/resources/install_functions.sh') + "image/resources/install_functions.sh" + ) def __copy_build_resources_from_dir__(self, build: DockerBuild): self.file_api.cp_force(build.docker_build_commons_path(), build.build_path()) def initialize_build_dir(self, build: DockerBuild): self.build_service.initialize_build_dir(build) - self.file_api.clean_dir(build.build_path() + '/image/resources') + self.file_api.clean_dir(build.build_path() + "/image/resources") if build.use_package_common_files: self.__copy_build_resources_from_package__(build) else: self.__copy_build_resources_from_dir__(build) - self.file_api.cp_recursive('image', build.build_path()) - self.file_api.cp_recursive('test', build.build_path()) + self.file_api.cp_recursive("image", build.build_path()) + self.file_api.cp_recursive("test", build.build_path()) def image(self, build: DockerBuild): self.docker_api.image(build.name(), build.build_path()) @@ -47,33 +51,39 @@ class DockerBuildService(): self.docker_api.dockerhub_login(build.dockerhub_user, build.dockerhub_password) def dockerhub_publish(self, build: DockerBuild): - self.docker_api.dockerhub_publish(build.name(), build.dockerhub_user, build.docker_publish_tag) + self.docker_api.dockerhub_publish( + build.name(), build.dockerhub_user, build.docker_publish_tag + ) def test(self, build: DockerBuild): self.docker_api.test(build.name(), build.build_path()) -class C4kBuildService(): +# TODO: move infrastructure fktns to infra apis +class C4kBuildService: def __init__(self): self.file_api = FileApi() def write_c4k_config(self, c4k_build: C4kBuild): - with open(c4k_build.build.build_path() + '/out_c4k_config.yaml', 'w', encoding="utf-8") as output_file: + with open( + c4k_build.build.build_path() + "/out_c4k_config.yaml", "w", encoding="utf-8" + ) as output_file: yaml.dump(c4k_build.c4k_mixin_config(), output_file) def write_c4k_auth(self, c4k_build: C4kBuild): - with open(c4k_build.build.build_path() + '/out_c4k_auth.yaml', 'w', encoding="utf-8") as output_file: + with open( + c4k_build.build.build_path() + "/out_c4k_auth.yaml", "w", encoding="utf-8" + ) as output_file: yaml.dump(c4k_build.c4k_mixin_auth, output_file) - chmod(c4k_build.build.build_path() + '/out_c4k_auth.yaml', 0o600) + chmod(c4k_build.build.build_path() + "/out_c4k_auth.yaml", 0o600) def c4k_apply(self, c4k_build: C4kBuild, ry_run=False): module = c4k_build.build.module build_path = c4k_build.build.build_path() - cmd = f'c4k-{module}-standalone.jar {build_path}/out_c4k_config.yaml {build_path}/out_c4k_auth.yaml > {build_path}/out_{module}.yaml' - output = '' + cmd = f"c4k-{module}-standalone.jar {build_path}/out_c4k_config.yaml {build_path}/out_c4k_auth.yaml > {build_path}/out_{module}.yaml" + output = "" if dry_run: print(cmd) else: output = execute(cmd, True) print(output) return output -