From b8435faeb0524bf9e9c025a05c48accff379116f Mon Sep 17 00:00:00 2001 From: lucaspalomodevelop Date: Wed, 3 Jan 2024 20:44:22 +0100 Subject: [PATCH] add rest api and cli basics --- DockerComunicator.py | 8 +++++ main.py | 74 ++++++-------------------------------------- requirements.txt | 8 +++++ 3 files changed, 25 insertions(+), 65 deletions(-) diff --git a/DockerComunicator.py b/DockerComunicator.py index 66511e2..ba45a17 100644 --- a/DockerComunicator.py +++ b/DockerComunicator.py @@ -17,3 +17,11 @@ class DockerComunicator: return service.status == "running" except docker.errors.NotFound: return False + + def start_service(self, service_name: str): + service = self.get_service(service_name) + service.start() + + def stop_service(self, service_name: str): + service = self.get_service(service_name) + service.stop() diff --git a/main.py b/main.py index e7bc32a..92d393f 100755 --- a/main.py +++ b/main.py @@ -1,77 +1,21 @@ #!/bin/python3 import os +import sys import DockerComunicator as DockerComunicator +import cli as cli +import api as api VERSION = "0.0.1" call_dir = "" -DockerComunicator = DockerComunicator.DockerComunicator() - - -class style: - BLACK = "\033[30m" - RED = "\033[31m" - GREEN = "\033[32m" - YELLOW = "\033[33m" - BLUE = "\033[34m" - MAGENTA = "\033[35m" - CYAN = "\033[36m" - WHITE = "\033[37m" - UNDERLINE = "\033[4m" - RESET = "\033[0m" - - -accepted_dockerfiles = [ - "docker-compose.yml", - "docker-compose.yaml", - "docker-compose.yml.j2", - "docker-compose.yaml.j2", -] - - -def is_valid_service(service): - service_dir = call_dir + "/services/" + service - for dockerfile in accepted_dockerfiles: - if os.path.isfile(service_dir + "/" + dockerfile): - return True - return False - - -def get_services(): - services = [] - services_dir = call_dir + "/services" - for service in os.listdir(services_dir): - # print("Checking service " + service) - if os.path.isdir(services_dir + "/" + service) and is_valid_service(service): - services.append(service) - else: - print( - style.RED - + "Service " - + services_dir - + "/" - + service - + " is not a valid service" - + style.RESET - ) - return services +cli = cli.cli() +api = api.api() if __name__ == "__main__": - call_dir = os.getcwd() - print("DoOrg v" + VERSION) - print("call dir: " + call_dir) - services = get_services() - print("Services:") - for service in services: - color = ( - style.GREEN if DockerComunicator.is_service_running(service) else style.RED - ) - print(color + " - " + service + style.RESET) - - print("Docker services:") - docker_services = DockerComunicator.get_services() - for service in docker_services: - print(" - " + service.name) + if sys.argv[1] == "cli": + cli.run() + if sys.argv[1] == "api": + api.run() diff --git a/requirements.txt b/requirements.txt index 4576bcc..59e477b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,15 @@ +annotated-types==0.6.0 +anyio==4.2.0 certifi==2023.11.17 charset-normalizer==3.3.2 docker==7.0.0 +fastapi==0.108.0 idna==3.6 packaging==23.2 +pydantic==2.5.3 +pydantic_core==2.14.6 requests==2.31.0 +sniffio==1.3.0 +starlette==0.32.0.post1 +typing_extensions==4.9.0 urllib3==2.1.0