finish composer api

This commit is contained in:
2026-01-02 22:39:44 -08:00
parent cb9a5f27b4
commit 531a9f84c9

View File

@@ -1,44 +1,60 @@
from agent import * from agent import *
from flask import Flask
import json import json
class Connector: class Connector:
def __init__(self, connector): @staticmethod
self.connector = connector def get_composer_info(composer):
return {
def get_connector_info(self): "name": composer.name,
info = { "running": len(composer.docker.compose.ps()),
"name": self.connector.name, "stopped": len(composer.services) - len(composer.docker.compose.ps())
"running": len(self.connector.docker.compose.ps()),
"stopped": len(self.connector.services) - len(self.connector.docker.compose.ps())
} }
return json.dumps(info)
def get_container_info(self, container_name): @staticmethod
if container_name not in self.connector.services: def get_container_info(composer, container_name):
if container_name not in composer.services:
return None return None
container = self.connector.services[container_name] container = composer.services[container_name]
return json.dumps({ return {
"image": container.config.image, "image": container.config.image,
"status": container.get_status() "status": container.get_status()
}) }
def set_connector_status(self, status): @staticmethod
self.connector.set_status(status) def set_composer_status(composer, status):
composer.set_status(status)
def set_container_status(self, container_name, status): @staticmethod
if container_name not in self.connector.services: def set_container_status(composer, container_name, status):
if container_name not in composer.services:
return None return None
self.connector.services[container_name].set_status(status) composer.services[container_name].set_status(status)
Setup.populate_store() Setup.populate_store()
Setup.create_symlink() Setup.create_symlink()
remote = Setup.create_credential_remote() remote = Setup.create_credential_remote()
composer = Composer(remote) composer = Composer(remote)
connector = Connector(composer)
while True: app = Flask(__name__)
print(connector.get_connector_info())
container = input("Container: ") @app.route("/composer")
print(connector.get_container_info(container)) def get_composer():
status = input("Status: ") return Connector.get_composer_info(composer)
connector.set_container_status(container, status)
@app.route("/composer/<status>")
def set_composer(status):
Connector.set_composer_status(composer, status)
return ""
@app.route("/container/<container>")
def get_container(container):
return Connector.get_container_info(composer, container)
@app.route("/container/<container>/<status>")
def set_container(container, status):
Connector.set_container_status(composer, container, status)
return ""
app.run()