osclib/core: provide create_delete_request().

This commit is contained in:
Jimmy Berry 2019-09-18 18:03:57 -05:00
parent d0e2b71ed1
commit 2f99efe1b8

View File

@ -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