Skip to content

Instantly share code, notes, and snippets.

@Kami
Forked from anonymous/gist:ff794abc5d865407e721ff1125b6b020
Last active April 15, 2016 13:19
Show Gist options
  • Save Kami/cf0e2412fa8c277acd23f733b1828572 to your computer and use it in GitHub Desktop.
Save Kami/cf0e2412fa8c277acd23f733b1828572 to your computer and use it in GitHub Desktop.
from st2reactor.sensor.base import PollingSensor
import urllib2
import json
import subprocess
from multiprocessing import Process
__all__ = [
'PbPollingSensor'
]
class PbPollingSensor(PollingSensor):
def __init__(self, sensor_service, config=None, poll_interval=5):
super(PbPollingSensor, self).__init__(sensor_service=sensor_service, config=config, poll_interval=poll_interval)
self.queuLength = 16
self.processes = set()
self._trigger_ref = x.missed_node
self.feMetricGroup = ["pb.subscriber.fe",[range(0,80)],"is-current"]
self.qeMetricGroup = ["pb.subscriber.qr",[range(0,15)],"is-current"]
self.url = "http://xxxxxxx:4080/prod"
self.feBase = 80
self.qrBase = 16
def setup(self):
# Setup stuff goes here. For example, you might establish connections
# to external system once and reuse it. This is called only once by the system.
pass
def getSubscribers (self,js,node='fe'):
#logic goes here
def poll(self):
test = ['fe1','fe2']
for node in test:
self._dispatch_trigger_for_shard(node=node)
def _dispatch_trigger_for_node(self, node):
trigger = self._trigger_ref
payload = {"node": node}
self._sensor_service.dispatch(trigger=trigger, payload=payload)
def cleanup(self):
# This is called when the st2 system goes down. You can perform cleanup operations like
# closing the connections to external system here.
pass
def add_trigger(self, trigger):
# This method is called when trigger is created
pass
def update_trigger(self, trigger):
# This method is called when trigger is updated
pass
def remove_trigger(self, trigger):
# This method is called when trigger is deleted
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment