Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
davebx committed Mar 14, 2014
2 parents 92ea1cd + fe57891 commit 59faa50
Show file tree
Hide file tree
Showing 40 changed files with 1,115 additions and 265 deletions.
2 changes: 1 addition & 1 deletion common/validate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ fi
# shell behavior when piping to 'while'
tempfile=$(mktemp)
trap 'rm -f ${tempfile}' 1 2 3 15
git diff --name-only $REVRANGE | grep '\.py$' | grep -v '\(^master/\(contrib\|docs\)\|/setup\.py\)' > ${tempfile}
git diff --name-only $REVRANGE | grep '\.py$' | grep -v '\(^master/docs\|/setup\.py\)' > ${tempfile}
py_files=()
while read line; do
if test -f "${line}"; then
Expand Down
16 changes: 16 additions & 0 deletions master/buildbot/db/enginestrategy.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"""

import os
import re
import sqlalchemy as sa

from buildbot.util import sautils
Expand Down Expand Up @@ -163,9 +164,24 @@ class ReconnectingListener(object):
else:
sa.event.listen(engine.pool, 'checkout', checkout_listener)

def check_sqlalchemy_version(self):
version = getattr(sa, '__version__', '0')
try:
version_digits = re.sub('[^0-9.]', '', version)
version_tup = tuple(map(int, version_digits.split('.')))
except TypeError:
pass

if version_tup < (0, 6):
raise RuntimeError("SQLAlchemy version %s is too old" % (version,))
if version_tup > (0, 7, 10):
raise RuntimeError("SQLAlchemy version %s is not supported by "
"SQLAlchemy-Migrate" % (version,))

def create(self, name_or_url, **kwargs):
if 'basedir' not in kwargs:
raise TypeError('no basedir supplied to create_engine')
self.check_sqlalchemy_version()

max_conns = None

Expand Down
21 changes: 14 additions & 7 deletions master/buildbot/db/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

import migrate
import migrate.versioning.repository
import migrate.versioning.schema
import sqlalchemy as sa

from migrate import exceptions
Expand All @@ -25,6 +24,12 @@
from twisted.python import log
from twisted.python import util

try:
from migrate.versioning.schema import ControlledSchema
assert ControlledSchema # hush pyflakes
except ImportError:
ControlledSchema = None


class Model(base.DBConnectorComponent):
#
Expand Down Expand Up @@ -426,15 +431,19 @@ class Model(base.DBConnectorComponent):
repo_path = util.sibpath(__file__, "migrate")

def is_current(self):
if ControlledSchema is None:
# this should have been caught earlier by enginestrategy.py with a
# nicer error message
raise ImportError("SQLAlchemy/SQLAlchemy-Migrate version conflict")

def thd(engine):
# we don't even have to look at the old version table - if there's
# no migrate_version, then we're not up to date.
repo = migrate.versioning.repository.Repository(self.repo_path)
repo_version = repo.latest
try:
# migrate.api doesn't let us hand in an engine
schema = migrate.versioning.schema.ControlledSchema(engine,
self.repo_path)
schema = ControlledSchema(engine, self.repo_path)
db_version = schema.version
except exceptions.DatabaseNotControlledError:
return False
Expand Down Expand Up @@ -469,8 +478,7 @@ def table_exists(engine, tbl):
# methods perform similar wrapping functions to what is done by the API
# functions, but without disposing of the engine.
def upgrade(engine):
schema = migrate.versioning.schema.ControlledSchema(engine,
self.repo_path)
schema = ControlledSchema(engine, self.repo_path)
changeset = schema.changeset(None)
for version, change in changeset:
log.msg('migrating schema version %s -> %d'
Expand Down Expand Up @@ -498,8 +506,7 @@ def check_sqlalchemy_migrate_version():
"The minimum version is 0.6.1." % (version,))

def version_control(engine, version=None):
migrate.versioning.schema.ControlledSchema.create(engine,
self.repo_path, version)
ControlledSchema.create(engine, self.repo_path, version)

# the upgrade process must run in a db thread
def thd(engine):
Expand Down
2 changes: 2 additions & 0 deletions master/buildbot/process/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ def setLocks(self, lockList):
for access in lockList]

def setSlaveEnvironment(self, env):
# TODO: remove once we don't have anything depending on this method or attribute
self.slaveEnvironment = env

def getSourceStamp(self, codebase=''):
Expand Down Expand Up @@ -320,6 +321,7 @@ def setupBuild(self, expectations):
step = factory.buildStep()
step.setBuild(self)
step.setBuildSlave(self.slavebuilder.slave)
# TODO: remove once we don't have anything depending on setDefaultWorkdir
if callable(self.workdir):
step.setDefaultWorkdir(self.workdir(self.sources))
else:
Expand Down
Loading

0 comments on commit 59faa50

Please sign in to comment.