finish composer api
This commit is contained in:
@@ -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()
|
||||||
Reference in New Issue
Block a user