diff options
author | Victor Sergeyev <vsergeyev@mirantis.com> | 2015-04-07 16:50:19 +0300 |
---|---|---|
committer | Victor Sergeyev <vsergeyev@mirantis.com> | 2015-04-07 16:50:19 +0300 |
commit | 4c879c9bc7ec307dd158af4dd4b0f41e0e2d0531 (patch) | |
tree | 94759ca75729ddf3964e937201503e189c7ee5b8 | |
parent | 3550b473a715aec80d2e1c70784b362f27deb0ea (diff) | |
download | keystone-4c879c9bc7ec307dd158af4dd4b0f41e0e2d0531.tar.gz |
Handle NULL value for service.extra in migration 066
Added a check for service.extra column before jsonutils.loads() call
Change-Id: I5a652101d986672ba6094f0b3e107e2710154c68
Closes-Bug: #1441164
-rw-r--r-- | keystone/common/sql/migrate_repo/versions/066_fixup_service_name_value.py | 6 | ||||
-rw-r--r-- | keystone/tests/unit/test_sql_upgrade.py | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/keystone/common/sql/migrate_repo/versions/066_fixup_service_name_value.py b/keystone/common/sql/migrate_repo/versions/066_fixup_service_name_value.py index ea56a22e2..fe0cee882 100644 --- a/keystone/common/sql/migrate_repo/versions/066_fixup_service_name_value.py +++ b/keystone/common/sql/migrate_repo/versions/066_fixup_service_name_value.py @@ -22,7 +22,11 @@ def upgrade(migrate_engine): services = list(service_table.select().execute()) for service in services: - extra_dict = jsonutils.loads(service.extra) + if service.extra is not None: + extra_dict = jsonutils.loads(service.extra) + else: + extra_dict = {} + # Skip records where service is not null if extra_dict.get('name') is not None: continue diff --git a/keystone/tests/unit/test_sql_upgrade.py b/keystone/tests/unit/test_sql_upgrade.py index 25eeaff6b..35fd95388 100644 --- a/keystone/tests/unit/test_sql_upgrade.py +++ b/keystone/tests/unit/test_sql_upgrade.py @@ -512,6 +512,10 @@ class SqlUpgradeTests(SqlMigrateBase): random_attr_name_empty, random_attr_name_none_str), ] + # NOTE(viktors): Add a service with empty extra field + self.insert_dict(session, 'service', + {'id': uuid.uuid4().hex, 'type': uuid.uuid4().hex}) + session.close() self.upgrade(66) session = self.Session() |