stagingapi: provide accept_status_comment() based on accept command.

This commit is contained in:
Jimmy Berry 2017-03-28 23:01:33 -05:00
parent 1ece7d6375
commit 1dfa8d2568
2 changed files with 9 additions and 12 deletions

View File

@ -7,13 +7,11 @@ from osc.core import change_request_state
from osc.core import http_GET, http_PUT, http_DELETE, http_POST from osc.core import http_GET, http_PUT, http_DELETE, http_POST
from osc.core import delete_package from osc.core import delete_package
from datetime import date from datetime import date
from osclib.comments import CommentAPI
class AcceptCommand(object): class AcceptCommand(object):
def __init__(self, api): def __init__(self, api):
self.api = api self.api = api
self.comment = CommentAPI(self.api.apiurl)
def find_new_requests(self, project): def find_new_requests(self, project):
query = "match=state/@name='new'+and+(action/target/@project='{}'+and+action/@type='submit')".format(project) query = "match=state/@name='new'+and+(action/target/@project='{}'+and+action/@type='submit')".format(project)
@ -84,16 +82,7 @@ class AcceptCommand(object):
message='Accept to %s' % self.api.project) message='Accept to %s' % self.api.project)
self.create_new_links(self.api.project, req['package'], oldspecs) self.create_new_links(self.api.project, req['package'], oldspecs)
# A single comment should be enough to notify everybody, since self.api.accept_status_comment(project, packages)
# they are already mentioned in the comments created by
# select/unselect
pkg_list = ", ".join(packages)
cmmt = 'Project "{}" accepted.' \
' The following packages have been submitted to {}: {}.'.format(project,
self.api.project,
pkg_list)
self.comment.add_comment(project_name=project, comment=cmmt)
self.api.staging_deactivate(project) self.api.staging_deactivate(project)
return True return True

View File

@ -1397,6 +1397,14 @@ class StagingAPI(object):
msg = '\n'.join(lines) msg = '\n'.join(lines)
comment_api.add_comment(project_name=project, comment=msg) comment_api.add_comment(project_name=project, comment=msg)
def accept_status_comment(self, project, packages):
# A single comment should be enough to notify everybody, since they are
# already mentioned in the comments created by select/unselect.
comment = 'Project "{}" accepted. ' \
'The following packages have been submitted to {}: {}.'.format(
project, self.project, ', '.join(packages))
CommentAPI(self.apiurl).add_comment(project_name=project, comment=comment)
def mark_additional_packages(self, project, packages): def mark_additional_packages(self, project, packages):
""" """
Adds packages that the repo checker needs to download from staging prj Adds packages that the repo checker needs to download from staging prj