]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix enums usage for postgres in migrations
authorAnn Kamyshnikova <akamyshnikova@mirantis.com>
Tue, 22 Oct 2013 12:21:05 +0000 (16:21 +0400)
committerAnn Kamyshnikova <akamyshnikova@mirantis.com>
Thu, 17 Jul 2014 07:58:48 +0000 (11:58 +0400)
For downgrade with postgres it is not enough to just drop_table if
table contains enums. The enums should be removed separately after
deleting the table.

Also, if a migration uses an existing enum then postgresql needs some
specific code to re-use this enum.

Closes-Bug: #1243213

Change-Id: Ie5bb8282f7b289c917679192a0d722eb29b8d30f

13 files changed:
neutron/db/migration/alembic_migrations/versions/1d76643bcec4_nvp_netbinding.py
neutron/db/migration/alembic_migrations/versions/363468ac592c_nvp_network_gw.py
neutron/db/migration/alembic_migrations/versions/39cf3f799352_fwaas_havana_2_model.py
neutron/db/migration/alembic_migrations/versions/3c6e57a23db4_add_multiprovider.py
neutron/db/migration/alembic_migrations/versions/3cb5d900c5de_security_groups.py
neutron/db/migration/alembic_migrations/versions/40b0aff0302e_mlnx_initial.py
neutron/db/migration/alembic_migrations/versions/45680af419f9_nvp_qos.py
neutron/db/migration/alembic_migrations/versions/49f5e553f61f_ml2_security_groups.py
neutron/db/migration/alembic_migrations/versions/52ff27f7567a_support_for_vpnaas.py
neutron/db/migration/alembic_migrations/versions/54c2c487e913_lbaas.py
neutron/db/migration/alembic_migrations/versions/569e98a8132b_metering.py
neutron/db/migration/alembic_migrations/versions/f44ab9871cd6_bsn_security_groups.py
neutron/db/migration/alembic_migrations/versions/f489cf14a79c_lbaas_havana.py

