Add comments in every operation.
This commit is contained in:
parent
da139e58d9
commit
6e0322f699
@ -1,9 +1,13 @@
|
||||
from osc.core import change_request_state
|
||||
from osc.core import get_request
|
||||
|
||||
from osclib.comments import CommentAPI
|
||||
|
||||
|
||||
class AcceptCommand(object):
|
||||
def __init__(self, api):
|
||||
self.api = api
|
||||
self.comment = CommentAPI(self.api.apiurl)
|
||||
|
||||
def perform(self, project):
|
||||
"""
|
||||
@ -11,6 +15,7 @@ class AcceptCommand(object):
|
||||
Then disable the build to disabled
|
||||
:param project: staging project we are working with
|
||||
"""
|
||||
|
||||
status = self.api.check_project_status(project)
|
||||
|
||||
if not status:
|
||||
@ -21,10 +26,19 @@ class AcceptCommand(object):
|
||||
requests = []
|
||||
for req in meta['requests']:
|
||||
self.api.rm_from_prj(project, request_id=req['id'], msg='ready to accept')
|
||||
print('Accepting staging review for {0}'.format(req['package']))
|
||||
msg = 'Accepting staging review for {0}'.format(req['package'])
|
||||
print(msg)
|
||||
|
||||
# Write a comment in the project.
|
||||
user = get_request(self.api.apiurl, str(req['id'])).get_creator()
|
||||
self.comment.add_comment(project_name=project, comment='@%s: %s' % (user, msg))
|
||||
|
||||
requests.append(req['id'])
|
||||
|
||||
for req in requests:
|
||||
change_request_state(self.api.apiurl, str(req), 'accepted', message='Accept to factory')
|
||||
|
||||
# XXX CAUTION - AFAIK the 'accept' command is expected to clean the messages here.
|
||||
self.comment.delete_from(project_name=project)
|
||||
|
||||
self.api.build_switch_prj(project, 'disable')
|
||||
|
@ -1,8 +1,10 @@
|
||||
from xml.etree import cElementTree as ET
|
||||
|
||||
from osc import oscerr
|
||||
from osc.core import get_request
|
||||
from osc.core import http_GET
|
||||
|
||||
from osclib.comments import CommentAPI
|
||||
from osclib.request_finder import RequestFinder
|
||||
# from osclib.freeze_command import FreezeCommand
|
||||
|
||||
@ -11,6 +13,7 @@ class SelectCommand(object):
|
||||
|
||||
def __init__(self, api):
|
||||
self.api = api
|
||||
self.comment = CommentAPI(self.api.apiurl)
|
||||
|
||||
def _package(self, request):
|
||||
"""
|
||||
@ -55,7 +58,14 @@ class SelectCommand(object):
|
||||
|
||||
if 'staging' not in request_project and not supersede:
|
||||
# Normal 'select' command
|
||||
print('Adding request "{}" to project "{}"'.format(request, self.target_project))
|
||||
msg = 'Adding request "{}" to project "{}"'.format(request, self.target_project)
|
||||
print(msg)
|
||||
|
||||
# Write a comment in the project.
|
||||
user = get_request(self.api.apiurl, str(request)).get_creator()
|
||||
self.comment.add_comment(project_name=request_project,
|
||||
comment='@%s: %s' % (user, msg))
|
||||
|
||||
return self.api.rq_to_prj(request, self.target_project)
|
||||
elif 'staging' in request_project and (move or supersede):
|
||||
# 'select' command becomes a 'move'
|
||||
@ -66,14 +76,25 @@ class SelectCommand(object):
|
||||
# supersede = (new_rq, package, project)
|
||||
fprj = request_project['staging'] if not supersede else supersede[2]
|
||||
|
||||
msgs = []
|
||||
if supersede:
|
||||
print('"{} ({}) is superseded by {}'.format(request, supersede[1], supersede[0]))
|
||||
msg = '"{} ({}) is superseded by {}'.format(request, supersede[1], supersede[0])
|
||||
msgs.append(msg)
|
||||
print(msg)
|
||||
|
||||
if fprj == self.target_project:
|
||||
print('"{}" is currently in "{}"'.format(request, self.target_project))
|
||||
return False
|
||||
|
||||
print('Moving "{}" from "{}" to "{}"'.format(request, fprj, self.target_project))
|
||||
msg = 'Moving "{}" from "{}" to "{}"'.format(request, fprj, self.target_project)
|
||||
msgs.append(msg)
|
||||
print(msg)
|
||||
|
||||
# Write a comment in the project.
|
||||
user = get_request(self.api.apiurl, str(request)).get_creator()
|
||||
self.comment.add_comment(project_name=self.target_project,
|
||||
comment='@%s: %s' % (user, '\n'.join(msgs)))
|
||||
|
||||
return self.api.move_between_project(fprj, request, self.target_project)
|
||||
elif 'staging' in request_project and not move:
|
||||
# Previously selected, but not explicit move
|
||||
|
@ -1,6 +1,8 @@
|
||||
from osc import oscerr
|
||||
from osc.core import get_request
|
||||
from osc.core import http_GET
|
||||
|
||||
from osclib.comments import CommentAPI
|
||||
from osclib.request_finder import RequestFinder
|
||||
|
||||
|
||||
@ -8,14 +10,23 @@ class UnselectCommand(object):
|
||||
|
||||
def __init__(self, api):
|
||||
self.api = api
|
||||
self.comment = CommentAPI(self.api.apiurl)
|
||||
|
||||
def perform(self, packages):
|
||||
"""
|
||||
Remove request from staging project
|
||||
:param packages: packages/requests to delete from staging projects
|
||||
"""
|
||||
for request, request_project in RequestFinder.find_staged_sr(packages, self.api).items():
|
||||
|
||||
for request, request_project in RequestFinder.find_staged_sr(packages,
|
||||
self.api).items():
|
||||
staging_project = request_project['staging']
|
||||
print('Unselecting "{}" from "{}"'.format(request, staging_project))
|
||||
msg = 'Unselecting "{}" from "{}"'.format(request, staging_project)
|
||||
print(msg)
|
||||
self.api.rm_from_prj(staging_project, request_id=request)
|
||||
self.api.add_review(request, by_group='factory-staging', msg='Please recheck')
|
||||
|
||||
# Write a comment in the project.
|
||||
user = get_request(self.api.apiurl, str(request)).get_creator()
|
||||
self.comment.add_comment(project_name=staging_project,
|
||||
comment='@%s: %s' % (user, msg))
|
||||
|
Loading…
x
Reference in New Issue
Block a user