automatic deploy a wholeset of TestAPI ecosystem 51/25851/2
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Tue, 13 Dec 2016 11:39:29 +0000 (19:39 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Wed, 14 Dec 2016 01:43:47 +0000 (09:43 +0800)
deploy.py is used to deploy a wholeset of TestAPI ecosystem,
including TestAPI container & mongo container.

docker-compose.yml.template will be used in deploy.py to
render out docker-compose.yml

JIRA: FUNCTEST-655

Change-Id: I9b070783ef23aeadbe5e9be1e655072e18954ff9
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
utils/test/testapi/deployment/deploy.py [new file with mode: 0644]
utils/test/testapi/deployment/docker-compose.yml.template [new file with mode: 0644]

diff --git a/utils/test/testapi/deployment/deploy.py b/utils/test/testapi/deployment/deploy.py
new file mode 100644 (file)
index 0000000..748bd34
--- /dev/null
@@ -0,0 +1,40 @@
+import argparse
+import os
+
+from jinja2 import Environment, FileSystemLoader
+
+env = Environment(loader=FileSystemLoader('./'))
+docker_compose_yml = './docker-compose.yml'
+docker_compose_template = './docker-compose.yml.template'
+
+
+def render_docker_compose(port, swagger_url):
+    vars = {
+        "expose_port": port,
+        "swagger_url": swagger_url,
+    }
+    template = env.get_template(docker_compose_template)
+    yml = template.render(vars=vars)
+
+    with open(docker_compose_yml, 'w') as f:
+        f.write(yml)
+        f.close()
+
+
+def main(args):
+    render_docker_compose(args.expose_port, args.swagger_url)
+    os.system('docker-compose -f {} up -d'.format(docker_compose_yml))
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='Backup MongoDBs')
+    parser.add_argument('-p', '--expose-port',
+                        type=int,
+                        required=False,
+                        default=8000,
+                        help='testapi exposed port')
+    parser.add_argument('-su', '--swagger-url',
+                        type=str,
+                        required=True,
+                        help='testapi exposed swagger-url')
+    main(parser.parse_args())
diff --git a/utils/test/testapi/deployment/docker-compose.yml.template b/utils/test/testapi/deployment/docker-compose.yml.template
new file mode 100644 (file)
index 0000000..5b131f7
--- /dev/null
@@ -0,0 +1,15 @@
+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/
+      - swagger_url={{ vars.swagger_url }}
+    ports:
+      - "{{ vars.expose_port }}:8000"
+    links:
+      - mongo