osclib/core: provide create_delete_request().
This commit is contained in:
parent
d0e2b71ed1
commit
2f99efe1b8
@ -994,6 +994,36 @@ def request_create_delete(apiurl, target_project, target_package, message=None):
|
||||
|
||||
return RequestFuture('delete {}/{}'.format(target_project, target_package), create_function)
|
||||
|
||||
# Should exist within osc.core like create_submit_request(), but rather it was
|
||||
# duplicated in osc.commandline.
|
||||
def create_delete_request(apiurl, target_project, target_package=None, message=None):
|
||||
if not message:
|
||||
message = message_suffix('created')
|
||||
|
||||
request = ETL.Element('request')
|
||||
|
||||
state = ETL.Element('state')
|
||||
state.set('name', 'new')
|
||||
request.append(state)
|
||||
|
||||
description = ETL.Element('description')
|
||||
description.text = message
|
||||
request.append(description)
|
||||
|
||||
action = ETL.Element('action')
|
||||
action.set('type', 'delete')
|
||||
request.append(action)
|
||||
|
||||
target = ETL.Element('target')
|
||||
target.set('project', target_project)
|
||||
if target_package:
|
||||
target.set('package', target_package)
|
||||
action.append(target)
|
||||
|
||||
url = makeurl(apiurl, ['request'], {'cmd': 'create'})
|
||||
root = ETL.parse(http_POST(url, data=ETL.tostring(request))).getroot()
|
||||
return root.get('id')
|
||||
|
||||
class RequestFuture:
|
||||
def __init__(self, description, create_function):
|
||||
self.description = description
|
||||
|
Loading…
x
Reference in New Issue
Block a user