Merge "Bugfix: Change http_pass to proxy_pass"
[releng.git] / utils / test / opts / one_click_deploy.py
1 import argparse
2 import os
3
4 from jinja2 import Environment
5
6 DOCKER_COMPOSE_FILE = './docker-compose.yml'
7 DOCKER_COMPOSE_TEMPLATE = """
8 version: '2'
9 services:
10   mongo:
11     image: mongo:3.2.1
12     container_name: opnfv-mongo
13   testapi:
14     image: opnfv/testapi:latest
15     container_name: opnfv-testapi
16     environment:
17       - mongodb_url=mongodb://mongo:27017/
18       - base_url={{ vars.base_url }}
19     ports:
20       - "{{ vars.testapi_port }}:8000"
21     links:
22       - mongo
23   reporting:
24     image: opnfv/reporting:latest
25     container_name: opnfv-reporting
26     ports:
27       - "{{ vars.reporting_port }}:8000"
28 """
29
30
31 def render_docker_compose(testapi_port, reporting_port, testapi_base_url):
32     vars = {
33         "testapi_port": testapi_port,
34         "reporting_port": reporting_port,
35         "base_url": testapi_base_url,
36     }
37     yml = Environment().from_string(DOCKER_COMPOSE_TEMPLATE).render(vars=vars)
38     with open(DOCKER_COMPOSE_FILE, 'w') as f:
39         f.write(yml)
40         f.close()
41
42
43 def main(args):
44     render_docker_compose(args.testapi_port,
45                           args.reporting_port,
46                           args.testapi_base_url)
47     os.system('docker-compose -f {} up -d'.format(DOCKER_COMPOSE_FILE))
48
49
50 if __name__ == '__main__':
51     parser = argparse.ArgumentParser(description='Backup MongoDBs')
52     parser.add_argument('-tp', '--testapi-port',
53                         type=int,
54                         required=False,
55                         default=8082,
56                         help='testapi exposed port')
57     parser.add_argument('-tl', '--testapi-base-url',
58                         type=str,
59                         required=True,
60                         help='testapi exposed base-url')
61     parser.add_argument('-rp', '--reporting-port',
62                         type=int,
63                         required=False,
64                         default=8084,
65                         help='reporting exposed port')
66
67     main(parser.parse_args())