[TIC-Core] classification of building-block-category pkgs
[archive/20170607/tools/tic-core.git] / tic / server / tic_server.py
index 561b68f..d9613ad 100644 (file)
@@ -8,10 +8,8 @@ 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():
@@ -25,8 +23,9 @@ def analysis():
     try:
         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'))
+        target_info = json.loads(request.data)
+        view_data = command.analyze(target_info.get('recipes'))
+        #view_data = command.analyze(None)
         resp = makeresponse(view_data, None)
     except error.TICError as err:
         logger.error(err)
@@ -40,14 +39,31 @@ def analysis():
     
     return resp
 
+@app.route('/imports', methods=['POST'])
+def imports():
+    try:
+        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.imports(repo_info.get('recipes'))
+        resp = makeresponse(view_data, None)
+    except error.TICError as err:
+        logger.error(err)
+        resp = makeresponse(str(err), err)
+    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)
-        type = request.args.get('format')
-        output = command.exports(type, exportInfo.get('recipe'), exportInfo.get('packages'), exportInfo.get('output'))
+        export_type = request.args.get('format')
+        output = command.exports(export_type, exportInfo.get('recipes'), exportInfo.get('packages'), exportInfo.get('outdir'), exportInfo.get('filename'))
         resp = makeresponse(output, None)
     except error.TICError as err:
         logger.error(err)
@@ -68,10 +84,12 @@ def start(port_num=8082):
     with app.test_request_context():
         print(url_for('index'))
         print(url_for('analysis'))
+        print(url_for('imports'))
         print(url_for('exports'))
+    if isinstance(port_num, (str, unicode)):
+        port_num = int(port_num)
     app.run(host='0.0.0.0', threaded=True, port=port_num)
 
-
 def makeresponse(data, err):
     status = 200
     if err:
@@ -79,6 +97,7 @@ def makeresponse(data, err):
             status = 400 # Bad Request
         elif isinstance(err, Exception):
             status = 500 # Internal Server Error
+            data='Internal Server Error'
         res_body = json.dumps(ResultInfo('false', None, data)._asdict())
     else:
         res_body = json.dumps(ResultInfo('true', data, None)._asdict())
@@ -88,7 +107,6 @@ def makeresponse(data, err):
                     response=res_body)
     return resp
 
-
 ResultInfoType = collections.namedtuple('ResultInfo', 'result, data, message')
 def ResultInfo(result='false', data=None, message=None):
     return ResultInfoType(result, data, message)