**** CubicPower OpenStack Study ****
def upgrade(active_plugins=None, options=None):
if not migration.should_run(active_plugins, migration_for_plugins):
return
op.add_column('ml2_port_bindings',
sa.Column('vif_details', sa.String(length=4095),
nullable=False, server_default=''))
migr_context = context.get_context()
with context.begin_transaction():
for value in ('true', 'false'):
migr_context.execute(
"UPDATE ml2_port_bindings SET"
" vif_details = '{\"port_filter\": %(value)s}'"
" WHERE cap_port_filter = %(value)s" % {'value': value})
op.drop_column('ml2_port_bindings', 'cap_port_filter')
**** CubicPower OpenStack Study ****
def downgrade(active_plugins=None, options=None):
if not migration.should_run(active_plugins, migration_for_plugins):
return
op.add_column('ml2_port_bindings',
sa.Column('cap_port_filter', sa.Boolean(),
nullable=False, default=False))
migr_context = context.get_context()
with context.begin_transaction():
migr_context.execute(
"UPDATE ml2_port_bindings SET"
" cap_port_filter = true"
" WHERE vif_details LIKE '%\"port_filter\": true%'")
op.drop_column('ml2_port_bindings', 'vif_details')