aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/changes/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/changes/base.py')
-rw-r--r--lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/changes/base.py95
1 files changed, 0 insertions, 95 deletions
diff --git a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/changes/base.py b/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/changes/base.py
deleted file mode 100644
index 496f5787..00000000
--- a/lib/python2.7/site-packages/buildbot-0.8.8-py2.7.egg/buildbot/changes/base.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# This file is part of Buildbot. Buildbot is free software: you can
-# redistribute it and/or modify it under the terms of the GNU General Public
-# License as published by the Free Software Foundation, version 2.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright Buildbot Team Members
-
-from zope.interface import implements
-from twisted.application import service
-from twisted.internet import defer, task, reactor
-from twisted.python import log
-
-from buildbot.interfaces import IChangeSource
-from buildbot import util
-
-class ChangeSource(service.Service, util.ComparableMixin):
- implements(IChangeSource)
-
- master = None
- "if C{self.running} is true, then C{cs.master} points to the buildmaster."
-
- def describe(self):
- pass
-
-class PollingChangeSource(ChangeSource):
- """
- Utility subclass for ChangeSources that use some kind of periodic polling
- operation. Subclasses should define C{poll} and set C{self.pollInterval}.
- The rest is taken care of.
-
- Any subclass will be available via the "poller" webhook.
- """
-
- pollInterval = 60
- "time (in seconds) between calls to C{poll}"
-
- _loop = None
-
- def __init__(self, name=None, pollInterval=60*10):
- if name:
- self.setName(name)
- self.pollInterval = pollInterval
-
- self.doPoll = util.misc.SerializedInvocation(self.doPoll)
-
- def doPoll(self):
- """
- This is the method that is called by LoopingCall to actually poll.
- It may also be called by change hooks to request a poll.
- It is serialiazed - if you call it while a poll is in progress
- then the 2nd invocation won't start until the 1st has finished.
- """
- d = defer.maybeDeferred(self.poll)
- d.addErrback(log.err, 'while polling for changes')
- return d
-
- def poll(self):
- """
- Perform the polling operation, and return a deferred that will fire
- when the operation is complete. Failures will be logged, but the
- method will be called again after C{pollInterval} seconds.
- """
-
- def startLoop(self):
- self._loop = task.LoopingCall(self.doPoll)
- self._loop.start(self.pollInterval, now=False)
-
- def stopLoop(self):
- if self._loop and self._loop.running:
- self._loop.stop()
- self._loop = None
-
- def startService(self):
- ChangeSource.startService(self)
-
- # delay starting doing anything until the reactor is running - if
- # services are still starting up, they may miss an initial flood of
- # changes
- if self.pollInterval:
- reactor.callWhenRunning(self.startLoop)
- else:
- reactor.callWhenRunning(self.doPoll)
-
- def stopService(self):
- self.stopLoop()
- return ChangeSource.stopService(self)
-