Example #1
0
 def _setupNullClient(self):
     '''
     This needs to be called anytime we didn't get a connection.
     Rules processing occurs
     '''
     self.status = '0'
     log.debug('Entered null client setup...')
     self.original_protocol = self.protocol
     log.debug('Original Protocol: %s' % self.original_protocol)
     self.protocol = NullClient()
     log.debug('New Protocol: %s' % self.protocol)
     self.protocol.makeConnection(self)
     self.protocol = self.original_protocol
     log.debug('Reverted Protocol: %s' % self.protocol)
Example #2
0
 def _setupNullClient(self):
     '''
     This needs to be called anytime we didn't get a connection.
     Rules processing occurs
     '''
     self.status = '0'
     log.debug('Entered null client setup...')
     self.original_protocol = self.protocol
     log.debug('Original Protocol: %s' % self.original_protocol)
     self.protocol = NullClient()
     log.debug('New Protocol: %s' % self.protocol)
     self.protocol.makeConnection(self)
     self.protocol = self.original_protocol
     log.debug('Reverted Protocol: %s' % self.protocol)
Example #3
0
class HttpStatusMonitor(HTTPClientFactory, BaseMonitor):

    protocol = HttpStatusClient

    def __init__(self, uid, cfg):
        BaseMonitor.__init__(self, uid, cfg)
        self.page_url = 'http://%s' % self.checkConfig.uri
        # XXX write a getTimeout method
        #timeout = self.checkConfig.timeout
        #timeout = self.defaults.timeout
        self.agent = cfg.user_agent_string
        self.method = 'HEAD'
        self.status = None
        # XXX write a method to get the http port from defaults or service
        # config
        #port = self.checkConfig.http_port
        #import pdb;pdb.set_trace()
        port = int(self.defaults.remote_port)
        self.reactorArgs = (self.host, port, self)

    def __repr__(self):
        """
        We need to override the __repr__ in HTTPClientFactory;
        inheriting from BaseMonitor won't do it.
        """
        return "<%s: %s>" % (self.__class__.__name__, self.uid)

    def __call__(self):
        HTTPClientFactory.__init__(self,
                                   self.page_url,
                                   method=self.method,
                                   agent=self.agent,
                                   timeout=self.defaults.interval)
        BaseMonitor.__call__(self)
        # this deferred is created above when
        # HTTPClientFactory.__init__() is called.
        d = self.deferred
        d.addCallback(self.logStatus)
        d.addErrback(self.errorHandlerPartialPage)
        d.addErrback(self.errorHandlerTimeout)

    def clientConnectionFailed(self, connector, reason):
        self.message = reason.getErrorMessage()
        log.error("Failed: %s" % self.message)
        self._setupNullClient()

    def logStatus(self):
        log.info('Return status: %s' % self.status)
        self.message = "test message: ", self.status

    def errorHandlerPartialPage(self, failure):
        failure.trap(PartialDownloadError)
        log.error("Hmmm... got a partial page...")
        log.debug('Return status: %s' % self.status)

    def errorHandlerTimeout(self, failure):
        failure.trap(TimeoutError)
        self.message = failure.getErrorMessage()
        log.error("Timeout: %s" % self.message)
        self._setupNullClient()

    def _setupNullClient(self):
        '''
        This needs to be called anytime we didn't get a connection.
        Rules processing occurs
        '''
        self.status = '0'
        log.debug('Entered null client setup...')
        self.original_protocol = self.protocol
        log.debug('Original Protocol: %s' % self.original_protocol)
        self.protocol = NullClient()
        log.debug('New Protocol: %s' % self.protocol)
        self.protocol.makeConnection(self)
        self.protocol = self.original_protocol
        log.debug('Reverted Protocol: %s' % self.protocol)
Example #4
0
class HttpStatusMonitor(HTTPClientFactory, BaseMonitor):

    protocol = HttpStatusClient

    def __init__(self, uid, cfg):
        BaseMonitor.__init__(self, uid, cfg)
        self.page_url = 'http://%s' % self.checkConfig.uri
        # XXX write a getTimeout method
        #timeout = self.checkConfig.timeout
        #timeout = self.defaults.timeout
        self.agent = cfg.user_agent_string
        self.method = 'HEAD'
        self.status = None
        # XXX write a method to get the http port from defaults or service
        # config
        #port = self.checkConfig.http_port
        #import pdb;pdb.set_trace()
        port = int(self.defaults.remote_port)
        self.reactorArgs = (self.host, port, self)

    def __repr__(self):
        """
        We need to override the __repr__ in HTTPClientFactory;
        inheriting from BaseMonitor won't do it.
        """
        return "<%s: %s>" % (self.__class__.__name__, self.uid)

    def __call__(self):
        HTTPClientFactory.__init__(self, self.page_url,
            method=self.method, agent=self.agent,
            timeout=self.defaults.interval)
        BaseMonitor.__call__(self)
        # this deferred is created above when
        # HTTPClientFactory.__init__() is called.
        d = self.deferred
        d.addCallback(self.logStatus)
        d.addErrback(self.errorHandlerPartialPage)
        d.addErrback(self.errorHandlerTimeout)

    def clientConnectionFailed(self, connector, reason):
        self.message = reason.getErrorMessage()
        log.error("Failed: %s" % self.message)
        self._setupNullClient()

    def logStatus(self):
        log.info('Return status: %s' % self.status)
        self.message = "test message: ",self.status

    def errorHandlerPartialPage(self, failure):
        failure.trap(PartialDownloadError)
        log.error("Hmmm... got a partial page...")
        log.debug('Return status: %s' % self.status)

    def errorHandlerTimeout(self, failure):
        failure.trap(TimeoutError)
        self.message = failure.getErrorMessage()
        log.error("Timeout: %s" % self.message)
        self._setupNullClient()

    def _setupNullClient(self):
        '''
        This needs to be called anytime we didn't get a connection.
        Rules processing occurs
        '''
        self.status = '0'
        log.debug('Entered null client setup...')
        self.original_protocol = self.protocol
        log.debug('Original Protocol: %s' % self.original_protocol)
        self.protocol = NullClient()
        log.debug('New Protocol: %s' % self.protocol)
        self.protocol.makeConnection(self)
        self.protocol = self.original_protocol
        log.debug('Reverted Protocol: %s' % self.protocol)