Skip to content

Commit 163e8c7

Browse files
committed
Fixed errors, now spins up Docker container and executes code successfully.
2 parents e2cd2a8 + cae6fdf commit 163e8c7

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

executor/executor_server.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import executor_utils as eu
2+
13
import json
24
from flask import Flask, request, jsonify
35

@@ -7,5 +9,21 @@
79
def main():
810
return 'Welcome to the homepage of the executor.'
911

12+
@app.route('/execute', methods = ['POST'])
13+
def execute():
14+
language = request.form['language']
15+
code = request.form['code']
16+
17+
# Call executor_utils to run code.
18+
print('API called with code %s in %s.' % (code, language))
19+
result = eu.build_and_execute(code, language)
20+
21+
print(result)
22+
23+
return jsonify({
24+
'build': 'Build results go here.',
25+
'run': 'Run results go here.'
26+
})
27+
1028
if __name__ == '__main__':
1129
app.run(debug=True)

executor/executor_utils.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
"c_cpp" : "g++ -o a.out"
3131
}
3232

33+
EXECUTE_COMMANDS = {
34+
"java" : "java",
35+
"python" : "python",
36+
"c_cpp" : "./"
37+
}
38+
3339
def load_image():
3440
try:
3541
client.images.get(IMAGE_NAME)
@@ -41,7 +47,7 @@ def load_image():
4147
return
4248
print('Image: [%s] loaded.' % IMAGE_NAME)
4349

44-
def build_and_exceute(code, language):
50+
def build_and_execute(code, language):
4551
result = {'build': None, 'run': None, 'error': None}
4652

4753
source_file_parent_directory = uuid.uuid4()
@@ -87,7 +93,7 @@ def build_and_exceute(code, language):
8793
shutil.rmtree(source_file_host_directory)
8894
return result
8995

90-
shutil.rmtree(source-source_file_host_directory)
96+
shutil.rmtree(source_file_host_directory)
9197
return result
9298

9399
def make_dir(directory):

0 commit comments

Comments
 (0)