(zk_conf, teardown)
| 104 | |
| 105 | |
| 106 | def DeployZookeeper(zk_conf, teardown): |
| 107 | source_file = zk_conf["package"] |
| 108 | file_name = os.path.basename(source_file) |
| 109 | dir_name = "zookeeper" |
| 110 | server_conf = [] |
| 111 | for idx in xrange(len(zk_conf["address_arr"])): |
| 112 | host = zk_conf["address_arr"][idx]["address"].split(":")[0] |
| 113 | cur_server_conf = "server." + str(idx + 1) + "=" + host |
| 114 | if "inner_port1" in zk_conf["address_arr"][idx]: |
| 115 | cur_server_conf += ":" + str(zk_conf["address_arr"][idx]["inner_port1"]) |
| 116 | else: |
| 117 | cur_server_conf += ":" + str(zk_conf["inner_port1"]) |
| 118 | if "inner_port2" in zk_conf["address_arr"][idx]: |
| 119 | cur_server_conf += ":" + str(zk_conf["address_arr"][idx]["inner_port2"]) |
| 120 | else: |
| 121 | cur_server_conf += ":" + str(zk_conf["inner_port2"]) |
| 122 | server_conf.append("echo {} >> conf/zoo.cfg".format(cur_server_conf)) |
| 123 | |
| 124 | for idx in xrange(len(zk_conf["address_arr"])): |
| 125 | host = zk_conf["address_arr"][idx]["address"].split(":")[0] |
| 126 | port = zk_conf["address_arr"][idx]["address"].split(":")[1] |
| 127 | (prefix, suffix, is_local) = GetPrefixAndSuffix(host) |
| 128 | real_path = '' |
| 129 | if "path" in zk_conf["address_arr"][idx]: |
| 130 | real_path = zk_conf["address_arr"][idx]["path"] |
| 131 | else: |
| 132 | real_path = zk_conf["path"] |
| 133 | java_home_str = "echo $PATH" |
| 134 | if not CheckJava(host): |
| 135 | DeployJava(host, real_path, zk_conf["java_package"], teardown) |
| 136 | java_home_str = "PATH=$PATH:{}/{}/bin".format(real_path, "jdk1.8.0_121") |
| 137 | cmd_arr = [] |
| 138 | work_path = real_path + "/" + dir_name |
| 139 | if teardown: |
| 140 | print("teardown zookeeper on {}. path: {}".format(host, real_path)) |
| 141 | cmd_arr.append("{} cd {}; sh bin/zkServer.sh stop {}".format(prefix, work_path, suffix)) |
| 142 | cmd_arr.append("{} cd {}; rm {}; rm -rf {} {}".format(prefix, real_path, file_name, dir_name, suffix)) |
| 143 | else: |
| 144 | print("start zookeeper on {}. path: {}".format(host, real_path)) |
| 145 | cmd_arr.append("{} mkdir -p {} {}".format(prefix, real_path, suffix)) |
| 146 | if is_local: |
| 147 | cmd_arr.append("cp {} {}".format(source_file, real_path)) |
| 148 | else: |
| 149 | cmd_arr.append("scp {} {}:{}".format(source_file, host, real_path)) |
| 150 | cmd_arr.append("{} cd {}; tar -zxvf {}; mv {} {}; cd {}; mv conf/zoo_sample.cfg conf/zoo.cfg {}".format( |
| 151 | prefix, real_path, file_name, file_name[:-7], dir_name, dir_name, suffix)) |
| 152 | cmd_arr.append("{} cd {}; sed -i 's/dataDir=.*/dataDir=\.\/data/g' conf/zoo.cfg;" |
| 153 | "sed -i 's/clientPort=.*/clientPort={}/g' conf/zoo.cfg;" |
| 154 | "{} {}".format( |
| 155 | prefix, work_path, port, ";".join(server_conf), suffix)) |
| 156 | cmd_arr.append("{} cd {}; mkdir -p ./data; echo {} > ./data/myid {}".format(prefix, work_path, idx + 1, suffix)) |
| 157 | cmd_arr.append("{} cd {}; {}; sh bin/zkServer.sh start {}".format(prefix, work_path, java_home_str, suffix)) |
| 158 | for cmd in cmd_arr: |
| 159 | (returncode,output,errout) = RunWithRetunCode(cmd) |
| 160 | if returncode != 0: |
| 161 | print("execute cmd[{}] failed! error msg: {}".format(cmd, errout)) |
| 162 | return |
| 163 | print("execute cmd[{}] success".format(cmd)) |
no test coverage detected