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())