PR#4348: kojid --single mode
Merges #4348 https://pagure.io/koji/pull-request/4348 Fixes: #4440 https://pagure.io/koji/issue/4440 kojid --single mode
This commit is contained in:
commit
67cc2cdbac
4 changed files with 13 additions and 1 deletions
|
|
@ -189,6 +189,9 @@ def main(options, session):
|
|||
# from getting overloaded.
|
||||
logger.debug('Sleeping for %s', options.sleeptime)
|
||||
time.sleep(options.sleeptime)
|
||||
elif options.single:
|
||||
# exit after first task
|
||||
break
|
||||
except (SystemExit, KeyboardInterrupt):
|
||||
logger.warning("Exiting")
|
||||
break
|
||||
|
|
@ -6752,6 +6755,8 @@ def get_options():
|
|||
parser.add_option("-f", "--fg", dest="daemon",
|
||||
action="store_false", default=True,
|
||||
help="run in foreground")
|
||||
parser.add_option("--single", action="store_true",
|
||||
help="run a single task in foreground, for debugging")
|
||||
parser.add_option("--force-lock", action="store_true", default=False,
|
||||
help="force lock for exclusive session")
|
||||
parser.add_option("-v", "--verbose", action="store_true", default=False,
|
||||
|
|
@ -6789,6 +6794,10 @@ def get_options():
|
|||
# not reached
|
||||
assert False # pragma: no cover
|
||||
|
||||
# --single implies --fg
|
||||
if options.single:
|
||||
options.daemon = False
|
||||
|
||||
# load local config
|
||||
config = koji.read_config_files(options.configFile, raw=True)
|
||||
for x in config.sections():
|
||||
|
|
|
|||
|
|
@ -1379,7 +1379,7 @@ class TaskManager(object):
|
|||
return False
|
||||
# otherwise...
|
||||
raise
|
||||
if handler.Foreground:
|
||||
if handler.Foreground or getattr(self.options, "single"):
|
||||
self.logger.info("running task in foreground")
|
||||
handler.setManager(self)
|
||||
self.runTask(handler)
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ class TestGetNextTask(unittest.TestCase):
|
|||
|
||||
def setUp(self):
|
||||
self.options = mock.MagicMock()
|
||||
self.options.single = False
|
||||
self.session = mock.MagicMock()
|
||||
self.tm = koji.daemon.TaskManager(self.options, self.session)
|
||||
self.tm.readyForTask = mock.MagicMock()
|
||||
|
|
@ -65,6 +66,7 @@ class TestTakeTask(unittest.TestCase):
|
|||
|
||||
def setUp(self):
|
||||
self.options = mock.MagicMock()
|
||||
self.options.single = False
|
||||
self.session = mock.MagicMock()
|
||||
self.tm = koji.daemon.TaskManager(self.options, self.session)
|
||||
self.tm.readyForTask = mock.MagicMock()
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ class TestMain(unittest.TestCase):
|
|||
# set up task handler
|
||||
self.session = mock.MagicMock()
|
||||
self.options = mock.MagicMock()
|
||||
self.options.single = False
|
||||
self.options.plugin = []
|
||||
self.options.sleeptime = 1
|
||||
self.options.pluginpath = ''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue