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():
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)
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)
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:
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())
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)