Merge lp:~stefanor/launchpad/packageset-destructor into lp:launchpad

Proposed by Stefano Rivera on 2012-09-30
Status: Merged
Merged at revision: 16061
Proposed branch: lp:~stefanor/launchpad/packageset-destructor
Merge into: lp:launchpad
Diff against target: 36 lines (+4/-4)
2 files modified
lib/lp/soyuz/interfaces/packageset.py (+2/-2)
lib/lp/soyuz/stories/webservice/xx-packageset.txt (+2/-2)
To merge this branch: bzr merge lp:~stefanor/launchpad/packageset-destructor
Reviewer Review Type Date Requested Status
William Grant code 2012-09-30 Approve on 2012-09-30
Review via email: mp+127167@code.launchpad.net

Commit Message

Export packageset deletion as a destructor operation.

Description of the Change

== Summary ==
Follow up to merge 124555.

The deletion API method should be exposed as a destructor operation, which avoids lplib clients getting 404s on deletion.

== Complexity rationale ==

The previous merge was dropped 309 LoC, this adds 1 :)

== Tests ==

Modified lib/lp/soyuz/stories/webservice/xx-packageset.txt to do a HTTP DELETE operation.

== QA ==

edit-acl in lp:~stefanor/ubuntu-archive-tools/edit-packagesets can exercise this.

To post a comment you must log in.
William Grant (wgrant) wrote :

You can drop the @export_operation_as, since deletes aren't named. Otherwise great, thanks. Once you've fixed that, give someone a yell and we'll land it for you.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/soyuz/interfaces/packageset.py'
2--- lib/lp/soyuz/interfaces/packageset.py 2012-09-11 12:43:45 +0000
3+++ lib/lp/soyuz/interfaces/packageset.py 2012-10-01 06:46:21 +0000
4@@ -21,6 +21,7 @@
5 error_status,
6 export_as_webservice_collection,
7 export_as_webservice_entry,
8+ export_destructor_operation,
9 export_factory_operation,
10 export_operation_as,
11 export_read_operation,
12@@ -348,8 +349,7 @@
13 :param names: an iterable with string package set names
14 """
15
16- @export_write_operation()
17- @export_operation_as('delete')
18+ @export_destructor_operation()
19 @operation_for_version('devel')
20 def destroySelf():
21 """Delete the package set."""
22
23=== modified file 'lib/lp/soyuz/stories/webservice/xx-packageset.txt'
24--- lib/lp/soyuz/stories/webservice/xx-packageset.txt 2012-09-28 14:48:20 +0000
25+++ lib/lp/soyuz/stories/webservice/xx-packageset.txt 2012-10-01 06:46:21 +0000
26@@ -108,8 +108,8 @@
27
28 And then delete it.
29
30- >>> response = webservice.named_post(
31- ... '/package-sets/hoary/renamed', 'delete', {}, api_version='devel')
32+ >>> response = webservice.delete(
33+ ... '/package-sets/hoary/renamed', {}, api_version='devel')
34 >>> print response
35 HTTP/1.1 200 Ok
36 ...