diff --git a/app/__init__.py b/app/__init__.py index c847036fe..3edf97fc8 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -53,7 +53,7 @@ def create_app(): application.register_blueprint(service_blueprint, url_prefix='/service') application.register_blueprint(user_blueprint, url_prefix='/user') application.register_blueprint(template_blueprint) - application.register_blueprint(status_blueprint, url_prefix='/status') + application.register_blueprint(status_blueprint) application.register_blueprint(notifications_blueprint) application.register_blueprint(job_blueprint) application.register_blueprint(invite_blueprint) @@ -80,31 +80,11 @@ def init_app(app): return response -def get_api_version(): - build = 'n/a' - build_time = "n/a" - try: - from app import version - build = version.__build__ - build_time = version.__time__ - except: - pass - return build, build_time - - -def get_db_version(): - try: - query = 'SELECT version_num FROM alembic_version' - full_name = db.session.execute(query).fetchone()[0] - return full_name.split('_')[0] - except: - return 'n/a' - - def email_safe(string): return "".join([ - character.lower() if character.isalnum() or character == "." else "" - for character in re.sub("\s+", ".", string.strip()) + character.lower() + if character.isalnum() or character == "." + else "" for character in re.sub("\s+", ".", string.strip()) ]) diff --git a/app/status/healthcheck.py b/app/status/healthcheck.py index b16619828..6f5562a7e 100644 --- a/app/status/healthcheck.py +++ b/app/status/healthcheck.py @@ -1,14 +1,40 @@ from flask import jsonify -from flask import Blueprint +from flask import Blueprint, request + +from app import db, version + status = Blueprint('status', __name__) @status.route('/_status', methods=['GET', 'POST']) def show_status(): - from app import (get_api_version, get_db_version) - build, build_time = get_api_version() - return jsonify(status="ok", - api_build=build, - api_built_time=build_time, - db_version=get_db_version()), 200 + travis_commit, travis_build_number, build_time = get_api_version() + if request.args.get('elb', None): + return jsonify(status="ok"), 200 + else: + return jsonify( + status="ok", + travis_commit=travis_commit, + travis_build_number=travis_build_number, + build_time=build_time, + db_version=get_db_version()), 200 + + +def get_api_version(): + try: + travis_commit = version.__travis_commit__ + travis_job_number = version.__travis_job_number__ + build_time = version.__time__ + return travis_commit, travis_job_number, build_time + except: + pass + + +def get_db_version(): + try: + query = 'SELECT version_num FROM alembic_version' + full_name = db.session.execute(query).fetchone()[0] + return full_name + except: + return 'n/a' diff --git a/app/version.py b/app/version.py index 62a3e5dfd..1defd614d 100644 --- a/app/version.py +++ b/app/version.py @@ -1,2 +1,3 @@ -__build__ = "" -__time__ = "" +__travis_commit__ = "dev" +__time__ = "dev" +__travis_job_number__ = "dev" diff --git a/application.py b/application.py index 3500a5230..0918ee3e1 100644 --- a/application.py +++ b/application.py @@ -4,7 +4,7 @@ from __future__ import print_function import os from flask.ext.script import Manager, Server from flask.ext.migrate import Migrate, MigrateCommand -from app import (create_app, db, get_api_version, get_db_version) +from app import (create_app, db) application = create_app() manager = Manager(application) @@ -22,21 +22,5 @@ def list_routes(): print("{:10} {}".format(", ".join(rule.methods - set(['OPTIONS', 'HEAD'])), rule.rule)) -@manager.command -def api_version(): - """ - Retrieve the version of the api. - """ - return get_api_version() - - -@manager.command -def db_version(): - """ - Retrieve the db version. - """ - return get_db_version() - - if __name__ == '__main__': manager.run() diff --git a/scripts/update_version_file.sh b/scripts/update_version_file.sh index 27117f6dd..5c97cda86 100755 --- a/scripts/update_version_file.sh +++ b/scripts/update_version_file.sh @@ -2,5 +2,6 @@ # # Update the version file of the project from the Travis build details # -sed -i -e "s/__build__ =.*/__build__ = \"$TRAVIS_COMMIT\"/g" ./app/version.py -sed -i -e "s/__time__ =.*/__time__ = \"$('date +%Y-%m-%d:%H:%M:%S')\"/g" ./app/version.py \ No newline at end of file +sed -i -e "s/__travis_commit__ =.*/__build__ = \"$TRAVIS_COMMIT\"/g" ./app/version.py +sed -i -e "s/__travis_job_number__ =.*/__build__ = \"$TRAVIS_BUILD_NUMBER\"/g" ./app/version.py +sed -i -e "s/__time__ =.*/__time__ = \"$(date +%Y-%m-%d:%H:%M:%S)\"/g" ./app/version.py \ No newline at end of file