From b2727af1d234bae3e64cf31a0af3dfee2d1c91f8 Mon Sep 17 00:00:00 2001 From: Mickael JEZEQUEL Date: Wed, 7 Mar 2018 17:19:48 +0100 Subject: implement rest API for ICE tests Change-Id: I1ccb630858907161c4e8b13986fe963bb309b608 Issue-ID: VNFSDK-213 Signed-off-by: Mickael JEZEQUEL --- ice-server/heat_test/app.py | 65 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 ice-server/heat_test/app.py (limited to 'ice-server/heat_test/app.py') 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()) -- cgit 1.2.3-korg