-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompost.py
More file actions
61 lines (48 loc) · 1.64 KB
/
compost.py
File metadata and controls
61 lines (48 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import docker
from flask import Flask, request, jsonify
# from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
# socketio = SocketIO(app)
dockerMachine = docker.from_env()
@app.route("/")
def index():
return app.send_static_file("index.html")
@app.route('/projects', methods=['GET'])
def getInstances():
projects={}
for container in dockerMachine.containers.list(all=True,filters={"label":"com.docker.compose.project"}):
projectName = str(container.attrs['Config']['Labels']['com.docker.compose.project'])
dockerContainer = {'id': container.id, 'name': container.name, 'status': container.status}
project = projects.get(projectName, {'name':projectName, 'containers':[]})
project['containers'].append(dockerContainer)
projects[projectName] = project
return jsonify(projects.values())
@app.route('/projects/<name>/<version>', methods=['PUT'])
def put_project(name, version):
dockerCompose = request.data.decode("utf-8")
return 'TODO'
@app.route('/projects/<name>/<version>', methods=['DELETE'])
def delete_project(name, version):
return 'TODO'
# @socketio.on('logs_open')
# def open_logs(json):
# emit('my response', 'TODO')
#
#
# @socketio.on('logs_close')
# def close_logs(json):
# emit('my response', 'TODO')
#
#
# @socketio.on('logs_open')
# def open_console(json):
# for line in dockerMachine.logs(json.container, stream=True, timestamps=True, tail='all'):
# emit('logs', line)
#
#
# @socketio.on('logs_close')
# def close_console(json):
# emit('my response', 'TODO')
if __name__ == '__main__':
app.run(debug = True)