diff options
Diffstat (limited to 'ice-server/heat_test/app.py')
-rw-r--r-- | ice-server/heat_test/app.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/ice-server/heat_test/app.py b/ice-server/heat_test/app.py new file mode 100644 index 0000000..e982c68 --- /dev/null +++ b/ice-server/heat_test/app.py @@ -0,0 +1,65 @@ +#!flask/bin/python +import argparse +import logging +import requests + +import connexion +from connexion.resolver import RestyResolver + + +def parse_args(): + """ + parse argument parameters + """ + parser = argparse.ArgumentParser(description='start the heat validation rest server') + parser.add_argument("--debug", help="increase output verbosity") + parser.add_argument("-p", "--port", type=int, help="listen port (default 5000)", default=5000) + args = parser.parse_args() + if args.debug: + logging.info("debug mode") + debug = True + else: + debug = False + if args.port: + port = args.port + else: + port = 5000 + + +def create_app(): + logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') + app = connexion.App(__name__, specification_dir='swagger/') + + # load default config + app.app.config.from_object("default_settings") + app.app.config.from_envvar('ICE_SETTINGS', silent=True) + app.add_api('ice_api.yaml', swagger_ui=app.app.config['DEBUG'], resolver=RestyResolver('ice_validator')) + + return app + +def create_test_app(): + print("create_test_app") + logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') + app = connexion.App(__name__, specification_dir='swagger/') + app.add_api('ice_api.yaml', swagger_ui=app.app.config['DEBUG'], resolver=RestyResolver('ice_validator')) + app.app.testing = True + return app + + +def start_app(app): + logging.info("######################################") + logging.info("starting server") + logging.info("######################################") + app.run(port=app.app.config['ICE_PORT'], debug=app.app.config['DEBUG']) + + # register service in MSB + try: + msb_url = app.app.config['MSB_URL'] + requests.get(msb_url) + logging.info("registration to %s done", msb_url) + except: + logging.info("registration to %s failed", msb_url) + + +if __name__ == '__main__': + start_app(create_app()) |