index e896a8f0591333a0da436baba738288af25d5bdf..b271d868b4cda78b2121c36e0c506db5a6ed2884 100644 (file)
@@ -39,6 +39,9 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+nvp_network_bindings_binding_type = sa.Enum(
+    'flat', 'vlan', 'stt', 'gre', name='nvp_network_bindings_binding_type')
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -47,9 +50,7 @@ def upgrade(active_plugins=None, options=None):
     op.create_table(
         'nvp_network_bindings',
         sa.Column('network_id', sa.String(length=36), nullable=False),
-        sa.Column('binding_type',
-                  sa.Enum('flat', 'vlan', 'stt', 'gre',
-                          name='nvp_network_bindings_binding_type'),
+        sa.Column('binding_type', nvp_network_bindings_binding_type,
                   nullable=False),
         sa.Column('tz_uuid', sa.String(length=36), nullable=True),
         sa.Column('vlan_id', sa.Integer(), nullable=True),
@@ -63,3 +64,4 @@ def downgrade(active_plugins=None, options=None):
         return
 
     op.drop_table('nvp_network_bindings')
+    nvp_network_bindings_binding_type.drop(op.get_bind(), checkfirst=False)
index a115c43286f7e4e05e277491e2fedf9bc77c5288..515b9651fe55d6a21a5a12d1ee72e99b4b939b2d 100644 (file)
@@ -40,6 +40,8 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+net_conn_seg_type = sa.Enum('flat', 'vlan', name="net_conn_seg_type")
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -68,9 +70,7 @@ def upgrade(active_plugins=None, options=None):
                               nullable=True),
                     sa.Column('network_id', sa.String(length=36),
                               nullable=True),
-                    sa.Column('segmentation_type',
-                              sa.Enum('flat', 'vlan',
-                                      name="net_conn_seg_type"),
+                    sa.Column('segmentation_type', net_conn_seg_type,
                               nullable=True),
                     sa.Column('segmentation_id', sa.Integer(),
                               nullable=True),
@@ -94,5 +94,6 @@ def downgrade(active_plugins=None, options=None):
         return
 
     op.drop_table('networkconnections')
+    net_conn_seg_type.drop(op.get_bind(), checkfirst=False)
     op.drop_table('networkgatewaydevices')
     op.drop_table('networkgateways')
index d5b1a7bdbb68210e5365cb943d2ab64f14e7a714..a600fcafa4731681fb1bcc592a65099e0cfcf068 100644 (file)
@@ -36,12 +36,15 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+firewallrules_action = sa.Enum('allow', 'deny', name='firewallrules_action')
+
 
 def downgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('firewall_rules')
+    firewallrules_action.drop(op.get_bind(), checkfirst=False)
     op.drop_table('firewalls')
     op.drop_table('firewall_policies')
 
@@ -94,9 +97,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('source_port_range_max', sa.Integer(), nullable=True),
         sa.Column('destination_port_range_min', sa.Integer(), nullable=True),
         sa.Column('destination_port_range_max', sa.Integer(), nullable=True),
-        sa.Column('action',
-                  sa.Enum('allow', 'deny', name='firewallrules_action'),
-                  nullable=True),
+        sa.Column('action', firewallrules_action, nullable=True),
         sa.Column('enabled', sa.Boolean(), autoincrement=False,
                   nullable=True),
         sa.Column('position', sa.Integer(), autoincrement=False,
index 3cbfb542328c169c8b2d73075f323eed623321e8..1b134fae783ce1b851df9f5cbc0474cbc01a8125 100644 (file)
@@ -36,10 +36,25 @@ migration_for_plugins = [
 
 from alembic import op
 import sqlalchemy as sa
+from sqlalchemy.dialects import postgresql
 
 from neutron.db import migration
 
 
+def get_enum():
+    engine = op.get_bind().engine
+    # In PostgreSQL types created separately, so if type was already created in
+    # 1341ed32cc1e_nvp_netbinding_update it should be created one time.
+    # Use parameter create_type=False for that.
+    if engine.name == 'postgresql':
+        return postgresql.ENUM('flat', 'vlan', 'stt', 'gre', 'l3_ext',
+                               name='nvp_network_bindings_binding_type',
+                               create_type=False)
+    else:
+        return sa.Enum('flat', 'vlan', 'stt', 'gre', 'l3_ext',
+                       name='nvp_network_bindings_binding_type')
+
+
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
         return
@@ -55,11 +70,7 @@ def upgrade(active_plugins=None, options=None):
     op.create_table('rename_nvp_network_bindings',
                     sa.Column('network_id', sa.String(length=36),
                               primary_key=True),
-                    sa.Column('binding_type',
-                              sa.Enum(
-                                  'flat', 'vlan', 'stt', 'gre', 'l3_ext',
-                                  name=(
-                                      'nvp_network_bindings_binding_type')),
+                    sa.Column('binding_type', get_enum(),
                               nullable=False, primary_key=True),
                     sa.Column('phy_uuid', sa.String(36), primary_key=True,
                               nullable=True),
@@ -80,17 +91,17 @@ def downgrade(active_plugins=None, options=None):
     # Delete the multi_provider_network entries from nvp_network_bindings
     op.execute("DELETE from nvp_network_bindings WHERE network_id IN "
                "(SELECT network_id from nvp_multi_provider_networks)")
-
     # create table with previous contains
-    op.create_table(
-        'rename_nvp_network_bindings',
-        sa.Column('network_id', sa.String(length=36), primary_key=True),
-        sa.Column('binding_type',
-                  sa.Enum('flat', 'vlan', 'stt', 'gre', 'l3_ext',
-                          name=('nvp_network_bindings_binding_type')),
-                  nullable=False),
-        sa.Column('phy_uuid', sa.String(36), nullable=True),
-        sa.Column('vlan_id', sa.Integer, nullable=True, autoincrement=False))
+    op.create_table('rename_nvp_network_bindings',
+                    sa.Column('network_id', sa.String(length=36),
+                              primary_key=True),
+                    sa.Column('binding_type',
+                              get_enum(),
+                              nullable=False),
+                    sa.Column('phy_uuid', sa.String(36),
+                              nullable=True),
+                    sa.Column('vlan_id', sa.Integer,
+                              nullable=True, autoincrement=False))
 
     # copy data from nvp_network_bindings into rename_nvp_network_bindings
     op.execute("INSERT INTO rename_nvp_network_bindings SELECT network_id, "
index 7f2d2b88d26a83d8bf84ee817ec1c22971f6c52d..c02e106e405d9b5d623f055621036f08564a5d4b 100644 (file)
@@ -44,6 +44,9 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+securitygrouprules_direction = sa.Enum('ingress', 'egress',
+                                       name='securitygrouprules_direction')
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -64,10 +67,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('id', sa.String(length=36), nullable=False),
         sa.Column('security_group_id', sa.String(length=36), nullable=False),
         sa.Column('remote_group_id', sa.String(length=36), nullable=True),
-        sa.Column('direction',
-                  sa.Enum('ingress', 'egress',
-                          name='securitygrouprules_direction'),
-                  nullable=True),
+        sa.Column('direction', securitygrouprules_direction, nullable=True),
         sa.Column('ethertype', sa.String(length=40), nullable=True),
         sa.Column('protocol', sa.String(length=40), nullable=True),
         sa.Column('port_range_min', sa.Integer(), nullable=True),
@@ -97,5 +97,6 @@ def downgrade(active_plugins=None, options=None):
     ### commands auto generated by Alembic - please adjust! ###
     op.drop_table('securitygroupportbindings')
     op.drop_table('securitygrouprules')
+    securitygrouprules_direction.drop(op.get_bind(), checkfirst=False)
     op.drop_table('securitygroups')
     ### end Alembic commands ###
index fd815feba51471cfb9c1ffbcfad5904bbad5a322..99df4ba58d44bb801d8957b753be7507763b8b51 100644 (file)
@@ -36,6 +36,9 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+securitygrouprules_direction = sa.Enum('ingress', 'egress',
+                                       name='securitygrouprules_direction')
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -96,9 +99,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('id', sa.String(length=36), nullable=False),
         sa.Column('security_group_id', sa.String(length=36), nullable=False),
         sa.Column('remote_group_id', sa.String(length=36), nullable=True),
-        sa.Column('direction',
-                  sa.Enum('ingress', 'egress',
-                          name='securitygrouprules_direction'),
+        sa.Column('direction', securitygrouprules_direction,
                   nullable=True),
         sa.Column('ethertype', sa.String(length=40), nullable=True),
         sa.Column('protocol', sa.String(length=40), nullable=True),
@@ -187,6 +188,7 @@ def downgrade(active_plugins=None, options=None):
     op.drop_column('routers', 'enable_snat')
     op.drop_table('port_profile')
     op.drop_table('securitygrouprules')
+    securitygrouprules_direction.drop(op.get_bind(), checkfirst=False)
     op.drop_table('networkdhcpagentbindings')
     op.drop_table('mlnx_network_bindings')
     op.drop_table('quotas')
index b4d5b430e2148d2157b3673f26d6b98aa2a11137..eb2cb57f31e06497d82eb72ed6f3c98c21e348ea 100644 (file)
@@ -40,6 +40,9 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+qosqueues_qos_marking = sa.Enum('untrusted', 'trusted',
+                                name='qosqueues_qos_marking')
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -54,9 +57,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('default', sa.Boolean(), nullable=True),
         sa.Column('min', sa.Integer(), nullable=False),
         sa.Column('max', sa.Integer(), nullable=True),
-        sa.Column('qos_marking', sa.Enum('untrusted', 'trusted',
-                                         name='qosqueues_qos_marking'),
-                  nullable=True),
+        sa.Column('qos_marking', qosqueues_qos_marking, nullable=True),
         sa.Column('dscp', sa.Integer(), nullable=True),
         sa.PrimaryKeyConstraint('id')
     )
@@ -89,4 +90,5 @@ def downgrade(active_plugins=None, options=None):
     op.drop_table('portqueuemappings')
     op.drop_table('networkqueuemappings')
     op.drop_table('qosqueues')
+    qosqueues_qos_marking.drop(op.get_bind(), checkfirst=False)
     ### end Alembic commands ###
index 9451b1dc643b816a5ab4b8a4d6ea014fb65cc1de..43a5cac1cc3ef5be0d7cb9405a23ef635fe4167d 100644 (file)
@@ -36,6 +36,9 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+securitygrouprules_direction = sa.Enum('ingress', 'egress',
+                                       name='securitygrouprules_direction')
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -56,9 +59,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('id', sa.String(length=36), nullable=False),
         sa.Column('security_group_id', sa.String(length=36), nullable=False),
         sa.Column('remote_group_id', sa.String(length=36), nullable=True),
-        sa.Column('direction',
-                  sa.Enum('ingress', 'egress',
-                          name='securitygrouprules_direction'),
+        sa.Column('direction', securitygrouprules_direction,
                   nullable=True),
         sa.Column('ethertype', sa.String(length=40), nullable=True),
         sa.Column('protocol', sa.String(length=40), nullable=True),
@@ -89,5 +90,6 @@ def downgrade(active_plugins=None, options=None):
     ### commands auto generated by Alembic - please adjust! ###
     op.drop_table('securitygroupportbindings')
     op.drop_table('securitygrouprules')
+    securitygrouprules_direction.drop(op.get_bind(), checkfirst=False)
     op.drop_table('securitygroups')
     ### end Alembic commands ###
index f9c1e0f5514cc6e3631ecde4b5e25a9956157d37..049f4ec0eeb5742da51514fcc9ce4fae477f4443 100644 (file)
@@ -35,6 +35,21 @@ from alembic import op
 import sqlalchemy as sa
 
 from neutron.db import migration
+vpn_auth_algorithms = sa.Enum('sha1', name='vpn_auth_algorithms')
+vpn_encrypt_algorithms = sa.Enum('3des', 'aes-128', 'aes-256', 'aes-192',
+                                 name='vpn_encrypt_algorithms')
+ike_phase1_mode = sa.Enum('main', name='ike_phase1_mode')
+vpn_lifetime_units = sa.Enum('seconds', 'kilobytes', name='vpn_lifetime_units')
+ike_versions = sa.Enum('v1', 'v2', name='ike_versions')
+vpn_pfs = sa.Enum('group2', 'group5', 'group14', name='vpn_pfs')
+ipsec_transform_protocols = sa.Enum('esp', 'ah', 'ah-esp',
+                                    name='ipsec_transform_protocols')
+ipsec_encapsulations = sa.Enum('tunnel', 'transport',
+                               name='ipsec_encapsulations')
+vpn_dpd_actions = sa.Enum('hold', 'clear', 'restart', 'disabled',
+                          'restart-by-peer', name='vpn_dpd_actions')
+vpn_initiators = sa.Enum('bi-directional', 'response-only',
+                         name='vpn_initiators')
 
 
 def upgrade(active_plugins=None, options=None):
@@ -48,27 +63,16 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('name', sa.String(length=255), nullable=True),
         sa.Column('description', sa.String(length=255), nullable=True),
         sa.Column(
-            'auth_algorithm',
-            sa.Enum('sha1', name='vpn_auth_algorithms'), nullable=False),
+            'auth_algorithm', vpn_auth_algorithms, nullable=False),
         sa.Column(
-            'encryption_algorithm',
-            sa.Enum('3des', 'aes-128', 'aes-256', 'aes-192',
-                    name='vpn_encrypt_algorithms'), nullable=False),
+            'encryption_algorithm', vpn_encrypt_algorithms, nullable=False),
         sa.Column(
-            'phase1_negotiation_mode',
-            sa.Enum('main', name='ike_phase1_mode'), nullable=False),
+            'phase1_negotiation_mode', ike_phase1_mode, nullable=False),
         sa.Column(
-            'lifetime_units',
-            sa.Enum('seconds', 'kilobytes', name='vpn_lifetime_units'),
-            nullable=False),
+            'lifetime_units', vpn_lifetime_units, nullable=False),
         sa.Column('lifetime_value', sa.Integer(), nullable=False),
-        sa.Column(
-            'ike_version',
-            sa.Enum('v1', 'v2', name='ike_versions'), nullable=False),
-        sa.Column(
-            'pfs',
-            sa.Enum('group2', 'group5', 'group14', name='vpn_pfs'),
-            nullable=False),
+        sa.Column('ike_version', ike_versions, nullable=False),
+        sa.Column('pfs', vpn_pfs, nullable=False),
         sa.PrimaryKeyConstraint('id')
     )
     op.create_table(
@@ -77,35 +81,18 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('id', sa.String(length=36), nullable=False),
         sa.Column('name', sa.String(length=255), nullable=True),
         sa.Column('description', sa.String(length=255), nullable=True),
+        sa.Column('transform_protocol', ipsec_transform_protocols,
+                  nullable=False),
+        sa.Column('auth_algorithm', vpn_auth_algorithms, nullable=False),
+        sa.Column('encryption_algorithm', vpn_encrypt_algorithms,
+                  nullable=False),
         sa.Column(
-            'transform_protocol',
-            sa.Enum('esp', 'ah', 'ah-esp', name='ipsec_transform_protocols'),
-            nullable=False),
-        sa.Column(
-            'auth_algorithm',
-            sa.Enum('sha1', name='vpn_auth_algorithms'), nullable=False),
-        sa.Column(
-            'encryption_algorithm',
-            sa.Enum(
-                '3des', 'aes-128',
-                'aes-256', 'aes-192', name='vpn_encrypt_algorithms'),
-            nullable=False),
-        sa.Column(
-            'encapsulation_mode',
-            sa.Enum('tunnel', 'transport', name='ipsec_encapsulations'),
-            nullable=False),
+            'encapsulation_mode', ipsec_encapsulations, nullable=False),
         sa.Column(
-            'lifetime_units',
-            sa.Enum(
-                'seconds', 'kilobytes',
-                name='vpn_lifetime_units'), nullable=False),
+            'lifetime_units', vpn_lifetime_units, nullable=False),
         sa.Column(
             'lifetime_value', sa.Integer(), nullable=False),
-        sa.Column(
-            'pfs',
-            sa.Enum(
-                'group2', 'group5', 'group14', name='vpn_pfs'),
-            nullable=False),
+        sa.Column('pfs', vpn_pfs, nullable=False),
         sa.PrimaryKeyConstraint('id')
     )
     op.create_table(
@@ -133,18 +120,11 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('route_mode', sa.String(length=8), nullable=False),
         sa.Column('mtu', sa.Integer(), nullable=False),
         sa.Column(
-            'initiator',
-            sa.Enum(
-                'bi-directional', 'response-only', name='vpn_initiators'),
-            nullable=False),
+            'initiator', vpn_initiators, nullable=False),
         sa.Column('auth_mode', sa.String(length=16), nullable=False),
         sa.Column('psk', sa.String(length=255), nullable=False),
         sa.Column(
-            'dpd_action',
-            sa.Enum(
-                'hold', 'clear', 'restart',
-                'disabled', 'restart-by-peer', name='vpn_dpd_actions'),
-            nullable=False),
+            'dpd_action', vpn_dpd_actions, nullable=False),
         sa.Column('dpd_interval', sa.Integer(), nullable=False),
         sa.Column('dpd_timeout', sa.Integer(), nullable=False),
         sa.Column('status', sa.String(length=16), nullable=False),
