~zulcss/nova/house-cleaning

« back to all changes in this revision

Viewing changes to debian/patches/fix-sqlalchemy-0.7.9-usage.patch

  • Committer: Chuck Short
  • Date: 2013-07-30 14:29:02 UTC
  • Revision ID: zulcss@ubuntu.com-20130730142902-slhz5fokgjsak57k
* New usptream release. 
* debian/patches/avoid_requirements_cheetah.patch: Dropped
* debian/patches/fix-sqlalchemy-0.7.9-usage.patch: Dropped
* debian/patches/fix-requirements.patch: Refreshed.
* debian/patches/remove-deprecated-sqlalchemy-option.patch: Remove
  deprecated option with sqlalchemy.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Description: Fix tests failing with sqlalachemy 0.7.9
2
 
Author: Chuck Short <zulcss@ubuntu.com>
3
 
Fowarded: No
4
 
diff -Naurp nova-2013.2.a2028.gd612ed9.orig/nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py nova-2013.2.a2028.gd612ed9/nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py
5
 
--- nova-2013.2.a2028.gd612ed9.orig/nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py      2013-07-16 09:01:23.000000000 -0400
6
 
+++ nova-2013.2.a2028.gd612ed9/nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py   2013-07-16 10:49:47.661898868 -0400
7
 
@@ -249,12 +249,9 @@ def _downgrade_bdm_v2(meta, bdm_table):
8
 
             (bdm_table.c.source_type == 'blank')
9
 
         ).order_by(bdm_table.c.id.asc())
10
 
 
11
 
-        blanks = [
12
 
-            dict(zip(('id', 'source', 'format'), row))
13
 
-            for row in bdm_q.execute().fetchall()
14
 
-        ]
15
 
+        blanks = [dict(row) for row in bdm_q.execute().fetchall()]
16
 
 
17
 
-        swap = [dev for dev in blanks if dev['format'] == 'swap']
18
 
+        swap = [dev for dev in blanks if dev['guest_format'] == 'swap']
19
 
         assert len(swap) < 2
20
 
         ephemerals = [dev for dev in blanks if dev not in swap]
21
 
 
22
 
diff -Naurp nova-2013.2.a2028.gd612ed9.orig/nova/db/sqlalchemy/types.py nova-2013.2.a2028.gd612ed9/nova/db/sqlalchemy/types.py
23
 
--- nova-2013.2.a2028.gd612ed9.orig/nova/db/sqlalchemy/types.py 2013-07-16 09:01:23.000000000 -0400
24
 
+++ nova-2013.2.a2028.gd612ed9/nova/db/sqlalchemy/types.py      2013-07-16 10:49:40.465898696 -0400
25
 
@@ -25,7 +25,14 @@ from nova import utils
26
 
 
27
 
 class IPAddress(types.TypeDecorator):
28
 
     """An SQLAlchemy type representing an IP-address."""
29
 
-    impl = types.String(39).with_variant(postgresql.INET(), 'postgresql')
30
 
+
31
 
+    impl = types.String
32
 
+
33
 
+    def load_dialect_impl(self, dialect):
34
 
+        if dialect.name == 'postgresql':
35
 
+            return dialect.type_descriptor(postgresql.INET())
36
 
+        else:
37
 
+            return dialect.type_descriptor(types.String(39))
38
 
 
39
 
     def process_bind_param(self, value, dialect):
40
 
         """Process/Formats the value before insert it into the db."""
41
 
@@ -40,7 +47,14 @@ class IPAddress(types.TypeDecorator):
42
 
 
43
 
 class CIDR(types.TypeDecorator):
44
 
     """An SQLAlchemy type representing a CIDR definition."""
45
 
-    impl = types.String(43).with_variant(postgresql.INET(), 'postgresql')
46
 
+
47
 
+    impl = types.String
48
 
+
49
 
+    def load_dialect_impl(self, dialect):
50
 
+        if dialect.name == 'postgresql':
51
 
+            return dialect.type_descriptor(postgresql.INET())
52
 
+        else:
53
 
+            return dialect.type_descriptor(types.String(43))
54
 
 
55
 
     def process_bind_param(self, value, dialect):
56
 
         """Process/Formats the value before insert it into the db."""
57
 
diff -Naurp nova-2013.2.a2028.gd612ed9.orig/nova/tests/db/test_migrations.py nova-2013.2.a2028.gd612ed9/nova/tests/db/test_migrations.py
58
 
