|
Pierre-Yves Chibon |
83efe2 |
"""Add the default hook to all projects
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
Revision ID: 26af5c3602a0
|
|
Pierre-Yves Chibon |
83efe2 |
Revises: 644ef887bb6f
|
|
Pierre-Yves Chibon |
83efe2 |
Create Date: 2016-10-08 12:14:31.155018
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
"""
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
# revision identifiers, used by Alembic.
|
|
Pierre-Yves Chibon |
83efe2 |
revision = '26af5c3602a0'
|
|
Pierre-Yves Chibon |
83efe2 |
down_revision = '644ef887bb6f'
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
from alembic import op
|
|
Pierre-Yves Chibon |
83efe2 |
import sqlalchemy as sa
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
try:
|
|
Pierre-Yves Chibon |
83efe2 |
import pagure.lib.plugins
|
|
Pierre-Yves Chibon |
83efe2 |
from pagure.lib import model
|
|
Pierre-Yves Chibon |
83efe2 |
except ImportError:
|
|
Pierre-Yves Chibon |
83efe2 |
import sys
|
|
Pierre-Yves Chibon |
83efe2 |
sys.path.insert(0, '.')
|
|
Pierre-Yves Chibon |
83efe2 |
import pagure.lib.plugins
|
|
Pierre-Yves Chibon |
83efe2 |
from pagure.lib import model
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
def upgrade():
|
|
Pierre-Yves Chibon |
83efe2 |
''' Add the default hook to all existing projects.
|
|
Pierre-Yves Chibon |
83efe2 |
'''
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
engine = op.get_bind()
|
|
Pierre-Yves Chibon |
83efe2 |
Session = sa.orm.scoped_session(sa.orm.sessionmaker())
|
|
Pierre-Yves Chibon |
83efe2 |
Session.configure(bind=engine)
|
|
Pierre-Yves Chibon |
83efe2 |
session = Session()
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
# Update all the existing projects
|
|
Pierre-Yves Chibon |
83efe2 |
for project in session.query(model.Project).all():
|
|
Pierre-Yves Chibon |
70b1d9 |
print 'Installing %s' % project.fullname
|
|
Pierre-Yves Chibon |
83efe2 |
# Install the default hook
|
|
Pierre-Yves Chibon |
83efe2 |
plugin = pagure.lib.plugins.get_plugin('default')
|
|
Pierre-Yves Chibon |
83efe2 |
dbobj = plugin.db_object()
|
|
Pierre-Yves Chibon |
83efe2 |
dbobj.active = True
|
|
Pierre-Yves Chibon |
83efe2 |
dbobj.project_id = project.id
|
|
Pierre-Yves Chibon |
83efe2 |
session.add(dbobj)
|
|
Pierre-Yves Chibon |
83efe2 |
session.flush()
|
|
Pierre-Yves Chibon |
83efe2 |
plugin.set_up(project)
|
|
Pierre-Yves Chibon |
83efe2 |
plugin.install(project, dbobj)
|
|
Pierre-Yves Chibon |
9ebb18 |
# Save the change
|
|
Pierre-Yves Chibon |
9ebb18 |
session.commit()
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
def downgrade():
|
|
Pierre-Yves Chibon |
83efe2 |
engine = op.get_bind()
|
|
Pierre-Yves Chibon |
83efe2 |
Session = sa.orm.scoped_session(sa.orm.sessionmaker())
|
|
Pierre-Yves Chibon |
83efe2 |
Session.configure(bind=engine)
|
|
Pierre-Yves Chibon |
83efe2 |
session = Session()
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
83efe2 |
# Update all the existing projects
|
|
Pierre-Yves Chibon |
83efe2 |
for project in session.query(model.Project).all():
|
|
Pierre-Yves Chibon |
83efe2 |
# Install the default hook
|
|
Pierre-Yves Chibon |
83efe2 |
plugin = pagure.lib.plugins.get_plugin('default')
|
|
Pierre-Yves Chibon |
83efe2 |
dbobj = plugin.db_object()
|
|
Pierre-Yves Chibon |
83efe2 |
dbobj.active = False
|
|
Pierre-Yves Chibon |
83efe2 |
dbobj.project_id = project.id
|
|
Pierre-Yves Chibon |
83efe2 |
session.add(dbobj)
|
|
Pierre-Yves Chibon |
83efe2 |
session.flush()
|
|
Pierre-Yves Chibon |
83efe2 |
plugin.remove(project, dbobj)
|
|
Pierre-Yves Chibon |
83efe2 |
|
|
Pierre-Yves Chibon |
9ebb18 |
# Save the change
|
|
Pierre-Yves Chibon |
9ebb18 |
session.commit()
|