@@ -176,6 +156,16 @@ def downgrade(active_plugins=None, options=None):
 
     op.drop_table('ipsecpeercidrs')
     op.drop_table('ipsec_site_connections')
+    vpn_dpd_actions.drop(op.get_bind(), checkfirst=False)
+    vpn_initiators.drop(op.get_bind(), checkfirst=False)
     op.drop_table('vpnservices')
     op.drop_table('ipsecpolicies')
+    ipsec_transform_protocols.drop(op.get_bind(), checkfirst=False)
+    ipsec_encapsulations.drop(op.get_bind(), checkfirst=False)
     op.drop_table('ikepolicies')
+    vpn_auth_algorithms.drop(op.get_bind(), checkfirst=False)
+    vpn_encrypt_algorithms.drop(op.get_bind(), checkfirst=False)
+    ike_phase1_mode.drop(op.get_bind(), checkfirst=False)
+    vpn_lifetime_units.drop(op.get_bind(), checkfirst=False)
+    ike_versions.drop(op.get_bind(), checkfirst=False)
+    vpn_pfs.drop(op.get_bind(), checkfirst=False)
index e902e3ba8d884d2eb4c3fb23ec16cd64a4b4cd86..9de6b2dc5bce9619eee805bacdb4cb7fc3b2c0e2 100644 (file)
@@ -35,6 +35,14 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+lb_protocols = sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols")
+sesssionpersistences_type = sa.Enum("SOURCE_IP", "HTTP_COOKIE", "APP_COOKIE",
+                                    name="sesssionpersistences_type")
+pools_lb_method = sa.Enum("ROUND_ROBIN", "LEAST_CONNECTIONS", "SOURCE_IP",
+                          name="pools_lb_method")
+healthmontiors_type = sa.Enum("PING", "TCP", "HTTP", "HTTPS",
+                              name="healthmontiors_type")
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -48,9 +56,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column(u'description', sa.String(255), nullable=True),
         sa.Column(u'port_id', sa.String(36), nullable=True),
         sa.Column(u'protocol_port', sa.Integer(), nullable=False),
