2017-01-10 01:27:40 -06:00
|
|
|
from osc.core import get_request
|
|
|
|
from osclib.comments import CommentAPI
|
2017-03-10 01:12:40 -06:00
|
|
|
from osclib.request_finder import RequestFinder
|
2017-01-10 01:27:40 -06:00
|
|
|
|
|
|
|
|
|
|
|
class IgnoreCommand(object):
|
2017-03-17 14:44:27 -05:00
|
|
|
MESSAGE = 'Ignored: removed from active backlog.'
|
|
|
|
|
2017-01-10 01:27:40 -06:00
|
|
|
def __init__(self, api):
|
|
|
|
self.api = api
|
|
|
|
self.comment = CommentAPI(self.api.apiurl)
|
|
|
|
|
2017-03-10 01:12:40 -06:00
|
|
|
def perform(self, requests, message=None):
|
2017-01-10 01:27:40 -06:00
|
|
|
"""
|
|
|
|
Ignore a request from "list" and "adi" commands until unignored.
|
|
|
|
"""
|
|
|
|
|
|
|
|
requests_ignored = self.api.get_ignored_requests()
|
|
|
|
length = len(requests_ignored)
|
|
|
|
|
2017-03-10 01:12:40 -06:00
|
|
|
for request_id in RequestFinder.find_sr(requests, self.api):
|
2017-03-17 14:43:52 -05:00
|
|
|
if request_id in requests_ignored:
|
|
|
|
print('{}: already ignored'.format(request_id))
|
|
|
|
continue
|
|
|
|
|
|
|
|
print('{}: ignored'.format(request_id))
|
|
|
|
requests_ignored[request_id] = message
|
2017-03-17 14:44:27 -05:00
|
|
|
comment = message if message else self.MESSAGE
|
|
|
|
self.comment.add_comment(request_id=str(request_id), comment=comment)
|
2017-01-10 01:27:40 -06:00
|
|
|
|
|
|
|
diff = len(requests_ignored) - length
|
|
|
|
if diff > 0:
|
|
|
|
self.api.set_ignored_requests(requests_ignored)
|
2017-03-17 14:45:31 -05:00
|
|
|
print('Ignored {} requests'.format(diff))
|
2017-01-10 01:27:40 -06:00
|
|
|
else:
|
|
|
|
print('No new requests to ignore')
|
|
|
|
|
|
|
|
return True
|