etcd_proc.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:devenv 作者: dumplingtech 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号