add rest api and cli basics

This commit is contained in:
lucaspalomodevelop 2024-01-03 20:44:22 +01:00
parent b0a64d8ac0
commit b8435faeb0
3 changed files with 25 additions and 65 deletions

View File

@ -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()

74
main.py
View File

@ -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()

View File

@ -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