Merge lp:~james-page/keystone/fix-watch-file into lp:~openstack-ubuntu-testing/keystone/raring-grizzly-proposed
- fix-watch-file
- Merge into raring-grizzly-proposed
Proposed by
James Page
Status: | Superseded |
---|---|
Proposed branch: | lp:~james-page/keystone/fix-watch-file |
Merge into: | lp:~openstack-ubuntu-testing/keystone/raring-grizzly-proposed |
Diff against target: |
984 lines (+119/-606) 20 files modified
.bzr-builddeb/default.conf (+0/-2) debian/changelog (+54/-2) debian/control (+9/-6) debian/keystone.config (+0/-19) debian/keystone.manpages (+1/-1) debian/keystone.postinst (+3/-25) debian/keystone.postrm (+0/-14) debian/keystone.prerm (+0/-17) debian/keystone.templates (+0/-17) debian/keystone.upstart (+4/-2) debian/man/keystone-admin.8 (+0/-63) debian/man/keystone-auth.8 (+0/-63) debian/man/keystone-control.8 (+0/-63) debian/man/keystone-import.8 (+0/-12) debian/man/keystone.8 (+0/-64) debian/patches/fix-ubuntu-tests.patch (+28/-209) debian/patches/sql_connection.patch (+14/-21) debian/rules (+1/-1) debian/tests/test_overrides.conf (+3/-3) debian/watch (+2/-2) |
To merge this branch: | bzr merge lp:~james-page/keystone/fix-watch-file |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Openstack Ubuntu Testers | Pending | ||
Review via email: mp+151246@code.launchpad.net |
This proposal has been superseded by a proposal from 2013-03-01.
Commit message
Fixup watch file
Description of the change
Fixup watch file
To post a comment you must log in.
Unmerged revisions
- 178. By James Page
-
d/watch: Update uversionmangle to deal with upstream versioning
changes, remove tarballs.openstack. org. - 177. By Chuck Short
-
releasing version 2013.1.g3-0ubuntu1
- 176. By Chuck Short
-
* New upstream version.
* debian/control: Add python-oslo-config. - 175. By James Page
-
* Refreshed patches.
* d/keystone.template, po: Removed debconf detritus from packaging. - 174. By Chuck Short
-
Refresh
- 173. By Chuck Short
-
debian/
patches/ sql_connection. patch: Rediffed - 172. By Yolanda Robla
-
skip failing tests
- 171. By Ubuntu <email address hidden>
-
skipped new failing test
- 170. By Ubuntu <email address hidden>
-
* d/control: Added python-novaclient dependency
* d/patches: refreshed patches - 169. By Ubuntu <email address hidden>
-
[ Yolanda Robla Mota ]
d/control: Added python-nova dependency
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === removed directory '.bzr-builddeb' |
2 | === removed file '.bzr-builddeb/default.conf' |
3 | --- .bzr-builddeb/default.conf 2012-06-22 16:27:53 +0000 |
4 | +++ .bzr-builddeb/default.conf 1970-01-01 00:00:00 +0000 |
5 | @@ -1,2 +0,0 @@ |
6 | -[BUILDDEB] |
7 | -merge = True |
8 | |
9 | === modified file 'debian/changelog' |
10 | --- debian/changelog 2012-11-15 00:37:06 +0000 |
11 | +++ debian/changelog 2013-03-01 14:22:25 +0000 |
12 | @@ -1,4 +1,55 @@ |
13 | -keystone (2013.1~g1~20121114.2674-0ubuntu1) UNRELEASED; urgency=low |
14 | +keystone (2013.1.g3-0ubuntu2) UNRELEASED; urgency=low |
15 | + |
16 | + * d/watch: Update uversionmangle to deal with upstream versioning |
17 | + changes, remove tarballs.openstack.org. |
18 | + |
19 | + -- James Page <james.page@ubuntu.com> Fri, 01 Mar 2013 14:11:04 +0000 |
20 | + |
21 | +keystone (2013.1.g3-0ubuntu1) raring; urgency=low |
22 | + |
23 | + [ Chuck Short ] |
24 | + * New upstream version. |
25 | + * debian/patches/sql_connection.patch: Rediffed |
26 | + * debian/control: Add python-oslo-config. |
27 | + |
28 | + [ James Page ] |
29 | + * Refreshed patches. |
30 | + * d/keystone.template,po: Removed debconf detritus from packaging. |
31 | + |
32 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 22 Feb 2013 08:28:35 -0600 |
33 | + |
34 | +keystone (2013.1~g2-0ubuntu1) raring; urgency=low |
35 | + |
36 | + [ James Page ] |
37 | + * Re-enable gating of package build based on successful unit testing: |
38 | + - d/tests/test_overrides.conf: Fixup test configuration to use |
39 | + correct certificate locations. |
40 | + - d/p/fix-ubuntu-tests.patch: Skip tests for older versions of |
41 | + keystoneclient based on checkouts of upstream git repo. |
42 | + - d/rules: Re-enable package build failure on test failure. |
43 | + * d/control: Bump dependencies on python-keystoneclient to >= 1:0.2. |
44 | + * d/control: Update Vcs-Bzr location to point to correct branch. |
45 | + * d/control,d/po/*: Setup package templates for translation. |
46 | + * d/man/*: Corrected spellings in man pages. |
47 | + * d/keystone.upstart: Tweak 'stop on' to be triggered on all |
48 | + appropriate runlevel transitions, use start-stop-daemon to startup |
49 | + keystone daemon. |
50 | + |
51 | + [ Adam Gandelman ] |
52 | + * debian/keystone.manpages: Install sphinx-generated manpages instead |
53 | + of our own outdated and unneeded versions. (LP: #1082050) |
54 | + |
55 | + [ Chuck Short ] |
56 | + * New upstream release. |
57 | + * Remove incomplete/broken dbconfig-common scripts. |
58 | + |
59 | + [ Yolanda Robla Mota ] |
60 | + * d/control: Added python-novaclient dependency |
61 | + * d/patches: refreshed patches |
62 | + |
63 | + -- Yolanda Robla <yolanda.robla@canonical.com> Tue, 22 Jan 2013 12:33:00 +0100 |
64 | + |
65 | +keystone (2013.1~g1-0ubuntu1) raring; urgency=low |
66 | |
67 | [ Adam Gandelman ] |
68 | * debian/tests/test_overrides.conf: Update for Grizzly test suite. |
69 | @@ -9,8 +60,9 @@ |
70 | * debian/rules: FTBFS if there is a missing binary. |
71 | * debian/rules: Temporarily pass the tests since you need to run |
72 | keystone in order to run the tests. |
73 | + * debian/patches/*: Refrehsed. |
74 | |
75 | - -- Adam Gandelman <adamg@canonical.com> Fri, 02 Nov 2012 11:38:46 +0100 |
76 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 23 Nov 2012 09:01:53 -0600 |
77 | |
78 | keystone (2013.1~g1~20121101.2629-0ubuntu1) raring; urgency=low |
79 | |
80 | |
81 | === modified file 'debian/control' |
82 | --- debian/control 2012-11-02 11:59:07 +0000 |
83 | +++ debian/control 2013-03-01 14:22:25 +0000 |
84 | @@ -6,17 +6,19 @@ |
85 | Uploaders: Soren Hansen <soren@ubuntu.com> |
86 | Build-Depends: debhelper (>= 7.0.50), |
87 | pep8, |
88 | + po-debconf, |
89 | pylint, |
90 | python-all (>= 2.6), |
91 | python-all-dev (>= 2.6.6-3~) | python-support, |
92 | python-eventlet, |
93 | - python-keystoneclient ( >= 1:0.1.3 ), |
94 | + python-keystoneclient ( >= 1:0.2 ), |
95 | python-ldap, |
96 | python-lxml, |
97 | python-memcache, |
98 | python-migrate, |
99 | python-mox, |
100 | python-nose, |
101 | + python-oslo-config, |
102 | python-pam, |
103 | python-passlib, |
104 | python-paste, |
105 | @@ -29,11 +31,12 @@ |
106 | python-unittest2, |
107 | python-webob, |
108 | python-webtest, |
109 | - python-iso8601 |
110 | + python-iso8601, |
111 | + python-novaclient |
112 | Standards-Version: 3.9.3 |
113 | XS-Python-Version: >= 2.6 |
114 | Homepage: http://launchpad.net/keystone |
115 | -Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/keystone/essex |
116 | +Vcs-Bzr: https://code.launchpad.net/~openstack-ubuntu-testing/keystone/grizzly |
117 | |
118 | Package: python-keystone |
119 | Architecture: all |
120 | @@ -43,6 +46,7 @@ |
121 | python-greenlet, |
122 | python-lxml, |
123 | python-migrate, |
124 | + python-oslo-config, |
125 | python-pam, |
126 | python-passlib, |
127 | python-paste, |
128 | @@ -52,7 +56,7 @@ |
129 | python-sqlalchemy, |
130 | python-migrate, |
131 | python-prettytable, |
132 | - python-keystoneclient ( >= 1:0.1.3 ), |
133 | + python-keystoneclient ( >= 1:0.2 ), |
134 | python-webob, |
135 | python-iso8601 |
136 | Suggests: python-memcache |
137 | @@ -76,8 +80,7 @@ |
138 | Depends: ${python:Depends}, ${misc:Depends}, |
139 | python-keystone (= ${source:Version}), |
140 | adduser, |
141 | - ssl-cert (>= 1.0.12), |
142 | - dbconfig-common |
143 | + ssl-cert (>= 1.0.12) |
144 | Description: OpenStack identity service - Daemons |
145 | Keystone is a proposed independent authentication service for OpenStack. |
146 | . |
147 | |
148 | === removed file 'debian/keystone.config' |
149 | --- debian/keystone.config 2012-06-22 16:27:53 +0000 |
150 | +++ debian/keystone.config 1970-01-01 00:00:00 +0000 |
151 | @@ -1,19 +0,0 @@ |
152 | -#!/bin/sh |
153 | -set -e |
154 | - |
155 | -. /usr/share/debconf/confmodule |
156 | - |
157 | - |
158 | -db_input low keystone/configure_db || true |
159 | -db_go |
160 | -db_get keystone/configure_db |
161 | -if [ "$RET" = "true" ]; then |
162 | - if [ -f /usr/share/dbconfig-common/dpkg/config ]; |
163 | - then |
164 | - dbc_dbtypes="sqlite3, mysql, pgsql" |
165 | - db_authmethod_user="password" |
166 | - dbc_basepath="/var/lib/keystone" |
167 | - . /usr/share/dbconfig-common/dpkg/config |
168 | - dbc_go keystone $@ |
169 | - fi |
170 | -fi |
171 | |
172 | === modified file 'debian/keystone.manpages' |
173 | --- debian/keystone.manpages 2011-12-15 19:19:30 +0000 |
174 | +++ debian/keystone.manpages 2013-03-01 14:22:25 +0000 |
175 | @@ -1,1 +1,1 @@ |
176 | -debian/man/* |
177 | +doc/build/man/* |
178 | |
179 | === modified file 'debian/keystone.postinst' |
180 | --- debian/keystone.postinst 2012-03-01 02:06:30 +0000 |
181 | +++ debian/keystone.postinst 2013-03-01 14:22:25 +0000 |
182 | @@ -2,8 +2,6 @@ |
183 | |
184 | set -e |
185 | |
186 | -. /usr/share/debconf/confmodule |
187 | -. /usr/share/dbconfig-common/dpkg/postinst |
188 | |
189 | # summary of how this script can be called: |
190 | # * <new-preinst> `install' |
191 | @@ -19,30 +17,10 @@ |
192 | #su -s /bin/sh -c 'exec keystone database sync' keystone |
193 | ;; |
194 | configure) |
195 | - db_get keystone/configure_db |
196 | - if [ "$RET" = "true" ]; then |
197 | - dbc_go keystone $@ |
198 | - |
199 | - case "$dbc_dbtype" in |
200 | - sqlite3) |
201 | - SQL_CONNECTION="sqlite:///$dbc_basepath/$dbc_dbname.db" |
202 | - ;; |
203 | - mysql) |
204 | - [ -n "$dbc_dbport" ] && dbport=:$dbc_dbport |
205 | - SQL_CONNECTION="mysql://$dbc_dbuser:$dbc_dbpass@${dbc_dbserver:-localhost}$dbport/$dbc_dbname" |
206 | - ;; |
207 | - pgsql) |
208 | - [ -n "$dbc_dbport" ] && dbport=:$dbc_dbport |
209 | - SQL_CONNECTION="pgsql://$dbc_dbuser:$dbc_dbpass@${dbc_dbserver:-localhost}$dbport/$dbc_dbname" |
210 | - ;; |
211 | - *) |
212 | - SQL_CONNECTION="sqlite:////var/lib/keystone/keystone.db" |
213 | - ;; |
214 | - esac |
215 | - [ -z "$2" -o "$dbc_install" = "true" ] \ |
216 | - && sed -e "s,_DBC_URL_,$SQL_CONNECTION," -i /etc/keystone/keystone.conf |
217 | + if ! grep -q sql_connection /etc/keystone/keystone.conf |
218 | + then |
219 | + su -s /bin/sh -c 'exec keystone-manage db_sync' keystone |
220 | fi |
221 | - su -s /bin/sh -c 'exec keystone-manage db_sync' keystone |
222 | ;; |
223 | abort-upgrade) |
224 | echo "aport upgrade called" |
225 | |
226 | === modified file 'debian/keystone.postrm' |
227 | --- debian/keystone.postrm 2012-06-22 16:27:53 +0000 |
228 | +++ debian/keystone.postrm 2013-03-01 14:22:25 +0000 |
229 | @@ -2,20 +2,6 @@ |
230 | |
231 | set -e |
232 | |
233 | -if [ -f /usr/share/debconf/confmodule ] |
234 | -then |
235 | - . /usr/share/debconf/confmodule |
236 | -fi |
237 | - |
238 | -if [ -f /etc/dbconfig-common/keystone.conf ] |
239 | -then |
240 | - if [ -f /usr/share/dbconfig-common/dpkg/postrm ] |
241 | - then |
242 | - . /usr/share/dbconfig-common/dpkg/postrm |
243 | - dbc_go keystone $@ |
244 | - fi |
245 | -fi |
246 | - |
247 | case "$1" in |
248 | purge) |
249 | rm -rf /var/log/keystone |
250 | |
251 | === removed file 'debian/keystone.prerm' |
252 | --- debian/keystone.prerm 2012-06-22 16:27:53 +0000 |
253 | +++ debian/keystone.prerm 1970-01-01 00:00:00 +0000 |
254 | @@ -1,17 +0,0 @@ |
255 | -#!/bin/sh |
256 | - |
257 | -set -e |
258 | - |
259 | -. /usr/share/debconf/confmodule |
260 | -. /usr/share/dbconfig-common/dpkg/prerm |
261 | - |
262 | - |
263 | -db_get keystone/configure_db |
264 | -if [ "$RET" = "true" ]; then |
265 | - # Only cleanup with dbconfig if it was used during |
266 | - # installation (LP: #948719) |
267 | - dbc_go keystone $@ |
268 | -fi |
269 | - |
270 | -#DEBHELPER# |
271 | - |
272 | |
273 | === removed file 'debian/keystone.templates' |
274 | --- debian/keystone.templates 2012-06-22 16:27:53 +0000 |
275 | +++ debian/keystone.templates 1970-01-01 00:00:00 +0000 |
276 | @@ -1,17 +0,0 @@ |
277 | -Template: keystone/configure_db |
278 | -Type: boolean |
279 | -Default: false |
280 | -Description: Set up a database for keystone? |
281 | - No database has been set up for keystone to use. Before continuing, |
282 | - you should make sure you have: |
283 | - . |
284 | - - the server host name (that server must allow TCP connections |
285 | - from this machine); |
286 | - - a username and password to access the database. |
287 | - - A database type that you want to use. |
288 | - . |
289 | - If some of these requirements are missing, reject this option and |
290 | - run with regular sqlite support. |
291 | - . |
292 | - Database configuration can be reconfigured later by running |
293 | - 'dpkg-reconfigure -plow keystone'. |
294 | |
295 | === modified file 'debian/keystone.upstart' |
296 | --- debian/keystone.upstart 2012-06-22 16:27:53 +0000 |
297 | +++ debian/keystone.upstart 2013-03-01 14:22:25 +0000 |
298 | @@ -2,8 +2,10 @@ |
299 | author "Soren Hansen <soren@linux2go.dk>" |
300 | |
301 | start on (local-filesystems and net-device-up IFACE!=lo) |
302 | -stop on runlevel [016] |
303 | +stop on runlevel [!2345] |
304 | |
305 | respawn |
306 | |
307 | -exec su -s /bin/sh -c "exec keystone-all" keystone |
308 | +exec start-stop-daemon --start --chuid keystone \ |
309 | + --chdir /var/lib/keystone --name keystone \ |
310 | + --exec /usr/bin/keystone-all |
311 | |
312 | === removed directory 'debian/man' |
313 | === removed file 'debian/man/keystone-admin.8' |
314 | --- debian/man/keystone-admin.8 2012-06-22 16:27:53 +0000 |
315 | +++ debian/man/keystone-admin.8 1970-01-01 00:00:00 +0000 |
316 | @@ -1,63 +0,0 @@ |
317 | -.TH keystone 8 |
318 | -.SH NAME |
319 | -keystone-admin \- provides HTTP for administrators. |
320 | -.SH SYNOPSIS |
321 | -.I [OPTION]... |
322 | -.SH DESCRIPTION |
323 | -.BR keystone is a Python implementation of the Openstack |
324 | -identity service. |
325 | -.TP |
326 | -.B --version |
327 | -show program's version number and exit |
328 | -.TP |
329 | -.B \-h, --help |
330 | -show help messag and exit |
331 | -.TP |
332 | -.B \-v, --verbose |
333 | -Print more verbose output |
334 | -.TP |
335 | -.B \-d, --debug |
336 | -Prrint debugging output to console. |
337 | -.TP |
338 | -.B \-c PATH, --config-file=PATH |
339 | -Path to the config file to use. When not specified (the default), |
340 | -we generally look at the first arguement specified to be a config file, |
341 | -and if that is also missing, we search standard directories for a config |
342 | -file. |
343 | -.TP |
344 | -.B \-p BIND_PORT, --port=BIND_PORT, --bind-port=BIND_PORT |
345 | -Specifies port to listen on. |
346 | -.TP |
347 | -.B --host=BIND_HOST, --bind-host=BIND_HOST |
348 | -Specifies host address to listen on (default is all or 0.0.0.0) |
349 | -.TP |
350 | -.B \-t, --trace-calls |
351 | -Turns on call tracing for troubleshooting |
352 | -.TP |
353 | -.B \-a PORT, --admin-port=PORT |
354 | -Specifies port for Admin API to listen on (default is |
355 | -35357) |
356 | -.TP |
357 | -.B --log-config=PATH |
358 | -If this opion is specified, the logging configuration |
359 | -file specified is used and overrides any other logging |
360 | -options specified. Please see the Python logging |
361 | -modules documentation for details on logging |
362 | -confgiuration files. |
363 | -.TP |
364 | -.B --log-date-format=FORMAT |
365 | -Format string for %(asctime)s in log records. |
366 | -Default: %Y-%m-%d %H:%M:%S |
367 | -.TP |
368 | -.B --log-file=PATH |
369 | -(Optional) Name of log file to output to. If not set, |
370 | -logging will go to stdout. |
371 | -.TP |
372 | -.B --log-didr=LOG_DIR |
373 | -(Optional) The directory to keep log files in (will |
374 | -be prepended to --logfile) |
375 | - |
376 | -.SH FILES |
377 | -.IR /etc/keystone/keystone.conf |
378 | -.SH AUTHOR |
379 | -This manual page was written by Chuck Short <zulcss@ubuntu.com>. |
380 | |
381 | === removed file 'debian/man/keystone-auth.8' |
382 | --- debian/man/keystone-auth.8 2012-06-22 16:27:53 +0000 |
383 | +++ debian/man/keystone-auth.8 1970-01-01 00:00:00 +0000 |
384 | @@ -1,63 +0,0 @@ |
385 | -.TH keystone 8 |
386 | -.SH NAME |
387 | -keystone-auth \- provides HTTP for users. |
388 | -.SH SYNOPSIS |
389 | -.I [OPTION]... |
390 | -.SH DESCRIPTION |
391 | -.BR keystone is a Python implementation of the Openstack |
392 | -identity service. |
393 | -.TP |
394 | -.B --version |
395 | -show program's version number and exit |
396 | -.TP |
397 | -.B \-h, --help |
398 | -show help messag and exit |
399 | -.TP |
400 | -.B \-v, --verbose |
401 | -Print more verbose output |
402 | -.TP |
403 | -.B \-d, --debug |
404 | -Prrint debugging output to console. |
405 | -.TP |
406 | -.B \-c PATH, --config-file=PATH |
407 | -Path to the config file to use. When not specified (the default), |
408 | -we generally look at the first arguement specified to be a config file, |
409 | -and if that is also missing, we search standard directories for a config |
410 | -file. |
411 | -.TP |
412 | -.B \-p BIND_PORT, --port=BIND_PORT, --bind-port=BIND_PORT |
413 | -Specifies port to listen on. |
414 | -.TP |
415 | -.B --host=BIND_HOST, --bind-host=BIND_HOST |
416 | -Specifies host address to listen on (default is all or 0.0.0.0) |
417 | -.TP |
418 | -.B \-t, --trace-calls |
419 | -Turns on call tracing for troubleshooting |
420 | -.TP |
421 | -.B \-a PORT, --admin-port=PORT |
422 | -Specifies port for Admin API to listen on (default is |
423 | -35357) |
424 | -.TP |
425 | -.B --log-config=PATH |
426 | -If this opion is specified, the logging configuration |
427 | -file specified is used and overrides any other logging |
428 | -options specified. Please see the Python logging |
429 | -modules documentation for details on logging |
430 | -confgiuration files. |
431 | -.TP |
432 | -.B --log-date-format=FORMAT |
433 | -Format string for %(asctime)s in log records. |
434 | -Default: %Y-%m-%d %H:%M:%S |
435 | -.TP |
436 | -.B --log-file=PATH |
437 | -(Optional) Name of log file to output to. If not set, |
438 | -logging will go to stdout. |
439 | -.TP |
440 | -.B --log-didr=LOG_DIR |
441 | -(Optional) The directory to keep log files in (will |
442 | -be prepended to --logfile) |
443 | - |
444 | -.SH FILES |
445 | -.IR /etc/keystone/keystone.conf |
446 | -.SH AUTHOR |
447 | -This manual page was written by Chuck Short <zulcss@ubuntu.com>. |
448 | |
449 | === removed file 'debian/man/keystone-control.8' |
450 | --- debian/man/keystone-control.8 2012-06-22 16:27:53 +0000 |
451 | +++ debian/man/keystone-control.8 1970-01-01 00:00:00 +0000 |
452 | @@ -1,63 +0,0 @@ |
453 | -.TH keystone 8 |
454 | -.SH NAME |
455 | -keystone \- Starts/Stops keystone server. |
456 | -.SH SYNOPSIS |
457 | -.I [OPTION]... |
458 | -.SH DESCRIPTION |
459 | -.BR keystone is a Python implementation of the Openstack |
460 | -identity service. |
461 | -.TP |
462 | -.B --version |
463 | -show program's version number and exit |
464 | -.TP |
465 | -.B \-h, --help |
466 | -show help messag and exit |
467 | -.TP |
468 | -.B \-v, --verbose |
469 | -Print more verbose output |
470 | -.TP |
471 | -.B \-d, --debug |
472 | -Prrint debugging output to console. |
473 | -.TP |
474 | -.B \-c PATH, --config-file=PATH |
475 | -Path to the config file to use. When not specified (the default), |
476 | -we generally look at the first arguement specified to be a config file, |
477 | -and if that is also missing, we search standard directories for a config |
478 | -file. |
479 | -.TP |
480 | -.B \-p BIND_PORT, --port=BIND_PORT, --bind-port=BIND_PORT |
481 | -Specifies port to listen on. |
482 | -.TP |
483 | -.B --host=BIND_HOST, --bind-host=BIND_HOST |
484 | -Specifies host address to listen on (default is all or 0.0.0.0) |
485 | -.TP |
486 | -.B \-t, --trace-calls |
487 | -Turns on call tracing for troubleshooting |
488 | -.TP |
489 | -.B \-a PORT, --admin-port=PORT |
490 | -Specifies port for Admin API to listen on (default is |
491 | -35357) |
492 | -.TP |
493 | -.B --log-config=PATH |
494 | -If this opion is specified, the logging configuration |
495 | -file specified is used and overrides any other logging |
496 | -options specified. Please see the Python logging |
497 | -modules documentation for details on logging |
498 | -confgiuration files. |
499 | -.TP |
500 | -.B --log-date-format=FORMAT |
501 | -Format string for %(asctime)s in log records. |
502 | -Default: %Y-%m-%d %H:%M:%S |
503 | -.TP |
504 | -.B --log-file=PATH |
505 | -(Optional) Name of log file to output to. If not set, |
506 | -logging will go to stdout. |
507 | -.TP |
508 | -.B --log-didr=LOG_DIR |
509 | -(Optional) The directory to keep log files in (will |
510 | -be prepended to --logfile) |
511 | - |
512 | -.SH FILES |
513 | -.IR /etc/keystone/keystone.conf |
514 | -.SH AUTHOR |
515 | -This manual page was written by Chuck Short <zulcss@ubuntu.com>. |
516 | |
517 | === removed file 'debian/man/keystone-import.8' |
518 | --- debian/man/keystone-import.8 2012-06-22 16:27:53 +0000 |
519 | +++ debian/man/keystone-import.8 1970-01-01 00:00:00 +0000 |
520 | @@ -1,12 +0,0 @@ |
521 | -.TH keystone 8 |
522 | -.SH NAME |
523 | -keystone-import \- import users, tenants, and EC2 credentials from nova. |
524 | -.SH SYNOPSIS |
525 | -.I [OPTION]... |
526 | -.SH DESCRIPTION |
527 | -.BR keystone is a Python implementation of the Openstack |
528 | -identity service. |
529 | -.SH FILES |
530 | -.IR /etc/keystone/keystone.conf |
531 | -.SH AUTHOR |
532 | -This manual page was written by Chuck Short <zulcss@ubuntu.com>. |
533 | |
534 | === removed file 'debian/man/keystone.8' |
535 | --- debian/man/keystone.8 2012-06-22 16:27:53 +0000 |
536 | +++ debian/man/keystone.8 1970-01-01 00:00:00 +0000 |
537 | @@ -1,64 +0,0 @@ |
538 | -.TH keystone 8 |
539 | -.SH NAME |
540 | -keystone \- provides HTTP for administrators and users. |
541 | -.SH SYNOPSIS |
542 | -.I [OPTION]... |
543 | -.SH DESCRIPTION |
544 | -.B keystone is a Python implementation of the Openstack |
545 | -.B identity service. This version has a lack of SSL support. |
546 | -.B It should not be run on a trusted network. |
547 | -.TP |
548 | -.B --version |
549 | -show program's version number and exit |
550 | -.TP |
551 | -.B \-h, --help |
552 | -show help messag and exit |
553 | -.TP |
554 | -.B \-v, --verbose |
555 | -Print more verbose output |
556 | -.TP |
557 | -.B \-d, --debug |
558 | -Prrint debugging output to console. |
559 | -.TP |
560 | -.B \-c PATH, --config-file=PATH |
561 | -Path to the config file to use. When not specified (the default), |
562 | -we generally look at the first arguement specified to be a config file, |
563 | -and if that is also missing, we search standard directories for a config |
564 | -file. |
565 | -.TP |
566 | -.B \-p BIND_PORT, --port=BIND_PORT, --bind-port=BIND_PORT |
567 | -Specifies port to listen on. |
568 | -.TP |
569 | -.B --host=BIND_HOST, --bind-host=BIND_HOST |
570 | -Specifies host address to listen on (default is all or 0.0.0.0) |
571 | -.TP |
572 | -.B \-t, --trace-calls |
573 | -Turns on call tracing for troubleshooting |
574 | -.TP |
575 | -.B \-a PORT, --admin-port=PORT |
576 | -Specifies port for Admin API to listen on (default is |
577 | -35357) |
578 | -.TP |
579 | -.B --log-config=PATH |
580 | -If this opion is specified, the logging configuration |
581 | -file specified is used and overrides any other logging |
582 | -options specified. Please see the Python logging |
583 | -modules documentation for details on logging |
584 | -confgiuration files. |
585 | -.TP |
586 | -.B --log-date-format=FORMAT |
587 | -Format string for %(asctime)s in log records. |
588 | -Default: %Y-%m-%d %H:%M:%S |
589 | -.TP |
590 | -.B --log-file=PATH |
591 | -(Optional) Name of log file to output to. If not set, |
592 | -logging will go to stdout. |
593 | -.TP |
594 | -.B --log-didr=LOG_DIR |
595 | -(Optional) The directory to keep log files in (will |
596 | -be prepended to --logfile) |
597 | - |
598 | -.SH FILES |
599 | -.IR /etc/keystone/keystone.conf |
600 | -.SH AUTHOR |
601 | -This manual page was written by Chuck Short <zulcss@ubuntu.com>. |
602 | |
603 | === modified file 'debian/patches/fix-ubuntu-tests.patch' |
604 | --- debian/patches/fix-ubuntu-tests.patch 2012-09-17 14:01:12 +0000 |
605 | +++ debian/patches/fix-ubuntu-tests.patch 2013-03-01 14:22:25 +0000 |
606 | @@ -1,185 +1,17 @@ |
607 | -diff -Naurp keystone-2012.2.orig/tests/test_content_types.py keystone-2012.2/tests/test_content_types.py |
608 | ---- keystone-2012.2.orig/tests/test_content_types.py 2012-09-14 09:36:08.000000000 -0500 |
609 | -+++ keystone-2012.2/tests/test_content_types.py 2012-09-17 08:57:18.370256628 -0500 |
610 | -@@ -105,7 +105,10 @@ class RestfulTestCase(test.TestCase): |
611 | - |
612 | - # Automatically assert HTTP status code |
613 | - if expected_status: |
614 | -- self.assertResponseStatus(response, expected_status) |
615 | -+ try: |
616 | -+ self.assertResponseStatus(response, expected_status) |
617 | -+ except: |
618 | -+ raise nose.exc.SkipTest('fails on ubuntu buildds') |
619 | - else: |
620 | - self.assertResponseSuccessful(response) |
621 | - self.assertValidResponseHeaders(response) |
622 | -@@ -138,11 +141,14 @@ class RestfulTestCase(test.TestCase): |
623 | - |
624 | - >>> self.assertResponseStatus(response, 203) |
625 | - """ |
626 | -- self.assertEqual( |
627 | -- response.status, |
628 | -- expected_status, |
629 | -- 'Status code %s is not %s, as expected)\n\n%s' % |
630 | -- (response.status, expected_status, response.body)) |
631 | -+ try: |
632 | -+ self.assertEqual( |
633 | -+ response.status, |
634 | -+ expected_status, |
635 | -+ 'Status code %s is not %s, as expected)\n\n%s' % |
636 | -+ (response.status, expected_status, response.body)) |
637 | -+ except: |
638 | -+ raise nose.exc.SkipTest('fails on ubuntu buildd') |
639 | - |
640 | - def assertValidResponseHeaders(self, response): |
641 | - """Ensures that response headers appear as expected.""" |
642 | -@@ -198,7 +204,10 @@ class RestfulTestCase(test.TestCase): |
643 | - body = self._to_content_type(body, headers) |
644 | - |
645 | - # Perform the HTTP request/response |
646 | -- response = self.request(headers=headers, body=body, **kwargs) |
647 | -+ try: |
648 | -+ response = self.request(headers=headers, body=body, **kwargs) |
649 | -+ except: |
650 | -+ raise nose.exc.SkipTest('fails on buildd') |
651 | - |
652 | - self._from_content_type(response) |
653 | - |
654 | -@@ -226,7 +235,10 @@ class RestfulTestCase(test.TestCase): |
655 | - |
656 | - def admin_request(self, port=None, **kwargs): |
657 | - kwargs['port'] = port or self._admin_port() |
658 | -- response = self.restful_request(**kwargs) |
659 | -+ try: |
660 | -+ response = self.restful_request(**kwargs) |
661 | -+ except: |
662 | -+ raise nose.exc.SkipTest('fails on ubuntu buildds') |
663 | - self.assertValidResponseHeaders(response) |
664 | - return response |
665 | - |
666 | -@@ -404,22 +416,28 @@ class CoreApiTests(object): |
667 | - |
668 | - """ |
669 | - token = self.get_scoped_token() |
670 | -- self.admin_request( |
671 | -- method='HEAD', |
672 | -- path='/v2.0/tokens/%(token_id)s' % { |
673 | -- 'token_id': token, |
674 | -- }, |
675 | -- token=token, |
676 | -- expected_status=204) |
677 | -+ try: |
678 | -+ self.admin_request( |
679 | -+ method='HEAD', |
680 | -+ path='/v2.0/tokens/%(token_id)s' % { |
681 | -+ 'token_id': token, |
682 | -+ }, |
683 | -+ token=token, |
684 | -+ expected_status=204) |
685 | -+ except: |
686 | -+ raise nose.exc.SkipTest('fails on ubuntu buildds') |
687 | - |
688 | - def test_endpoints(self): |
689 | - token = self.get_scoped_token() |
690 | -- r = self.admin_request( |
691 | -- path='/v2.0/tokens/%(token_id)s/endpoints' % { |
692 | -- 'token_id': token, |
693 | -- }, |
694 | -- token=token) |
695 | -- self.assertValidEndpointListResponse(r) |
696 | -+ try: |
697 | -+ r = self.admin_request( |
698 | -+ path='/v2.0/tokens/%(token_id)s/endpoints' % { |
699 | -+ 'token_id': token, |
700 | -+ }, |
701 | -+ token=token) |
702 | -+ self.assertValidEndpointListResponse(r) |
703 | -+ except: |
704 | -+ raise nose.exc.SkipTest('failed in ubuntu buildd') |
705 | - |
706 | - def test_get_tenant(self): |
707 | - token = self.get_scoped_token() |
708 | -@@ -462,6 +480,7 @@ class CoreApiTests(object): |
709 | - |
710 | - def test_error_response(self): |
711 | - """This triggers assertValidErrorResponse by convention.""" |
712 | -+ raise nose.exc.SkipTest('Disabled by ubuntu patch') |
713 | - self.public_request(path='/v2.0/tenants', expected_status=401) |
714 | - |
715 | - |
716 | -@@ -581,6 +600,8 @@ class JsonTestCase(RestfulTestCase, Core |
717 | - self.assertValidVersion(r.body.get('version')) |
718 | - |
719 | - def assertValidEndpointListResponse(self, r): |
720 | -+ raise nose.exc.SkipTest('Skipped by ubuntu packaging') |
721 | -+ |
722 | - self.assertIsNotNone(r.body.get('endpoints')) |
723 | - self.assertTrue(len(r.body['endpoints'])) |
724 | - for endpoint in r.body['endpoints']: |
725 | -@@ -594,6 +615,7 @@ class JsonTestCase(RestfulTestCase, Core |
726 | - def test_service_crud_requires_auth(self): |
727 | - """Service CRUD should 401 without an X-Auth-Token (bug 1006822).""" |
728 | - # values here don't matter because we should 401 before they're checked |
729 | -+ raise nose.exc.SkipTest('Skipped by ubuntu packaging') |
730 | - service_path = '/v2.0/OS-KSADM/services/%s' % uuid.uuid4().hex |
731 | - service_body = { |
732 | - 'OS-KSADM:service': { |
733 | -@@ -626,6 +648,7 @@ class JsonTestCase(RestfulTestCase, Core |
734 | - def test_user_role_list_requires_auth(self): |
735 | - """User role list should 401 without an X-Auth-Token (bug 1006815).""" |
736 | - # values here don't matter because we should 401 before they're checked |
737 | -+ raise nose.exc.SkipTest('Skipped by ubuntu packaging') |
738 | - path = '/v2.0/tenants/%(tenant_id)s/users/%(user_id)s/roles' % { |
739 | - 'tenant_id': uuid.uuid4().hex, |
740 | - 'user_id': uuid.uuid4().hex, |
741 | -@@ -635,19 +658,25 @@ class JsonTestCase(RestfulTestCase, Core |
742 | - self.assertValidErrorResponse(r) |
743 | - |
744 | - def test_fetch_revocation_list_nonadmin_fails(self): |
745 | -- self.admin_request( |
746 | -- method='GET', |
747 | -- path='/v2.0/tokens/revoked', |
748 | -- expected_status=401) |
749 | -+ try: |
750 | -+ self.admin_request( |
751 | -+ method='GET', |
752 | -+ path='/v2.0/tokens/revoked', |
753 | -+ expected_status=401) |
754 | -+ except: |
755 | -+ raise nose.exc.SkipTest('fail in ubuntu buildd') |
756 | - |
757 | - def test_fetch_revocation_list_admin_200(self): |
758 | - token = self.get_scoped_token() |
759 | -- r = self.restful_request( |
760 | -- method='GET', |
761 | -- path='/v2.0/tokens/revoked', |
762 | -- token=token, |
763 | -- expected_status=200, |
764 | -- port=self._admin_port()) |
765 | -+ try: |
766 | -+ r = self.restful_request( |
767 | -+ method='GET', |
768 | -+ path='/v2.0/tokens/revoked', |
769 | -+ token=token, |
770 | -+ expected_status=200, |
771 | -+ port=self._admin_port()) |
772 | -+ except: |
773 | -+ raise nose.exc.SkipTest('Disabled by ubuntu patch') |
774 | - self.assertValidRevocationListResponse(r) |
775 | - |
776 | - def assertValidRevocationListResponse(self, response): |
777 | -@@ -725,6 +754,7 @@ class XmlTestCase(RestfulTestCase, CoreA |
778 | - self.assertValidVersion(xml) |
779 | - |
780 | - def assertValidEndpointListResponse(self, r): |
781 | -+ raise nose.exc.SkipTest('Disabled by ubuntu patch') |
782 | - xml = r.body |
783 | - self.assertEqual(xml.tag, self._tag('endpoints')) |
784 | - |
785 | -diff -Naurp keystone-2012.2.orig/tests/test_keystoneclient.py keystone-2012.2/tests/test_keystoneclient.py |
786 | ---- keystone-2012.2.orig/tests/test_keystoneclient.py 2012-09-14 09:36:08.000000000 -0500 |
787 | -+++ keystone-2012.2/tests/test_keystoneclient.py 2012-09-17 08:14:07.562255462 -0500 |
788 | -@@ -34,10 +34,6 @@ class CompatTestCase(test.TestCase): |
789 | +Description: Fix test execution during package build |
790 | + The keystoneclient testsuite includes a number of tests |
791 | + for older version of keystone which are retrieved from |
792 | + the upstream source repo during testing. |
793 | + . |
794 | + This is not possible during an offline package build so |
795 | + the checkout and tests are disabled/skipped. |
796 | +Author: Chuck Short <zulcss@ubuntu.com> |
797 | +Author: James Page <james.page@ubuntu.com> |
798 | +Forwarded: not-needed |
799 | + |
800 | +--- a/tests/test_keystoneclient.py |
801 | ++++ b/tests/test_keystoneclient.py |
802 | +@@ -37,10 +37,6 @@ class CompatTestCase(test.TestCase): |
803 | def setUp(self): |
804 | super(CompatTestCase, self).setUp() |
805 | |
806 | @@ -190,51 +22,38 @@ |
807 | self.load_backends() |
808 | self.load_fixtures(default_fixtures) |
809 | |
810 | -@@ -788,10 +784,8 @@ class KeystoneClientTests(object): |
811 | - |
812 | - |
813 | - class KcMasterTestCase(CompatTestCase, KeystoneClientTests): |
814 | -- def get_checkout(self): |
815 | -- return KEYSTONECLIENT_REPO, 'master' |
816 | -- |
817 | - def test_tenant_add_and_remove_user(self): |
818 | -+ raise nose.exc.SkipTest('Keystoneclient Essex 3 tests disabled.') |
819 | - client = self.get_client(admin=True) |
820 | - client.roles.add_user_role(tenant=self.tenant_baz['id'], |
821 | - user=self.user_two['id'], |
822 | -@@ -902,6 +896,7 @@ class KcMasterTestCase(CompatTestCase, K |
823 | +@@ -918,6 +914,8 @@ class KcMasterTestCase(CompatTestCase, K |
824 | client.tenants.list, limit=-1) |
825 | |
826 | def test_roles_get_by_user(self): |
827 | -+ raise nose.exc.SkipTest('Keystoneclient Essex 3 tests disabled.') |
828 | ++ raise nose.exc.SkipTest('Disabled by Ubuntu packaging') |
829 | ++ |
830 | client = self.get_client(admin=True) |
831 | roles = client.roles.roles_for_user(user=self.user_foo['id'], |
832 | tenant=self.tenant_bar['id']) |
833 | -@@ -995,10 +990,8 @@ class KcMasterTestCase(CompatTestCase, K |
834 | - |
835 | - |
836 | - class KcEssex3TestCase(CompatTestCase, KeystoneClientTests): |
837 | -- def get_checkout(self): |
838 | -- return KEYSTONECLIENT_REPO, 'essex-3' |
839 | -- |
840 | +@@ -1015,6 +1013,8 @@ class KcEssex3TestCase(CompatTestCase, K |
841 | + return KEYSTONECLIENT_REPO, 'essex-3' |
842 | + |
843 | def test_tenant_add_and_remove_user(self): |
844 | -+ raise nose.exc.SkipTest('Keystoneclient Essex 3 tests disabled.') |
845 | ++ raise nose.exc.SkipTest('Disabled by Ubuntu packaging') |
846 | ++ |
847 | client = self.get_client(admin=True) |
848 | - client.roles.add_user_to_tenant(tenant_id=self.tenant_baz['id'], |
849 | + client.roles.add_user_to_tenant(tenant_id=self.tenant_bar['id'], |
850 | user_id=self.user_two['id'], |
851 | -@@ -1027,6 +1020,7 @@ class KcEssex3TestCase(CompatTestCase, K |
852 | +@@ -1043,6 +1043,7 @@ class KcEssex3TestCase(CompatTestCase, K |
853 | [x.tenantId for x in role_refs]) |
854 | |
855 | def test_roles_get_by_user(self): |
856 | -+ raise nose.exc.SkipTest('Keystoneclient Essex 3 tests disabled.') |
857 | ++ raise nose.exc.SkipTest('Disabled by Ubuntu packaging') |
858 | client = self.get_client(admin=True) |
859 | roles = client.roles.get_user_role_refs(user_id='foo') |
860 | self.assertTrue(len(roles) > 0) |
861 | -@@ -1038,6 +1032,7 @@ class KcEssex3TestCase(CompatTestCase, K |
862 | +@@ -1054,6 +1055,8 @@ class KcEssex3TestCase(CompatTestCase, K |
863 | raise nose.exc.SkipTest('N/A') |
864 | |
865 | def test_user_create_update_delete(self): |
866 | -+ raise nose.exc.SkipTest('Keystoneclient Essex 3 tests disabled.') |
867 | ++ raise nose.exc.SkipTest('Disabled by Ubuntu packaging') |
868 | ++ |
869 | from keystoneclient import exceptions as client_exceptions |
870 | |
871 | test_username = 'new_user' |
872 | |
873 | === modified file 'debian/patches/sql_connection.patch' (properties changed: +x to -x) |
874 | --- debian/patches/sql_connection.patch 2012-09-12 17:30:31 +0000 |
875 | +++ debian/patches/sql_connection.patch 2013-03-01 14:22:25 +0000 |
876 | @@ -1,9 +1,7 @@ |
877 | -Index: keystone-2012.2/etc/keystone.conf.sample |
878 | -=================================================================== |
879 | ---- keystone-2012.2.orig/etc/keystone.conf.sample 2012-09-12 10:29:30.239068065 -0700 |
880 | -+++ keystone-2012.2/etc/keystone.conf.sample 2012-09-12 10:29:58.907069036 -0700 |
881 | -@@ -23,10 +23,10 @@ |
882 | - # debug = False |
883 | +--- a/etc/keystone.conf.sample |
884 | ++++ b/etc/keystone.conf.sample |
885 | +@@ -44,10 +44,10 @@ |
886 | + # verbose = False |
887 | |
888 | # Name of log file to output to. If not set, logging will go to stdout. |
889 | -# log_file = keystone.log |
890 | @@ -15,16 +13,7 @@ |
891 | |
892 | # Use syslog for logging. |
893 | # use_syslog = False |
894 | -@@ -38,7 +38,7 @@ |
895 | - # used and overrides any other logging options specified. Please see the |
896 | - # Python logging module documentation for details on logging configuration |
897 | - # files. |
898 | --# log_config = logging.conf |
899 | -+log_config = /etc/keystone/logging.conf |
900 | - |
901 | - # A logging.Formatter log message format string which may use any of the |
902 | - # available logging.LogRecord attributes. |
903 | -@@ -55,17 +55,17 @@ |
904 | +@@ -76,13 +76,13 @@ |
905 | |
906 | [sql] |
907 | # The SQLAlchemy connection string used to connect to the database |
908 | @@ -38,6 +27,10 @@ |
909 | -# driver = keystone.identity.backends.sql.Identity |
910 | +driver = keystone.identity.backends.sql.Identity |
911 | |
912 | + # This references the domain to use for all Identity API v2 requests (which are |
913 | + # not aware of domains). A domain with this ID will be created for you by |
914 | +@@ -94,7 +94,7 @@ |
915 | + |
916 | [catalog] |
917 | # dynamic, sql-based backend (supports API/CLI-based management commands) |
918 | -# driver = keystone.catalog.backends.sql.Catalog |
919 | @@ -45,23 +38,23 @@ |
920 | |
921 | # static, file-based backend (does *NOT* support any management commands) |
922 | # driver = keystone.catalog.backends.templated.TemplatedCatalog |
923 | -@@ -73,16 +73,16 @@ |
924 | +@@ -102,16 +102,16 @@ |
925 | # template_file = default_catalog.templates |
926 | |
927 | [token] |
928 | -# driver = keystone.token.backends.kvs.Token |
929 | -+driver = keystone.token.backends.sql.Token |
930 | ++driver = keystone.token.backends.kvs.Token |
931 | |
932 | # Amount of time a token should remain valid (in seconds) |
933 | # expiration = 86400 |
934 | |
935 | [policy] |
936 | --# driver = keystone.policy.backends.rules.Policy |
937 | -+driver = keystone.policy.backends.rules.Policy |
938 | +-# driver = keystone.policy.backends.sql.Policy |
939 | ++driver = keystone.policy.backends.sql.Policy |
940 | |
941 | [ec2] |
942 | -# driver = keystone.contrib.ec2.backends.kvs.Ec2 |
943 | -+driver = keystone.contrib.ec2.backends.sql.Ec2 |
944 | ++driver = keystone.contrib.ec2.backends.kvs.Ec2 |
945 | |
946 | [ssl] |
947 | #enable = True |
948 | |
949 | === modified file 'debian/rules' |
950 | --- debian/rules 2012-11-15 00:37:06 +0000 |
951 | +++ debian/rules 2013-03-01 14:22:25 +0000 |
952 | @@ -26,7 +26,7 @@ |
953 | cp tests/test_overrides.conf tests/test_overrides.conf.orig |
954 | cp $(CURDIR)/debian/tests/test_overrides.conf $(CURDIR)/tests/test_overrides.conf |
955 | sed -i 's|%CUR_DIR%|$(CURDIR)|g' $(CURDIR)/tests/test_overrides.conf |
956 | - PYTHONPATH=$(CURDIR) bash run_tests.sh -N || true |
957 | + PYTHONPATH=$(CURDIR) bash run_tests.sh -N |
958 | mv $(CURDIR)/tests/test_overrides.conf.orig $(CURDIR)/tests/test_overrides.conf |
959 | rm -rf $(CURDIR)/debian/tests/testing.db $(CURDIR)/debian/tests/keystone-signing |
960 | endif |
961 | |
962 | === modified file 'debian/tests/test_overrides.conf' |
963 | --- debian/tests/test_overrides.conf 2012-11-02 10:39:19 +0000 |
964 | +++ debian/tests/test_overrides.conf 2013-03-01 14:22:25 +0000 |
965 | @@ -13,6 +13,6 @@ |
966 | idle_timeout = 200 |
967 | |
968 | [signing] |
969 | -certfile = signing/signing_cert.pem |
970 | -keyfile = signing/private_key.pem |
971 | -ca_certs = signing/cacert.pem |
972 | +certfile = ../examples/pki/certs/signing_cert.pem |
973 | +keyfile = ../examples/pki/private/signing_key.pem |
974 | +ca_certs = ../examples/pki/certs/cacert.pem |
975 | |
976 | === modified file 'debian/watch' |
977 | --- debian/watch 2012-08-29 14:13:07 +0000 |
978 | +++ debian/watch 2013-03-01 14:22:25 +0000 |
979 | @@ -1,4 +1,4 @@ |
980 | version=3 |
981 | -opts="uversionmangle=s/%7E/~/" https://launchpad.net/keystone/+download https://launchpad.net/keystone/.*/.*/.*/keystone-(.*)\.tar\.gz |
982 | -http://tarballs.openstack.org/keystone/ keystone-(\d.*).tar.gz |
983 | +opts="uversionmangle=s/\.([a-zA-Z])/~$1/;s/%7E/~/" \ |
984 | + https://launchpad.net/keystone/+download https://launchpad.net/keystone/.*/.*/.*/keystone-(.*)\.tar\.gz |
985 |