fetcd.py 文件源码

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

项目:felix 作者: axbaretto 项目源码 文件源码
def __init__(self, config, hosts_ipset):
        super(EtcdAPI, self).__init__(config.ETCD_ADDRS,
                                      etcd_scheme=config.ETCD_SCHEME,
                                      etcd_key=config.ETCD_KEY_FILE,
                                      etcd_cert=config.ETCD_CERT_FILE,
                                      etcd_ca=config.ETCD_CA_FILE)
        self._config = config

        # Timestamp storing when the EtcdAPI started. This info is needed
        # in order to report uptime to etcd.
        self._start_time = monotonic_time()

        # Create an Actor to report per-endpoint status into etcd.  We defer
        # startup of this and our other workers until we get started.
        self.status_reporter = EtcdStatusReporter(config)

        # Create the main etcd-watching greenlet.
        self._watcher = _FelixEtcdWatcher(config,
                                          self,
                                          self.status_reporter,
                                          hosts_ipset)
        self._watcher.link(self._on_worker_died)

        # Create a greenlet to trigger periodic resyncs.
        self._resync_greenlet = gevent.Greenlet(self._periodically_resync)
        self._resync_greenlet.link_exception(self._on_worker_died)

        # Create a greenlet to report felix's liveness into etcd.
        self.done_first_status_report = False
        self._status_reporting_greenlet = gevent.Greenlet(
            self._periodically_report_status
        )
        self._status_reporting_greenlet.link_exception(self._on_worker_died)

        self.status_reporter.greenlet.link(self._on_worker_died)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号