<s> """<STR_LIT>""" <EOL> revision = '<STR_LIT>' <EOL> down_revision = '<STR_LIT>' <EOL> import uuid <EOL> from alembic import op <EOL> from oslo_serialization import jsonutils <EOL> import sqlalchemy as sa <EOL> from sqlalchemy . sql import text <EOL> from nailgun . db . sqlalchemy . models . fields import JSON <EOL> from nailgun . utils . migration import drop_enum <EOL> from nailgun . utils . migration import upgrade_release_attributes_51_to_60 <EOL> from nailgun . utils . migration import upgrade_release_fill_orchestrator_data <EOL> from nailgun . utils . migration import upgrade_release_roles_51_to_60 <EOL> from nailgun . utils . migration import upgrade_release_set_deployable_false <EOL> ENUMS = ( <EOL> '<STR_LIT>' , <EOL> ) <EOL> ADDED_ROLES_META = { '<STR_LIT>' : { '<STR_LIT>' : True } } <EOL> def upgrade ( ) : <EOL> """<STR_LIT>""" <EOL> upgrade_schema ( ) <EOL> upgrade_data ( ) <EOL> def downgrade ( ) : <EOL> """<STR_LIT>""" <EOL> downgrade_data ( ) <EOL> downgrade_schema ( ) <EOL> def upgrade_schema ( ) : <EOL> op . add_column ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . Boolean ( ) , <EOL> nullable = False , <EOL> server_default = '<STR_LIT:true>' , <EOL> ) <EOL> ) <EOL> op . create_table ( '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT:id>' , sa . Integer , nullable = False ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . String ( length = <NUM_LIT:64> ) , <EOL> nullable = True <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . String ( length = <NUM_LIT:64> ) , <EOL> nullable = False <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . String ( length = <NUM_LIT:64> ) , <EOL> nullable = False <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . Enum ( '<STR_LIT>' , '<STR_LIT>' , <EOL> name = '<STR_LIT>' ) , <EOL> nullable = False <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . DateTime , <EOL> nullable = False <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . DateTime , <EOL> nullable = True <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . Boolean , <EOL> default = False <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> JSON ( ) , <EOL> nullable = False <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . Integer , <EOL> nullable = True <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . String ( <NUM_LIT> ) , <EOL> nullable = True <EOL> ) , <EOL> sa . PrimaryKeyConstraint ( '<STR_LIT:id>' ) ) <EOL> op . create_table ( '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT:id>' , sa . Integer , nullable = False ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> sa . String ( <NUM_LIT> ) , <EOL> nullable = False <EOL> ) , <EOL> sa . Column ( <EOL> '<STR_LIT>' , <EOL> JSON ( ) , <EOL> default = { } <EOL> ) , <EOL> sa . PrimaryKeyConstraint ( '<STR_LIT:id>' ) ) <EOL> op . create_table ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT:id>' , sa . Integer ( ) , nullable = False ) , <EOL> sa . Column ( '<STR_LIT:name>' , sa . String ( length = <NUM_LIT:100> ) , nullable = False ) , <EOL> sa . Column ( '<STR_LIT:title>' , sa . String ( length = <NUM_LIT:100> ) , nullable = False ) , <EOL> sa . Column ( '<STR_LIT:version>' , sa . String ( length = <NUM_LIT:32> ) , nullable = False ) , <EOL> sa . Column ( '<STR_LIT:description>' , sa . String ( length = <NUM_LIT> ) , nullable = True ) , <EOL> sa . Column ( '<STR_LIT>' , JSON ( ) , nullable = True ) , <EOL> sa . Column ( '<STR_LIT>' , JSON ( ) , nullable = True ) , <EOL> sa . Column ( '<STR_LIT>' , sa . String ( length = <NUM_LIT:32> ) , nullable = False ) , <EOL> sa . PrimaryKeyConstraint ( '<STR_LIT:id>' ) , <EOL> sa . UniqueConstraint ( '<STR_LIT:name>' , '<STR_LIT:version>' , name = '<STR_LIT>' ) <EOL> ) <EOL> op . create_table ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT:id>' , sa . Integer ( ) , nullable = False ) , <EOL> sa . Column ( '<STR_LIT>' , sa . Integer ( ) , nullable = False ) , <EOL> sa . Column ( '<STR_LIT>' , sa . Integer ( ) , nullable = True ) , <EOL> sa . ForeignKeyConstraint ( [ '<STR_LIT>' ] , [ '<STR_LIT>' ] , ) , <EOL> sa . ForeignKeyConstraint ( <EOL> [ '<STR_LIT>' ] , [ '<STR_LIT>' ] , ondelete = '<STR_LIT>' ) , <EOL> sa . PrimaryKeyConstraint ( '<STR_LIT:id>' ) <EOL> ) <EOL> op . create_table ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT:id>' , sa . Integer ( ) , nullable = False ) , <EOL> sa . Column ( '<STR_LIT>' , sa . Integer ( ) , nullable = True ) , <EOL> sa . Column ( '<STR_LIT:name>' , sa . String ( length = <NUM_LIT:50> ) , nullable = False ) , <EOL> sa . ForeignKeyConstraint ( [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) , <EOL> sa . PrimaryKeyConstraint ( '<STR_LIT:id>' ) <EOL> ) <EOL> op . create_unique_constraint ( None , '<STR_LIT>' , [ '<STR_LIT:name>' ] ) <EOL> op . add_column ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT>' , sa . Integer ( ) , nullable = True ) <EOL> ) <EOL> op . add_column ( '<STR_LIT>' , sa . Column ( '<STR_LIT>' , sa . Integer ( ) , nullable = True ) ) <EOL> connection = op . get_bind ( ) <EOL> upgrade_node_groups ( connection ) <EOL> op . drop_column ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> op . add_column ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT>' , sa . Boolean ( ) , <EOL> nullable = False , server_default = '<STR_LIT:false>' ) ) <EOL> op . add_column ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT>' , sa . Boolean ( ) , <EOL> nullable = False , server_default = '<STR_LIT:false>' ) ) <EOL> def upgrade_releases ( ) : <EOL> connection = op . get_bind ( ) <EOL> select = text ( <EOL> """<STR_LIT>""" ) <EOL> update = text ( <EOL> """<STR_LIT>""" ) <EOL> r = connection . execute ( select ) <EOL> for release in r : <EOL> attrs_meta = upgrade_release_attributes_51_to_60 ( <EOL> jsonutils . loads ( release [ <NUM_LIT:1> ] ) ) <EOL> roles_meta = upgrade_release_roles_51_to_60 ( <EOL> jsonutils . loads ( release [ <NUM_LIT:2> ] ) , add_meta = ADDED_ROLES_META ) <EOL> connection . execute ( <EOL> update , <EOL> id = release [ <NUM_LIT:0> ] , <EOL> attrs = jsonutils . dumps ( attrs_meta ) , <EOL> roles = jsonutils . dumps ( roles_meta ) <EOL> ) <EOL> def upgrade_data ( ) : <EOL> connection = op . get_bind ( ) <EOL> upgrade_release_set_deployable_false ( <EOL> connection , [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] ) <EOL> upgrade_release_fill_orchestrator_data ( connection , [ '<STR_LIT>' ] ) <EOL> dump_master_node_settings ( connection ) <EOL> upgrade_releases ( ) <EOL> def downgrade_schema ( ) : <EOL> op . drop_column ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> op . drop_table ( '<STR_LIT>' ) <EOL> op . drop_table ( '<STR_LIT>' ) <EOL> for enum in ENUMS : <EOL> drop_enum ( enum ) <EOL> op . drop_table ( '<STR_LIT>' ) <EOL> op . drop_table ( '<STR_LIT>' ) <EOL> op . drop_column ( u'<STR_LIT>' , '<STR_LIT>' ) <EOL> op . drop_column ( u'<STR_LIT>' , '<STR_LIT>' ) <EOL> op . add_column ( <EOL> '<STR_LIT>' , <EOL> sa . Column ( '<STR_LIT>' , sa . Integer ( ) , sa . ForeignKey ( '<STR_LIT>' ) ) <EOL> ) <EOL> op . drop_column ( u'<STR_LIT>' , '<STR_LIT>' ) <EOL> op . drop_table ( '<STR_LIT>' ) <EOL> op . drop_column ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> op . drop_column ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> def upgrade_node_groups ( connection ) : <EOL> cluster_select = sa . text ( "<STR_LIT>" ) <EOL> node_sel = sa . text ( "<STR_LIT>" ) <EOL> node_update = sa . text ( <EOL> """<STR_LIT>""" ) <EOL> group_insert = sa . text ( """<STR_LIT>""" ) <EOL> net_select = sa . text ( """<STR_LIT>""" ) <EOL> net_update = sa . text ( """<STR_LIT>""" ) <EOL> clusters = connection . execute ( cluster_select ) <EOL> for cluster in clusters : <EOL> connection . execute ( group_insert , cluster_id = cluster [ <NUM_LIT:0> ] ) <EOL> nodes = connection . execute ( node_sel , cluster_id = cluster [ <NUM_LIT:0> ] ) <EOL> for node in nodes : <EOL> connection . execute ( node_update , cluster_id = cluster [ <NUM_LIT:0> ] , id = node [ <NUM_LIT:0> ] ) <EOL> nets = connection . execute ( net_select , cluster_id = cluster [ <NUM_LIT:0> ] ) <EOL> for net in nets : <EOL> connection . execute ( net_update , cluster_id = cluster [ <NUM_LIT:0> ] , id = net [ <NUM_LIT:0> ] ) <EOL> def dump_master_node_settings ( connection ) : <EOL> """<STR_LIT>""" <EOL> generated_uuid = str ( uuid . uuid4 ( ) ) <EOL> settings = jsonutils . dumps ( _master_node_settings ) <EOL> update = text ( <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> ) <EOL> connection . execute ( update , master_node_uid = generated_uuid , <EOL> settings = settings ) <EOL> def downgrade_data ( ) : <EOL> pass <EOL> _master_node_settings = { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:type>" : "<STR_LIT>" , <EOL> "<STR_LIT:value>" : True , <EOL> "<STR_LIT:label>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : <NUM_LIT:10> <EOL> } , <EOL> "<STR_LIT>" : { <EOL> "<STR_LIT:type>" : "<STR_LIT>" , <EOL> "<STR_LIT:value>" : False <EOL> } <EOL> } <EOL> } </s>
