def heartbeat(self, sig):
        # self.syslog('heartbeat from "%s"' % sig)
        self._debug['msg_hbt'] += 1
        info = sig.split(':')
        if len(info) != 2:
            self.syslog('Unable to parse heartbeat cookie %s' % sig)
            bottle.abort(404, 'Unable to parse heartbeat')

        service_type = info[1]
        service_id = info[0]
        entry = self._db_conn.lookup_service(service_type, service_id)
        if not entry:
            self.syslog('Received stray heartbeat with cookie %s' % (sig))
            self._debug['hb_stray'] += 1
            bottle.abort(404, 'Publisher %s not found' % sig)

        # update heartbeat timestamp in database
        entry['heartbeat'] = int(time.time())

        # insert entry if timed out by background task
        if entry['sequence'] == -1:
            self._db_conn.insert_service(service_type, entry['service_id'],
                                         entry)
        self._db_conn.update_service(service_type, entry['service_id'], entry)

        m = sandesh.dsHeartBeat(publisher_id=sig,
                                service_type=service_type,
                                sandesh=self._sandesh)
        m.trace_msg(name='dsHeartBeatTraceBuf', sandesh=self._sandesh)
        return '200 OK'
    def heartbeat(self, sig):
        # self.syslog('heartbeat from "%s"' % sig)
        self._debug['msg_hbt'] += 1
        info = sig.split(':')
        if len(info) != 2:
            self.syslog('Unable to parse heartbeat cookie %s' % sig)
            bottle.abort(404, 'Unable to parse heartbeat')

        service_type = info[1]
        service_id = info[0]
        entry = self._db_conn.lookup_service(service_type, service_id)
        if not entry:
            self.syslog('Received stray heartbeat with cookie %s' % (sig))
            self._debug['hb_stray'] += 1
            bottle.abort(404, 'Publisher %s not found' % sig)

        # update heartbeat timestamp in database
        entry['heartbeat'] = int(time.time())

        # insert entry if timed out by background task
        if entry['sequence'] == -1:
            self._db_conn.insert_service(
                service_type, entry['service_id'], entry)
        self._db_conn.update_service(
                service_type, entry['service_id'], entry)

        m = sandesh.dsHeartBeat(
            publisher_id=sig, service_type=service_type,
            sandesh=self._sandesh)
        m.trace_msg(name='dsHeartBeatTraceBuf', sandesh=self._sandesh)
        return '200 OK'
    def heartbeat(self, sig):
        # self.syslog('heartbeat from "%s"' % sig)
        self._debug["msg_hbt"] += 1
        info = sig.split(":")
        if len(info) != 2:
            self.syslog("Unable to parse heartbeat cookie %s" % sig)
            bottle.abort(404, "Unable to parse heartbeat")

        service_type = info[1]
        service_id = info[0]
        entry = self._db_conn.lookup_service(service_type, service_id)
        if not entry:
            self.syslog("Received stray heartbeat with cookie %s" % (sig))
            self._debug["hb_stray"] += 1
            bottle.abort(404, "Publisher %s not found" % sig)

        # update heartbeat timestamp in database
        entry["heartbeat"] = int(time.time())

        # insert entry if timed out by background task
        self._db_conn.update_service(service_type, entry["service_id"], entry)

        m = sandesh.dsHeartBeat(publisher_id=sig, service_type=service_type, sandesh=self._sandesh)
        m.trace_msg(name="dsHeartBeatTraceBuf", sandesh=self._sandesh)
        return "200 OK"
    def heartbeat(self, sig):
        self._debug["heartbeats"] += 1
        pdata = self.get_pub_data(sig)
        if not pdata:
            self.syslog("Received stray hearbeat with cookie %s" % (sig))
            self._debug["hb_stray"] += 1
            # resource not found
            return "404 Not Found"

        pdata["hbcount"] += 1
        pdata["heartbeat"] = int(time.time())

        m = sandesh.dsHeartBeat(publisher_id=sig, service_type=pdata["service_type"], sandesh=self._sandesh)
        m.trace_msg(name="dsHeartBeatTraceBuf", sandesh=self._sandesh)
        return "200 OK"
    def heartbeat(self, sig):
        self._debug['heartbeats'] += 1
        pdata = self.get_pub_data(sig)
        if not pdata:
            self.syslog('Received stray hearbeat with cookie %s' %(sig))
            self._debug['hb_stray'] += 1
            # resource not found
            return '404 Not Found'

        pdata['hbcount'] += 1
        pdata['heartbeat'] = int(time.time())

        m = sandesh.dsHeartBeat(publisher_id=sig, service_type=pdata['service_type'], sandesh=self._sandesh)
        m.trace_msg(name='dsHeartBeatTraceBuf', sandesh=self._sandesh)
        return '200 OK'