-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreate_mongodb_container.py
71 lines (51 loc) · 2.32 KB
/
create_mongodb_container.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import os,sys
import string
from optparse import OptionParser
import glob
import json
import subprocess
__version__="1.0"
__status__ = "Dev"
###############################
def main():
usage = "\n%prog [options]"
parser = OptionParser(usage,version="%prog version___")
parser.add_option("-s","--server",action="store",dest="server",help="dev/tst/beta/prd")
(options,args) = parser.parse_args()
for key in ([options.server]):
if not (key):
parser.print_help()
sys.exit(0)
server = options.server
config_obj = json.loads(open("./conf/config.json", "r").read())
api_image = "glygen_api_%s" % (server)
api_container = "running_" + api_image
substructure_container = "running_substructure"
mongo_container = "running_glygen_mongo_%s" % (server)
mongo_port = config_obj["dbinfo"]["port"][server]
mongo_network = config_obj["dbinfo"]["bridge_network"]
if server in ["prd", "beta"]:
mongo_network = config_obj["dbinfo"]["bridge_network"] + "_" + server
u, p = config_obj["dbinfo"]["admin"]["user"], config_obj["dbinfo"]["admin"]["password"]
e_params = "-e MONGO_INITDB_ROOT_USERNAME=%s -e MONGO_INITDB_ROOT_PASSWORD=%s" % (u, p)
cmd_list = []
cmd_list.append("sudo systemctl stop docker-glygen-mongo-%s.service" % (server))
for c in [mongo_container, api_container, substructure_container]:
cmd = "docker ps --all |grep %s" % (c)
container_id = subprocess.getoutput(cmd).split(" ")[0].strip()
if container_id.strip() != "":
cmd_list.append("docker rm -f %s " % (container_id))
cmd = "docker network ls| grep %s" % (mongo_network)
x = subprocess.getoutput(cmd).split()
if x != []:
if x[1] == mongo_network:
cmd_list.append("docker network rm %s | true" % (mongo_network))
cmd_list.append("docker network create -d bridge %s" % (mongo_network))
cmd = "docker create --name %s --network %s -p 127.0.0.1:%s:27017" % (mongo_container, mongo_network,mongo_port)
cmd += " -v /data/shared/glygen/mongodump/%s:/data/shared/glygen/mongodump -v /data/shared/glygen/db/%s:/data/shared/glygen/db %s mongo" % (server, server, e_params)
cmd_list.append(cmd)
for cmd in cmd_list:
x = subprocess.getoutput(cmd)
print (x)
if __name__ == '__main__':
main()