--- nova-2013.2.a2028.gd612ed9.orig/nova/tests/db/test_migrations.py    2013-07-16 09:01:23.000000000 -0400
59
 
+++ nova-2013.2.a2028.gd612ed9/nova/tests/db/test_migrations.py 2013-07-16 10:49:47.661898868 -0400
60
 
@@ -46,6 +46,7 @@ import commands
61
 
 import ConfigParser
62
 
 import datetime
63
 
 import glob
64
 
+import operator
65
 
 import os
66
 
 import urlparse
67
 
 import uuid
68
 
@@ -64,6 +65,7 @@ from nova.openstack.common import log as
69
 
 from nova.openstack.common import timeutils
70
 
 from nova.openstack.common import uuidutils
71
 
 from nova import test
72
 
+from nova.tests import matchers
73
 
 from nova import utils
74
 
 import nova.virt.baremetal.db.sqlalchemy.migrate_repo
75
 
 
76
 
@@ -1466,7 +1468,7 @@ class TestNovaMigrations(BaseMigrationTe
77
 
         self._unique_constraint_check_migrate_185(engine)
78
 
 
79
 
     def _pre_upgrade_186(self, engine):
80
 
-        fake_instances = [
81
 
+        self.mig186_fake_instances = [
82
 
             dict(uuid='mig186_uuid-1', image_ref='fake_image_1',
83
 
                  root_device_name='/dev/vda'),
84
 
             dict(uuid='mig186_uuid-2', image_ref='',
85
 
@@ -1475,7 +1477,7 @@ class TestNovaMigrations(BaseMigrationTe
86
 
                  root_device_name='/dev/vda'),
87
 
         ]
88
 
 
89
 
-        fake_bdms = [
90
 
+        self.mig186_fake_bdms = [
91
 
             # Instance 1 - image, volume and swap
92
 
             dict(instance_uuid='mig186_uuid-1', device_name='/dev/vdc',
93
 
                  volume_id='fake_volume_1'),
94
 
@@ -1497,11 +1499,11 @@ class TestNovaMigrations(BaseMigrationTe
95
 
 
96
 
         instances = db_utils.get_table(engine, 'instances')
97
 
         block_device = db_utils.get_table(engine, 'block_device_mapping')
98
 
-        engine.execute(instances.insert(), fake_instances)
99
 
-        for fake_bdm in fake_bdms:
100
 
+        engine.execute(instances.insert(), self.mig186_fake_instances)
101
 
+        for fake_bdm in self.mig186_fake_bdms:
102
 
             engine.execute(block_device.insert(), fake_bdm)
103
 
 
104
 
-        return fake_instances, fake_bdms
105
 
+        return self.mig186_fake_instances, self.mig186_fake_bdms
106
 
 
107
 
     def _check_186(self, engine, data):
108
 
         block_device = db_utils.get_table(engine, 'block_device_mapping')
109
 
@@ -1587,6 +1589,24 @@ class TestNovaMigrations(BaseMigrationTe
110
 
         self.assertEqual(bdm_3s[3].image_id, 'fake_image_2')
111
 
         self.assertEqual(bdm_3s[3].boot_index, 0)
112
 
 
113
 
+    def _post_downgrade_186(self, engine):
114
 
+        block_device = db_utils.get_table(engine, 'block_device_mapping')
115
 
+
116
 
+        q = block_device.select().where(
117
 
+            sqlalchemy.or_(
118
 
+                block_device.c.instance_uuid == 'mig186_uuid-1',
119
 
+                block_device.c.instance_uuid == 'mig186_uuid-2',
120
 
+                block_device.c.instance_uuid == 'mig186_uuid-3'))\
121
 
+            .order_by(block_device.c.device_name.asc())
122
 
+
123
 
+        expected_bdms = sorted(self.mig186_fake_bdms,
124
 
+                               key=operator.itemgetter('device_name'))
125
 
+        got_bdms = [bdm for bdm in q.execute()]
126
 
+
127
 
+        self.assertEquals(len(expected_bdms), len(got_bdms))
128
 
+        for expected, got in zip(expected_bdms, got_bdms):
129
 
+            self.assertThat(expected, matchers.IsSubDictOf(dict(got)))
130
 
+
131
 
     # addition of the vm instance groups
132
 
     def _check_no_group_instance_tables(self, engine):
133
 
         self.assertRaises(sqlalchemy.exc.NoSuchTableError,