def upgrade(): engine = op.get_bind() DBSession.configure(bind=engine) Base.metadata.bind = engine # Add the new columns op.add_column('releases', sa.Column('stable_tag', sa.UnicodeText())) op.add_column('releases', sa.Column('testing_tag', sa.UnicodeText())) op.add_column('releases', sa.Column('candidate_tag', sa.UnicodeText())) op.add_column('releases', sa.Column('pending_testing_tag', sa.UnicodeText())) op.add_column('releases', sa.Column('pending_stable_tag', sa.UnicodeText())) op.add_column('releases', sa.Column('override_tag', sa.UnicodeText())) # Add values for all releases in those new columns with transaction.manager: for r in DBSession.query(Release): r.stable_tag = "%s-updates" % r.dist_tag r.testing_tag = "%s-testing" % r.stable_tag r.candidate_tag = "%s-candidate" % r.stable_tag r.pending_testing_tag = "%s-pending" % r.testing_tag r.pending_stable_tag = "%s-pending" % r.stable_tag r.override_tag = "%s-override" % r.dist_tag # Now make the new columns not-nullable op.alter_column('releases', 'stable_tag', nullable=False) op.alter_column('releases', 'testing_tag', nullable=False) op.alter_column('releases', 'candidate_tag', nullable=False) op.alter_column('releases', 'pending_testing_tag', nullable=False) op.alter_column('releases', 'pending_stable_tag', nullable=False) op.alter_column('releases', 'override_tag', nullable=False) # And drop the old columns op.drop_column('releases', '_stable_tag') op.drop_column('releases', '_testing_tag') op.drop_column('releases', '_candidate_tag')
def setUp(self): fd, self.db_filename = tempfile.mkstemp(prefix='bodhi-testing-', suffix='.db') db_path = 'sqlite:///%s' % self.db_filename # The BUILD_ID environment variable is set by Jenkins and allows us to # detect if # we are running the tests in jenkins or not # https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-below if os.environ.get('BUILD_ID'): faitout = 'http://209.132.184.152/faitout/' try: import requests req = requests.get('%s/new' % faitout) if req.status_code == 200: db_path = req.text print 'Using faitout at: %s' % db_path except: pass engine = create_engine(db_path) DBSession.configure(bind=engine) Base.metadata.create_all(engine) self.db_factory = transactional_session_maker with self.db_factory() as session: populate(session) assert session.query(Update).count() == 1 self.koji = buildsys.get_session() self.koji.clear() # clear out our dev introspection self.msg = makemsg() self.tempdir = tempfile.mkdtemp('bodhi') self.masher = Masher(FakeHub(), db_factory=self.db_factory, mash_dir=self.tempdir)
def setUp(self): engine = create_engine(DB_PATH) DBSession.configure(bind=engine) Base.metadata.create_all(engine) self.db = DBSession() populate(self.db) # Initialize our temporary repo self.tempdir = tempfile.mkdtemp("bodhi") self.temprepo = join(self.tempdir, "f17-updates-testing") mkmetadatadir(join(self.temprepo, "f17-updates-testing", "i386")) self.repodata = join(self.temprepo, "f17-updates-testing", "i386", "repodata") assert exists(join(self.repodata, "repomd.xml")) DevBuildsys.__rpms__ = [ { "arch": "src", "build_id": 6475, "buildroot_id": 1883, "buildtime": 1178868422, "epoch": None, "id": 62330, "name": "bodhi", "nvr": "bodhi-2.0-1.fc17", "release": "1.fc17", "size": 761742, "version": "2.0", } ]
def downgrade(): engine = op.get_bind() DBSession.configure(bind=engine) Base.metadata.bind = engine with transaction.manager: updates = DBSession.query(Update) for u in updates: u.critpath = None
def upgrade(): op.add_column('releases', sa.Column('branch', sa.Unicode(length=10))) op.create_unique_constraint(None, 'releases', ['branch']) engine = op.get_bind() DBSession.configure(bind=engine) Base.metadata.bind = engine with transaction.manager: for release in DBSession.query(Release).all(): release.branch = release.name.lower()
def upgrade(): engine = op.get_bind() DBSession.configure(bind=engine) Base.metadata.bind = engine with transaction.manager: updates = DBSession.query(Update) for u in updates: if u.suggest is None: u.suggest = UpdateSuggestion.unspecified
def upgrade(): engine = op.get_bind() DBSession.configure(bind=engine) Base.metadata.bind = engine with transaction.manager: updates = DBSession.query(Update) for u in updates: if u.pushed is None: u.pushed = False
def setup(self): engine = create_engine('sqlite://') DBSession.configure(bind=engine) Base.metadata.create_all(engine) try: new_attrs = {} new_attrs.update(self.attrs) new_attrs.update(self.do_get_dependencies()) self.obj = self.klass(**new_attrs) DBSession.add(self.obj) DBSession.flush() return self.obj except: DBSession.rollback() raise
def setUp(self): engine = create_engine(DB_PATH) DBSession.configure(bind=engine) log.debug('Creating all models for %s' % engine) Base.metadata.create_all(engine) self.db = DBSession() populate(self.db) self.app = TestApp(main({}, testing=u'guest', **self.app_settings)) # Track sql statements in every test self.sql_statements = [] def track(conn, cursor, statement, param, ctx, many): self.sql_statements.append(statement) event.listen(engine, "before_cursor_execute", track)
def __init__(self, hub, db_factory=None, *args, **kwargs): if not db_factory: config_uri = "/etc/bodhi/production.ini" self.settings = get_appsettings(config_uri) engine = engine_from_config(self.settings, "sqlalchemy.") DBSession.configure(bind=engine) Base.metadata.create_all(engine) self.db_factory = transactional_session_maker else: self.db_factory = db_factory prefix = hub.config.get("topic_prefix") env = hub.config.get("environment") self.topic = [prefix + "." + env + ".bodhi.update.request.testing", prefix + "." + env + ".bodhi.update.edit"] self.handle_bugs = bool(self.settings.get("bodhi_email")) if not self.handle_bugs: log.warn("No bodhi_email defined; not fetching bug details") super(UpdatesHandler, self).__init__(hub, *args, **kwargs) log.info("Bodhi updates handler listening on:\n" "%s" % pprint.pformat(self.topic))
def upgrade(): engine = op.get_bind() DBSession.configure(bind=engine) Base.metadata.bind = engine critpath_pkgs = {} for release in DBSession.query(Release): relname = release.name critpath_pkgs[relname] = sorted(get_critpath_pkgs(relname.lower())) with transaction.manager: updates = DBSession.query(Update) for up in updates: for build in up.builds: if build.package.name in critpath_pkgs[up.release.name]: up.critpath = True break else: up.critpath = False
def downgrade(): engine = op.get_bind() DBSession.configure(bind=engine) Base.metadata.bind = engine # Add the old columns op.add_column('releases', sa.Column('_stable_tag', sa.UnicodeText())) op.add_column('releases', sa.Column('_testing_tag', sa.UnicodeText())) op.add_column('releases', sa.Column('_candidate_tag', sa.UnicodeText())) with transaction.manager: for r in DBSession.query(Release): r._stable_tag = r.stable_tag r._testing_tag = r.testing_tag r._candidate_tag = r.candidate_tag # And drop the new columns op.drop_column('releases', 'stable_tag') op.drop_column('releases', 'testing_tag') op.drop_column('releases', 'candidate_tag') op.drop_column('releases', 'pending_testing_tag') op.drop_column('releases', 'pending_stable_tag') op.drop_column('releases', 'override_tag')
def __init__(self, hub, db_factory=None, mash_dir=config.get('mash_dir'), *args, **kw): if not db_factory: config_uri = '/etc/bodhi/production.ini' settings = get_appsettings(config_uri) engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.create_all(engine) self.db_factory = transactional_session_maker else: self.db_factory = db_factory buildsys.setup_buildsystem(config) self.mash_dir = mash_dir prefix = hub.config.get('topic_prefix') env = hub.config.get('environment') self.topic = prefix + '.' + env + '.' + hub.config.get('masher_topic') self.valid_signer = hub.config.get('releng_fedmsg_certname') if not self.valid_signer: log.warn('No releng_fedmsg_certname defined' 'Cert validation disabled') super(Masher, self).__init__(hub, *args, **kw) log.info('Bodhi masher listening on topic: %s' % self.topic)