from flask.helpers import url_for
import json
import os
+import logging
from tic import command
from tic.utils import error
-
+#from flask_cors import CORS
app = Flask(__name__)
+#CORS(app)
@app.route('/')
def index():
<h1> TIC-Core web server is working<h1>
'''
-@app.route('/analysis', methods=['GET', 'POST'])
-def anlayze():
+@app.route('/analysis', methods=['POST'])
+def analysis():
try:
- repo_list = []
- recipe_list = []
- if request.method == 'GET':
- repo_list = request.args.getlist('repos')
- recipe_list = request.args.getlist('recipes')
- else:
- repo_info = json.loads(request.data)
- if 'repos' in repo_info:
- repo_list = repo_info['repos']
- if 'recipes' in repo_info:
- recipe_list = repo_info['recipes']
- view_data = command.analyze(repo_list, recipe_list)
+ logger = logging.getLogger(__name__)
+ logger.info('%s - %s %s : data=%s' % (request.remote_addr, request.method, request.path, request.data))
+ repo_info = json.loads(request.data)
+ view_data = command.analyze(repo_info.get('repos'), repo_info.get('recipes'))
resp = makeresponse(view_data, None)
except error.TICError as err:
+ logger.error(err)
resp = makeresponse(str(err), err)
except ValueError as ve:
+ logger.error(ve)
+ resp = makeresponse(str(ve), ve)
+# except Exception as ex:
+# logger.error(ex)
+# resp = makeresponse(str(ex), ex)
+
+ return resp
+
+@app.route('/exports', methods=['POST'])
+def exports():
+ try:
+ logger = logging.getLogger(__name__)
+ logger.info('%s - %s %s : data=%s' % (request.remote_addr, request.method, request.path, request.data))
+ exportInfo = json.loads(request.data)
+ export_type = request.args.get('format')
+ output = command.exports(export_type, exportInfo.get('recipe'), exportInfo.get('packages'), exportInfo.get('outdir'), exportInfo.get('filename'))
+ resp = makeresponse(output, None)
+ except error.TICError as err:
+ logger.error(err)
+ resp = makeresponse(str(err), err)
+ except ValueError as ve:
+ logger.error(ve)
resp = makeresponse(str(ve), ve)
except Exception as ex:
+ logger.error(ex)
resp = makeresponse(str(ex), ex)
-
return resp
-def start(port_num=59001):
+
+def start(port_num=8082):
# cryptographic random generator
app.secret_key = os.urandom(24)
with app.test_request_context():
print(url_for('index'))
- print(url_for('anlayze'))
- app.run(host='0.0.0.0', port=port_num)
+ print(url_for('analysis'))
+ print(url_for('exports'))
+ app.run(host='0.0.0.0', threaded=True, port=port_num)
def makeresponse(data, err):
resp = Response(status=status,
mimetype='application/json',
- response= res_body)
+ response=res_body)
return resp
return ResultInfoType(result, data, message)
if __name__ == '__main__':
- start()
+ start(8082)