Skip to content

Commit

Permalink
remove deferredGenerators introduced during 'nine' development
Browse files Browse the repository at this point in the history
  • Loading branch information
djmitche committed May 13, 2012
1 parent b7a3d8c commit 1cb10b3
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 83 deletions.
36 changes: 10 additions & 26 deletions master/buildbot/master.py
Expand Up @@ -318,7 +318,7 @@ def getStatus(self):

## triggering methods

@defer.deferredGenerator
@defer.inlineCallbacks
def addChange(self, who=None, files=None, comments=None, author=None,
isdir=None, is_dir=None, revision=None, when=None,
when_timestamp=None, branch=None, category=None, revlink='',
Expand Down Expand Up @@ -434,35 +434,22 @@ def handle_deprec(oldname, old, newname, new, default=None,

if src:
# create user object, returning a corresponding uid
wfd = defer.waitForDeferred(
users.createUserObject(self, author, src))
yield wfd
uid = wfd.getResult()
uid = yield users.createUserObject(self, author, src)
else:
uid = None

# add the Change to the database
wfd = defer.waitForDeferred(
self.db.changes.addChange(author=author, files=files,
changeid = yield self.db.changes.addChange(author=author, files=files,
comments=comments, is_dir=is_dir,
revision=revision, when_timestamp=when_timestamp,
branch=branch, category=category,
revlink=revlink, properties=properties,
repository=repository, project=project,
codebase=codebase, uid=uid))
yield wfd
changeid = wfd.getResult()
codebase=codebase, uid=uid)

# convert the changeid to a Change instance
wfd = defer.waitForDeferred(
self.db.changes.getChange(changeid))
yield wfd
chdict = wfd.getResult()

wfd = defer.waitForDeferred(
changes.Change.fromChdict(self, chdict))
yield wfd
change = wfd.getResult()
chdict = yield self.db.changes.getChange(changeid)
change = yield changes.Change.fromChdict(self, chdict)

# log, being careful to handle funny characters
msg = u"added change %s to database" % change
Expand All @@ -474,9 +461,9 @@ def handle_deprec(oldname, old, newname, new, default=None,
msg['when_timestamp'] = datetime2epoch(msg['when_timestamp'])
self.mq.produce("change.%d.new" % changeid, msg)

yield change
defer.returnValue(change)

@defer.deferredGenerator
@defer.inlineCallbacks
def addBuildset(self, scheduler, **kwargs):
"""
Add a buildset to the buildmaster and act on it. Interface is
Expand All @@ -486,10 +473,7 @@ def addBuildset(self, scheduler, **kwargs):
resulting builds. This method also takes a 'scheduler' parameter
to name the initiating scheduler.
"""
wfd = defer.waitForDeferred(
self.db.buildsets.addBuildset(**kwargs))
yield wfd
bsid, brids = wfd.getResult()
bsid, brids = yield self.db.buildsets.addBuildset(**kwargs)

log.msg("added buildset %d to database" % bsid)

Expand All @@ -515,7 +499,7 @@ def addBuildset(self, scheduler, **kwargs):
properties=kwargs.get('properties', {}))
self.mq.produce("buildset.%d.new" % bsid, msg)

yield (bsid,brids) # return value
defer.returnValue((bsid,brids))

@defer.inlineCallbacks
def maybeBuildsetComplete(self, bsid, _reactor=reactor):
Expand Down
7 changes: 2 additions & 5 deletions master/buildbot/process/builder.py
Expand Up @@ -431,7 +431,7 @@ def buildFinished(self, build, sb, bids):

self.updateBigStatus()

@defer.deferredGenerator
@defer.inlineCallbacks
def _notify_completions(self, requests, results, complete_at_epoch):
# send a message for each request
for br in requests:
Expand All @@ -455,10 +455,7 @@ def _notify_completions(self, requests, results, complete_at_epoch):
if br.bsid in seen_bsids:
continue
seen_bsids.add(br.bsid)
wfd = defer.waitForDeferred(
self.master.maybeBuildsetComplete(br.bsid))
yield wfd
wfd.getResult()
yield self.master.maybeBuildsetComplete(br.bsid)

def _resubmit_buildreqs(self, build):
brids = [br.id for br in build.requests]
Expand Down
13 changes: 3 additions & 10 deletions master/buildbot/schedulers/base.py
Expand Up @@ -212,7 +212,7 @@ def startConsumingChanges(self, fileIsImportant=None, change_filter=None,
'change.*.new')
return defer.succeed(None)

@defer.deferredGenerator
@defer.inlineCallbacks
def _changeCallback(self, key, msg, fileIsImportant, change_filter,
onlyImportant):

Expand All @@ -221,15 +221,8 @@ def _changeCallback(self, key, msg, fileIsImportant, change_filter,
return

# get a change object, since the API requires it
wfd = defer.waitForDeferred(
self.master.db.changes.getChange(msg['changeid']))
yield wfd
chdict = wfd.getResult()

wfd = defer.waitForDeferred(
changes.Change.fromChdict(self.master, chdict))
yield wfd
change = wfd.getResult()
chdict = yield self.master.db.changes.getChange(msg['changeid'])
change = yield changes.Change.fromChdict(self.master, chdict)

# filter it
if change_filter and not change_filter.filter_change(change):
Expand Down
13 changes: 3 additions & 10 deletions master/buildbot/status/master.py
Expand Up @@ -380,7 +380,7 @@ def br_consumer_cb(self, key, msg):
if hasattr(observer, 'requestSubmitted'):
eventually(observer.requestSubmitted, brs)

@defer.deferredGenerator
@defer.inlineCallbacks
def change_consumer_cb(self, key, msg):
# get a list of watchers - no sense querying the change
# if nobody's listening
Expand All @@ -389,15 +389,8 @@ def change_consumer_cb(self, key, msg):
if not interested:
return

wfd = defer.waitForDeferred(
self.master.db.changes.getChange(msg['changeid']))
yield wfd
chdict = wfd.getResult()

wfd = defer.waitForDeferred(
changes.Change.fromChdict(self.master, chdict))
yield wfd
change = wfd.getResult()
chdict = yield self.master.db.changes.getChange(msg['changeid'])
change = yield changes.Change.fromChdict(self.master, chdict)

for t in interested:
t.changeAdded(change)
Expand Down
7 changes: 2 additions & 5 deletions master/buildbot/test/unit/test_mq_connector.py
Expand Up @@ -67,18 +67,15 @@ def check(_):
self.assertIdentical(self.conn.impl.new_config, new_config)
return d

@defer.deferredGenerator
@defer.inlineCallbacks
def test_reconfigService_change_type(self):
self.patchFakeMQ()
self.mqconfig['type'] = 'fake'
self.conn.setup()
new_config = mock.Mock()
new_config.mq = dict(type='other')
try:
wfd = defer.waitForDeferred(
self.conn.reconfigService(new_config))
yield wfd
wfd.getResult()
yield self.conn.reconfigService(new_config)
except AssertionError:
pass # expected
else:
Expand Down
21 changes: 6 additions & 15 deletions master/buildbot/test/unit/test_process_builder.py
Expand Up @@ -217,12 +217,9 @@ def test_maybeStartBuild_limited_by_requests(self):
exp_mq=[claim_11_msg],
now=1234)

@defer.deferredGenerator
@defer.inlineCallbacks
def test_maybeStartBuild_start_fails(self):
wfd = defer.waitForDeferred(
self.makeBuilder(mergeRequests=False))
yield wfd
wfd.getResult()
yield self.makeBuilder(mergeRequests=False)

self.setSlaveBuilders({'test-slave1':1})
rows = self.base_rows + [
Expand All @@ -235,11 +232,8 @@ def test_maybeStartBuild_start_fails(self):
return_value=defer.succeed(None))
self.bldr._msg_buildrequests_unclaimed = mock.Mock()

wfd = defer.waitForDeferred(
self.do_test_maybeStartBuild(rows=rows,
exp_claims=[10], exp_builds=[]))
yield wfd
wfd.getResult()
yield self.do_test_maybeStartBuild(rows=rows,
exp_claims=[10], exp_builds=[])

# check that brid 10 was unclaimed after it was claimed, a message
# was sent, and the botmaster was informed
Expand Down Expand Up @@ -728,7 +722,7 @@ def mkbld(brids):

self.assertEqual(claims, [ (set([10,11,12,15]),) ])

@defer.deferredGenerator
@defer.inlineCallbacks
def test_msg_buildrequests_unclaimed(self):
br1 = mock.Mock(name='br1')
br1.bsid = 10
Expand All @@ -740,10 +734,7 @@ def test_msg_buildrequests_unclaimed(self):
br2.id = 14
br2.buildername = 'bldr'

wfd = defer.waitForDeferred(
self.makeBuilder('bldr'))
yield wfd
wfd.getResult()
yield self.makeBuilder('bldr')

self.bldr._msg_buildrequests_unclaimed([br1, br2])

Expand Down
18 changes: 6 additions & 12 deletions master/buildbot/test/unit/test_status_master.py
Expand Up @@ -96,20 +96,17 @@ def test_reconfigService(self):
self.assertIdentical(sr1.master, None)
self.assertIdentical(sr2.master, None)

@defer.deferredGenerator
@defer.inlineCallbacks
def test_change_consumer_cb_nobody_interested(self):
m = mock.Mock(name='master')
status = master.Status(m)

wfd = defer.waitForDeferred(
status.change_consumer_cb('change.13.new',
dict(changeid=13)))
yield wfd
wfd.getResult()
yield status.change_consumer_cb('change.13.new',
dict(changeid=13))

self.assertFalse(m.db.changes.getChange.called)

@defer.deferredGenerator
@defer.inlineCallbacks
def test_change_consumer_cb(self):
status = self.makeStatus()

Expand All @@ -130,11 +127,8 @@ class W(object):
watcher.changeAdded = mock.Mock(name='changeAdded')
status.subscribe(watcher)

wfd = defer.waitForDeferred(
status.change_consumer_cb('change.13.new',
dict(changeid=13)))
yield wfd
wfd.getResult()
yield status.change_consumer_cb('change.13.new',
dict(changeid=13))

self.assertTrue(watcher.changeAdded.called)
args, kwargs = watcher.changeAdded.call_args
Expand Down

0 comments on commit 1cb10b3

Please sign in to comment.