Merge lp:~gandelman-a/ubuntu/precise/glance/UCA_2012.2.1 into lp:~ubuntu-cloud-archive/ubuntu/precise/glance/folsom
- Precise (12.04)
- UCA_2012.2.1
- Merge into folsom
Proposed by
Adam Gandelman
Status: | Merged |
---|---|
Approved by: | Chuck Short |
Approved revision: | 64 |
Merged at revision: | 63 |
Proposed branch: | lp:~gandelman-a/ubuntu/precise/glance/UCA_2012.2.1 |
Merge into: | lp:~ubuntu-cloud-archive/ubuntu/precise/glance/folsom |
Diff against target: |
1611 lines (+763/-205) 28 files modified
.gitreview (+1/-0) .pc/disable-swift-tests.patch/glance/tests/functional/v2/test_images.py (+12/-0) .pc/disable-swift-tests.patch/glance/tests/unit/test_clients.py (+1/-1) AUTHORS (+3/-0) ChangeLog (+376/-103) PKG-INFO (+1/-1) debian/changelog (+94/-59) debian/control (+2/-1) debian/patches/sql_conn.patch (+8/-8) glance.egg-info/PKG-INFO (+1/-1) glance.egg-info/requires.txt (+1/-1) glance/api/v1/images.py (+25/-5) glance/api/v2/images.py (+18/-10) glance/common/utils.py (+17/-0) glance/openstack/common/setup.py (+4/-3) glance/store/rbd.py (+11/-1) glance/tests/functional/v2/test_images.py (+12/-0) glance/tests/stubs.py (+7/-1) glance/tests/unit/test_clients.py (+1/-1) glance/tests/unit/test_store_location.py (+30/-0) glance/tests/unit/test_utils.py (+11/-0) glance/tests/unit/v1/test_api.py (+84/-1) glance/tests/unit/v2/test_images_resource.py (+32/-0) glance/tests/utils.py (+3/-2) glance/version.py (+1/-1) glance/versioninfo (+1/-1) run_tests.sh (+5/-3) tools/pip-requires (+1/-1) |
To merge this branch: | bzr merge lp:~gandelman-a/ubuntu/precise/glance/UCA_2012.2.1 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Chuck Short | Pending | ||
Review via email: mp+142221@code.launchpad.net |
Commit message
Description of the change
Syncs the lp:~ubuntu-cloud-archive branch to current state of the package in the U.C.A., and imports current SRU pending in quantal-proposed.
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file '.gitreview' | |||
2 | --- .gitreview 2012-07-06 11:13:13 +0000 | |||
3 | +++ .gitreview 2013-01-08 00:34:25 +0000 | |||
4 | @@ -2,3 +2,4 @@ | |||
5 | 2 | host=review.openstack.org | 2 | host=review.openstack.org |
6 | 3 | port=29418 | 3 | port=29418 |
7 | 4 | project=openstack/glance.git | 4 | project=openstack/glance.git |
8 | 5 | defaultbranch=stable/folsom | ||
9 | 5 | 6 | ||
10 | === modified file '.pc/disable-swift-tests.patch/glance/tests/functional/v2/test_images.py' | |||
11 | --- .pc/disable-swift-tests.patch/glance/tests/functional/v2/test_images.py 2012-09-26 12:32:50 +0000 | |||
12 | +++ .pc/disable-swift-tests.patch/glance/tests/functional/v2/test_images.py 2013-01-08 00:34:25 +0000 | |||
13 | @@ -218,6 +218,12 @@ | |||
14 | 218 | self.assertEqual(201, response.status_code) | 218 | self.assertEqual(201, response.status_code) |
15 | 219 | image_id = json.loads(response.text)['id'] | 219 | image_id = json.loads(response.text)['id'] |
16 | 220 | 220 | ||
17 | 221 | # Upload some image data | ||
18 | 222 | path = self._url('/v2/images/%s/file' % image_id) | ||
19 | 223 | headers = self._headers({'Content-Type': 'application/octet-stream'}) | ||
20 | 224 | response = requests.put(path, headers=headers, data='ZZZZZ') | ||
21 | 225 | self.assertEqual(201, response.status_code) | ||
22 | 226 | |||
23 | 221 | # TENANT1 should see the image in their list | 227 | # TENANT1 should see the image in their list |
24 | 222 | path = self._url('/v2/images') | 228 | path = self._url('/v2/images') |
25 | 223 | response = requests.get(path, headers=self._headers()) | 229 | response = requests.get(path, headers=self._headers()) |
26 | @@ -300,6 +306,12 @@ | |||
27 | 300 | response = requests.delete(path, headers=headers) | 306 | response = requests.delete(path, headers=headers) |
28 | 301 | self.assertEqual(404, response.status_code) | 307 | self.assertEqual(404, response.status_code) |
29 | 302 | 308 | ||
30 | 309 | # Image data should still be present after the failed delete | ||
31 | 310 | path = self._url('/v2/images/%s/file' % image_id) | ||
32 | 311 | response = requests.get(path, headers=self._headers()) | ||
33 | 312 | self.assertEqual(200, response.status_code) | ||
34 | 313 | self.assertEqual(response.text, 'ZZZZZ') | ||
35 | 314 | |||
36 | 303 | self.stop_servers() | 315 | self.stop_servers() |
37 | 304 | 316 | ||
38 | 305 | def test_tag_lifecycle(self): | 317 | def test_tag_lifecycle(self): |
39 | 306 | 318 | ||
40 | === modified file '.pc/disable-swift-tests.patch/glance/tests/unit/test_clients.py' | |||
41 | --- .pc/disable-swift-tests.patch/glance/tests/unit/test_clients.py 2012-09-17 07:44:11 +0000 | |||
42 | +++ .pc/disable-swift-tests.patch/glance/tests/unit/test_clients.py 2013-01-08 00:34:25 +0000 | |||
43 | @@ -39,7 +39,7 @@ | |||
44 | 39 | UUID2 = _gen_uuid() | 39 | UUID2 = _gen_uuid() |
45 | 40 | 40 | ||
46 | 41 | #NOTE(bcwaldon): needed to init config_dir cli opt | 41 | #NOTE(bcwaldon): needed to init config_dir cli opt |
48 | 42 | config.parse_args() | 42 | config.parse_args(args=[]) |
49 | 43 | 43 | ||
50 | 44 | 44 | ||
51 | 45 | class TestBadClients(test_utils.BaseTestCase): | 45 | class TestBadClients(test_utils.BaseTestCase): |
52 | 46 | 46 | ||
53 | === modified file 'AUTHORS' | |||
54 | --- AUTHORS 2012-09-17 07:44:11 +0000 | |||
55 | +++ AUTHORS 2013-01-08 00:34:25 +0000 | |||
56 | @@ -28,6 +28,7 @@ | |||
57 | 28 | Eoghan Glynn <eglynn@redhat.com> | 28 | Eoghan Glynn <eglynn@redhat.com> |
58 | 29 | Ewan Mellor <ewan.mellor@citrix.com> | 29 | Ewan Mellor <ewan.mellor@citrix.com> |
59 | 30 | Gabriel Hurley <gabriel@strikeawe.com> | 30 | Gabriel Hurley <gabriel@strikeawe.com> |
60 | 31 | Gerardo Porras <gporras@yahoo-inc.com> | ||
61 | 31 | Hengqing Hu <hudayou@hotmail.com> | 32 | Hengqing Hu <hudayou@hotmail.com> |
62 | 32 | iccha <iccha.sethi@rackspace.com> | 33 | iccha <iccha.sethi@rackspace.com> |
63 | 33 | Ionuț Arțăriși <iartarisi@suse.cz> | 34 | Ionuț Arțăriși <iartarisi@suse.cz> |
64 | @@ -59,6 +60,7 @@ | |||
65 | 59 | Lorin Hochstein <lorin@nimbisservices.com> | 60 | Lorin Hochstein <lorin@nimbisservices.com> |
66 | 60 | lzyeval <lzyeval@gmail.com> | 61 | lzyeval <lzyeval@gmail.com> |
67 | 61 | Major Hayden <major@mhtx.net> | 62 | Major Hayden <major@mhtx.net> |
68 | 63 | Mark J. Washenberger <mark.washenberger@markwash.net> | ||
69 | 62 | Mark J. Washenberger <mark.washenberger@rackspace.com> | 64 | Mark J. Washenberger <mark.washenberger@rackspace.com> |
70 | 63 | Mark McLoughlin <markmc@redhat.com> | 65 | Mark McLoughlin <markmc@redhat.com> |
71 | 64 | Mark Washenberger <mark.washenberger@rackspace.com> | 66 | Mark Washenberger <mark.washenberger@rackspace.com> |
72 | @@ -94,6 +96,7 @@ | |||
73 | 94 | Thierry Carrez <thierry@openstack.org> | 96 | Thierry Carrez <thierry@openstack.org> |
74 | 95 | Tomas Hancock <tom.hancock@hp.com> | 97 | Tomas Hancock <tom.hancock@hp.com> |
75 | 96 | Tom Hancock <tom.hancock@hp.com> | 98 | Tom Hancock <tom.hancock@hp.com> |
76 | 99 | Unmesh Gurjar <unmesh.gurjar@nttdata.com> | ||
77 | 97 | Unmesh Gurjar <unmesh.gurjar@vertex.co.in> | 100 | Unmesh Gurjar <unmesh.gurjar@vertex.co.in> |
78 | 98 | Vincent Untz <vuntz@suse.com> | 101 | Vincent Untz <vuntz@suse.com> |
79 | 99 | Vishvananda Ishaya <vishvananda@gmail.com> | 102 | Vishvananda Ishaya <vishvananda@gmail.com> |
80 | 100 | 103 | ||
81 | === modified file 'ChangeLog' | |||
82 | --- ChangeLog 2012-09-26 12:37:00 +0000 | |||
83 | +++ ChangeLog 2013-01-08 00:34:25 +0000 | |||
84 | @@ -1,3 +1,276 @@ | |||
85 | 1 | commit a4062940b804f524ada38df3c62c14b9c98f82bc | ||
86 | 2 | Merge: 91aaa48 49408e9 | ||
87 | 3 | Author: Jenkins <jenkins@review.openstack.org> | ||
88 | 4 | Date: Tue Nov 27 23:16:35 2012 +0000 | ||
89 | 5 | |||
90 | 6 | Merge "Ensure strings passed to librbd are not unicode" into stable/folsom | ||
91 | 7 | |||
92 | 8 | commit 49408e9f846ab08ed4f1ac32c3e4e934cd448990 | ||
93 | 9 | Author: Josh Durgin <josh.durgin@inktank.com> | ||
94 | 10 | Date: Fri Nov 9 09:28:19 2012 -0800 | ||
95 | 11 | |||
96 | 12 | Ensure strings passed to librbd are not unicode | ||
97 | 13 | |||
98 | 14 | librbd rejects unicode by throwing an exception. If the location uri | ||
99 | 15 | was unicode, this would result in deletes failing. Convert all rbd | ||
100 | 16 | StoreLocation properties to ascii strings to avoid this problem. | ||
101 | 17 | |||
102 | 18 | Fixes bug #1075580 | ||
103 | 19 | Signed-off-by: Josh Durgin <josh.durgin@inktank.com> | ||
104 | 20 | |||
105 | 21 | Change-Id: I445902bb1b72b8c814585f1481e6bf9e758b4e07 | ||
106 | 22 | (cherry picked from commit 3aea9320d20d0291c5b4b027a585370d8e658a95) | ||
107 | 23 | |||
108 | 24 | glance/store/rbd.py | 12 +++++++++++- | ||
109 | 25 | glance/tests/unit/test_store_location.py | 30 ++++++++++++++++++++++++++++++ | ||
110 | 26 | 2 files changed, 41 insertions(+), 1 deletion(-) | ||
111 | 27 | |||
112 | 28 | commit 91aaa487d34ed57718f0183b27e79c02ac70941e | ||
113 | 29 | Author: Mark J. Washenberger <mark.washenberger@markwash.net> | ||
114 | 30 | Date: Tue Nov 20 12:41:48 2012 -0800 | ||
115 | 31 | |||
116 | 32 | Make cooperative reader always support read() | ||
117 | 33 | |||
118 | 34 | glance.common.utils.CooperativeReader provides eventlet-friendly | ||
119 | 35 | cooperation on top of backends that support either read() or __iter__(). | ||
120 | 36 | However, in the case of backends that only support __iter__(), such as | ||
121 | 37 | images returned by store.get(...), read() is not defined. This patch | ||
122 | 38 | adds read() in all cases. | ||
123 | 39 | |||
124 | 40 | Fixes bug 1057322. | ||
125 | 41 | |||
126 | 42 | Change-Id: I67d9b3e4d93fbefd7eeaf7cfc947ab635fe09534 | ||
127 | 43 | |||
128 | 44 | glance/common/utils.py | 17 +++++++++++++++++ | ||
129 | 45 | glance/tests/unit/test_utils.py | 11 +++++++++++ | ||
130 | 46 | 2 files changed, 28 insertions(+) | ||
131 | 47 | |||
132 | 48 | commit a296a5b3686aeb9c337b46a5a066888e6863e7a4 | ||
133 | 49 | Author: Unmesh Gurjar <unmesh.gurjar@nttdata.com> | ||
134 | 50 | Date: Tue Oct 23 03:34:31 2012 -0700 | ||
135 | 51 | |||
136 | 52 | Return 403 when admin deletes a deleted image | ||
137 | 53 | |||
138 | 54 | 1. Returned a 403 Forbidden error when an admin user tries to delete a deleted | ||
139 | 55 | image. | ||
140 | 56 | 2. Added unit test coverage. | ||
141 | 57 | |||
142 | 58 | Fixes LP: #1060944 | ||
143 | 59 | |||
144 | 60 | Change-Id: I1a5c4ca18e2e70d8a614b3132bfcea1f56c5f59c | ||
145 | 61 | |||
146 | 62 | glance/api/v1/images.py | 6 +++++ | ||
147 | 63 | glance/tests/unit/v1/test_api.py | 45 ++++++++++++++++++++++++++++++++++++++ | ||
148 | 64 | 2 files changed, 51 insertions(+) | ||
149 | 65 | |||
150 | 66 | commit a98768169c3a7ff23987b15f32333400c41f322f | ||
151 | 67 | Merge: 5dac0b1 3e58a6a | ||
152 | 68 | Author: Jenkins <jenkins@review.openstack.org> | ||
153 | 69 | Date: Mon Nov 19 19:06:53 2012 +0000 | ||
154 | 70 | |||
155 | 71 | Merge "Disallow updating deleted images." into stable/folsom | ||
156 | 72 | |||
157 | 73 | commit 5dac0b1933514c2e9380eed4625a2ece25f458a0 | ||
158 | 74 | Merge: 7336c8d 26c8085 | ||
159 | 75 | Author: Jenkins <jenkins@review.openstack.org> | ||
160 | 76 | Date: Wed Nov 14 20:31:57 2012 +0000 | ||
161 | 77 | |||
162 | 78 | Merge "Return HTTP 404 for deleted images in v2" into stable/folsom | ||
163 | 79 | |||
164 | 80 | commit 7336c8d0073bff0a106530dd782c567956bbe32e | ||
165 | 81 | Merge: 517e059 8321ca6 | ||
166 | 82 | Author: Jenkins <jenkins@review.openstack.org> | ||
167 | 83 | Date: Wed Nov 14 20:27:56 2012 +0000 | ||
168 | 84 | |||
169 | 85 | Merge "Add noseopts and replace noseargs where needed to run_test.sh" into stable/folsom | ||
170 | 86 | |||
171 | 87 | commit 517e059aac38c69d03ddb040ad127b14a59adced | ||
172 | 88 | Merge: fc0ee76 c3bea11 | ||
173 | 89 | Author: Jenkins <jenkins@review.openstack.org> | ||
174 | 90 | Date: Mon Nov 12 14:18:18 2012 +0000 | ||
175 | 91 | |||
176 | 92 | Merge "Pull in a versioning fix from openstack-common." into stable/folsom | ||
177 | 93 | |||
178 | 94 | commit fc0ee7623ec59c87ac6fc671e95a9798d6f2e2c3 | ||
179 | 95 | Author: Mark J. Washenberger <mark.washenberger@markwash.net> | ||
180 | 96 | Date: Thu Nov 8 10:56:07 2012 -0800 | ||
181 | 97 | |||
182 | 98 | Ensure authorization before deleting from store | ||
183 | 99 | |||
184 | 100 | This fixes bug 1076506. | ||
185 | 101 | |||
186 | 102 | Change-Id: I3794c14fe523a9a27e943d73dd0248489d2b91f6 | ||
187 | 103 | |||
188 | 104 | glance/api/v2/images.py | 21 ++++++++++++--------- | ||
189 | 105 | glance/tests/functional/v2/test_images.py | 12 ++++++++++++ | ||
190 | 106 | 2 files changed, 24 insertions(+), 9 deletions(-) | ||
191 | 107 | |||
192 | 108 | commit 90bcdc5a89e350a358cf320a03f5afe99795f6f6 | ||
193 | 109 | Author: Mark Washenberger <mark.washenberger@rackspace.com> | ||
194 | 110 | Date: Wed Nov 7 09:59:56 2012 -0500 | ||
195 | 111 | |||
196 | 112 | Delete from store after registry delete. | ||
197 | 113 | |||
198 | 114 | Because we rely on the registry to determine authorization in the glance | ||
199 | 115 | v1 api, we must attempt a registry delete before deleting an image from | ||
200 | 116 | the image store. | ||
201 | 117 | |||
202 | 118 | This patch includes the test for the bug, which was posted separately | ||
203 | 119 | on the bug. | ||
204 | 120 | |||
205 | 121 | Fixes bug 1065187. | ||
206 | 122 | |||
207 | 123 | Change-Id: I1a06b7c7421524066c684539e2f3516c4ed2c475 | ||
208 | 124 | |||
209 | 125 | glance/api/v1/images.py | 16 +++++++++++----- | ||
210 | 126 | glance/tests/stubs.py | 8 +++++++- | ||
211 | 127 | glance/tests/unit/v1/test_api.py | 20 ++++++++++++++++++++ | ||
212 | 128 | glance/tests/utils.py | 1 + | ||
213 | 129 | 4 files changed, 39 insertions(+), 6 deletions(-) | ||
214 | 130 | |||
215 | 131 | commit 7841cc93050fa48a1fbd8847cec887f0360be9a3 | ||
216 | 132 | Author: Mark Washenberger <mark.washenberger@rackspace.com> | ||
217 | 133 | Date: Sun Oct 7 02:12:52 2012 +0000 | ||
218 | 134 | |||
219 | 135 | FakeAuth not always admin | ||
220 | 136 | |||
221 | 137 | The FakeAuthMiddleware was defaulting to admin=True for request | ||
222 | 138 | contexts. This creates a situation where it is impossible to test | ||
223 | 139 | non-admin requests in some situations. | ||
224 | 140 | |||
225 | 141 | Change-Id: I949f708efed9f07a43b8506870c5b38fce4b3752 | ||
226 | 142 | |||
227 | 143 | glance/tests/unit/v1/test_api.py | 3 ++- | ||
228 | 144 | glance/tests/utils.py | 2 +- | ||
229 | 145 | 2 files changed, 3 insertions(+), 2 deletions(-) | ||
230 | 146 | |||
231 | 147 | commit c3bea11ede57c6d46b7a90f932255624f549de46 | ||
232 | 148 | Author: Monty Taylor <mordred@inaugust.com> | ||
233 | 149 | Date: Fri Oct 26 11:09:16 2012 -0400 | ||
234 | 150 | |||
235 | 151 | Pull in a versioning fix from openstack-common. | ||
236 | 152 | |||
237 | 153 | Fixes bug 1059634. Related to I6cff4ee7f6c1dc970397b66fd2d15fa22b0a63a3 | ||
238 | 154 | |||
239 | 155 | (Cherry-picked from 68253587f0d5a5b5f0dde63dd6036c7977e4f3d6) | ||
240 | 156 | |||
241 | 157 | Change-Id: I4c8daa8bf4a57849bd8d1e512a388d982f79b7d5 | ||
242 | 158 | |||
243 | 159 | glance/openstack/common/setup.py | 7 ++++--- | ||
244 | 160 | 1 file changed, 4 insertions(+), 3 deletions(-) | ||
245 | 161 | |||
246 | 162 | commit 26c80856620f2ac3a662028eb3d53c3196b66a82 | ||
247 | 163 | Author: Mark Washenberger <mark.washenberger@rackspace.com> | ||
248 | 164 | Date: Thu Oct 25 19:46:10 2012 +0000 | ||
249 | 165 | |||
250 | 166 | Return HTTP 404 for deleted images in v2 | ||
251 | 167 | |||
252 | 168 | For admin contexts, the db api will return deleted images. This patch | ||
253 | 169 | manually checks for deleted images in the v2 controller code to treat | ||
254 | 170 | these cases as if the images didn't exist. | ||
255 | 171 | |||
256 | 172 | Fixes bug 1071446 | ||
257 | 173 | |||
258 | 174 | Change-Id: I33075f94e9d560a279085e2afd18c8052f57d60b | ||
259 | 175 | |||
260 | 176 | glance/api/v2/images.py | 7 +++++- | ||
261 | 177 | glance/tests/unit/v2/test_images_resource.py | 32 ++++++++++++++++++++++++++ | ||
262 | 178 | 2 files changed, 38 insertions(+), 1 deletion(-) | ||
263 | 179 | |||
264 | 180 | commit 3e58a6a6658f0e9a1e1f167f8b9cec4e9f32b3e4 | ||
265 | 181 | Author: Unmesh Gurjar <unmesh.gurjar@nttdata.com> | ||
266 | 182 | Date: Mon Oct 22 07:38:33 2012 -0700 | ||
267 | 183 | |||
268 | 184 | Disallow updating deleted images. | ||
269 | 185 | |||
270 | 186 | 1. Return a 403 Forbidden error when an admin user tries to update a deleted | ||
271 | 187 | image. | ||
272 | 188 | 2. Also added unit test coverage. | ||
273 | 189 | |||
274 | 190 | Fixes LP: #1060930 | ||
275 | 191 | |||
276 | 192 | Change-Id: I8290c8c9f1bcbbfbff7d54f141bdcfa1c40aab6f | ||
277 | 193 | |||
278 | 194 | glance/api/v1/images.py | 8 ++++++++ | ||
279 | 195 | glance/tests/unit/v1/test_api.py | 17 +++++++++++++++++ | ||
280 | 196 | 2 files changed, 25 insertions(+) | ||
281 | 197 | |||
282 | 198 | commit ddad2752b3afb480f5be1352cd2ef56739d3cdad | ||
283 | 199 | Author: Sean Dague <sdague@linux.vnet.ibm.com> | ||
284 | 200 | Date: Wed Oct 31 11:38:47 2012 -0400 | ||
285 | 201 | |||
286 | 202 | pin sqlalchemy to the 0.7.x series | ||
287 | 203 | |||
288 | 204 | sqlalchemy 0.8beta is now out and has internal changes | ||
289 | 205 | which mean it's not an in place seemless upgrade. This pins | ||
290 | 206 | sqlalchemy to the 0.7.x series to avoid those breaks. | ||
291 | 207 | |||
292 | 208 | Fixes bug #1073569 | ||
293 | 209 | |||
294 | 210 | Change-Id: Ia8976843a7e0a132fe38e80f2bcb01a16e12b8de | ||
295 | 211 | |||
296 | 212 | tools/pip-requires | 2 +- | ||
297 | 213 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
298 | 214 | |||
299 | 215 | commit 8321ca6ff4d2ab15bece70d7ff84f2e3dd3f6896 | ||
300 | 216 | Author: Gerardo Porras <gporras@yahoo-inc.com> | ||
301 | 217 | Date: Wed Oct 17 16:00:48 2012 -0700 | ||
302 | 218 | |||
303 | 219 | Add noseopts and replace noseargs where needed to run_test.sh | ||
304 | 220 | |||
305 | 221 | Add of noseopts to the run_tests script so users can be | ||
306 | 222 | able to run tests adding extra options to be passed to | ||
307 | 223 | nosetests. | ||
308 | 224 | This option is currently in keystone but not in glance. | ||
309 | 225 | Fixes bug 1065758 | ||
310 | 226 | |||
311 | 227 | Change-Id: I7c78749adb90b126da5bd9580da6bfd7c9e1bf54 | ||
312 | 228 | |||
313 | 229 | run_tests.sh | 8 +++++--- | ||
314 | 230 | 1 file changed, 5 insertions(+), 3 deletions(-) | ||
315 | 231 | |||
316 | 232 | commit 1d5c651321a87e218995821b0d148867db977988 | ||
317 | 233 | Author: Mark Washenberger <mark.washenberger@rackspace.com> | ||
318 | 234 | Date: Tue Sep 25 19:57:10 2012 +0000 | ||
319 | 235 | |||
320 | 236 | Pass empty args to test config parser. | ||
321 | 237 | |||
322 | 238 | This fixes bug 1056420, which allows users to pass nosetests options | ||
323 | 239 | through run_tests.sh again. | ||
324 | 240 | |||
325 | 241 | Change-Id: I03e84488a24e2552b61aa0cab842d8325e8e856f | ||
326 | 242 | (cherry picked from commit ef641597dbfc0fcb856c143b213be493ab44cc65) | ||
327 | 243 | |||
328 | 244 | glance/tests/unit/test_clients.py | 2 +- | ||
329 | 245 | glance/tests/utils.py | 2 +- | ||
330 | 246 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
331 | 247 | |||
332 | 248 | commit ac223e243736ba98a0ec480d3f80e39a555d3343 | ||
333 | 249 | Author: Mark McLoughlin <markmc@redhat.com> | ||
334 | 250 | Date: Sat Oct 13 22:44:12 2012 +0100 | ||
335 | 251 | |||
336 | 252 | Set defaultbranch in .gitreview to stable/folsom | ||
337 | 253 | |||
338 | 254 | This allows people run git-review without any arguments. | ||
339 | 255 | |||
340 | 256 | Change-Id: I2b2488ffffd783b64e5c760324e7d4a00d5a39db | ||
341 | 257 | |||
342 | 258 | .gitreview | 1 + | ||
343 | 259 | 1 file changed, 1 insertion(+) | ||
344 | 260 | |||
345 | 261 | commit 6740af2f8186aa903c45afa2c2329564fce90fdf | ||
346 | 262 | Author: Thierry Carrez <thierry@openstack.org> | ||
347 | 263 | Date: Fri Sep 28 16:14:02 2012 +0200 | ||
348 | 264 | |||
349 | 265 | Bump next version to 2012.2.1 | ||
350 | 266 | |||
351 | 267 | Open stable/folsom by bumping next version to 2012.2.1. | ||
352 | 268 | |||
353 | 269 | Change-Id: Ia452eaf82c873a6b19f155f21a79116d32530b5b | ||
354 | 270 | |||
355 | 271 | glance/version.py | 2 +- | ||
356 | 272 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
357 | 273 | |||
358 | 1 | commit a9f0a4c4dbac0c92c431150161915bd5459a42d0 | 274 | commit a9f0a4c4dbac0c92c431150161915bd5459a42d0 |
359 | 2 | Author: Eoghan Glynn <eglynn@redhat.com> | 275 | Author: Eoghan Glynn <eglynn@redhat.com> |
360 | 3 | Date: Tue Sep 25 22:13:56 2012 +0100 | 276 | Date: Tue Sep 25 22:13:56 2012 +0100 |
361 | @@ -1273,7 +1546,7 @@ | |||
362 | 1273 | 1546 | ||
363 | 1274 | Change-Id: I6dc2afa735fb2f82df71d58b10c1e1530fce2f89 | 1547 | Change-Id: I6dc2afa735fb2f82df71d58b10c1e1530fce2f89 |
364 | 1275 | 1548 | ||
366 | 1276 | .../versions/014_add_image_tags_table.py | 5 +++++ | 1549 | .../sqlalchemy/migrate_repo/versions/014_add_image_tags_table.py | 5 +++++ |
367 | 1277 | 1 file changed, 5 insertions(+) | 1550 | 1 file changed, 5 insertions(+) |
368 | 1278 | 1551 | ||
369 | 1279 | commit 80c099e0b41b3f2f9684b06f1f4eee8e2776969e | 1552 | commit 80c099e0b41b3f2f9684b06f1f4eee8e2776969e |
370 | @@ -4074,48 +4347,48 @@ | |||
371 | 4074 | 4347 | ||
372 | 4075 | Change-Id: Ia1a7b5062e7f882971f2061274f6a4a44cfc8ced | 4348 | Change-Id: Ia1a7b5062e7f882971f2061274f6a4a44cfc8ced |
373 | 4076 | 4349 | ||
416 | 4077 | glance/api/middleware/cache.py | 2 +- | 4350 | glance/api/middleware/cache.py | 2 +- |
417 | 4078 | glance/api/middleware/cache_manage.py | 3 +-- | 4351 | glance/api/middleware/cache_manage.py | 3 +-- |
418 | 4079 | glance/api/middleware/context.py | 3 ++- | 4352 | glance/api/middleware/context.py | 3 ++- |
419 | 4080 | glance/api/middleware/version_negotiation.py | 3 +-- | 4353 | glance/api/middleware/version_negotiation.py | 3 +-- |
420 | 4081 | glance/api/policy.py | 2 +- | 4354 | glance/api/policy.py | 2 +- |
421 | 4082 | glance/api/v1/controller.py | 3 +-- | 4355 | glance/api/v1/controller.py | 3 +-- |
422 | 4083 | glance/api/v1/images.py | 2 +- | 4356 | glance/api/v1/images.py | 2 +- |
423 | 4084 | glance/api/v1/members.py | 3 +-- | 4357 | glance/api/v1/members.py | 3 +-- |
424 | 4085 | glance/api/v2/images.py | 2 +- | 4358 | glance/api/v2/images.py | 2 +- |
425 | 4086 | glance/common/auth.py | 2 +- | 4359 | glance/common/auth.py | 2 +- |
426 | 4087 | glance/common/client.py | 2 +- | 4360 | glance/common/client.py | 2 +- |
427 | 4088 | glance/common/utils.py | 2 +- | 4361 | glance/common/utils.py | 2 +- |
428 | 4089 | glance/common/wsgi.py | 3 ++- | 4362 | glance/common/wsgi.py | 3 ++- |
429 | 4090 | glance/db/simple/api.py | 2 +- | 4363 | glance/db/simple/api.py | 2 +- |
430 | 4091 | glance/db/sqlalchemy/api.py | 3 ++- | 4364 | glance/db/sqlalchemy/api.py | 3 ++- |
431 | 4092 | glance/db/sqlalchemy/migrate_repo/schema.py | 4 ++-- | 4365 | glance/db/sqlalchemy/migrate_repo/schema.py | 4 ++-- |
432 | 4093 | .../versions/015_quote_swift_credentials.py | 2 +- | 4366 | .../migrate_repo/versions/015_quote_swift_credentials.py | 2 +- |
433 | 4094 | glance/db/sqlalchemy/migration.py | 2 +- | 4367 | glance/db/sqlalchemy/migration.py | 2 +- |
434 | 4095 | glance/image_cache/__init__.py | 3 +-- | 4368 | glance/image_cache/__init__.py | 3 +-- |
435 | 4096 | glance/image_cache/drivers/base.py | 2 +- | 4369 | glance/image_cache/drivers/base.py | 2 +- |
436 | 4097 | glance/image_cache/drivers/sqlite.py | 2 +- | 4370 | glance/image_cache/drivers/sqlite.py | 2 +- |
437 | 4098 | glance/image_cache/drivers/xattr.py | 2 +- | 4371 | glance/image_cache/drivers/xattr.py | 2 +- |
438 | 4099 | glance/image_cache/prefetcher.py | 3 +-- | 4372 | glance/image_cache/prefetcher.py | 3 +-- |
439 | 4100 | glance/notifier/__init__.py | 2 +- | 4373 | glance/notifier/__init__.py | 2 +- |
440 | 4101 | glance/notifier/notify_kombu.py | 2 +- | 4374 | glance/notifier/notify_kombu.py | 2 +- |
441 | 4102 | glance/notifier/notify_log.py | 4 +--- | 4375 | glance/notifier/notify_log.py | 4 +--- |
442 | 4103 | glance/notifier/notify_qpid.py | 2 +- | 4376 | glance/notifier/notify_qpid.py | 2 +- |
443 | 4104 | glance/registry/__init__.py | 2 +- | 4377 | glance/registry/__init__.py | 2 +- |
444 | 4105 | glance/registry/api/v1/images.py | 3 +-- | 4378 | glance/registry/api/v1/images.py | 3 +-- |
445 | 4106 | glance/registry/api/v1/members.py | 3 +-- | 4379 | glance/registry/api/v1/members.py | 3 +-- |
446 | 4107 | glance/store/__init__.py | 2 +- | 4380 | glance/store/__init__.py | 2 +- |
447 | 4108 | glance/store/base.py | 3 +-- | 4381 | glance/store/base.py | 3 +-- |
448 | 4109 | glance/store/filesystem.py | 2 +- | 4382 | glance/store/filesystem.py | 2 +- |
449 | 4110 | glance/store/http.py | 2 +- | 4383 | glance/store/http.py | 2 +- |
450 | 4111 | glance/store/location.py | 2 +- | 4384 | glance/store/location.py | 2 +- |
451 | 4112 | glance/store/rbd.py | 2 +- | 4385 | glance/store/rbd.py | 2 +- |
452 | 4113 | glance/store/s3.py | 2 +- | 4386 | glance/store/s3.py | 2 +- |
453 | 4114 | glance/store/scrubber.py | 2 +- | 4387 | glance/store/scrubber.py | 2 +- |
454 | 4115 | glance/store/swift.py | 2 +- | 4388 | glance/store/swift.py | 2 +- |
455 | 4116 | glance/tests/unit/test_notifier.py | 3 +-- | 4389 | glance/tests/unit/test_notifier.py | 3 +-- |
456 | 4117 | glance/tests/unit/utils.py | 3 +-- | 4390 | glance/tests/unit/utils.py | 3 +-- |
457 | 4118 | tools/migrate_image_owners.py | 2 +- | 4391 | tools/migrate_image_owners.py | 2 +- |
458 | 4119 | 42 files changed, 46 insertions(+), 56 deletions(-) | 4392 | 42 files changed, 46 insertions(+), 56 deletions(-) |
459 | 4120 | 4393 | ||
460 | 4121 | commit 69d3cd58b755ac6c50b1aef31131819c911e41f6 | 4394 | commit 69d3cd58b755ac6c50b1aef31131819c911e41f6 |
461 | @@ -5342,13 +5615,13 @@ | |||
462 | 5342 | 5615 | ||
463 | 5343 | Change-Id: I10c677cfd5186edce3ca96495eafc732168cac86 | 5616 | Change-Id: I10c677cfd5186edce3ca96495eafc732168cac86 |
464 | 5344 | 5617 | ||
472 | 5345 | .../migrate_repo/versions/003_add_disk_format.py | 1 - | 5618 | glance/db/sqlalchemy/migrate_repo/versions/003_add_disk_format.py | 1 - |
473 | 5346 | .../migrate_repo/versions/004_add_checksum.py | 1 - | 5619 | glance/db/sqlalchemy/migrate_repo/versions/004_add_checksum.py | 1 - |
474 | 5347 | .../migrate_repo/versions/006_key_to_name.py | 1 - | 5620 | glance/db/sqlalchemy/migrate_repo/versions/006_key_to_name.py | 1 - |
475 | 5348 | .../migrate_repo/versions/007_add_owner.py | 1 - | 5621 | glance/db/sqlalchemy/migrate_repo/versions/007_add_owner.py | 1 - |
476 | 5349 | .../versions/008_add_image_members_table.py | 4 ++-- | 5622 | .../migrate_repo/versions/008_add_image_members_table.py | 4 ++-- |
477 | 5350 | .../versions/009_add_mindisk_and_minram.py | 1 - | 5623 | .../sqlalchemy/migrate_repo/versions/009_add_mindisk_and_minram.py | 1 - |
478 | 5351 | .../migrate_repo/versions/012_id_to_uuid.py | 1 - | 5624 | glance/db/sqlalchemy/migrate_repo/versions/012_id_to_uuid.py | 1 - |
479 | 5352 | 7 files changed, 2 insertions(+), 8 deletions(-) | 5625 | 7 files changed, 2 insertions(+), 8 deletions(-) |
480 | 5353 | 5626 | ||
481 | 5354 | commit 9c8c630d53877c5a9b0dda856b207468fdb4062c | 5627 | commit 9c8c630d53877c5a9b0dda856b207468fdb4062c |
482 | @@ -5472,13 +5745,13 @@ | |||
483 | 5472 | 5745 | ||
484 | 5473 | Change-Id: I3c4d98c81dee6676916c60e71a749037ae1edc81 | 5746 | Change-Id: I3c4d98c81dee6676916c60e71a749037ae1edc81 |
485 | 5474 | 5747 | ||
493 | 5475 | glance/common/exception.py | 2 +- | 5748 | glance/common/exception.py | 2 +- |
494 | 5476 | .../versions/015_quote_swift_credentials.py | 15 +++++++++++---- | 5749 | .../versions/015_quote_swift_credentials.py | 15 +++++++++++---- |
495 | 5477 | glance/store/filesystem.py | 5 +++-- | 5750 | glance/store/filesystem.py | 5 +++-- |
496 | 5478 | glance/store/http.py | 9 +++++++-- | 5751 | glance/store/http.py | 9 +++++++-- |
497 | 5479 | glance/store/rbd.py | 5 +++-- | 5752 | glance/store/rbd.py | 5 +++-- |
498 | 5480 | glance/store/s3.py | 13 ++++++++----- | 5753 | glance/store/s3.py | 13 ++++++++----- |
499 | 5481 | glance/store/swift.py | 14 +++++++++----- | 5754 | glance/store/swift.py | 14 +++++++++----- |
500 | 5482 | 7 files changed, 42 insertions(+), 21 deletions(-) | 5755 | 7 files changed, 42 insertions(+), 21 deletions(-) |
501 | 5483 | 5756 | ||
502 | 5484 | commit b3b4d64ae23fd3a662e6ebc98642c42fe6631cad | 5757 | commit b3b4d64ae23fd3a662e6ebc98642c42fe6631cad |
503 | @@ -5502,13 +5775,13 @@ | |||
504 | 5502 | 5775 | ||
505 | 5503 | Change-Id: I68c6f1735e5001641994ed4f84ad879397ba8713 | 5776 | Change-Id: I68c6f1735e5001641994ed4f84ad879397ba8713 |
506 | 5504 | 5777 | ||
514 | 5505 | glance/tests/functional/store_utils.py | 3 ++- | 5778 | glance/tests/functional/store_utils.py | 3 ++- |
515 | 5506 | glance/tests/functional/test_bin_glance.py | 10 +++++++--- | 5779 | glance/tests/functional/test_bin_glance.py | 10 +++++++--- |
516 | 5507 | .../tests/functional/v1/test_cache_middleware.py | 4 +++- | 5780 | glance/tests/functional/v1/test_cache_middleware.py | 4 +++- |
517 | 5508 | glance/tests/functional/v1/test_copy_to_file.py | 4 +++- | 5781 | glance/tests/functional/v1/test_copy_to_file.py | 4 +++- |
518 | 5509 | glance/tests/functional/v1/test_s3.py | 4 +++- | 5782 | glance/tests/functional/v1/test_s3.py | 4 +++- |
519 | 5510 | glance/tests/functional/v1/test_swift.py | 4 +++- | 5783 | glance/tests/functional/v1/test_swift.py | 4 +++- |
520 | 5511 | glance/tests/utils.py | 5 +++-- | 5784 | glance/tests/utils.py | 5 +++-- |
521 | 5512 | 7 files changed, 24 insertions(+), 10 deletions(-) | 5785 | 7 files changed, 24 insertions(+), 10 deletions(-) |
522 | 5513 | 5786 | ||
523 | 5514 | commit c44e16a538113293c7e73eea22c2ebc0f84c365f | 5787 | commit c44e16a538113293c7e73eea22c2ebc0f84c365f |
524 | @@ -8228,9 +8501,9 @@ | |||
525 | 8228 | 8501 | ||
526 | 8229 | Change-Id: Ie4f4c13846de727647abe168aeb193a93f03e0bf | 8502 | Change-Id: Ie4f4c13846de727647abe168aeb193a93f03e0bf |
527 | 8230 | 8503 | ||
531 | 8231 | glance/tests/functional/test_bin_glance.py | 1 + | 8504 | glance/tests/functional/test_bin_glance.py | 1 + |
532 | 8232 | .../functional/v1/test_bin_glance_cache_manage.py | 1 + | 8505 | glance/tests/functional/v1/test_bin_glance_cache_manage.py | 1 + |
533 | 8233 | glance/tests/functional/v1/test_misc.py | 10 ++++++++++ | 8506 | glance/tests/functional/v1/test_misc.py | 10 ++++++++++ |
534 | 8234 | 3 files changed, 12 insertions(+) | 8507 | 3 files changed, 12 insertions(+) |
535 | 8235 | 8508 | ||
536 | 8236 | commit ca84ec7d5550c0978ac80fad7972e77c1c971107 | 8509 | commit ca84ec7d5550c0978ac80fad7972e77c1c971107 |
537 | @@ -8562,21 +8835,21 @@ | |||
538 | 8562 | 8835 | ||
539 | 8563 | Change-Id: I9d602ed429caff8ffb00e40f623c473c5425e1cc | 8836 | Change-Id: I9d602ed429caff8ffb00e40f623c473c5425e1cc |
540 | 8564 | 8837 | ||
556 | 8565 | glance/tests/functional/test_logging.py | 2 -- | 8838 | glance/tests/functional/test_logging.py | 2 -- |
557 | 8566 | glance/tests/functional/test_respawn.py | 2 +- | 8839 | glance/tests/functional/test_respawn.py | 2 +- |
558 | 8567 | glance/tests/functional/test_scrubber.py | 3 --- | 8840 | glance/tests/functional/test_scrubber.py | 3 --- |
559 | 8568 | .../functional/v1/test_bin_glance_cache_manage.py | 4 ---- | 8841 | glance/tests/functional/v1/test_bin_glance_cache_manage.py | 4 ---- |
560 | 8569 | .../tests/functional/v1/test_cache_middleware.py | 1 - | 8842 | glance/tests/functional/v1/test_cache_middleware.py | 1 - |
561 | 8570 | glance/tests/functional/v1/test_s3.py | 5 +---- | 8843 | glance/tests/functional/v1/test_s3.py | 5 +---- |
562 | 8571 | glance/tests/functional/v1/test_ssl.py | 6 +----- | 8844 | glance/tests/functional/v1/test_ssl.py | 6 +----- |
563 | 8572 | glance/tests/functional/v1/test_swift.py | 1 - | 8845 | glance/tests/functional/v1/test_swift.py | 1 - |
564 | 8573 | glance/tests/stubs.py | 2 -- | 8846 | glance/tests/stubs.py | 2 -- |
565 | 8574 | glance/tests/unit/test_clients.py | 8 -------- | 8847 | glance/tests/unit/test_clients.py | 8 -------- |
566 | 8575 | glance/tests/unit/test_context.py | 2 -- | 8848 | glance/tests/unit/test_context.py | 2 -- |
567 | 8576 | glance/tests/unit/test_db.py | 1 - | 8849 | glance/tests/unit/test_db.py | 1 - |
568 | 8577 | glance/tests/unit/test_filesystem_store.py | 3 --- | 8850 | glance/tests/unit/test_filesystem_store.py | 3 --- |
569 | 8578 | glance/tests/unit/test_image_cache.py | 1 - | 8851 | glance/tests/unit/test_image_cache.py | 1 - |
570 | 8579 | glance/tests/unit/test_s3_store.py | 5 +---- | 8852 | glance/tests/unit/test_s3_store.py | 5 +---- |
571 | 8580 | 15 files changed, 4 insertions(+), 42 deletions(-) | 8853 | 15 files changed, 4 insertions(+), 42 deletions(-) |
572 | 8581 | 8854 | ||
573 | 8582 | commit 35ed3105552cf6c182c76b6f13f719bfe7eb596b | 8855 | commit 35ed3105552cf6c182c76b6f13f719bfe7eb596b |
574 | @@ -8707,8 +8980,8 @@ | |||
575 | 8707 | 8980 | ||
576 | 8708 | Change-Id: Iab80a65464a591b732ecce4c00d04df50624e912 | 8981 | Change-Id: Iab80a65464a591b732ecce4c00d04df50624e912 |
577 | 8709 | 8982 | ||
580 | 8710 | Authors | 1 + | 8983 | Authors | 1 + |
581 | 8711 | .../db/migrate_repo/versions/006_key_to_name.py | 2 +- | 8984 | glance/registry/db/migrate_repo/versions/006_key_to_name.py | 2 +- |
582 | 8712 | 2 files changed, 2 insertions(+), 1 deletion(-) | 8985 | 2 files changed, 2 insertions(+), 1 deletion(-) |
583 | 8713 | 8986 | ||
584 | 8714 | commit 257be28b8c77bd1fa3e402d2bd2f5ee67ac4e60e | 8987 | commit 257be28b8c77bd1fa3e402d2bd2f5ee67ac4e60e |
585 | @@ -10302,12 +10575,12 @@ | |||
586 | 10302 | Change-Id: I5ad5042dbc9785829694553f2657df3eb6e3ef20 | 10575 | Change-Id: I5ad5042dbc9785829694553f2657df3eb6e3ef20 |
587 | 10303 | Signed-off-by: Chuck Short <chuck.short@canonical.com> | 10576 | Signed-off-by: Chuck Short <chuck.short@canonical.com> |
588 | 10304 | 10577 | ||
595 | 10305 | .../migrate_repo/versions/001_add_images_table.py | 2 +- | 10578 | glance/registry/db/migrate_repo/versions/001_add_images_table.py | 2 +- |
596 | 10306 | .../versions/002_add_image_properties_table.py | 2 +- | 10579 | .../db/migrate_repo/versions/002_add_image_properties_table.py | 2 +- |
597 | 10307 | .../db/migrate_repo/versions/004_add_checksum.py | 2 +- | 10580 | glance/registry/db/migrate_repo/versions/004_add_checksum.py | 2 +- |
598 | 10308 | .../db/migrate_repo/versions/007_add_owner.py | 2 +- | 10581 | glance/registry/db/migrate_repo/versions/007_add_owner.py | 2 +- |
599 | 10309 | .../versions/008_add_image_members_table.py | 2 +- | 10582 | .../registry/db/migrate_repo/versions/008_add_image_members_table.py | 2 +- |
600 | 10310 | .../versions/009_add_mindisk_and_minram.py | 2 +- | 10583 | .../registry/db/migrate_repo/versions/009_add_mindisk_and_minram.py | 2 +- |
601 | 10311 | 6 files changed, 6 insertions(+), 6 deletions(-) | 10584 | 6 files changed, 6 insertions(+), 6 deletions(-) |
602 | 10312 | 10585 | ||
603 | 10313 | commit 3b229c394521e5b1b81e4629c6ff9c09e3b866c9 | 10586 | commit 3b229c394521e5b1b81e4629c6ff9c09e3b866c9 |
604 | @@ -10991,8 +11264,8 @@ | |||
605 | 10991 | 11264 | ||
606 | 10992 | Change-Id: Ic248fdfe3933437928f0b393d8cde993b96bf2cb | 11265 | Change-Id: Ic248fdfe3933437928f0b393d8cde993b96bf2cb |
607 | 10993 | 11266 | ||
610 | 10994 | .mailmap | 1 + | 11267 | .mailmap | 1 + |
611 | 10995 | .../migrate_repo/versions/003_add_disk_format.py | 2 +- | 11268 | glance/registry/db/migrate_repo/versions/003_add_disk_format.py | 2 +- |
612 | 10996 | 2 files changed, 2 insertions(+), 1 deletion(-) | 11269 | 2 files changed, 2 insertions(+), 1 deletion(-) |
613 | 10997 | 11270 | ||
614 | 10998 | commit 59ca8b0b44bbb2276d7e5903bfe9d14a6a26d901 | 11271 | commit 59ca8b0b44bbb2276d7e5903bfe9d14a6a26d901 |
615 | @@ -11352,7 +11625,7 @@ | |||
616 | 11352 | 11625 | ||
617 | 11353 | Change-Id: Iab1c3e7a52d739a445cf52eb9a67f61a69075026 | 11626 | Change-Id: Iab1c3e7a52d739a445cf52eb9a67f61a69075026 |
618 | 11354 | 11627 | ||
620 | 11355 | .../db/migrate_repo/versions/012_id_to_uuid.py | 8 ++------ | 11628 | glance/registry/db/migrate_repo/versions/012_id_to_uuid.py | 8 ++------ |
621 | 11356 | 1 file changed, 2 insertions(+), 6 deletions(-) | 11629 | 1 file changed, 2 insertions(+), 6 deletions(-) |
622 | 11357 | 11630 | ||
623 | 11358 | commit 300d4031a94b85539a30bde726131231008c80a6 | 11631 | commit 300d4031a94b85539a30bde726131231008c80a6 |
624 | @@ -13740,7 +14013,7 @@ | |||
625 | 13740 | 14013 | ||
626 | 13741 | Change-Id: I66307cb355120b992913c8a1d8d5855b30f70504 | 14014 | Change-Id: I66307cb355120b992913c8a1d8d5855b30f70504 |
627 | 13742 | 14015 | ||
629 | 13743 | .../db/migrate_repo/versions/012_id_to_uuid.py | 4 ++-- | 14016 | glance/registry/db/migrate_repo/versions/012_id_to_uuid.py | 4 ++-- |
630 | 13744 | 1 file changed, 2 insertions(+), 2 deletions(-) | 14017 | 1 file changed, 2 insertions(+), 2 deletions(-) |
631 | 13745 | 14018 | ||
632 | 13746 | commit 94dcf3acd0b3ef7adcb61b90bf4bdcc733cf61ac | 14019 | commit 94dcf3acd0b3ef7adcb61b90bf4bdcc733cf61ac |
633 | @@ -21103,8 +21376,8 @@ | |||
634 | 21103 | 21376 | ||
635 | 21104 | Add migration scripts for revising the datatype of the 'size' column in the images table. | 21377 | Add migration scripts for revising the datatype of the 'size' column in the images table. |
636 | 21105 | 21378 | ||
639 | 21106 | .../migrate_repo/versions/006_mysql_downgrade.sql | 2 ++ | 21379 | glance/registry/db/migrate_repo/versions/006_mysql_downgrade.sql | 2 ++ |
640 | 21107 | .../db/migrate_repo/versions/006_mysql_upgrade.sql | 2 ++ | 21380 | glance/registry/db/migrate_repo/versions/006_mysql_upgrade.sql | 2 ++ |
641 | 21108 | 2 files changed, 4 insertions(+) | 21381 | 2 files changed, 4 insertions(+) |
642 | 21109 | 21382 | ||
643 | 21110 | commit 84051230f523294a1ea57bcdb3560bcdb4fda84e | 21383 | commit 84051230f523294a1ea57bcdb3560bcdb4fda84e |
644 | @@ -23083,8 +23356,8 @@ | |||
645 | 23083 | 23356 | ||
646 | 23084 | Creating indexes | 23357 | Creating indexes |
647 | 23085 | 23358 | ||
650 | 23086 | .../migrate_repo/versions/001_add_images_table.py | 9 +++++---- | 23359 | .../db/migrate_repo/versions/001_add_images_table.py | 9 +++++---- |
651 | 23087 | .../versions/002_add_image_properties_table.py | 14 +++++++++----- | 23360 | .../versions/002_add_image_properties_table.py | 14 +++++++++----- |
652 | 23088 | 2 files changed, 14 insertions(+), 9 deletions(-) | 23361 | 2 files changed, 14 insertions(+), 9 deletions(-) |
653 | 23089 | 23362 | ||
654 | 23090 | commit d060da4993312aa803371464d876a63ded7afba3 | 23363 | commit d060da4993312aa803371464d876a63ded7afba3 |
655 | @@ -23114,8 +23387,8 @@ | |||
656 | 23114 | 23387 | ||
657 | 23115 | Small cleanups | 23388 | Small cleanups |
658 | 23116 | 23389 | ||
661 | 23117 | .../migrate_repo/versions/001_add_images_table.py | 12 +++--------- | 23390 | .../db/migrate_repo/versions/001_add_images_table.py | 12 +++--------- |
662 | 23118 | .../versions/002_add_image_properties_table.py | 12 +++--------- | 23391 | .../versions/002_add_image_properties_table.py | 12 +++--------- |
663 | 23119 | 2 files changed, 6 insertions(+), 18 deletions(-) | 23392 | 2 files changed, 6 insertions(+), 18 deletions(-) |
664 | 23120 | 23393 | ||
665 | 23121 | commit a436b433ca746864aed9fdec8bbe345c3bf147a7 | 23394 | commit a436b433ca746864aed9fdec8bbe345c3bf147a7 |
666 | @@ -23220,9 +23493,9 @@ | |||
667 | 23220 | 23493 | ||
668 | 23221 | Better logging | 23494 | Better logging |
669 | 23222 | 23495 | ||
673 | 23223 | glance/registry/db/migrate_repo/schema.py | 19 +++++++++++++++++++ | 23496 | glance/registry/db/migrate_repo/schema.py | 19 +++++++++++++++++++ |
674 | 23224 | .../migrate_repo/versions/001_add_images_table.py | 12 ++++++------ | 23497 | .../migrate_repo/versions/001_add_images_table.py | 12 ++++++------ |
675 | 23225 | .../versions/002_add_image_properties_table.py | 13 ++++++------- | 23498 | .../versions/002_add_image_properties_table.py | 13 ++++++------- |
676 | 23226 | 3 files changed, 31 insertions(+), 13 deletions(-) | 23499 | 3 files changed, 31 insertions(+), 13 deletions(-) |
677 | 23227 | 23500 | ||
678 | 23228 | commit d923a0417537552f672fd5b38b63f40c695f5cd5 | 23501 | commit d923a0417537552f672fd5b38b63f40c695f5cd5 |
679 | 23229 | 23502 | ||
680 | === modified file 'PKG-INFO' | |||
681 | --- PKG-INFO 2012-06-22 09:18:07 +0000 | |||
682 | +++ PKG-INFO 2013-01-08 00:34:25 +0000 | |||
683 | @@ -1,6 +1,6 @@ | |||
684 | 1 | Metadata-Version: 1.1 | 1 | Metadata-Version: 1.1 |
685 | 2 | Name: glance | 2 | Name: glance |
687 | 3 | Version: 2012.2 | 3 | Version: 2012.2.1 |
688 | 4 | Summary: The Glance project provides services for discovering, registering, and retrieving virtual machine images | 4 | Summary: The Glance project provides services for discovering, registering, and retrieving virtual machine images |
689 | 5 | Home-page: http://glance.openstack.org/ | 5 | Home-page: http://glance.openstack.org/ |
690 | 6 | Author: OpenStack | 6 | Author: OpenStack |
691 | 7 | 7 | ||
692 | === modified file 'debian/changelog' | |||
693 | --- debian/changelog 2012-10-19 23:02:14 +0000 | |||
694 | +++ debian/changelog 2013-01-08 00:34:25 +0000 | |||
695 | @@ -1,8 +1,66 @@ | |||
701 | 1 | glance (2012.2-0ubuntu2~cloud0) precise-folsom; urgency=low | 1 | glance (2012.2.1-0ubuntu1~cloud0) precise-folsom; urgency=low |
702 | 2 | 2 | ||
703 | 3 | * New release candidate for the Ubuntu Cloud Archive. | 3 | * Stable update for the Ubuntu Cloud Archive. |
704 | 4 | 4 | ||
705 | 5 | -- Adam Gandelman <adamg@canonical.com> Fri, 19 Oct 2012 23:02:14 -0700 | 5 | -- Adam Gandelman <adamg@ubuntu.com> Mon, 07 Jan 2013 16:02:15 -0800 |
706 | 6 | |||
707 | 7 | glance (2012.2.1-0ubuntu1) quantal-proposed; urgency=low | ||
708 | 8 | |||
709 | 9 | * Dropped patches, applied upstream: | ||
710 | 10 | - debian/patches/CVE-2012-4573.patch | ||
711 | 11 | - debian/patches/CVE-2012-4573b.patch | ||
712 | 12 | * Resynchronize with stable/folsom (199783ce) (LP: #1085255): | ||
713 | 13 | - [49408e9] Glance image-delete HTTPInternalServerError HTTP 500 | ||
714 | 14 | (LP: #1075580) | ||
715 | 15 | - [91aaa48] Image fails to upload to swift: TypeError: object of type | ||
716 | 16 | 'CooperativeReader' has no len( (LP: #1057322) | ||
717 | 17 | - [a296a5b] Return 403 when admin deletes a deleted image (LP: #1060944) | ||
718 | 18 | - [3e58a6a] Disallow updating deleted images. (LP: #1060930) | ||
719 | 19 | - [26c8085] admins can see deleted images in v2 api (LP: #1071446) | ||
720 | 20 | - [8321ca6] No exclude option to skip tests in run_tests.sh (LP: #1065758) | ||
721 | 21 | - [c3bea11] Badly named stable/folsom Glance tarballs (LP: #1059634) | ||
722 | 22 | - [fc0ee76] Non-admin users can cause public glance images to be deleted | ||
723 | 23 | from the backend storage repository in the v2 api (LP: #1076506) | ||
724 | 24 | - [90bcdc5] Non-admin users can cause public glance images to be deleted | ||
725 | 25 | from the backend storage repository (LP: #1065187) | ||
726 | 26 | - [7841cc9] FakeAuth not always admin | ||
727 | 27 | - [ddad275] Jenkins jobs fail because of incompatibility between sqlalchemy- | ||
728 | 28 | migrate and the newest sqlalchemy-0.8.0b1 (LP: #1073569) | ||
729 | 29 | - [1d5c651] nosetest options cause no such option errors (LP: #1056420) | ||
730 | 30 | - [ac223e2] Set defaultbranch in .gitreview to stable/folsom | ||
731 | 31 | |||
732 | 32 | -- Adam Gandelman <adamg@ubuntu.com> Tue, 04 Dec 2012 09:19:35 -0800 | ||
733 | 33 | |||
734 | 34 | glance (2012.2-0ubuntu2.3~cloud0) precise-folsom; urgency=low | ||
735 | 35 | |||
736 | 36 | * New package update for the Ubuntu Cloud Archive. | ||
737 | 37 | |||
738 | 38 | -- Chuck Short <zulcss@ubuntu.com> Wed, 21 Nov 2012 15:04:26 -0500 | ||
739 | 39 | |||
740 | 40 | glance (2012.2-0ubuntu2.3) quantal-security; urgency=low | ||
741 | 41 | |||
742 | 42 | * SECURITY UPDATE: deletion of arbitrary public and shared images via | ||
743 | 43 | authenticated user | ||
744 | 44 | - debian/patches/CVE-2012-4573b.patch: previous patch was incomplete. | ||
745 | 45 | Make corresponding change to glance/api/v2/images.py | ||
746 | 46 | - CVE-2012-4573 | ||
747 | 47 | * debian/control: add Build-Depends-Indep on python-chardet. This is needed | ||
748 | 48 | by python-requests to do encoding detection which otherwise fails in the | ||
749 | 49 | new tests introduced in CVE-2012-4573b.patch. | ||
750 | 50 | |||
751 | 51 | -- Jamie Strandboge <jamie@ubuntu.com> Fri, 09 Nov 2012 06:53:44 -0600 | ||
752 | 52 | |||
753 | 53 | glance (2012.2-0ubuntu2.2) quantal-security; urgency=low | ||
754 | 54 | |||
755 | 55 | * SECURITY UPDATE: deletion of arbitrary public and shared images via | ||
756 | 56 | authenticated user | ||
757 | 57 | - debian/patches/CVE-2012-4573.patch: adjust glance/api/v1/images.py to | ||
758 | 58 | ensure image is owned by user before delayed_deletion | ||
759 | 59 | - CVE-2012-4573 | ||
760 | 60 | * debian/patches/fakeauth-not-always-admin.patch: add required testsuite | ||
761 | 61 | patch in support of the testsuite changes in CVE-2012-4573.patch | ||
762 | 62 | |||
763 | 63 | -- Jamie Strandboge <jamie@ubuntu.com> Thu, 08 Nov 2012 07:41:02 -0600 | ||
764 | 6 | 64 | ||
765 | 7 | glance (2012.2-0ubuntu2) quantal-proposed; urgency=low | 65 | glance (2012.2-0ubuntu2) quantal-proposed; urgency=low |
766 | 8 | 66 | ||
767 | @@ -11,12 +69,6 @@ | |||
768 | 11 | 69 | ||
769 | 12 | -- James Page <james.page@ubuntu.com> Fri, 12 Oct 2012 15:43:54 +0100 | 70 | -- James Page <james.page@ubuntu.com> Fri, 12 Oct 2012 15:43:54 +0100 |
770 | 13 | 71 | ||
771 | 14 | glance (2012.2-0ubuntu1~cloud0) precise-folsom; urgency=low | ||
772 | 15 | |||
773 | 16 | * New release candidate for the Ubuntu Cloud Archive. | ||
774 | 17 | |||
775 | 18 | -- Chuck Short <zulcss@ubuntu.com> Thu, 27 Sep 2012 15:34:04 -0500 | ||
776 | 19 | |||
777 | 20 | glance (2012.2-0ubuntu1) quantal; urgency=low | 72 | glance (2012.2-0ubuntu1) quantal; urgency=low |
778 | 21 | 73 | ||
779 | 22 | * debian/control: Clean-up python depends. Thanks to Sam Morrison. | 74 | * debian/control: Clean-up python depends. Thanks to Sam Morrison. |
780 | @@ -31,12 +83,6 @@ | |||
781 | 31 | 83 | ||
782 | 32 | -- Chuck Short <zulcss@ubuntu.com> Wed, 26 Sep 2012 12:37:00 -0500 | 84 | -- Chuck Short <zulcss@ubuntu.com> Wed, 26 Sep 2012 12:37:00 -0500 |
783 | 33 | 85 | ||
784 | 34 | glance (2012.2~rc2-0ubuntu1~cloud0) precise-folsom; urgency=low | ||
785 | 35 | |||
786 | 36 | * New release candidate for the Ubuntu Cloud Archive. | ||
787 | 37 | |||
788 | 38 | -- Chuck Short <zulcss@ubuntu.com> Thu, 27 Sep 2012 14:04:18 -0500 | ||
789 | 39 | |||
790 | 40 | glance (2012.2~rc2-0ubuntu1) quantal; urgency=low | 86 | glance (2012.2~rc2-0ubuntu1) quantal; urgency=low |
791 | 41 | 87 | ||
792 | 42 | * debian/control: Suggest ceph-common. | 88 | * debian/control: Suggest ceph-common. |
793 | @@ -46,14 +92,16 @@ | |||
794 | 46 | 92 | ||
795 | 47 | -- Chuck Short <zulcss@ubuntu.com> Wed, 26 Sep 2012 12:32:50 -0500 | 93 | -- Chuck Short <zulcss@ubuntu.com> Wed, 26 Sep 2012 12:32:50 -0500 |
796 | 48 | 94 | ||
797 | 49 | glance (2012.2~rc1-0ubuntu1~cloud0) precise-folsom; urgency=low | ||
798 | 50 | |||
799 | 51 | * New release candidate for the Ubuntu Cloud Archive. | ||
800 | 52 | |||
801 | 53 | -- Chuck Short <zulcss@ubuntu.com> Tue, 18 Sep 2012 08:26:19 -0500 | ||
802 | 54 | |||
803 | 55 | glance (2012.2~rc1-0ubuntu1) quantal; urgency=low | 95 | glance (2012.2~rc1-0ubuntu1) quantal; urgency=low |
804 | 56 | 96 | ||
805 | 97 | * New upstrem release. | ||
806 | 98 | * debian/glance.logrotate: compress right logfiles when rotating them. | ||
807 | 99 | (LP: #1049314) | ||
808 | 100 | |||
809 | 101 | -- Chuck Short <zulcss@ubuntu.com> Mon, 17 Sep 2012 07:44:11 -0500 | ||
810 | 102 | |||
811 | 103 | glance (2012.2~rc1~20120907.129.f0bd856-0ubuntu1) quantal; urgency=low | ||
812 | 104 | |||
813 | 57 | [ Chuck Short ] | 105 | [ Chuck Short ] |
814 | 58 | * New upstream version. | 106 | * New upstream version. |
815 | 59 | * drop debian/patches/fix-docs-build.patch. | 107 | * drop debian/patches/fix-docs-build.patch. |
816 | @@ -61,8 +109,6 @@ | |||
817 | 61 | * debain/control: Add depends on python-swiftclient. | 109 | * debain/control: Add depends on python-swiftclient. |
818 | 62 | * debian/*.usptart: make glance start from runlevel 1 to runlevel | 110 | * debian/*.usptart: make glance start from runlevel 1 to runlevel |
819 | 63 | 2. (LP: #820688) | 111 | 2. (LP: #820688) |
820 | 64 | * debian/glance.logrotate: compress right logfiles when rotating them. | ||
821 | 65 | (LP: #1049314) | ||
822 | 66 | 112 | ||
823 | 67 | [ Soren Hansen ] | 113 | [ Soren Hansen ] |
824 | 68 | * Update debian/watch to account for symbolically named tarballs and | 114 | * Update debian/watch to account for symbolically named tarballs and |
825 | @@ -71,7 +117,7 @@ | |||
826 | 71 | * Refresh disable-network-for-docs.patch | 117 | * Refresh disable-network-for-docs.patch |
827 | 72 | * Fix Launchpad URLs in debian/watch. | 118 | * Fix Launchpad URLs in debian/watch. |
828 | 73 | 119 | ||
830 | 74 | -- Chuck Short <zulcss@ubuntu.com> Mon, 17 Sep 2012 07:44:11 -0500 | 120 | -- Chuck Short <zulcss@ubuntu.com> Fri, 07 Sep 2012 12:17:46 -0500 |
831 | 75 | 121 | ||
832 | 76 | glance (2012.2~f3-0ubuntu1) quantal; urgency=low | 122 | glance (2012.2~f3-0ubuntu1) quantal; urgency=low |
833 | 77 | 123 | ||
834 | @@ -90,10 +136,16 @@ | |||
835 | 90 | 136 | ||
836 | 91 | -- Chuck Short <zulcss@ubuntu.com> Thu, 16 Aug 2012 13:58:32 -0500 | 137 | -- Chuck Short <zulcss@ubuntu.com> Thu, 16 Aug 2012 13:58:32 -0500 |
837 | 92 | 138 | ||
839 | 93 | glance (2012.2~f2-0ubuntu1~cloud0) precise; urgency=low | 139 | glance (2012.2~f2-0ubuntu1) quantal; urgency=low |
840 | 140 | |||
841 | 141 | * New upstream version. | ||
842 | 142 | |||
843 | 143 | -- Chuck Short <zulcss@ubuntu.com> Fri, 06 Jul 2012 11:13:13 -0400 | ||
844 | 144 | |||
845 | 145 | glance (2012.2~f2~20120621.1644-0ubuntu1) quantal; urgency=low | ||
846 | 94 | 146 | ||
847 | 95 | [ Chuck Short ] | 147 | [ Chuck Short ] |
849 | 96 | * New upstream version. | 148 | * New upstream release. |
850 | 97 | * debian/glance-reigstry.logrotate: Rotate the right logfile. (LP: #1009996) | 149 | * debian/glance-reigstry.logrotate: Rotate the right logfile. (LP: #1009996) |
851 | 98 | * debian/control: Fix short description of glance-client. (LP: #982658) | 150 | * debian/control: Fix short description of glance-client. (LP: #982658) |
852 | 99 | * debian/pydist-overrides: Add argparse and python_swiftclient. | 151 | * debian/pydist-overrides: Add argparse and python_swiftclient. |
853 | @@ -102,14 +154,25 @@ | |||
854 | 102 | * debian/glance-api.install: Remove glance-{scrubber, cache}-paste.ini. | 154 | * debian/glance-api.install: Remove glance-{scrubber, cache}-paste.ini. |
855 | 103 | * debian/patches/ensure_versioned_db_models.patch: Disable while database | 155 | * debian/patches/ensure_versioned_db_models.patch: Disable while database |
856 | 104 | related code changes settle upstream. | 156 | related code changes settle upstream. |
857 | 157 | |||
858 | 158 | -- Chuck Short <zulcss@ubuntu.com> Fri, 22 Jun 2012 09:18:07 -0400 | ||
859 | 159 | |||
860 | 160 | glance (2012.2~f2~20120531.1560-0ubuntu2) quantal; urgency=low | ||
861 | 161 | |||
862 | 105 | * debian/patches/ensure_versioned_db_models.patch: Refresh. | 162 | * debian/patches/ensure_versioned_db_models.patch: Refresh. |
863 | 106 | * debian/patches/disable-swift-tests.patch: Refresh. | 163 | * debian/patches/disable-swift-tests.patch: Refresh. |
864 | 107 | * debian/control: Re-enable python-jsonchema Dependency now that it has | 164 | * debian/control: Re-enable python-jsonchema Dependency now that it has |
865 | 108 | landed in main. | 165 | landed in main. |
866 | 109 | 166 | ||
870 | 110 | -- Chuck Short <zulcss@ubuntu.com> Tue, 17 Jul 2012 10:12:05 -0500 | 167 | -- Adam Gandelman <adamg@canonical.com> Tue, 05 Jun 2012 10:53:30 -0700 |
871 | 111 | 168 | ||
872 | 112 | glance (2012.2~f1-0ubuntu1~cloud0) precise-folsom; urgency=low | 169 | glance (2012.2~f2~20120531.1560-0ubuntu1) quantal; urgency=low |
873 | 170 | |||
874 | 171 | * New upstream release. | ||
875 | 172 | |||
876 | 173 | -- Chuck Short <zulcss@ubuntu.com> Fri, 01 Jun 2012 10:56:09 -0400 | ||
877 | 174 | |||
878 | 175 | glance (2012.2~f2~20120524.1541-0ubuntu1) quantal; urgency=low | ||
879 | 113 | 176 | ||
880 | 114 | [ Adam Gandelman ] | 177 | [ Adam Gandelman ] |
881 | 115 | * debian/patches/ensure_versioned_db_models.patch: Check for valid | 178 | * debian/patches/ensure_versioned_db_models.patch: Check for valid |
882 | @@ -137,34 +200,6 @@ | |||
883 | 137 | 200 | ||
884 | 138 | -- Adam Gandelman <adamg@canonical.com> Thu, 24 May 2012 10:26:57 -0700 | 201 | -- Adam Gandelman <adamg@canonical.com> Thu, 24 May 2012 10:26:57 -0700 |
885 | 139 | 202 | ||
886 | 140 | glance (2012.2~f1-0ubuntu1~cloud0) precise; urgency=low | ||
887 | 141 | |||
888 | 142 | [ Adam Gandelman ] | ||
889 | 143 | * debian/patches/ensure_versioned_db_models.patch: Check for valid | ||
890 | 144 | db models+schema at service start, and ensure db is version controlled | ||
891 | 145 | before running all migrations. | ||
892 | 146 | * debian/{control, pydist-overrides}: *Temporarily* disable non-main | ||
893 | 147 | dependencies pending MIRs | ||
894 | 148 | * debian/rules: *Temporarily* disable tests until new dependencies are | ||
895 | 149 | satisfied | ||
896 | 150 | |||
897 | 151 | [ Chuck Short ] | ||
898 | 152 | * New upstream version. | ||
899 | 153 | * Prepare for quantal: | ||
900 | 154 | - Removed debian/patches/fix_migration_012_foreign_keys.patch | ||
901 | 155 | - Removed debian/patches/disable_db_table_auto_create.patch | ||
902 | 156 | - Removed debian/patches/convert_properties_to_uuid.patch | ||
903 | 157 | * debian/control: Add dependency on python-requests | ||
904 | 158 | * debian/control: Add dependency on python-jsonschema | ||
905 | 159 | * debian/control: Add python-keystone as a depends. (LP: #901881) | ||
906 | 160 | * debian/patches/disable-swift-tests.patch: Rediffed | ||
907 | 161 | |||
908 | 162 | [ Paul Belanger ] | ||
909 | 163 | * debian/glance-common.postinst | ||
910 | 164 | - Give glance group read permission to /etc/glance (LP: #989205) | ||
911 | 165 | |||
912 | 166 | -- Chuck Short <zulcss@ubuntu.com> Mon, 09 Jul 2012 13:57:57 -0400 | ||
913 | 167 | |||
914 | 168 | glance (2012.1-0ubuntu2) precise; urgency=low | 203 | glance (2012.1-0ubuntu2) precise; urgency=low |
915 | 169 | 204 | ||
916 | 170 | [ Adam Gandelman ] | 205 | [ Adam Gandelman ] |
917 | 171 | 206 | ||
918 | === modified file 'debian/control' | |||
919 | --- debian/control 2012-10-12 15:43:54 +0000 | |||
920 | +++ debian/control 2013-01-08 00:34:25 +0000 | |||
921 | @@ -33,7 +33,8 @@ | |||
922 | 33 | python-glanceclient, | 33 | python-glanceclient, |
923 | 34 | python-xattr, | 34 | python-xattr, |
924 | 35 | curl, | 35 | curl, |
926 | 36 | pep8 | 36 | pep8, |
927 | 37 | python-chardet | ||
928 | 37 | Standards-Version: 3.9.3 | 38 | Standards-Version: 3.9.3 |
929 | 38 | XS-Python-Version: >= 2.6 | 39 | XS-Python-Version: >= 2.6 |
930 | 39 | Homepage: http://launchpad.net/glance | 40 | Homepage: http://launchpad.net/glance |
931 | 40 | 41 | ||
932 | === modified file 'debian/patches/sql_conn.patch' | |||
933 | --- debian/patches/sql_conn.patch 2012-10-19 23:02:14 +0000 | |||
934 | +++ debian/patches/sql_conn.patch 2013-01-08 00:34:25 +0000 | |||
935 | @@ -1,8 +1,8 @@ | |||
937 | 1 | Index: glance-2012.2.1/etc/glance-api.conf | 1 | Index: glance/etc/glance-api.conf |
938 | 2 | =================================================================== | 2 | =================================================================== |
942 | 3 | --- glance-2012.2.1.orig/etc/glance-api.conf 2012-10-19 12:22:20.857638821 -0700 | 3 | --- glance.orig/etc/glance-api.conf 2012-07-24 20:49:24.649816988 -0700 |
943 | 4 | +++ glance-2012.2.1/etc/glance-api.conf 2012-10-19 12:40:12.729599445 -0700 | 4 | +++ glance/etc/glance-api.conf 2012-07-24 20:52:03.309810007 -0700 |
944 | 5 | @@ -46,7 +46,7 @@ | 5 | @@ -35,7 +35,7 @@ |
945 | 6 | # SQLAlchemy connection string for the reference implementation | 6 | # SQLAlchemy connection string for the reference implementation |
946 | 7 | # registry server. Any valid SQLAlchemy connection string is fine. | 7 | # registry server. Any valid SQLAlchemy connection string is fine. |
947 | 8 | # See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine | 8 | # See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine |
948 | @@ -11,11 +11,11 @@ | |||
949 | 11 | 11 | ||
950 | 12 | # Period in seconds after which SQLAlchemy should reestablish its connection | 12 | # Period in seconds after which SQLAlchemy should reestablish its connection |
951 | 13 | # to the database. | 13 | # to the database. |
953 | 14 | Index: glance-2012.2.1/etc/glance-registry.conf | 14 | Index: glance/etc/glance-registry.conf |
954 | 15 | =================================================================== | 15 | =================================================================== |
958 | 16 | --- glance-2012.2.1.orig/etc/glance-registry.conf 2012-10-19 12:22:20.857638821 -0700 | 16 | --- glance.orig/etc/glance-registry.conf 2012-07-24 20:51:10.497812331 -0700 |
959 | 17 | +++ glance-2012.2.1/etc/glance-registry.conf 2012-10-19 12:40:12.733599445 -0700 | 17 | +++ glance/etc/glance-registry.conf 2012-07-24 20:51:11.301812296 -0700 |
960 | 18 | @@ -25,7 +25,7 @@ | 18 | @@ -21,7 +21,7 @@ |
961 | 19 | # SQLAlchemy connection string for the reference implementation | 19 | # SQLAlchemy connection string for the reference implementation |
962 | 20 | # registry server. Any valid SQLAlchemy connection string is fine. | 20 | # registry server. Any valid SQLAlchemy connection string is fine. |
963 | 21 | # See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine | 21 | # See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine |
964 | 22 | 22 | ||
965 | === modified file 'glance.egg-info/PKG-INFO' | |||
966 | --- glance.egg-info/PKG-INFO 2012-06-22 09:18:07 +0000 | |||
967 | +++ glance.egg-info/PKG-INFO 2013-01-08 00:34:25 +0000 | |||
968 | @@ -1,6 +1,6 @@ | |||
969 | 1 | Metadata-Version: 1.1 | 1 | Metadata-Version: 1.1 |
970 | 2 | Name: glance | 2 | Name: glance |
972 | 3 | Version: 2012.2 | 3 | Version: 2012.2.1 |
973 | 4 | Summary: The Glance project provides services for discovering, registering, and retrieving virtual machine images | 4 | Summary: The Glance project provides services for discovering, registering, and retrieving virtual machine images |
974 | 5 | Home-page: http://glance.openstack.org/ | 5 | Home-page: http://glance.openstack.org/ |
975 | 6 | Author: OpenStack | 6 | Author: OpenStack |
976 | 7 | 7 | ||
977 | === modified file 'glance.egg-info/requires.txt' | |||
978 | --- glance.egg-info/requires.txt 2012-09-17 07:44:11 +0000 | |||
979 | +++ glance.egg-info/requires.txt 2013-01-08 00:34:25 +0000 | |||
980 | @@ -1,5 +1,5 @@ | |||
981 | 1 | greenlet>=0.3.1 | 1 | greenlet>=0.3.1 |
983 | 2 | SQLAlchemy>=0.7 | 2 | SQLAlchemy>=0.7,<=0.7.9 |
984 | 3 | anyjson | 3 | anyjson |
985 | 4 | eventlet>=0.9.12 | 4 | eventlet>=0.9.12 |
986 | 5 | PasteDeploy | 5 | PasteDeploy |
987 | 6 | 6 | ||
988 | === modified file 'glance/api/v1/images.py' | |||
989 | --- glance/api/v1/images.py 2012-09-17 07:44:11 +0000 | |||
990 | +++ glance/api/v1/images.py 2013-01-08 00:34:25 +0000 | |||
991 | @@ -714,6 +714,14 @@ | |||
992 | 714 | orig_image_meta = self.get_image_meta_or_404(req, id) | 714 | orig_image_meta = self.get_image_meta_or_404(req, id) |
993 | 715 | orig_status = orig_image_meta['status'] | 715 | orig_status = orig_image_meta['status'] |
994 | 716 | 716 | ||
995 | 717 | # Do not allow any updates on a deleted image. | ||
996 | 718 | # Fix for LP Bug #1060930 | ||
997 | 719 | if orig_status == 'deleted': | ||
998 | 720 | msg = _("Forbidden to update deleted image.") | ||
999 | 721 | raise HTTPForbidden(explanation=msg, | ||
1000 | 722 | request=req, | ||
1001 | 723 | content_type="text/plain") | ||
1002 | 724 | |||
1003 | 717 | # The default behaviour for a PUT /images/<IMAGE_ID> is to | 725 | # The default behaviour for a PUT /images/<IMAGE_ID> is to |
1004 | 718 | # override any properties that were previously set. This, however, | 726 | # override any properties that were previously set. This, however, |
1005 | 719 | # leads to a number of issues for the common use case where a caller | 727 | # leads to a number of issues for the common use case where a caller |
1006 | @@ -821,22 +829,34 @@ | |||
1007 | 821 | request=req, | 829 | request=req, |
1008 | 822 | content_type="text/plain") | 830 | content_type="text/plain") |
1009 | 823 | 831 | ||
1011 | 824 | status = 'deleted' | 832 | if image['status'] == 'deleted': |
1012 | 833 | msg = _("Forbidden to delete a deleted image.") | ||
1013 | 834 | LOG.debug(msg) | ||
1014 | 835 | raise HTTPForbidden(explanation=msg, request=req, | ||
1015 | 836 | content_type="text/plain") | ||
1016 | 837 | |||
1017 | 838 | if image['location'] and CONF.delayed_delete: | ||
1018 | 839 | status = 'pending_delete' | ||
1019 | 840 | else: | ||
1020 | 841 | status = 'deleted' | ||
1021 | 842 | |||
1022 | 825 | try: | 843 | try: |
1023 | 844 | # Delete the image from the registry first, since we rely on it | ||
1024 | 845 | # for authorization checks. | ||
1025 | 846 | # See https://bugs.launchpad.net/glance/+bug/1065187 | ||
1026 | 847 | registry.update_image_metadata(req.context, id, {'status': status}) | ||
1027 | 848 | registry.delete_image_metadata(req.context, id) | ||
1028 | 849 | |||
1029 | 826 | # The image's location field may be None in the case | 850 | # The image's location field may be None in the case |
1030 | 827 | # of a saving or queued image, therefore don't ask a backend | 851 | # of a saving or queued image, therefore don't ask a backend |
1031 | 828 | # to delete the image if the backend doesn't yet store it. | 852 | # to delete the image if the backend doesn't yet store it. |
1032 | 829 | # See https://bugs.launchpad.net/glance/+bug/747799 | 853 | # See https://bugs.launchpad.net/glance/+bug/747799 |
1033 | 830 | if image['location']: | 854 | if image['location']: |
1034 | 831 | if CONF.delayed_delete: | 855 | if CONF.delayed_delete: |
1035 | 832 | status = 'pending_delete' | ||
1036 | 833 | schedule_delayed_delete_from_backend(image['location'], id) | 856 | schedule_delayed_delete_from_backend(image['location'], id) |
1037 | 834 | else: | 857 | else: |
1038 | 835 | safe_delete_from_backend(image['location'], | 858 | safe_delete_from_backend(image['location'], |
1039 | 836 | req.context, id) | 859 | req.context, id) |
1040 | 837 | |||
1041 | 838 | registry.update_image_metadata(req.context, id, {'status': status}) | ||
1042 | 839 | registry.delete_image_metadata(req.context, id) | ||
1043 | 840 | except exception.NotFound, e: | 860 | except exception.NotFound, e: |
1044 | 841 | msg = ("Failed to find image to delete: %(e)s" % locals()) | 861 | msg = ("Failed to find image to delete: %(e)s" % locals()) |
1045 | 842 | for line in msg.split('\n'): | 862 | for line in msg.split('\n'): |
1046 | 843 | 863 | ||
1047 | === modified file 'glance/api/v2/images.py' | |||
1048 | --- glance/api/v2/images.py 2012-09-17 07:44:11 +0000 | |||
1049 | +++ glance/api/v2/images.py 2013-01-08 00:34:25 +0000 | |||
1050 | @@ -142,9 +142,12 @@ | |||
1051 | 142 | 142 | ||
1052 | 143 | def _get_image(self, context, image_id): | 143 | def _get_image(self, context, image_id): |
1053 | 144 | try: | 144 | try: |
1055 | 145 | return self.db_api.image_get(context, image_id) | 145 | image = self.db_api.image_get(context, image_id) |
1056 | 146 | if image['deleted']: | ||
1057 | 147 | raise exception.NotFound() | ||
1058 | 146 | except (exception.NotFound, exception.Forbidden): | 148 | except (exception.NotFound, exception.Forbidden): |
1059 | 147 | raise webob.exc.HTTPNotFound() | 149 | raise webob.exc.HTTPNotFound() |
1060 | 150 | return image | ||
1061 | 148 | 151 | ||
1062 | 149 | def show(self, req, image_id): | 152 | def show(self, req, image_id): |
1063 | 150 | self._enforce(req, 'get_image') | 153 | self._enforce(req, 'get_image') |
1064 | @@ -158,6 +161,8 @@ | |||
1065 | 158 | context = req.context | 161 | context = req.context |
1066 | 159 | try: | 162 | try: |
1067 | 160 | image = self.db_api.image_get(context, image_id) | 163 | image = self.db_api.image_get(context, image_id) |
1068 | 164 | if image['deleted']: | ||
1069 | 165 | raise exception.NotFound() | ||
1070 | 161 | except (exception.NotFound, exception.Forbidden): | 166 | except (exception.NotFound, exception.Forbidden): |
1071 | 162 | msg = ("Failed to find image %(image_id)s to update" % locals()) | 167 | msg = ("Failed to find image %(image_id)s to update" % locals()) |
1072 | 163 | LOG.info(msg) | 168 | LOG.info(msg) |
1073 | @@ -268,19 +273,22 @@ | |||
1074 | 268 | % locals()) | 273 | % locals()) |
1075 | 269 | raise webob.exc.HTTPForbidden(explanation=msg) | 274 | raise webob.exc.HTTPForbidden(explanation=msg) |
1076 | 270 | 275 | ||
1086 | 271 | status = 'deleted' | 276 | if image['location'] and CONF.delayed_delete: |
1087 | 272 | if image['location']: | 277 | status = 'pending_delete' |
1088 | 273 | if CONF.delayed_delete: | 278 | else: |
1089 | 274 | status = 'pending_delete' | 279 | status = 'deleted' |
1081 | 275 | self.store_api.schedule_delayed_delete_from_backend( | ||
1082 | 276 | image['location'], id) | ||
1083 | 277 | else: | ||
1084 | 278 | self.store_api.safe_delete_from_backend(image['location'], | ||
1085 | 279 | req.context, id) | ||
1090 | 280 | 280 | ||
1091 | 281 | try: | 281 | try: |
1092 | 282 | self.db_api.image_update(req.context, image_id, {'status': status}) | 282 | self.db_api.image_update(req.context, image_id, {'status': status}) |
1093 | 283 | self.db_api.image_destroy(req.context, image_id) | 283 | self.db_api.image_destroy(req.context, image_id) |
1094 | 284 | |||
1095 | 285 | if image['location']: | ||
1096 | 286 | if CONF.delayed_delete: | ||
1097 | 287 | self.store_api.schedule_delayed_delete_from_backend( | ||
1098 | 288 | image['location'], id) | ||
1099 | 289 | else: | ||
1100 | 290 | self.store_api.safe_delete_from_backend(image['location'], | ||
1101 | 291 | req.context, id) | ||
1102 | 284 | except (exception.NotFound, exception.Forbidden): | 292 | except (exception.NotFound, exception.Forbidden): |
1103 | 285 | msg = ("Failed to find image %(image_id)s to delete" % locals()) | 293 | msg = ("Failed to find image %(image_id)s to delete" % locals()) |
1104 | 286 | LOG.info(msg) | 294 | LOG.info(msg) |
1105 | 287 | 295 | ||
1106 | === modified file 'glance/common/utils.py' | |||
1107 | --- glance/common/utils.py 2012-09-07 12:17:46 +0000 | |||
1108 | +++ glance/common/utils.py 2013-01-08 00:34:25 +0000 | |||
1109 | @@ -118,9 +118,26 @@ | |||
1110 | 118 | :param fd: Underlying image file object | 118 | :param fd: Underlying image file object |
1111 | 119 | """ | 119 | """ |
1112 | 120 | self.fd = fd | 120 | self.fd = fd |
1113 | 121 | self.iterator = None | ||
1114 | 122 | # NOTE(markwash): if the underlying supports read(), overwrite the | ||
1115 | 123 | # default iterator-based implementation with cooperative_read which | ||
1116 | 124 | # is more straightforward | ||
1117 | 121 | if hasattr(fd, 'read'): | 125 | if hasattr(fd, 'read'): |
1118 | 122 | self.read = cooperative_read(fd) | 126 | self.read = cooperative_read(fd) |
1119 | 123 | 127 | ||
1120 | 128 | def read(self, length=None): | ||
1121 | 129 | """Return the next chunk of the underlying iterator. | ||
1122 | 130 | |||
1123 | 131 | This is replaced with cooperative_read in __init__ if the underlying | ||
1124 | 132 | fd already supports read(). | ||
1125 | 133 | """ | ||
1126 | 134 | if self.iterator is None: | ||
1127 | 135 | self.iterator = self.__iter__() | ||
1128 | 136 | try: | ||
1129 | 137 | return self.iterator.next() | ||
1130 | 138 | except StopIteration: | ||
1131 | 139 | return '' | ||
1132 | 140 | |||
1133 | 124 | def __iter__(self): | 141 | def __iter__(self): |
1134 | 125 | return cooperative_iter(self.fd.__iter__()) | 142 | return cooperative_iter(self.fd.__iter__()) |
1135 | 126 | 143 | ||
1136 | 127 | 144 | ||
1137 | === modified file 'glance/openstack/common/setup.py' | |||
1138 | --- glance/openstack/common/setup.py 2012-09-17 07:44:11 +0000 | |||
1139 | +++ glance/openstack/common/setup.py 2013-01-08 00:34:25 +0000 | |||
1140 | @@ -135,15 +135,16 @@ | |||
1141 | 135 | _run_shell_command("git fetch origin +refs/meta/*:refs/remotes/meta/*") | 135 | _run_shell_command("git fetch origin +refs/meta/*:refs/remotes/meta/*") |
1142 | 136 | milestone_cmd = "git show meta/openstack/release:%s" % branch_name | 136 | milestone_cmd = "git show meta/openstack/release:%s" % branch_name |
1143 | 137 | milestonever = _run_shell_command(milestone_cmd) | 137 | milestonever = _run_shell_command(milestone_cmd) |
1146 | 138 | if not milestonever: | 138 | if milestonever: |
1147 | 139 | milestonever = "" | 139 | first_half = "%s~%s" % (milestonever, datestamp) |
1148 | 140 | else: | ||
1149 | 141 | first_half = datestamp | ||
1150 | 140 | post_version = _get_git_post_version() | 142 | post_version = _get_git_post_version() |
1151 | 141 | # post version should look like: | 143 | # post version should look like: |
1152 | 142 | # 0.1.1.4.gcc9e28a | 144 | # 0.1.1.4.gcc9e28a |
1153 | 143 | # where the bit after the last . is the short sha, and the bit between | 145 | # where the bit after the last . is the short sha, and the bit between |
1154 | 144 | # the last and second to last is the revno count | 146 | # the last and second to last is the revno count |
1155 | 145 | (revno, sha) = post_version.split(".")[-2:] | 147 | (revno, sha) = post_version.split(".")[-2:] |
1156 | 146 | first_half = "%s~%s" % (milestonever, datestamp) | ||
1157 | 147 | second_half = "%s%s.%s" % (revno_prefix, revno, sha) | 148 | second_half = "%s%s.%s" % (revno_prefix, revno, sha) |
1158 | 148 | return ".".join((first_half, second_half)) | 149 | return ".".join((first_half, second_half)) |
1159 | 149 | 150 | ||
1160 | 150 | 151 | ||
1161 | === modified file 'glance/store/rbd.py' | |||
1162 | --- glance/store/rbd.py 2012-08-16 13:58:32 +0000 | |||
1163 | +++ glance/store/rbd.py 2013-01-08 00:34:25 +0000 | |||
1164 | @@ -69,6 +69,9 @@ | |||
1165 | 69 | """ | 69 | """ |
1166 | 70 | 70 | ||
1167 | 71 | def process_specs(self): | 71 | def process_specs(self): |
1168 | 72 | # convert to ascii since librbd doesn't handle unicode | ||
1169 | 73 | for key, value in self.specs.iteritems(): | ||
1170 | 74 | self.specs[key] = str(value) | ||
1171 | 72 | self.fsid = self.specs.get('fsid') | 75 | self.fsid = self.specs.get('fsid') |
1172 | 73 | self.pool = self.specs.get('pool') | 76 | self.pool = self.specs.get('pool') |
1173 | 74 | self.image = self.specs.get('image') | 77 | self.image = self.specs.get('image') |
1174 | @@ -92,7 +95,14 @@ | |||
1175 | 92 | reason = _('URI must start with rbd://') | 95 | reason = _('URI must start with rbd://') |
1176 | 93 | LOG.error(_("Invalid URI: %(uri)s: %(reason)s") % locals()) | 96 | LOG.error(_("Invalid URI: %(uri)s: %(reason)s") % locals()) |
1177 | 94 | raise exception.BadStoreUri(message=reason) | 97 | raise exception.BadStoreUri(message=reason) |
1179 | 95 | pieces = uri[len(prefix):].split('/') | 98 | # convert to ascii since librbd doesn't handle unicode |
1180 | 99 | try: | ||
1181 | 100 | ascii_uri = str(uri) | ||
1182 | 101 | except UnicodeError: | ||
1183 | 102 | reason = _('URI contains non-ascii characters') | ||
1184 | 103 | LOG.error(_("Invalid URI: %(uri)s: %(reason)s") % locals()) | ||
1185 | 104 | raise exception.BadStoreUri(message=reason) | ||
1186 | 105 | pieces = ascii_uri[len(prefix):].split('/') | ||
1187 | 96 | if len(pieces) == 1: | 106 | if len(pieces) == 1: |
1188 | 97 | self.fsid, self.pool, self.image, self.snapshot = \ | 107 | self.fsid, self.pool, self.image, self.snapshot = \ |
1189 | 98 | (None, None, pieces[0], None) | 108 | (None, None, pieces[0], None) |
1190 | 99 | 109 | ||
1191 | === modified file 'glance/tests/functional/v2/test_images.py' | |||
1192 | --- glance/tests/functional/v2/test_images.py 2012-09-26 12:32:50 +0000 | |||
1193 | +++ glance/tests/functional/v2/test_images.py 2013-01-08 00:34:25 +0000 | |||
1194 | @@ -222,6 +222,12 @@ | |||
1195 | 222 | self.assertEqual(201, response.status_code) | 222 | self.assertEqual(201, response.status_code) |
1196 | 223 | image_id = json.loads(response.text)['id'] | 223 | image_id = json.loads(response.text)['id'] |
1197 | 224 | 224 | ||
1198 | 225 | # Upload some image data | ||
1199 | 226 | path = self._url('/v2/images/%s/file' % image_id) | ||
1200 | 227 | headers = self._headers({'Content-Type': 'application/octet-stream'}) | ||
1201 | 228 | response = requests.put(path, headers=headers, data='ZZZZZ') | ||
1202 | 229 | self.assertEqual(201, response.status_code) | ||
1203 | 230 | |||
1204 | 225 | # TENANT1 should see the image in their list | 231 | # TENANT1 should see the image in their list |
1205 | 226 | path = self._url('/v2/images') | 232 | path = self._url('/v2/images') |
1206 | 227 | response = requests.get(path, headers=self._headers()) | 233 | response = requests.get(path, headers=self._headers()) |
1207 | @@ -304,6 +310,12 @@ | |||
1208 | 304 | response = requests.delete(path, headers=headers) | 310 | response = requests.delete(path, headers=headers) |
1209 | 305 | self.assertEqual(404, response.status_code) | 311 | self.assertEqual(404, response.status_code) |
1210 | 306 | 312 | ||
1211 | 313 | # Image data should still be present after the failed delete | ||
1212 | 314 | path = self._url('/v2/images/%s/file' % image_id) | ||
1213 | 315 | response = requests.get(path, headers=self._headers()) | ||
1214 | 316 | self.assertEqual(200, response.status_code) | ||
1215 | 317 | self.assertEqual(response.text, 'ZZZZZ') | ||
1216 | 318 | |||
1217 | 307 | self.stop_servers() | 319 | self.stop_servers() |
1218 | 308 | 320 | ||
1219 | 309 | def test_tag_lifecycle(self): | 321 | def test_tag_lifecycle(self): |
1220 | 310 | 322 | ||
1221 | === modified file 'glance/tests/stubs.py' | |||
1222 | --- glance/tests/stubs.py 2012-09-07 12:17:46 +0000 | |||
1223 | +++ glance/tests/stubs.py 2013-01-08 00:34:25 +0000 | |||
1224 | @@ -60,7 +60,13 @@ | |||
1225 | 60 | 60 | ||
1226 | 61 | def getresponse(self): | 61 | def getresponse(self): |
1227 | 62 | mapper = routes.Mapper() | 62 | mapper = routes.Mapper() |
1229 | 63 | api = context.UnauthenticatedContextMiddleware(rserver.API(mapper)) | 63 | server = rserver.API(mapper) |
1230 | 64 | # NOTE(markwash): we need to pass through context auth information if | ||
1231 | 65 | # we have it. | ||
1232 | 66 | if 'X-Auth-Token' in self.req.headers: | ||
1233 | 67 | api = utils.FakeAuthMiddleware(server) | ||
1234 | 68 | else: | ||
1235 | 69 | api = context.UnauthenticatedContextMiddleware(server) | ||
1236 | 64 | webob_res = self.req.get_response(api) | 70 | webob_res = self.req.get_response(api) |
1237 | 65 | 71 | ||
1238 | 66 | return utils.FakeHTTPResponse(status=webob_res.status_int, | 72 | return utils.FakeHTTPResponse(status=webob_res.status_int, |
1239 | 67 | 73 | ||
1240 | === modified file 'glance/tests/unit/test_clients.py' | |||
1241 | --- glance/tests/unit/test_clients.py 2012-09-17 07:44:11 +0000 | |||
1242 | +++ glance/tests/unit/test_clients.py 2013-01-08 00:34:25 +0000 | |||
1243 | @@ -39,7 +39,7 @@ | |||
1244 | 39 | UUID2 = _gen_uuid() | 39 | UUID2 = _gen_uuid() |
1245 | 40 | 40 | ||
1246 | 41 | #NOTE(bcwaldon): needed to init config_dir cli opt | 41 | #NOTE(bcwaldon): needed to init config_dir cli opt |
1248 | 42 | config.parse_args() | 42 | config.parse_args(args=[]) |
1249 | 43 | 43 | ||
1250 | 44 | 44 | ||
1251 | 45 | class TestBadClients(test_utils.BaseTestCase): | 45 | class TestBadClients(test_utils.BaseTestCase): |
1252 | 46 | 46 | ||
1253 | === modified file 'glance/tests/unit/test_store_location.py' | |||
1254 | --- glance/tests/unit/test_store_location.py 2012-08-16 13:58:32 +0000 | |||
1255 | +++ glance/tests/unit/test_store_location.py 2013-01-08 00:34:25 +0000 | |||
1256 | @@ -290,6 +290,15 @@ | |||
1257 | 290 | self.assertEqual(None, loc.pool) | 290 | self.assertEqual(None, loc.pool) |
1258 | 291 | self.assertEqual(None, loc.snapshot) | 291 | self.assertEqual(None, loc.snapshot) |
1259 | 292 | 292 | ||
1260 | 293 | uri = u'rbd://imagename' | ||
1261 | 294 | loc = glance.store.rbd.StoreLocation({}) | ||
1262 | 295 | loc.parse_uri(uri) | ||
1263 | 296 | |||
1264 | 297 | self.assertEqual('imagename', loc.image) | ||
1265 | 298 | self.assertEqual(None, loc.fsid) | ||
1266 | 299 | self.assertEqual(None, loc.pool) | ||
1267 | 300 | self.assertEqual(None, loc.snapshot) | ||
1268 | 301 | |||
1269 | 293 | uri = 'rbd://fsid/pool/image/snap' | 302 | uri = 'rbd://fsid/pool/image/snap' |
1270 | 294 | loc = glance.store.rbd.StoreLocation({}) | 303 | loc = glance.store.rbd.StoreLocation({}) |
1271 | 295 | loc.parse_uri(uri) | 304 | loc.parse_uri(uri) |
1272 | @@ -299,6 +308,15 @@ | |||
1273 | 299 | self.assertEqual('pool', loc.pool) | 308 | self.assertEqual('pool', loc.pool) |
1274 | 300 | self.assertEqual('snap', loc.snapshot) | 309 | self.assertEqual('snap', loc.snapshot) |
1275 | 301 | 310 | ||
1276 | 311 | uri = u'rbd://fsid/pool/image/snap' | ||
1277 | 312 | loc = glance.store.rbd.StoreLocation({}) | ||
1278 | 313 | loc.parse_uri(uri) | ||
1279 | 314 | |||
1280 | 315 | self.assertEqual('image', loc.image) | ||
1281 | 316 | self.assertEqual('fsid', loc.fsid) | ||
1282 | 317 | self.assertEqual('pool', loc.pool) | ||
1283 | 318 | self.assertEqual('snap', loc.snapshot) | ||
1284 | 319 | |||
1285 | 302 | uri = 'rbd://%2f/%2f/%2f/%2f' | 320 | uri = 'rbd://%2f/%2f/%2f/%2f' |
1286 | 303 | loc = glance.store.rbd.StoreLocation({}) | 321 | loc = glance.store.rbd.StoreLocation({}) |
1287 | 304 | loc.parse_uri(uri) | 322 | loc.parse_uri(uri) |
1288 | @@ -308,6 +326,15 @@ | |||
1289 | 308 | self.assertEqual('/', loc.pool) | 326 | self.assertEqual('/', loc.pool) |
1290 | 309 | self.assertEqual('/', loc.snapshot) | 327 | self.assertEqual('/', loc.snapshot) |
1291 | 310 | 328 | ||
1292 | 329 | uri = u'rbd://%2f/%2f/%2f/%2f' | ||
1293 | 330 | loc = glance.store.rbd.StoreLocation({}) | ||
1294 | 331 | loc.parse_uri(uri) | ||
1295 | 332 | |||
1296 | 333 | self.assertEqual('/', loc.image) | ||
1297 | 334 | self.assertEqual('/', loc.fsid) | ||
1298 | 335 | self.assertEqual('/', loc.pool) | ||
1299 | 336 | self.assertEqual('/', loc.snapshot) | ||
1300 | 337 | |||
1301 | 311 | bad_uri = 'rbd:/image' | 338 | bad_uri = 'rbd:/image' |
1302 | 312 | self.assertRaises(exception.BadStoreUri, loc.parse_uri, bad_uri) | 339 | self.assertRaises(exception.BadStoreUri, loc.parse_uri, bad_uri) |
1303 | 313 | 340 | ||
1304 | @@ -332,6 +359,9 @@ | |||
1305 | 332 | bad_uri = 'http://///' | 359 | bad_uri = 'http://///' |
1306 | 333 | self.assertRaises(exception.BadStoreUri, loc.parse_uri, bad_uri) | 360 | self.assertRaises(exception.BadStoreUri, loc.parse_uri, bad_uri) |
1307 | 334 | 361 | ||
1308 | 362 | bad_uri = 'rbd://' + unichr(300) | ||
1309 | 363 | self.assertRaises(exception.BadStoreUri, loc.parse_uri, bad_uri) | ||
1310 | 364 | |||
1311 | 335 | def test_get_store_from_scheme(self): | 365 | def test_get_store_from_scheme(self): |
1312 | 336 | """ | 366 | """ |
1313 | 337 | Test that the backend returned by glance.store.get_backend_class | 367 | Test that the backend returned by glance.store.get_backend_class |
1314 | 338 | 368 | ||
1315 | === modified file 'glance/tests/unit/test_utils.py' | |||
1316 | --- glance/tests/unit/test_utils.py 2012-09-07 12:17:46 +0000 | |||
1317 | +++ glance/tests/unit/test_utils.py 2013-01-08 00:34:25 +0000 | |||
1318 | @@ -73,6 +73,17 @@ | |||
1319 | 73 | 73 | ||
1320 | 74 | self.assertEquals(bytes_read, BYTES) | 74 | self.assertEquals(bytes_read, BYTES) |
1321 | 75 | 75 | ||
1322 | 76 | def test_cooperative_reader_of_iterator(self): | ||
1323 | 77 | """Ensure cooperative reader supports iterator backends too""" | ||
1324 | 78 | reader = utils.CooperativeReader([l * 3 for l in 'abcdefgh']) | ||
1325 | 79 | chunks = [] | ||
1326 | 80 | while True: | ||
1327 | 81 | chunks.append(reader.read(3)) | ||
1328 | 82 | if chunks[-1] == '': | ||
1329 | 83 | break | ||
1330 | 84 | meat = ''.join(chunks) | ||
1331 | 85 | self.assertEqual(meat, 'aaabbbcccdddeeefffggghhh') | ||
1332 | 86 | |||
1333 | 76 | def test_limiting_reader(self): | 87 | def test_limiting_reader(self): |
1334 | 77 | """Ensure limiting reader class accesses all bytes of file""" | 88 | """Ensure limiting reader class accesses all bytes of file""" |
1335 | 78 | BYTES = 1024 | 89 | BYTES = 1024 |
1336 | 79 | 90 | ||
1337 | === modified file 'glance/tests/unit/v1/test_api.py' | |||
1338 | --- glance/tests/unit/v1/test_api.py 2012-09-17 07:44:11 +0000 | |||
1339 | +++ glance/tests/unit/v1/test_api.py 2013-01-08 00:34:25 +0000 | |||
1340 | @@ -103,7 +103,8 @@ | |||
1341 | 103 | """Establish a clean test environment""" | 103 | """Establish a clean test environment""" |
1342 | 104 | super(TestRegistryAPI, self).setUp() | 104 | super(TestRegistryAPI, self).setUp() |
1343 | 105 | self.mapper = routes.Mapper() | 105 | self.mapper = routes.Mapper() |
1345 | 106 | self.api = test_utils.FakeAuthMiddleware(rserver.API(self.mapper)) | 106 | self.api = test_utils.FakeAuthMiddleware(rserver.API(self.mapper), |
1346 | 107 | is_admin=True) | ||
1347 | 107 | self.FIXTURES = [ | 108 | self.FIXTURES = [ |
1348 | 108 | {'id': UUID1, | 109 | {'id': UUID1, |
1349 | 109 | 'name': 'fake image #1', | 110 | 'name': 'fake image #1', |
1350 | @@ -197,6 +198,38 @@ | |||
1351 | 197 | res = req.get_response(self.api) | 198 | res = req.get_response(self.api) |
1352 | 198 | self.assertEquals(res.status_int, 404) | 199 | self.assertEquals(res.status_int, 404) |
1353 | 199 | 200 | ||
1354 | 201 | def test_show_deleted_image_as_admin(self): | ||
1355 | 202 | """ | ||
1356 | 203 | Tests that the /images/<id> registry API endpoint | ||
1357 | 204 | returns a 200 for deleted image to admin user. | ||
1358 | 205 | """ | ||
1359 | 206 | # Delete image #2 | ||
1360 | 207 | req = webob.Request.blank('/images/%s' % UUID2) | ||
1361 | 208 | req.method = 'DELETE' | ||
1362 | 209 | res = req.get_response(self.api) | ||
1363 | 210 | self.assertEquals(res.status_int, 200) | ||
1364 | 211 | |||
1365 | 212 | req = webob.Request.blank('/images/%s' % UUID2) | ||
1366 | 213 | res = req.get_response(self.api) | ||
1367 | 214 | self.assertEquals(res.status_int, 200) | ||
1368 | 215 | |||
1369 | 216 | def test_show_deleted_image_as_nonadmin(self): | ||
1370 | 217 | """ | ||
1371 | 218 | Tests that the /images/<id> registry API endpoint | ||
1372 | 219 | returns a 404 for deleted image to non-admin user. | ||
1373 | 220 | """ | ||
1374 | 221 | # Delete image #2 | ||
1375 | 222 | req = webob.Request.blank('/images/%s' % UUID2) | ||
1376 | 223 | req.method = 'DELETE' | ||
1377 | 224 | res = req.get_response(self.api) | ||
1378 | 225 | self.assertEquals(res.status_int, 200) | ||
1379 | 226 | |||
1380 | 227 | api = test_utils.FakeAuthMiddleware(rserver.API(self.mapper), | ||
1381 | 228 | is_admin=False) | ||
1382 | 229 | req = webob.Request.blank('/images/%s' % UUID2) | ||
1383 | 230 | res = req.get_response(api) | ||
1384 | 231 | self.assertEquals(res.status_int, 404) | ||
1385 | 232 | |||
1386 | 200 | def test_get_root(self): | 233 | def test_get_root(self): |
1387 | 201 | """ | 234 | """ |
1388 | 202 | Tests that the root registry API returns "index", | 235 | Tests that the root registry API returns "index", |
1389 | @@ -2331,6 +2364,36 @@ | |||
1390 | 2331 | """Tests delayed activation of image with missing container format""" | 2364 | """Tests delayed activation of image with missing container format""" |
1391 | 2332 | self._do_test_put_image_content_missing_format('container_format') | 2365 | self._do_test_put_image_content_missing_format('container_format') |
1392 | 2333 | 2366 | ||
1393 | 2367 | def test_update_deleted_image(self): | ||
1394 | 2368 | """Tests that exception raised trying to update a deleted image""" | ||
1395 | 2369 | req = webob.Request.blank("/images/%s" % UUID2) | ||
1396 | 2370 | req.method = 'DELETE' | ||
1397 | 2371 | res = req.get_response(self.api) | ||
1398 | 2372 | self.assertEquals(res.status_int, 200) | ||
1399 | 2373 | |||
1400 | 2374 | fixture = {'name': 'test_del_img'} | ||
1401 | 2375 | req = webob.Request.blank('/images/%s' % UUID2) | ||
1402 | 2376 | req.method = 'PUT' | ||
1403 | 2377 | req.content_type = 'application/json' | ||
1404 | 2378 | req.body = json.dumps(dict(image=fixture)) | ||
1405 | 2379 | |||
1406 | 2380 | res = req.get_response(self.api) | ||
1407 | 2381 | self.assertEquals(res.status_int, webob.exc.HTTPForbidden.code) | ||
1408 | 2382 | self.assertTrue('Forbidden to update deleted image' in res.body) | ||
1409 | 2383 | |||
1410 | 2384 | def test_delete_deleted_image(self): | ||
1411 | 2385 | """Tests that exception raised trying to delete a deleted image""" | ||
1412 | 2386 | req = webob.Request.blank("/images/%s" % UUID2) | ||
1413 | 2387 | req.method = 'DELETE' | ||
1414 | 2388 | res = req.get_response(self.api) | ||
1415 | 2389 | self.assertEquals(res.status_int, 200) | ||
1416 | 2390 | |||
1417 | 2391 | req = webob.Request.blank("/images/%s" % UUID2) | ||
1418 | 2392 | req.method = 'DELETE' | ||
1419 | 2393 | res = req.get_response(self.api) | ||
1420 | 2394 | self.assertEquals(res.status_int, webob.exc.HTTPForbidden.code) | ||
1421 | 2395 | self.assertTrue('Forbidden to delete a deleted image' in res.body) | ||
1422 | 2396 | |||
1423 | 2334 | def test_register_and_upload(self): | 2397 | def test_register_and_upload(self): |
1424 | 2335 | """ | 2398 | """ |
1425 | 2336 | Test that the process of registering an image with | 2399 | Test that the process of registering an image with |
1426 | @@ -2929,6 +2992,26 @@ | |||
1427 | 2929 | res = req.get_response(self.api) | 2992 | res = req.get_response(self.api) |
1428 | 2930 | self.assertEquals(res.status_int, webob.exc.HTTPNotFound.code) | 2993 | self.assertEquals(res.status_int, webob.exc.HTTPNotFound.code) |
1429 | 2931 | 2994 | ||
1430 | 2995 | def test_delete_not_allowed(self): | ||
1431 | 2996 | # Verify we can get the image data | ||
1432 | 2997 | req = webob.Request.blank("/images/%s" % UUID2) | ||
1433 | 2998 | req.method = 'GET' | ||
1434 | 2999 | req.headers['X-Auth-Token'] = 'user:tenant:' | ||
1435 | 3000 | res = req.get_response(self.api) | ||
1436 | 3001 | self.assertEqual(res.status_int, 200) | ||
1437 | 3002 | self.assertEqual(len(res.body), 19) | ||
1438 | 3003 | |||
1439 | 3004 | # Verify we cannot delete the image | ||
1440 | 3005 | req.method = 'DELETE' | ||
1441 | 3006 | res = req.get_response(self.api) | ||
1442 | 3007 | self.assertEqual(res.status_int, 403) | ||
1443 | 3008 | |||
1444 | 3009 | # Verify the image data is still there | ||
1445 | 3010 | req.method = 'GET' | ||
1446 | 3011 | res = req.get_response(self.api) | ||
1447 | 3012 | self.assertEqual(res.status_int, 200) | ||
1448 | 3013 | self.assertEqual(len(res.body), 19) | ||
1449 | 3014 | |||
1450 | 2932 | def test_delete_queued_image(self): | 3015 | def test_delete_queued_image(self): |
1451 | 2933 | """Delete an image in a queued state | 3016 | """Delete an image in a queued state |
1452 | 2934 | 3017 | ||
1453 | 2935 | 3018 | ||
1454 | === modified file 'glance/tests/unit/v2/test_images_resource.py' | |||
1455 | --- glance/tests/unit/v2/test_images_resource.py 2012-09-17 07:44:11 +0000 | |||
1456 | +++ glance/tests/unit/v2/test_images_resource.py 2013-01-08 00:34:25 +0000 | |||
1457 | @@ -108,6 +108,20 @@ | |||
1458 | 108 | expected = set([UUID3]) | 108 | expected = set([UUID3]) |
1459 | 109 | self.assertEqual(actual, expected) | 109 | self.assertEqual(actual, expected) |
1460 | 110 | 110 | ||
1461 | 111 | def test_index_admin(self): | ||
1462 | 112 | request = unit_test_utils.get_fake_request(is_admin=True) | ||
1463 | 113 | output = self.controller.index(request) | ||
1464 | 114 | self.assertEqual(3, len(output['images'])) | ||
1465 | 115 | |||
1466 | 116 | def test_index_admin_deleted_images_hidden(self): | ||
1467 | 117 | request = unit_test_utils.get_fake_request(is_admin=True) | ||
1468 | 118 | self.controller.delete(request, UUID1) | ||
1469 | 119 | output = self.controller.index(request) | ||
1470 | 120 | self.assertEqual(2, len(output['images'])) | ||
1471 | 121 | actual = set([image['id'] for image in output['images']]) | ||
1472 | 122 | expected = set([UUID2, UUID3]) | ||
1473 | 123 | self.assertEqual(actual, expected) | ||
1474 | 124 | |||
1475 | 111 | def test_index_return_parameters(self): | 125 | def test_index_return_parameters(self): |
1476 | 112 | self.config(limit_param_default=1, api_limit_max=3) | 126 | self.config(limit_param_default=1, api_limit_max=3) |
1477 | 113 | request = unit_test_utils.get_fake_request() | 127 | request = unit_test_utils.get_fake_request() |
1478 | @@ -319,6 +333,12 @@ | |||
1479 | 319 | self.assertRaises(webob.exc.HTTPNotFound, | 333 | self.assertRaises(webob.exc.HTTPNotFound, |
1480 | 320 | self.controller.show, request, image_id) | 334 | self.controller.show, request, image_id) |
1481 | 321 | 335 | ||
1482 | 336 | def test_show_deleted_image_admin(self): | ||
1483 | 337 | request = unit_test_utils.get_fake_request(is_admin=True) | ||
1484 | 338 | self.controller.delete(request, UUID1) | ||
1485 | 339 | self.assertRaises(webob.exc.HTTPNotFound, | ||
1486 | 340 | self.controller.show, request, UUID1) | ||
1487 | 341 | |||
1488 | 322 | def test_create(self): | 342 | def test_create(self): |
1489 | 323 | request = unit_test_utils.get_fake_request() | 343 | request = unit_test_utils.get_fake_request() |
1490 | 324 | image = {'name': 'image-1'} | 344 | image = {'name': 'image-1'} |
1491 | @@ -376,6 +396,12 @@ | |||
1492 | 376 | self.assertRaises(webob.exc.HTTPNotFound, self.controller.update, | 396 | self.assertRaises(webob.exc.HTTPNotFound, self.controller.update, |
1493 | 377 | request, utils.generate_uuid(), changes=[]) | 397 | request, utils.generate_uuid(), changes=[]) |
1494 | 378 | 398 | ||
1495 | 399 | def test_update_deleted_image_admin(self): | ||
1496 | 400 | request = unit_test_utils.get_fake_request(is_admin=True) | ||
1497 | 401 | self.controller.delete(request, UUID1) | ||
1498 | 402 | self.assertRaises(webob.exc.HTTPNotFound, self.controller.update, | ||
1499 | 403 | request, UUID1, changes=[]) | ||
1500 | 404 | |||
1501 | 379 | def test_update_replace_base_attribute(self): | 405 | def test_update_replace_base_attribute(self): |
1502 | 380 | self.db.image_update(None, UUID1, {'properties': {'foo': 'bar'}}) | 406 | self.db.image_update(None, UUID1, {'properties': {'foo': 'bar'}}) |
1503 | 381 | request = unit_test_utils.get_fake_request() | 407 | request = unit_test_utils.get_fake_request() |
1504 | @@ -608,6 +634,12 @@ | |||
1505 | 608 | self.assertRaises(webob.exc.HTTPNotFound, self.controller.delete, | 634 | self.assertRaises(webob.exc.HTTPNotFound, self.controller.delete, |
1506 | 609 | request, utils.generate_uuid()) | 635 | request, utils.generate_uuid()) |
1507 | 610 | 636 | ||
1508 | 637 | def test_delete_already_deleted_image_admin(self): | ||
1509 | 638 | request = unit_test_utils.get_fake_request(is_admin=True) | ||
1510 | 639 | self.controller.delete(request, UUID1) | ||
1511 | 640 | self.assertRaises(webob.exc.HTTPNotFound, | ||
1512 | 641 | self.controller.delete, request, UUID1) | ||
1513 | 642 | |||
1514 | 611 | def test_index_with_invalid_marker(self): | 643 | def test_index_with_invalid_marker(self): |
1515 | 612 | fake_uuid = utils.generate_uuid() | 644 | fake_uuid = utils.generate_uuid() |
1516 | 613 | request = unit_test_utils.get_fake_request() | 645 | request = unit_test_utils.get_fake_request() |
1517 | 614 | 646 | ||
1518 | === modified file 'glance/tests/utils.py' | |||
1519 | --- glance/tests/utils.py 2012-09-07 12:17:46 +0000 | |||
1520 | +++ glance/tests/utils.py 2013-01-08 00:34:25 +0000 | |||
1521 | @@ -57,7 +57,7 @@ | |||
1522 | 57 | #NOTE(bcwaldon): parse_args has to be called to register certain | 57 | #NOTE(bcwaldon): parse_args has to be called to register certain |
1523 | 58 | # command-line options - specifically we need config_dir for | 58 | # command-line options - specifically we need config_dir for |
1524 | 59 | # the following policy tests | 59 | # the following policy tests |
1526 | 60 | config.parse_args() | 60 | config.parse_args(args=[]) |
1527 | 61 | 61 | ||
1528 | 62 | def tearDown(self): | 62 | def tearDown(self): |
1529 | 63 | super(BaseTestCase, self).tearDown() | 63 | super(BaseTestCase, self).tearDown() |
1530 | @@ -347,7 +347,7 @@ | |||
1531 | 347 | 347 | ||
1532 | 348 | class FakeAuthMiddleware(wsgi.Middleware): | 348 | class FakeAuthMiddleware(wsgi.Middleware): |
1533 | 349 | 349 | ||
1535 | 350 | def __init__(self, app, is_admin=True): | 350 | def __init__(self, app, is_admin=False): |
1536 | 351 | super(FakeAuthMiddleware, self).__init__(app) | 351 | super(FakeAuthMiddleware, self).__init__(app) |
1537 | 352 | self.is_admin = is_admin | 352 | self.is_admin = is_admin |
1538 | 353 | 353 | ||
1539 | @@ -368,6 +368,7 @@ | |||
1540 | 368 | 'tenant': tenant, | 368 | 'tenant': tenant, |
1541 | 369 | 'roles': roles, | 369 | 'roles': roles, |
1542 | 370 | 'is_admin': self.is_admin, | 370 | 'is_admin': self.is_admin, |
1543 | 371 | 'auth_tok': auth_tok, | ||
1544 | 371 | } | 372 | } |
1545 | 372 | 373 | ||
1546 | 373 | req.context = context.RequestContext(**kwargs) | 374 | req.context = context.RequestContext(**kwargs) |
1547 | 374 | 375 | ||
1548 | === modified file 'glance/version.py' | |||
1549 | --- glance/version.py 2012-08-16 13:58:32 +0000 | |||
1550 | +++ glance/version.py 2013-01-08 00:34:25 +0000 | |||
1551 | @@ -17,6 +17,6 @@ | |||
1552 | 17 | 17 | ||
1553 | 18 | from glance.openstack.common import version as common_version | 18 | from glance.openstack.common import version as common_version |
1554 | 19 | 19 | ||
1556 | 20 | NEXT_VERSION = '2012.2' | 20 | NEXT_VERSION = '2012.2.1' |
1557 | 21 | version_info = common_version.VersionInfo('glance', | 21 | version_info = common_version.VersionInfo('glance', |
1558 | 22 | pre_version=NEXT_VERSION) | 22 | pre_version=NEXT_VERSION) |
1559 | 23 | 23 | ||
1560 | === modified file 'glance/versioninfo' | |||
1561 | --- glance/versioninfo 2012-09-26 12:37:00 +0000 | |||
1562 | +++ glance/versioninfo 2013-01-08 00:34:25 +0000 | |||
1563 | @@ -1,1 +1,1 @@ | |||
1565 | 1 | 2012.2~rc3~20120926.r1.ga9f0a4c | 1 | 2012.2.1 |
1566 | 2 | 2 | ||
1567 | === modified file 'run_tests.sh' | |||
1568 | --- run_tests.sh 2012-08-16 13:58:32 +0000 | |||
1569 | +++ run_tests.sh 2013-01-08 00:34:25 +0000 | |||
1570 | @@ -24,8 +24,9 @@ | |||
1571 | 24 | -N|--no-virtual-env) let always_venv=0; let never_venv=1;; | 24 | -N|--no-virtual-env) let always_venv=0; let never_venv=1;; |
1572 | 25 | -p|--pep8) let just_pep8=1;; | 25 | -p|--pep8) let just_pep8=1;; |
1573 | 26 | -f|--force) let force=1;; | 26 | -f|--force) let force=1;; |
1576 | 27 | --unittests-only) noseargs="$noseargs --exclude-dir=glance/tests/functional";; | 27 | --unittests-only) noseopts="$noseopts --exclude-dir=glance/tests/functional";; |
1577 | 28 | -c|--coverage) noseargs="$noseargs --with-coverage --cover-package=glance";; | 28 | -c|--coverage) noseopts="$noseopts --with-coverage --cover-package=glance";; |
1578 | 29 | -*) noseopts="$noseopts $1";; | ||
1579 | 29 | *) noseargs="$noseargs $1" | 30 | *) noseargs="$noseargs $1" |
1580 | 30 | esac | 31 | esac |
1581 | 31 | } | 32 | } |
1582 | @@ -35,6 +36,7 @@ | |||
1583 | 35 | always_venv=0 | 36 | always_venv=0 |
1584 | 36 | never_venv=0 | 37 | never_venv=0 |
1585 | 37 | force=0 | 38 | force=0 |
1586 | 39 | noseopts= | ||
1587 | 38 | noseargs= | 40 | noseargs= |
1588 | 39 | wrapper="" | 41 | wrapper="" |
1589 | 40 | just_pep8=0 | 42 | just_pep8=0 |
1590 | @@ -67,7 +69,7 @@ | |||
1591 | 67 | } | 69 | } |
1592 | 68 | 70 | ||
1593 | 69 | 71 | ||
1595 | 70 | NOSETESTS="nosetests $noseargs" | 72 | NOSETESTS="nosetests $noseopts $noseargs" |
1596 | 71 | 73 | ||
1597 | 72 | if [ $never_venv -eq 0 ] | 74 | if [ $never_venv -eq 0 ] |
1598 | 73 | then | 75 | then |
1599 | 74 | 76 | ||
1600 | === modified file 'tools/pip-requires' | |||
1601 | --- tools/pip-requires 2012-09-17 07:44:11 +0000 | |||
1602 | +++ tools/pip-requires 2013-01-08 00:34:25 +0000 | |||
1603 | @@ -3,7 +3,7 @@ | |||
1604 | 3 | # package to get the right headers... | 3 | # package to get the right headers... |
1605 | 4 | greenlet>=0.3.1 | 4 | greenlet>=0.3.1 |
1606 | 5 | 5 | ||
1608 | 6 | SQLAlchemy>=0.7 | 6 | SQLAlchemy>=0.7,<=0.7.9 |
1609 | 7 | anyjson | 7 | anyjson |
1610 | 8 | eventlet>=0.9.12 | 8 | eventlet>=0.9.12 |
1611 | 9 | PasteDeploy | 9 | PasteDeploy |