Merge pull request #514 from nilxam/adi_split
Add --split argument to adi command
This commit is contained in:
commit
46aceb4301
@ -67,6 +67,8 @@ def _full_project_name(self, project):
|
|||||||
help='force the selection to become a move')
|
help='force the selection to become a move')
|
||||||
@cmdln.option('--by-develproject', action='store_true',
|
@cmdln.option('--by-develproject', action='store_true',
|
||||||
help='sort the packages by devel project')
|
help='sort the packages by devel project')
|
||||||
|
@cmdln.option('--split', action='store_true',
|
||||||
|
help='splits each package to different adi staging')
|
||||||
@cmdln.option('--supersede', action='store_true',
|
@cmdln.option('--supersede', action='store_true',
|
||||||
help='superseding requests. please make sure you have staging permissions')
|
help='superseding requests. please make sure you have staging permissions')
|
||||||
@cmdln.option('-f', '--from', dest='from_', metavar='FROMPROJECT',
|
@cmdln.option('-f', '--from', dest='from_', metavar='FROMPROJECT',
|
||||||
@ -233,6 +235,6 @@ def do_staging(self, subcmd, opts, *args):
|
|||||||
elif cmd == 'list':
|
elif cmd == 'list':
|
||||||
ListCommand(api).perform(args[1:], supersede=opts.supersede)
|
ListCommand(api).perform(args[1:], supersede=opts.supersede)
|
||||||
elif cmd == 'adi':
|
elif cmd == 'adi':
|
||||||
AdiCommand(api).perform(args[1:], move=opts.move, by_dp=opts.by_develproject)
|
AdiCommand(api).perform(args[1:], move=opts.move, by_dp=opts.by_develproject, split=opts.split)
|
||||||
elif cmd == 'repair':
|
elif cmd == 'repair':
|
||||||
RepairCommand(api).perform(args[1:])
|
RepairCommand(api).perform(args[1:])
|
||||||
|
@ -48,7 +48,7 @@ class AdiCommand:
|
|||||||
else:
|
else:
|
||||||
return node.get('project')
|
return node.get('project')
|
||||||
|
|
||||||
def create_new_adi(self, wanted_requests, by_dp=False):
|
def create_new_adi(self, wanted_requests, by_dp=False, split=False):
|
||||||
all_requests = self.api.get_open_requests()
|
all_requests = self.api.get_open_requests()
|
||||||
|
|
||||||
non_ring_packages = []
|
non_ring_packages = []
|
||||||
@ -89,19 +89,23 @@ class AdiCommand:
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
non_ring_packages.append(target_package)
|
non_ring_packages.append(target_package)
|
||||||
if by_dp is True:
|
if split:
|
||||||
devel_project = self.get_devel_project(source_project, source_package)
|
# request_id pretended to be index of non_ring_requests
|
||||||
# try target pacakge in Factory
|
non_ring_requests[request_id] = [request_id]
|
||||||
# this is a bit against Leap development in case submissions is from Update,
|
else:
|
||||||
# or any other project than Factory
|
if by_dp:
|
||||||
if devel_project is None and self.api.project.startswith('openSUSE:'):
|
devel_project = self.get_devel_project(source_project, source_package)
|
||||||
devel_project = self.get_devel_project('openSUSE:Factory', target_package)
|
# try target pacakge in Factory
|
||||||
if devel_project is not None:
|
# this is a bit against Leap development in case submissions is from Update,
|
||||||
source_project = devel_project
|
# or any other project than Factory
|
||||||
|
if devel_project is None and self.api.project.startswith('openSUSE:'):
|
||||||
|
devel_project = self.get_devel_project('openSUSE:Factory', target_package)
|
||||||
|
if devel_project is not None:
|
||||||
|
source_project = devel_project
|
||||||
|
|
||||||
if not source_project in non_ring_requests:
|
if source_project not in non_ring_requests:
|
||||||
non_ring_requests[source_project] = []
|
non_ring_requests[source_project] = []
|
||||||
non_ring_requests[source_project].append(request_id)
|
non_ring_requests[source_project].append(request_id)
|
||||||
|
|
||||||
if len(non_ring_packages):
|
if len(non_ring_packages):
|
||||||
print "Not in a ring:", ' '.join(sorted(non_ring_packages))
|
print "Not in a ring:", ' '.join(sorted(non_ring_packages))
|
||||||
@ -118,7 +122,7 @@ class AdiCommand:
|
|||||||
# Notify everybody about the changes
|
# Notify everybody about the changes
|
||||||
self.api.update_status_comments(name, 'select')
|
self.api.update_status_comments(name, 'select')
|
||||||
|
|
||||||
def perform(self, packages, move=False, by_dp=False):
|
def perform(self, packages, move=False, by_dp=False, split=False):
|
||||||
"""
|
"""
|
||||||
Perform the list command
|
Perform the list command
|
||||||
"""
|
"""
|
||||||
@ -136,8 +140,8 @@ class AdiCommand:
|
|||||||
|
|
||||||
for request, request_project in items:
|
for request, request_project in items:
|
||||||
requests.add(request)
|
requests.add(request)
|
||||||
self.create_new_adi(requests)
|
self.create_new_adi(requests, split=split)
|
||||||
else:
|
else:
|
||||||
self.check_adi_projects()
|
self.check_adi_projects()
|
||||||
if self.api.is_user_member_of(self.api.user, 'factory-staging'):
|
if self.api.is_user_member_of(self.api.user, 'factory-staging'):
|
||||||
self.create_new_adi((), by_dp)
|
self.create_new_adi((), by_dp=by_dp, split=split)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user