-        sa.Column(u'protocol',
-                  sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols"),
-                  nullable=False),
+        sa.Column(u'protocol', lb_protocols, nullable=False),
         sa.Column(u'pool_id', sa.String(36), nullable=False),
         sa.Column(u'status', sa.String(16), nullable=False),
         sa.Column(u'admin_state_up', sa.Boolean(), nullable=False),
@@ -70,12 +76,7 @@ def upgrade(active_plugins=None, options=None):
     op.create_table(
         u'sessionpersistences',
         sa.Column(u'vip_id', sa.String(36), nullable=False),
-        sa.Column(u'type',
-                  sa.Enum("SOURCE_IP",
-                          "HTTP_COOKIE",
-                          "APP_COOKIE",
-                          name="sesssionpersistences_type"),
-                  nullable=False),
+        sa.Column(u'type', sesssionpersistences_type, nullable=False),
         sa.Column(u'cookie_name', sa.String(1024), nullable=True),
         sa.ForeignKeyConstraint(['vip_id'], [u'vips.id'], ),
         sa.PrimaryKeyConstraint(u'vip_id')
@@ -88,15 +89,9 @@ def upgrade(active_plugins=None, options=None):
         sa.Column(u'name', sa.String(255), nullable=True),
         sa.Column(u'description', sa.String(255), nullable=True),
         sa.Column(u'subnet_id', sa.String(36), nullable=False),
-        sa.Column(u'protocol',
-                  sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols"),
-                  nullable=False),
-        sa.Column(u'lb_method',
-                  sa.Enum("ROUND_ROBIN",
-                          "LEAST_CONNECTIONS",
-                          "SOURCE_IP",
-                          name="pools_lb_method"),
-                  nullable=False),
+        sa.Column(u'protocol', lb_protocols, nullable=False),
+
+        sa.Column(u'lb_method', pools_lb_method, nullable=False),
         sa.Column(u'status', sa.String(16), nullable=False),
         sa.Column(u'admin_state_up', sa.Boolean(), nullable=False),
         sa.ForeignKeyConstraint(['vip_id'], [u'vips.id'], ),
@@ -106,13 +101,7 @@ def upgrade(active_plugins=None, options=None):
         u'healthmonitors',
         sa.Column(u'tenant_id', sa.String(255), nullable=True),
         sa.Column(u'id', sa.String(36), nullable=False),
-        sa.Column(u'type',
-                  sa.Enum("PING",
-                          "TCP",
-                          "HTTP",
-                          "HTTPS",
-                          name="healthmontiors_type"),
-                  nullable=False),
+        sa.Column(u'type', healthmontiors_type, nullable=False),
         sa.Column(u'delay', sa.Integer(), nullable=False),
         sa.Column(u'timeout', sa.Integer(), nullable=False),
         sa.Column(u'max_retries', sa.Integer(), nullable=False),
@@ -155,7 +144,12 @@ def downgrade(active_plugins=None, options=None):
     op.drop_table(u'poolstatisticss')
     op.drop_table(u'members')
     op.drop_table(u'healthmonitors')
+    healthmontiors_type.drop(op.get_bind(), checkfirst=False)
     op.drop_table(u'pools')
+    lb_protocols.drop(op.get_bind(), checkfirst=False)
+    pools_lb_method.drop(op.get_bind(), checkfirst=False)
     op.drop_table(u'sessionpersistences')
+    sesssionpersistences_type.drop(op.get_bind(), checkfirst=False)
     op.drop_table(u'poolmonitorassociations')
     op.drop_table(u'vips')
+    lb_protocols.drop(op.get_bind(), checkfirst=False)
index 931e078c18a45e6a1d8d8717235efe2e15167c58..a1b9527db70eeb978ff6f94c749d6c34e0083bc6 100644 (file)
@@ -35,12 +35,16 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+meteringlabels_direction = sa.Enum('ingress', 'egress',
+                                   name='meteringlabels_direction')
+
 
 def downgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
         return
 
     op.drop_table('meteringlabelrules')
+    meteringlabels_direction.drop(op.get_bind(), checkfirst=False)
     op.drop_table('meteringlabels')
 
 
@@ -54,14 +58,12 @@ def upgrade(active_plugins=None, options=None):
                     sa.Column('id', sa.String(length=36), nullable=False),
                     sa.Column('name', sa.String(length=255),
                               nullable=True),
-                    sa.Column('description', sa.String(length=255),
+                    sa.Column('description', sa.String(length=1024),
                               nullable=True),
                     sa.PrimaryKeyConstraint('id'))
     op.create_table('meteringlabelrules',
                     sa.Column('id', sa.String(length=36), nullable=False),
-                    sa.Column('direction',
-                              sa.Enum('ingress', 'egress',
-                                      name='meteringlabels_direction'),
+                    sa.Column('direction', meteringlabels_direction,
                               nullable=True),
                     sa.Column('remote_ip_prefix', sa.String(length=64),
                               nullable=True),
index ec1e9d98024dd5bec1f5463eb8d23933dc9dab2f..bdf7f36fb6e0d21a3ca8097ff808f771179c455a 100644 (file)
@@ -36,6 +36,9 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+securitygrouprules_direction = sa.Enum('ingress', 'egress',
+                                       name='securitygrouprules_direction')
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -56,10 +59,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column('id', sa.String(length=36), nullable=False),
         sa.Column('security_group_id', sa.String(length=36), nullable=False),
         sa.Column('remote_group_id', sa.String(length=36), nullable=True),
-        sa.Column('direction',
-                  sa.Enum('ingress', 'egress',
-                          name='securitygrouprules_direction'),
-                  nullable=True),
+        sa.Column('direction', securitygrouprules_direction, nullable=True),
         sa.Column('ethertype', sa.String(length=40), nullable=True),
         sa.Column('protocol', sa.String(length=40), nullable=True),
         sa.Column('port_range_min', sa.Integer(), nullable=True),
@@ -89,5 +89,6 @@ def downgrade(active_plugins=None, options=None):
     ### commands auto generated by Alembic - please adjust! ###
     op.drop_table('securitygroupportbindings')
     op.drop_table('securitygrouprules')
+    securitygrouprules_direction.drop(op.get_bind(), checkfirst=False)
     op.drop_table('securitygroups')
     ### end Alembic commands ###
index 8432a6dbb523a39eff1127081eb3d3b3ef6d9208..d9ffa00b031b9eca13ee061bc103e0b87e89a46e 100644 (file)
@@ -34,6 +34,15 @@ import sqlalchemy as sa
 
 from neutron.db import migration
 
+lb_protocols = sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols")
+
+sesssionpersistences_type = sa.Enum("SOURCE_IP", "HTTP_COOKIE", "APP_COOKIE",
+                                    name="sesssionpersistences_type")
+pools_lb_method = sa.Enum("ROUND_ROBIN", "LEAST_CONNECTIONS", "SOURCE_IP",
+                          name="pools_lb_method")
+healthmonitors_type = sa.Enum("PING", "TCP", "HTTP", "HTTPS",
+                              name="healthmontiors_type")
+
 
 def upgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
@@ -47,9 +56,7 @@ def upgrade(active_plugins=None, options=None):
         sa.Column(u'description', sa.String(255), nullable=True),
         sa.Column(u'port_id', sa.String(36), nullable=True),
         sa.Column(u'protocol_port', sa.Integer(), nullable=False),
-        sa.Column(u'protocol',
-                  sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols"),
-                  nullable=False),
+        sa.Column(u'protocol', lb_protocols, nullable=False),
         sa.Column(u'pool_id', sa.String(36), nullable=False),
         sa.Column(u'status', sa.String(16), nullable=False),
         sa.Column(u'admin_state_up', sa.Boolean(), nullable=False),
@@ -61,12 +68,7 @@ def upgrade(active_plugins=None, options=None):
     op.create_table(
         u'sessionpersistences',
         sa.Column(u'vip_id', sa.String(36), nullable=False),
-        sa.Column(u'type',
-                  sa.Enum("SOURCE_IP",
-                          "HTTP_COOKIE",
-                          "APP_COOKIE",
-                          name="sesssionpersistences_type"),
-                  nullable=False),
+        sa.Column(u'type', sesssionpersistences_type, nullable=False),
         sa.Column(u'cookie_name', sa.String(1024), nullable=True),
         sa.ForeignKeyConstraint(['vip_id'], [u'vips.id'], ),
         sa.PrimaryKeyConstraint(u'vip_id')
@@ -79,15 +81,8 @@ def upgrade(active_plugins=None, options=None):
         sa.Column(u'name', sa.String(255), nullable=True),
         sa.Column(u'description', sa.String(255), nullable=True),
         sa.Column(u'subnet_id', sa.String(36), nullable=False),
-        sa.Column(u'protocol',
-                  sa.Enum("HTTP", "HTTPS", "TCP", name="lb_protocols"),
-                  nullable=False),
-        sa.Column(u'lb_method',
-                  sa.Enum("ROUND_ROBIN",
-                          "LEAST_CONNECTIONS",
-                          "SOURCE_IP",
-                          name="pools_lb_method"),
-                  nullable=False),
+        sa.Column(u'protocol', lb_protocols, nullable=False),
+        sa.Column(u'lb_method', pools_lb_method, nullable=False),
         sa.Column(u'status', sa.String(16), nullable=False),
         sa.Column(u'admin_state_up', sa.Boolean(), nullable=False),
         sa.ForeignKeyConstraint(['vip_id'], [u'vips.id'], ),
@@ -97,13 +92,7 @@ def upgrade(active_plugins=None, options=None):
         u'healthmonitors',
         sa.Column(u'tenant_id', sa.String(255), nullable=True),
         sa.Column(u'id', sa.String(36), nullable=False),
-        sa.Column(u'type',
-                  sa.Enum("PING",
-                          "TCP",
-                          "HTTP",
-                          "HTTPS",
-                          name="healthmontiors_type"),
-                  nullable=False),
+        sa.Column(u'type', healthmonitors_type, nullable=False),
         sa.Column(u'delay', sa.Integer(), nullable=False),
         sa.Column(u'timeout', sa.Integer(), nullable=False),
         sa.Column(u'max_retries', sa.Integer(), nullable=False),
@@ -150,11 +139,14 @@ def upgrade(active_plugins=None, options=None):
 def downgrade(active_plugins=None, options=None):
     if not migration.should_run(active_plugins, migration_for_plugins):
         return
-
     op.drop_table(u'poolstatisticss')
     op.drop_table(u'members')
     op.drop_table(u'poolmonitorassociations')
     op.drop_table(u'healthmonitors')
+    healthmonitors_type.drop(op.get_bind(), checkfirst=False)
     op.drop_table(u'pools')
+    pools_lb_method.drop(op.get_bind(), checkfirst=False)
     op.drop_table(u'sessionpersistences')
+    sesssionpersistences_type.drop(op.get_bind(), checkfirst=False)
     op.drop_table(u'vips')
+    lb_protocols.drop(op.get_bind(), checkfirst=False)