Example #1
0
 def __init__(self,
              comp_name,
              zkclient,
              nodepath,
              ephemeral_only=True,
              met_on_delete=False,
              operational=False,
              new_node_callback=None,
              parent=None):
     """
     :type comp_name: str
     :type zkclient: kazoo.client.KazooClient
     :type nodepath: str
     :type ephemeral_only: bool
     :type met_on_delete: bool
     :param met_on_delete: Whether we want met to be True when nodepath is
             deleted
     :type operational: bool
     :type new_node_callback: types.FunctionType or None
     :param new_node_callback: This is a special callback used by
             ZookeeperHasGranchildren to keep track of new static nodes
     :type parent: str or None
     """
     SimplePredicate.__init__(self,
                              comp_name,
                              operational=operational,
                              parent=parent)
     self.node = nodepath
     self.zkclient = zkclient
     self._ephemeral_only = ephemeral_only
     self._met_on_delete = met_on_delete
     self._nn_calback = new_node_callback  # currently unused
     self._log = logging.getLogger('sent.{0}.pred.hc'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
Example #2
0
    def __init__(self,
                 comp_name,
                 begin=None,
                 end=None,
                 weekdays=None,
                 operational=False,
                 parent=None,
                 interval=5):
        """
        :type comp_name: str
        :type begin: str or None
        :type end: str or None
        :type weekdays: str or None
        :type operational: bool
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self,
                                 comp_name,
                                 operational=operational,
                                 parent=parent)
        self.begin = self.get_datetime_object(begin)
        self.end = self.get_datetime_object(end)
        self.day_range = self.parse_range(weekdays)
        self.interval = interval
        self._log = logging.getLogger(
            'sent.{0}.pred.timewin'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
 def __init__(self, comp_name, zkclient, nodepath, ephemeral_only=True,
              met_on_delete=False, operational=False, new_node_callback=None,
              parent=None):
     """
     :type comp_name: str
     :type zkclient: kazoo.client.KazooClient
     :type nodepath: str
     :type ephemeral_only: bool
     :type met_on_delete: bool
     :param met_on_delete: Whether we want met to be True when nodepath is
             deleted
     :type operational: bool
     :type new_node_callback: types.FunctionType or None
     :param new_node_callback: This is a special callback used by
             ZookeeperHasGranchildren to keep track of new static nodes
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
     self.node = nodepath
     self.zkclient = zkclient
     self._ephemeral_only = ephemeral_only
     self._met_on_delete = met_on_delete
     self._nn_calback = new_node_callback  # currently unused
     self._log = logging.getLogger('sent.{0}.pred.hc'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
Example #4
0
    def __init__(self, comp_name, zkclient, nodepath,
                 operational=False, parent=None, interval=5):
        """
        :type comp_name: str
        :type zkclient: kazoo.client.KazooClient
        :type nodepath: str
        :type operational: bool
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
        self.node = nodepath
        self.zkclient = zkclient
        self.interval = interval
        self._start = None
        self._stop = None
        self._log = logging.getLogger('sent.{0}.pred.gut'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False

        self._datetime_regex = (
            "^((?P<year>\d{4})\-(?P<month>\d{2})\-(?P<day>\d{2})\s)?"
            "(?P<hour>\d{2}):(?P<minute>\d{2})(:(?P<second>\d{2}))?"
        )
Example #5
0
    def __init__(self,
                 comp_name,
                 url,
                 verb='GET',
                 expected_code=200,
                 interval=5.0,
                 operational=False,
                 parent=None):
        """
        :type comp_name: str
        :type url: str
        :type verb: str
        :type expected_code: int
        :type interval: int or float
        :type operational: bool
        :type parent: str or None
        """
        SimplePredicate.__init__(self,
                                 comp_name,
                                 operational=operational,
                                 parent=parent)
        self._log = logging.getLogger('sent.{0}.pred.api'.format(comp_name))
        logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(
            logging.WARNING)
        self.url = url
        self.verb = verb
        self.expected_code = expected_code
        self.interval = interval

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._log.info('Registered {0}'.format(self))
        self._started = False
Example #6
0
    def __init__(self,
                 comp_name,
                 zkclient,
                 path,
                 operational=False,
                 parent=None,
                 interval=10):
        """
        :type comp_name: str
        :type zkclient: kazoo.client.KazooClient
        :type path: str or None
        :type operational: bool
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self,
                                 comp_name,
                                 operational=operational,
                                 parent=parent)
        self.zkclient = zkclient
        self.interval = interval
        self.path = path
        self._log = logging.getLogger('sent.{0}.holiday'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
        self._holidays = list()
Example #7
0
    def __init__(self, comp_name, settings, zkclient, nodepath, parent=None, interval=5):
        """
        :type comp_name: str
        :type settings: zoom.agent.entities.thread_safe_object.ThreadSafeObject
        :type zkclient: kazoo.client.KazooClient
        :type nodepath: str
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self, comp_name, settings, parent=parent)
        self.node = nodepath
        self.zkclient = zkclient
        self.interval = interval
        self._start = None
        self._stop = None
        self._log = logging.getLogger('sent.{0}.pred.gut'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False

        self._datetime_regex = (
            "^((?P<year>\d{4})\-(?P<month>\d{2})\-(?P<day>\d{2})\s)?"
            "(?P<hour>\d{2}):(?P<minute>\d{2})(:(?P<second>\d{2}))?"
        )
Example #8
0
    def __init__(self,
                 comp_name,
                 command,
                 interval,
                 system,
                 operational=False,
                 parent=None):
        """
        :type comp_name: str
        :type command: str
        :type interval: int or float
        :type system: zoom.common.types.PlatformType
        :type operational: bool
        :type parent: str or None
        """
        SimplePredicate.__init__(self,
                                 comp_name,
                                 operational=operational,
                                 parent=parent)
        self._log = logging.getLogger('sent.{0}.pred.health'.format(comp_name))
        self.interval = interval
        self.rawcmd = command
        self._runcmd = str()
        self._system = system
        self._verify()

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._log.info('Registered {0}'.format(self))
        self._started = False
Example #9
0
    def __init__(self,
                 comp_name,
                 proc_client,
                 interval,
                 operational=False,
                 parent=None):
        """
        :type comp_name: str
        :type proc_client: zoom.agent.client.process_client.ProcessClient
        :type interval: int or float
        :type operational: bool
        :type parent: str or None
        """
        SimplePredicate.__init__(self,
                                 comp_name,
                                 operational=operational,
                                 parent=parent)
        self._log = logging.getLogger(
            'sent.{0}.pred.process'.format(comp_name))
        self._proc_client = proc_client

        # lock for synchronous decorator
        if proc_client:
            self.process_client_lock = proc_client.process_client_lock
        else:
            self.process_client_lock = Lock()

        self.interval = interval
        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
Example #10
0
 def __init__(self, comp_name, pred, parent=None):
     """
     :type comp_name: str
     :type pred: zoom.agent.entities.dependency object
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, parent=parent)
     self.dependency = pred
     self._log = logging.getLogger("sent.{0}.pred.not".format(comp_name))
     self._log.info("Registered {0}".format(self))
Example #11
0
 def __init__(self, comp_name, pred, parent=None):
     """
     :type comp_name: str
     :type pred: zoom.agent.entities.dependency object
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, parent=parent)
     self.dependency = pred
     self._log = logging.getLogger('sent.{0}.pred.not'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
Example #12
0
 def __init__(self, comp_name, settings, pred, parent=None):
     """
     :type comp_name: str
     :type settings: zoom.agent.entities.thread_safe_object.ThreadSafeObject
     :type pred: zoom.agent.entities.dependency object
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, settings, parent=parent)
     self.dependency = pred
     self._log = logging.getLogger('sent.{0}.pred.not'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
Example #13
0
 def __init__(self, comp_name, predicates, parent=None):
     """
     :type comp_name: str
     :type predicates: list of zoom.agent.entities.predicate objects
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, parent=parent)
     self.dependencies = predicates
     self._log = logging.getLogger('sent.{0}.pred.and'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
     self._started = False
Example #14
0
 def __init__(self, comp_name, predicates, parent=None):
     """
     :type comp_name: str
     :type predicates: list of zoom.agent.entities.predicate objects
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, parent=parent)
     self.dependencies = predicates
     self._log = logging.getLogger('sent.{0}.pred.or'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
     self._started = False
Example #15
0
 def __init__(self, comp_name, zkclient, nodepath,
              operational=False, parent=None):
     """
     :type comp_name: str
     :type zkclient: kazoo.client.KazooClient
     :type nodepath: str
     :type operational: bool
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
     self.node = nodepath
     self.zkclient = zkclient
     self._log = logging.getLogger('sent.{0}.pred.ne'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
Example #16
0
    def __init__(self, comp_name, operational=False, parent=None, interval=10):
        """
        :type comp_name: str
        :type operational: bool
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
        self.interval = interval
        self._log = logging.getLogger("sent.{0}.weekend".format(comp_name))
        self._log.info("Registered {0}".format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
Example #17
0
 def __init__(self, comp_name, settings, zkclient, nodepath, met_on_delete=False,
              parent=None):
     """
     :type comp_name: str
     :type settings: zoom.agent.entities.thread_safe_object.ThreadSafeObject
     :type zkclient: kazoo.client.KazooClient
     :type nodepath: str
     :type met_on_delete: bool
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, settings, parent=parent)
     self.node = nodepath
     self.zkclient = zkclient
     self._met_on_delete = met_on_delete
     self._log = logging.getLogger('sent.{0}.pred.hc'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
Example #18
0
 def __init__(self, comp_name, zkclient, nodepath,
              ephemeral_only=True, operational=False, parent=None):
     """
     :type comp_name: str
     :type zkclient: kazoo.client.KazooClient
     :type nodepath: str
     :type ephemeral_only: bool
     :type operational: bool
     :type parent: str or None
     """
     SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
     self.node = nodepath
     self.zkclient = zkclient
     self._ephemeral_only = ephemeral_only
     self._children = list()
     self._log = logging.getLogger('sent.{0}.pred.hgc'.format(comp_name))
     self._log.info('Registered {0}'.format(self))
Example #19
0
    def __init__(self, comp_name, settings, zkclient, parent=None, interval=10):
        """
        :type comp_name: str
        :type settings: zoom.agent.entities.thread_safe_object.ThreadSafeObject
        :type zkclient: kazoo.client.KazooClient
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self, comp_name, settings, parent=parent)
        self.zkclient = zkclient
        self.interval = interval
        self._log = logging.getLogger('sent.{0}.holiday'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
        self._holidays = list()
Example #20
0
    def __init__(self, comp_name, operational=False, parent=None, interval=10):
        """
        :type comp_name: str
        :type operational: bool
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self,
                                 comp_name,
                                 operational=operational,
                                 parent=parent)
        self.interval = interval
        self._log = logging.getLogger('sent.{0}.weekend'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
Example #21
0
    def __init__(self, comp_name, settings, proc_client, interval, parent=None):
        """
        :type comp_name: str
        :type settings: zoom.agent.entities.thread_safe_object.ThreadSafeObject
        :type proc_client: zoom.agent.client.process_client.ProcessClient
        :type interval: int or float
        :type parent: str or None
        """
        SimplePredicate.__init__(self, comp_name, settings, parent=parent)
        self._log = logging.getLogger('sent.{0}.pred.process'.format(comp_name))
        self._proc_client = proc_client

        # lock for synchronous decorator
        if proc_client:
            self.process_client_lock = proc_client.process_client_lock
        else:
            self.process_client_lock = Lock()

        self.interval = interval
        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
Example #22
0
    def __init__(self, comp_name, begin=None, end=None,
                 weekdays=None, operational=False, parent=None, interval=5):
        """
        :type comp_name: str
        :type begin: str or None
        :type end: str or None
        :type weekdays: str or None
        :type operational: bool
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
        self.begin = self.get_datetime_object(begin)
        self.end = self.get_datetime_object(end)
        self.day_range = self.parse_range(weekdays)
        self.interval = interval
        self._log = logging.getLogger('sent.{0}.pred.timewin'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
Example #23
0
    def __init__(self, comp_name, command, interval, system,
                 operational=False, parent=None):
        """
        :type comp_name: str
        :type command: str
        :type interval: int or float
        :type system: zoom.common.types.PlatformType
        :type operational: bool
        :type parent: str or None
        """
        SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
        self._log = logging.getLogger('sent.{0}.pred.health'.format(comp_name))
        self.interval = interval
        self.rawcmd = command
        self._runcmd = str()
        self._system = system
        self._verify()

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._log.info('Registered {0}'.format(self))
        self._started = False
Example #24
0
    def __init__(self, comp_name, settings,
                 start=None, stop=None, weekdays=None, parent=None, interval=5):
        """
        :type comp_name: str
        :type settings: ThreadSafeObject
        :type start: str or None
        :type stop: str or None
        :type weekdays: str or None
        :type parent: str or None
        :type interval: int or float
        """
        SimplePredicate.__init__(self, comp_name, settings, parent=parent)
        self.start_time = self._get_datetime_object(start)
        self.stop_time = self._get_datetime_object(stop)
        self.day_range = self._parse_range(weekdays)
        self.interval = interval
        self._log = logging.getLogger('sent.{0}.pred.time'.format(comp_name))
        self._log.info('Registered {0}'.format(self))

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._started = False
Example #25
0
    def __init__(self, comp_name, url, verb='GET', expected_code=200,
                 interval=5.0, operational=False, parent=None):
        """
        :type comp_name: str
        :type url: str
        :type verb: str
        :type expected_code: int
        :type interval: int or float
        :type operational: bool
        :type parent: str or None
        """
        SimplePredicate.__init__(self, comp_name, operational=operational, parent=parent)
        self._log = logging.getLogger('sent.{0}.pred.api'.format(comp_name))
        logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.WARNING)
        self.url = url
        self.verb = verb
        self.expected_code = expected_code
        self.interval = interval

        self._operate = ThreadSafeObject(True)
        self._thread = Thread(target=self._run_loop, name=str(self))
        self._thread.daemon = True
        self._log.info('Registered {0}'.format(self))
        self._started = False