def start_proc(self, cluster_list, cluster_state):
os.environ['ETCD_INITIAL_CLUSTER'] = self.build_initial_cluster(cluster_list)
if cluster_state == 'member':
subprocess.call(['etcdctl',
'--endpoint',
self.build_endpoint(cluster_list),
'member',
'add',
self.ip,
os.environ['ETCD_INITIAL_ADVERTISE_PEER_URLS']])
shutil.rmtree(self.DATA_DIR + '/proxy', ignore_errors=True)
os.environ['ETCD_INITIAL_CLUSTER_STATE'] = 'existing'
os.unsetenv('ETCD_PROXY')
elif cluster_state == 'bootstrap':
shutil.rmtree(self.DATA_DIR + '/member', ignore_errors=True)
shutil.rmtree(self.DATA_DIR + '/proxy', ignore_errors=True)
os.environ['ETCD_INITIAL_CLUSTER_STATE'] = 'new'
os.unsetenv('ETCD_PROXY')
else:
shutil.rmtree(self.DATA_DIR + '/member', ignore_errors=True)
os.unsetenv('ETCD_INITIAL_CLUSTER_STATE')
os.environ['ETCD_PROXY'] = 'on'
logging.info("Starting etcd process in %s mode - %s" % (cluster_state, cluster_list))
self.etcd_proc = subprocess.Popen('/usr/local/bin/etcd')
self.current_cluster_list = cluster_list
self.current_cluster_state = cluster_state
评论列表
文章目录