-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
86 lines (67 loc) · 2.79 KB
/
app.py
File metadata and controls
86 lines (67 loc) · 2.79 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import threading
from flask import Flask, request, jsonify
from helmbridge.helm import start_code_runner, stop_code_runner
from helmbridge.project import create_project, delete_project
from helmbridge.version import get_project_versions, add_project_version, rollback_project_version
app = Flask(__name__)
@app.route('/runners/<project_id>/<language>', methods=['POST'])
def start_runner(project_id, language):
try:
start_code_runner(project_id, language)
app.logger.info("Installed")
return 'Installed\n'
except Exception as e:
app.logger.error(e)
return 'Failed with error ' + str(e) + '\n'
@app.route('/runners/<project_id>', methods=['DELETE'])
def stop_runner(project_id):
try:
stop_code_runner(project_id)
return 'Deleted\n'
except Exception as e:
app.logger.error(e)
return 'Failed to uninstall chart with exception ' + str(e) + '\n'
@app.route('/projects/<project_id>/<language>', methods=['POST'])
def init_project(project_id, language):
try:
repositoryUrl = request.args.get('repositoryUrl')
threading.Thread(target=create_project, args=(project_id, language, repositoryUrl)).start()
return 'Project initialising\n'
except Exception as e:
app.logger.error(e)
return 'Failed to create project with exception ' + str(e) + '\n'
@app.route('/projects/<project_id>', methods=['DELETE'])
def remove_project(project_id):
try:
delete_project(project_id)
return 'Project deleted\n'
except Exception as e:
app.logger.error(e)
return 'Failed to delete project with exception ' + str(e) + '\n'
@app.route('/versions/<project_id>', methods=['POST'])
def add_version(project_id):
try:
version = request.get_json()['version']
title = request.get_json()['title']
add_project_version(project_id, version, title)
return 'Version added\n'
except Exception as e:
app.logger.error(e)
return 'Failed to add the version with exception ' + str(e) + '\n'
@app.route('/versions/<project_id>', methods=['GET'])
def list_versions(project_id):
try:
return jsonify(get_project_versions(project_id))
except Exception as e:
app.logger.error(e)
return 'Failed to get project versions with exception ' + str(e) + '\n'
@app.route('/versions/<project_id>/<versions>', methods=['PATCH'])
def rollback_version(project_id, versions):
try:
rollback_project_version(project_id, versions)
return 'Project rollback succeeded\n'
except Exception as e:
app.logger.error(e)
return 'Failed to rollback the version with exception ' + str(e) + '\n'
if __name__ == '__main__':
app.run()