Files
Tesi-Magistrale/src/__init__.py

51 lines
1.8 KiB
Python

import os
from dotenv import load_dotenv
import src.code_generator.generator as code_generator
import src.wasm_builder.build as wasm_builder
import src.component_deploy.deploy as deployer
import src.component_deploy.remove as remover
import time
class Pelato:
def __init__(self):
self.setup_vars()
def setup_vars(self):
load_dotenv(override=True)
self.registry_url = os.getenv('REGISTRY_URL')
self.reg_user = os.getenv('REGISTRY_USER')
self.reg_pass = os.getenv('REGISTRY_PASSWORD')
self.detached = os.getenv('PARALLEL_BUILD')
self.nats_host = os.getenv('NATS_HOST')
self.nats_port = os.getenv('NATS_PORT')
self.metrics_enabled = os.getenv('ENABLE_METRICS') == 'True'
self.metrics = {}
def generate(self, project_dir):
code_generator.generate(project_dir, self.registry_url, self.metrics, self.metrics_enabled)
def build(self, project_dir):
wasm_builder.build_project(project_dir, self.reg_user, self.reg_pass, self.detached, self.metrics, self.metrics_enabled)
def deploy(self, project_dir):
deployer.deploy_components(project_dir, self.nats_host, self.nats_port, self.detached, self.metrics, self.metrics_enabled)
def remove(self, project_dir):
remover.remove_components(project_dir, self.nats_host, self.nats_port, self.detached)
def all(self, project_dir):
print('-------------------------------------------')
print(f"Starting PELATO for project {project_dir}")
print('-------------------------------------------')
self.generate(project_dir)
time.sleep(1)
self.build(project_dir)
time.sleep(1)
self.deploy(project_dir)