From 3b5e00a8c76d4602c3abae728d301d11277b6349 Mon Sep 17 00:00:00 2001 From: abolfazl1381 Date: Sat, 30 Nov 2024 14:51:21 +0330 Subject: [PATCH 1/5] update --- app/routes/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/routes/utils.py b/app/routes/utils.py index 4fa835d2..8ec7f084 100644 --- a/app/routes/utils.py +++ b/app/routes/utils.py @@ -14,6 +14,7 @@ def zip_folder(folder_path: str, output_zip_path: str): # Add file to the zip file zip_file.write(file_path, os.path.relpath(file_path, folder_path)) + def add_files_to_folder(files:list,folder:str): os.makedirs(folder, exist_ok=True) From f5a2966a4072c0c5308e222a6a546da16d1acfec Mon Sep 17 00:00:00 2001 From: abolfazl1381 Date: Sun, 1 Dec 2024 10:39:33 +0330 Subject: [PATCH 2/5] fix(kuber ansible): fix kuber version --- app/models/ansible_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/ansible_models.py b/app/models/ansible_models.py index edf0d2d0..748da389 100644 --- a/app/models/ansible_models.py +++ b/app/models/ansible_models.py @@ -38,7 +38,7 @@ class AnsibleInstallKuber(AnsibleBase): k8s_worker_nodes: List[str] k8s_master_nodes: List[str] lb_nodes: List[str] - version:str = "1.31.2" + version:str = "1.31" @validator("os") From 82bb2b5a8788498eef8cbbdd87fca537a139889f Mon Sep 17 00:00:00 2001 From: abolfazl1381 Date: Sun, 1 Dec 2024 16:18:08 +0330 Subject: [PATCH 3/5] feat(compose): init docker compose template generation --- app/directory_generators/compose_generator.py | 0 app/main.py | 3 +- app/models/__init__.py | 3 +- app/models/compose_models.py | 32 +++++++++++++++++++ app/routes/docker.py | 19 +++++++++++ app/template_generators/docker/compose.py | 3 ++ 6 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 app/directory_generators/compose_generator.py create mode 100644 app/models/compose_models.py create mode 100644 app/routes/docker.py create mode 100644 app/template_generators/docker/compose.py diff --git a/app/directory_generators/compose_generator.py b/app/directory_generators/compose_generator.py new file mode 100644 index 00000000..e69de29b diff --git a/app/main.py b/app/main.py index 60e62703..ca950b8b 100644 --- a/app/main.py +++ b/app/main.py @@ -2,4 +2,5 @@ from app.routes.terraform import * from app.routes.helm import * from app.routes.ansible import * -from app.routes.jcasc import * \ No newline at end of file +from app.routes.jcasc import * +from app.routes.docker import * \ No newline at end of file diff --git a/app/models/__init__.py b/app/models/__init__.py index a765bf91..f206434e 100644 --- a/app/models/__init__.py +++ b/app/models/__init__.py @@ -2,4 +2,5 @@ from .terraform_models import * from .utils import * from .ansible_models import * -from .jcasc import * \ No newline at end of file +from .jcasc import * +from .compose_models import * \ No newline at end of file diff --git a/app/models/compose_models.py b/app/models/compose_models.py new file mode 100644 index 00000000..810c67c3 --- /dev/null +++ b/app/models/compose_models.py @@ -0,0 +1,32 @@ +from typing import List, Optional +from pydantic import BaseModel, validator, ValidationError + +class Port(BaseModel): + machine_port:int = 80 + container_port:int = 80 + +class Network(BaseModel): + name:str = 'app_network' + +class EnvironmentVariable(BaseModel): + name:str = 'foo' + value:str = "bar" + +class Volume(BaseModel): + local_dir: str = './nginx/nginx.conf' + container_dir:str = '/etc/nginx/nginx.conf' + +class Service(BaseModel): + image:str = 'nginx' + version:str = 'latest' + volumes:List[Volume] + depends_on:List[str] + ports:List[Port] + networks:List[Network] + environments:List[EnvironmentVariable] + + +class DockerCompose(BaseModel): + services: List[Service] + network:Network + \ No newline at end of file diff --git a/app/routes/docker.py b/app/routes/docker.py new file mode 100644 index 00000000..1c8b4e65 --- /dev/null +++ b/app/routes/docker.py @@ -0,0 +1,19 @@ +from app.app_instance import app +from app.gpt_services import gpt_service +from app.services import (write_installation,edit_directory_generator,execute_pythonfile) +from app.models import (DockerCompose,Output) +from app.template_generators.docker.compose import docker_compose_generator +import os + +@app.post("/docker-compose/") +async def docker_compose_template(request:DockerCompose) -> Output: + + if os.environ.get("TEST"): + return Output(output='output') + generated_prompt = docker_compose_generator(request) + + output = gpt_service(generated_prompt) + edit_directory_generator("compose_generator",output) + execute_pythonfile("MyCompose","compose_generator") + return Output(output='output') + \ No newline at end of file diff --git a/app/template_generators/docker/compose.py b/app/template_generators/docker/compose.py new file mode 100644 index 00000000..ae8e052d --- /dev/null +++ b/app/template_generators/docker/compose.py @@ -0,0 +1,3 @@ +def docker_compose_generator(input): + prompt = """M""" + return prompt \ No newline at end of file From 8789d7f2fbadc80e1b5a851bfa95a7df5e091023 Mon Sep 17 00:00:00 2001 From: abolfazl1381 Date: Sun, 1 Dec 2024 18:46:06 +0330 Subject: [PATCH 4/5] fix(docker compose): add build section and container name --- app/models/compose_models.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/compose_models.py b/app/models/compose_models.py index 810c67c3..bed90af1 100644 --- a/app/models/compose_models.py +++ b/app/models/compose_models.py @@ -18,6 +18,8 @@ class Volume(BaseModel): class Service(BaseModel): image:str = 'nginx' + container_name:str = 'web_server' + build: str = False version:str = 'latest' volumes:List[Volume] depends_on:List[str] From cd039e0685687803295c1e8c78606ceb87a6180e Mon Sep 17 00:00:00 2001 From: abolfazl1381 Date: Sun, 1 Dec 2024 21:07:18 +0330 Subject: [PATCH 5/5] fix(docker): fix build section --- app/directory_generators/compose_generator.py | 1 + app/models/compose_models.py | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/directory_generators/compose_generator.py b/app/directory_generators/compose_generator.py index e69de29b..acd5aaec 100644 --- a/app/directory_generators/compose_generator.py +++ b/app/directory_generators/compose_generator.py @@ -0,0 +1 @@ +Hello! It looks like you entered just the letter "M." How can I assist you today? \ No newline at end of file diff --git a/app/models/compose_models.py b/app/models/compose_models.py index bed90af1..163ee3cb 100644 --- a/app/models/compose_models.py +++ b/app/models/compose_models.py @@ -15,11 +15,14 @@ class EnvironmentVariable(BaseModel): class Volume(BaseModel): local_dir: str = './nginx/nginx.conf' container_dir:str = '/etc/nginx/nginx.conf' - + +class Build(BaseModel): + context:str + dockerfile:str class Service(BaseModel): image:str = 'nginx' container_name:str = 'web_server' - build: str = False + build: Build | None = None version:str = 'latest' volumes:List[Volume] depends_on:List[str]