add one click deployment of testapi and reporting 87/42487/2
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Wed, 20 Sep 2017 08:33:55 +0000 (16:33 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Wed, 20 Sep 2017 09:04:46 +0000 (17:04 +0800)
leverage docker compose to deploy testresults set
testapi/reporting/mongo
usage:
python one_click_deploy.sh -tp 8082 -rp 8084 -tl http://host_ip:8082

Change-Id: I8dfb868637749b82ec86e58220376b03ad50664d
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
utils/test/opts/one_click_deploy.py [new file with mode: 0644]

diff --git a/utils/test/opts/one_click_deploy.py b/utils/test/opts/one_click_deploy.py
new file mode 100644 (file)
index 0000000..0748270
--- /dev/null
@@ -0,0 +1,67 @@
+import argparse
+import os
+
+from jinja2 import Environment
+
+DOCKER_COMPOSE_FILE = './docker-compose.yml'
+DOCKER_COMPOSE_TEMPLATE = """
+version: '2'
+services:
+  mongo:
+    image: mongo:3.2.1
+    container_name: opnfv-mongo
+  testapi:
+    image: opnfv/testapi:latest
+    container_name: opnfv-testapi
+    environment:
+      - mongodb_url=mongodb://mongo:27017/
+      - base_url={{ vars.base_url }}
+    ports:
+      - "{{ vars.testapi_port }}:8000"
+    links:
+      - mongo
+  reporting:
+    image: opnfv/reporting:latest
+    container_name: opnfv-reporting
+    ports:
+      - "{{ vars.reporting_port }}:8000"
+"""
+
+
+def render_docker_compose(testapi_port, reporting_port, testapi_base_url):
+    vars = {
+        "testapi_port": testapi_port,
+        "reporting_port": reporting_port,
+        "base_url": testapi_base_url,
+    }
+    yml = Environment().from_string(DOCKER_COMPOSE_TEMPLATE).render(vars=vars)
+    with open(DOCKER_COMPOSE_FILE, 'w') as f:
+        f.write(yml)
+        f.close()
+
+
+def main(args):
+    render_docker_compose(args.testapi_port,
+                          args.reporting_port,
+                          args.testapi_base_url)
+    os.system('docker-compose -f {} up -d'.format(DOCKER_COMPOSE_FILE))
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='Backup MongoDBs')
+    parser.add_argument('-tp', '--testapi-port',
+                        type=int,
+                        required=False,
+                        default=8082,
+                        help='testapi exposed port')
+    parser.add_argument('-tl', '--testapi-base-url',
+                        type=str,
+                        required=True,
+                        help='testapi exposed base-url')
+    parser.add_argument('-rp', '--reporting-port',
+                        type=int,
+                        required=False,
+                        default=8084,
+                        help='reporting exposed port')
+
+    main(parser.parse_args())