summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authorMark Washenberger <mark.washenberger@rackspace.com>2011-05-10 14:49:47 -0400
committerMark Washenberger <mark.washenberger@rackspace.com>2011-05-10 14:49:47 -0400
commitf0c4bc2ff0182292e667bbcafb349e407596148a (patch)
tree4d9a87121212400e039af06f8f53528c099780e6 /nova/db
parentd9220c1af021b6c019207e7b9d24e30522bed149 (diff)
downloadnova-f0c4bc2ff0182292e667bbcafb349e407596148a.tar.gz
nova-f0c4bc2ff0182292e667bbcafb349e407596148a.tar.xz
nova-f0c4bc2ff0182292e667bbcafb349e407596148a.zip
migration bug fixes
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/016_make_quotas_key_and_value.py34
1 files changed, 29 insertions, 5 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/016_make_quotas_key_and_value.py b/nova/db/sqlalchemy/migrate_repo/versions/016_make_quotas_key_and_value.py
index 6bf2b19af..c03015b5e 100644
--- a/nova/db/sqlalchemy/migrate_repo/versions/016_make_quotas_key_and_value.py
+++ b/nova/db/sqlalchemy/migrate_repo/versions/016_make_quotas_key_and_value.py
@@ -108,7 +108,7 @@ def convert_forward(migrate_engine, old_quotas, new_quotas):
quotas = list(migrate_engine.execute(old_quotas.select()))
for quota in quotas:
for resource in resources:
- limit = getattr(old_quota, resource)
+ limit = getattr(old_quotas, resource)
if limit is None:
continue
insert = new_quotas.insert().values(
@@ -122,6 +122,30 @@ def convert_forward(migrate_engine, old_quotas, new_quotas):
migrate_engine.execute(insert)
+def earliest(date1, date2):
+ if date1 is None and date2 is None:
+ return None
+ if date1 is None:
+ return date2
+ if date2 is None:
+ return date1
+ if date1 < date2:
+ return date1
+ return date2
+
+
+def latest(date1, date2):
+ if date1 is None and date2 is None:
+ return None
+ if date1 is None:
+ return date2
+ if date2 is None:
+ return date1
+ if date1 > date2:
+ return date1
+ return date2
+
+
def convert_backward(migrate_engine, old_quotas, new_quotas):
quotas = {}
for quota in migrate_engine.execute(new_quotas.select()):
@@ -136,10 +160,10 @@ def convert_backward(migrate_engine, old_quotas, new_quotas):
quota.resource: quota.limit
}
else:
- if quota.created_at < quotas[quota.project_id]['created_at']:
- quotas[quota.project_id]['created_at'] = quota.created_at
- if quota.updated_at > quotas[quota.project_id]['updated_at']:
- quotas[quota.project_id]['updated_at'] = quota.updated_at
+ quotas[quota.project_id]['created_at'] = earliest(
+ quota.created_at, quotas[quota.project_id]['created_at'])
+ quotas[quota.project_id]['updated_at'] = latest(
+ quota.created_at, quotas[quota.project_id]['updated_at'])
quotas[quota.project_id][quota.resource] = quota.limit
for quota in quotas.itervalues():