osclib/core: provide request_create_delete().
This commit is contained in:
parent
f441d8e41d
commit
7478a42882
@ -31,6 +31,7 @@ from osc.core import xpath_join
|
|||||||
from osc.util.helper import decode_it
|
from osc.util.helper import decode_it
|
||||||
from osclib.conf import Config
|
from osclib.conf import Config
|
||||||
from osclib.memoize import memoize
|
from osclib.memoize import memoize
|
||||||
|
import subprocess
|
||||||
|
|
||||||
BINARY_REGEX = r'(?:.*::)?(?P<filename>(?P<name>.*)-(?P<version>[^-]+)-(?P<release>[^-]+)\.(?P<arch>[^-\.]+))'
|
BINARY_REGEX = r'(?:.*::)?(?P<filename>(?P<name>.*)-(?P<version>[^-]+)-(?P<release>[^-]+)\.(?P<arch>[^-\.]+))'
|
||||||
RPM_REGEX = BINARY_REGEX + r'\.rpm'
|
RPM_REGEX = BINARY_REGEX + r'\.rpm'
|
||||||
@ -949,6 +950,23 @@ def request_create_submit(apiurl, source_project, source_package,
|
|||||||
return RequestFuture('submit {}/{} -> {}/{}'.format(
|
return RequestFuture('submit {}/{} -> {}/{}'.format(
|
||||||
source_project, source_package, target_project, target_package), create_function)
|
source_project, source_package, target_project, target_package), create_function)
|
||||||
|
|
||||||
|
def request_create_delete(apiurl, target_project, target_package, message=None):
|
||||||
|
for request, action in request_action_single_list(
|
||||||
|
apiurl, target_project, target_package, REQUEST_STATES_MINUS_ACCEPTED, 'delete'):
|
||||||
|
return False
|
||||||
|
|
||||||
|
# No proper API function to perform the same operation.
|
||||||
|
message = message_suffix('created', message)
|
||||||
|
|
||||||
|
def create_function():
|
||||||
|
subprocess.check_call(
|
||||||
|
' '.join(['osc', 'dr', '-m', message, target_project, target_package]), shell=True)
|
||||||
|
|
||||||
|
# Would be nicer to return newly create request ID, but not worth rewriting.
|
||||||
|
return True
|
||||||
|
|
||||||
|
return RequestFuture('delete {}/{}'.format(target_project, target_package), create_function)
|
||||||
|
|
||||||
class RequestFuture:
|
class RequestFuture:
|
||||||
def __init__(self, description, create_function):
|
def __init__(self, description, create_function):
|
||||||
self.description = description
|
self.description = description
|
||||||
|
Loading…
x
Reference in New Issue
Block a user