diff options
author | Henry Gessau <HenryG@gessau.net> | 2016-09-28 13:33:13 -0400 |
---|---|---|
committer | Armando Migliaccio <armamig@gmail.com> | 2016-09-29 01:39:49 +0000 |
commit | 71f2d2bc90aaf9ee696cd4e4f29879ba6c5703b5 (patch) | |
tree | 60e403d776d65afd8438dc049693bf30749605c1 | |
parent | c9a54002f2fdbd86e03fb266361ff482ea1c6c9f (diff) | |
download | neutron-71f2d2bc90aaf9ee696cd4e4f29879ba6c5703b5.tar.gz |
Ignore NULL fixed_ips for duplicate floating_ip check9.0.0.0rc39.0.0
Closes-Bug: #1628549
(cherry picked from commit a80b89b6fe1611a68d34684d9e80ad606f115366)
Change-Id: Ie49b46af93697ca67009373eadce9ba4f312dcc0
-rw-r--r-- | neutron/db/migration/alembic_migrations/versions/newton/expand/6b461a21bcfc_uniq_floatingips0floating_network_.py | 2 | ||||
-rw-r--r-- | neutron/tests/functional/db/test_migrations.py | 24 |
2 files changed, 24 insertions, 2 deletions
diff --git a/neutron/db/migration/alembic_migrations/versions/newton/expand/6b461a21bcfc_uniq_floatingips0floating_network_.py b/neutron/db/migration/alembic_migrations/versions/newton/expand/6b461a21bcfc_uniq_floatingips0floating_network_.py index 51009adbc2..8d674cd2c3 100644 --- a/neutron/db/migration/alembic_migrations/versions/newton/expand/6b461a21bcfc_uniq_floatingips0floating_network_.py +++ b/neutron/db/migration/alembic_migrations/versions/newton/expand/6b461a21bcfc_uniq_floatingips0floating_network_.py @@ -69,4 +69,4 @@ def get_duplicate_floating_ip_for_one_fixed_ip(connection): floatingips.c.fixed_port_id, floatingips.c.fixed_ip_address) .having(sa.func.count() > 1)).all() - return [q[0] for q in query] + return [q[0] for q in query if q[0] is not None] diff --git a/neutron/tests/functional/db/test_migrations.py b/neutron/tests/functional/db/test_migrations.py index e86ce6eed3..07b3c8a8da 100644 --- a/neutron/tests/functional/db/test_migrations.py +++ b/neutron/tests/functional/db/test_migrations.py @@ -398,7 +398,7 @@ class TestSanityCheck(testlib_api.SqlTestCaseLight): self.assertRaises(script.DuplicatePortRecordinRouterPortdatabase, script.check_sanity, conn) - def test_check_sanity_6b461a21bcfc(self): + def test_check_sanity_6b461a21bcfc_dup_on_fixed_ip(self): floatingips = sqlalchemy.Table( 'floatingips', sqlalchemy.MetaData(), sqlalchemy.Column('floating_network_id', sqlalchemy.String(36)), @@ -421,6 +421,28 @@ class TestSanityCheck(testlib_api.SqlTestCaseLight): self.assertRaises(script.DuplicateFloatingIPforOneFixedIP, script.check_sanity, conn) + def test_check_sanity_6b461a21bcfc_dup_on_no_fixed_ip(self): + floatingips = sqlalchemy.Table( + 'floatingips', sqlalchemy.MetaData(), + sqlalchemy.Column('floating_network_id', sqlalchemy.String(36)), + sqlalchemy.Column('fixed_port_id', sqlalchemy.String(36)), + sqlalchemy.Column('fixed_ip_address', sqlalchemy.String(64))) + + with self.engine.connect() as conn: + floatingips.create(conn) + conn.execute(floatingips.insert(), [ + {'floating_network_id': '12345', + 'fixed_port_id': '1234567', + 'fixed_ip_address': None}, + {'floating_network_id': '12345', + 'fixed_port_id': '1234567', + 'fixed_ip_address': None} + ]) + script_dir = alembic_script.ScriptDirectory.from_config( + self.alembic_config) + script = script_dir.get_revision("6b461a21bcfc").module + self.assertIsNone(script.check_sanity(conn)) + class TestWalkDowngrade(oslotest_base.BaseTestCase): |