summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Gessau <HenryG@gessau.net>2016-09-28 13:33:13 -0400
committerArmando Migliaccio <armamig@gmail.com>2016-09-29 01:39:49 +0000
commit71f2d2bc90aaf9ee696cd4e4f29879ba6c5703b5 (patch)
tree60e403d776d65afd8438dc049693bf30749605c1
parentc9a54002f2fdbd86e03fb266361ff482ea1c6c9f (diff)
downloadneutron-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_.py2
-rw-r--r--neutron/tests/functional/db/test_migrations.py24
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):