def _ping_cluster(self): if tendrl_ns.tendrl_context.fsid: cluster_data = ceph.heartbeat(tendrl_ns.tendrl_context.fsid) tendrl_ns.tendrl_context.fsid = self.fsid = cluster_data['fsid'] else: cluster_data = ceph.heartbeat() if cluster_data: if "fsid" in cluster_data: tendrl_ns.tendrl_context.fsid = self.fsid = cluster_data[ 'fsid'] tendrl_ns.tendrl_context.create_local_fsid() tendrl_ns.tendrl_context.name = self.name = cluster_data['name']
def _ping_cluster(self): if hasattr(NS, "tendrl_context.cluster_id"): cluster_data = ceph.heartbeat(NS.tendrl_context.cluster_id) NS.tendrl_context.cluster_id = self.fsid = cluster_data['fsid'] else: cluster_data = ceph.heartbeat() if cluster_data: if "fsid" in cluster_data: NS.tendrl_context.cluster_id = self.fsid = cluster_data[ 'fsid'] NS.tendrl_context.cluster_name = self.name = cluster_data['name'] NS.tendrl_context.save()
def _ping_cluster(self): NS.tendrl_context = NS.tendrl_context.load() NS.node_context = NS.node_context.load() if NS.tendrl_context.cluster_id: cluster_data = ceph.heartbeat(NS.tendrl_context.cluster_id) NS.tendrl_context.cluster_id = self.fsid = cluster_data['fsid'] else: cluster_data = ceph.heartbeat() if cluster_data: if "fsid" in cluster_data: NS.tendrl_context.cluster_id = self.fsid = \ cluster_data['fsid'] NS.tendrl_context.cluster_name = self.name = cluster_data['name'] NS.tendrl_context.save()
def _run(self): LOG.info("%s running" % self.__class__.__name__) while not self._complete.is_set(): data = ceph.heartbeat(heartbeat_type="cluster", discover=True) if data is not None: for tag, cluster_data in data.iteritems(): try: if tag.startswith("ceph/cluster/"): if not cluster_data[ 'fsid'] in self._manager.clusters: self._manager.on_discovery(cluster_data) else: LOG.debug("%s: heartbeat from existing" " cluster %s" % (self.__class__.__name__, cluster_data['fsid'])) else: # This does not concern us, ignore it LOG.debug("TopLevelEvents: ignoring %s" % tag) pass except Exception: LOG.exception("Exception handling message tag=%s" % tag) gevent.sleep(3) LOG.info("%s complete" % self.__class__.__name__)
def _run(self): self._ready.set() LOG.debug("ClusterMonitor._run: ready") while not self._complete.is_set(): data = ceph.heartbeat(heartbeat_type="cluster", fsid=self.fsid) if data is not None: for tag, c_data in data.iteritems(): LOG.debug( "ClusterMonitor._run.ev:" " %s/tag=%s" % ( c_data['id'] if 'id' in c_data else None, tag) ) try: if tag.startswith("ceph/cluster/{0}".format(self.fsid)): # A ceph.heartbeat beacon self.on_heartbeat(c_data['id'], c_data) else: # This does not concern us, ignore it pass except Exception: # Because this is our main event handling loop, swallow # exceptions instead of letting them end the world. LOG.exception( "Exception handling message with tag %s" % tag) LOG.debug("Message content: %s" % data) gevent.sleep(4) LOG.info("%s complete" % self.__class__.__name__) self.done.set()
def _run(self): Event( Message( priority="info", publisher=NS.publisher_id, payload={"message": "%s running" % self.__class__.__name__})) # Check if monitor key exists, if not sync try: NS._int.client.read("clusters/%s/_mon_key" % NS.tendrl_context.integration_id) except etcd.EtcdKeyNotFound: out, err, rc = cmd_utils.Command( "ceph auth get mon. --cluster %s" % NS.tendrl_context.cluster_name).run() if rc != 0: Event( Message(priority="debug", publisher=NS.publisher_id, payload={ "message": "Couldn't get monitor key. Error:%s" % err })) else: if out and out != "": mon_sec = out.split('\n')[1].strip().split( ' = ')[1].strip() NS._int.wclient.write( "clusters/%s/_mon_key" % NS.tendrl_context.integration_id, mon_sec) while not self._complete.is_set(): gevent.sleep(int(NS.config.data.get("sync_interval", 10))) try: NS._int.wclient.write("clusters/%s/sync_status" % NS.tendrl_context.integration_id, "in_progress", prevExist=False) except (etcd.EtcdAlreadyExist, etcd.EtcdCompareFailed) as ex: pass cluster_data = ceph.heartbeat(NS.tendrl_context.cluster_id) self.on_heartbeat(cluster_data) _cluster = NS.tendrl.objects.Cluster( integration_id=NS.tendrl_context.integration_id) if _cluster.exists(): _cluster.sync_status = "done" _cluster.last_sync = str(now()) _cluster.save() Event( Message( priority="info", publisher=NS.publisher_id, payload={"message": "%s complete" % self.__class__.__name__}))
def _run(self): LOG.info("%s running" % self.__class__.__name__) while not self._complete.is_set(): gevent.sleep(3) cluster_data = ceph.heartbeat(tendrl_ns.tendrl_context.fsid) self.on_heartbeat(cluster_data) LOG.info("%s complete" % self.__class__.__name__)
def _run(self): Event( Message( priority="info", publisher=NS.publisher_id, payload={"message": "%s running" % self.__class__.__name__})) while not self._complete.is_set(): gevent.sleep(3) cluster_data = ceph.heartbeat(NS.tendrl_context.cluster_id) self.on_heartbeat(cluster_data) Event( Message( priority="info", publisher=NS.publisher_id, payload={"message": "%s complete" % self.__class__.__name__}))
def _run(self): LOG.info("Starting %s" % self.__class__.__name__) while not self._complete.is_set(): data = ceph.heartbeat() if data is not None: for tag, s_data in data.iteritems(): if tag.startswith("ceph/server"): LOG.debug("ServerMonitor got ceph/server message") try: self.on_server_heartbeat(s_data['id'], s_data) except Exception: LOG.debug("Message detail: %s" % json.dumps(s_data)) LOG.exception("Error handling ceph/server" " message from %s" % s_data['id']) gevent.sleep(10) LOG.info("Completed %s" % self.__class__.__name__)