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.
|
# from getting overloaded.
|
||||||
logger.debug('Sleeping for %s', options.sleeptime)
|
logger.debug('Sleeping for %s', options.sleeptime)
|
||||||
time.sleep(options.sleeptime)
|
time.sleep(options.sleeptime)
|
||||||
|
elif options.single:
|
||||||
|
# exit after first task
|
||||||
|
break
|
||||||
except (SystemExit, KeyboardInterrupt):
|
except (SystemExit, KeyboardInterrupt):
|
||||||
logger.warning("Exiting")
|
logger.warning("Exiting")
|
||||||
break
|
break
|
||||||
|
|
@ -6752,6 +6755,8 @@ def get_options():
|
||||||
parser.add_option("-f", "--fg", dest="daemon",
|
parser.add_option("-f", "--fg", dest="daemon",
|
||||||
action="store_false", default=True,
|
action="store_false", default=True,
|
||||||
help="run in foreground")
|
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,
|
parser.add_option("--force-lock", action="store_true", default=False,
|
||||||
help="force lock for exclusive session")
|
help="force lock for exclusive session")
|
||||||
parser.add_option("-v", "--verbose", action="store_true", default=False,
|
parser.add_option("-v", "--verbose", action="store_true", default=False,
|
||||||
|
|
@ -6789,6 +6794,10 @@ def get_options():
|
||||||
# not reached
|
# not reached
|
||||||
assert False # pragma: no cover
|
assert False # pragma: no cover
|
||||||
|
|
||||||
|
# --single implies --fg
|
||||||
|
if options.single:
|
||||||
|
options.daemon = False
|
||||||
|
|
||||||
# load local config
|
# load local config
|
||||||
config = koji.read_config_files(options.configFile, raw=True)
|
config = koji.read_config_files(options.configFile, raw=True)
|
||||||
for x in config.sections():
|
for x in config.sections():
|
||||||
|
|
|
||||||
|
|
@ -1379,7 +1379,7 @@ class TaskManager(object):
|
||||||
return False
|
return False
|
||||||
# otherwise...
|
# otherwise...
|
||||||
raise
|
raise
|
||||||
if handler.Foreground:
|
if handler.Foreground or getattr(self.options, "single"):
|
||||||
self.logger.info("running task in foreground")
|
self.logger.info("running task in foreground")
|
||||||
handler.setManager(self)
|
handler.setManager(self)
|
||||||
self.runTask(handler)
|
self.runTask(handler)
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ class TestGetNextTask(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.options = mock.MagicMock()
|
self.options = mock.MagicMock()
|
||||||
|
self.options.single = False
|
||||||
self.session = mock.MagicMock()
|
self.session = mock.MagicMock()
|
||||||
self.tm = koji.daemon.TaskManager(self.options, self.session)
|
self.tm = koji.daemon.TaskManager(self.options, self.session)
|
||||||
self.tm.readyForTask = mock.MagicMock()
|
self.tm.readyForTask = mock.MagicMock()
|
||||||
|
|
@ -65,6 +66,7 @@ class TestTakeTask(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.options = mock.MagicMock()
|
self.options = mock.MagicMock()
|
||||||
|
self.options.single = False
|
||||||
self.session = mock.MagicMock()
|
self.session = mock.MagicMock()
|
||||||
self.tm = koji.daemon.TaskManager(self.options, self.session)
|
self.tm = koji.daemon.TaskManager(self.options, self.session)
|
||||||
self.tm.readyForTask = mock.MagicMock()
|
self.tm.readyForTask = mock.MagicMock()
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ class TestMain(unittest.TestCase):
|
||||||
# set up task handler
|
# set up task handler
|
||||||
self.session = mock.MagicMock()
|
self.session = mock.MagicMock()
|
||||||
self.options = mock.MagicMock()
|
self.options = mock.MagicMock()
|
||||||
|
self.options.single = False
|
||||||
self.options.plugin = []
|
self.options.plugin = []
|
||||||
self.options.sleeptime = 1
|
self.options.sleeptime = 1
|
||||||
self.options.pluginpath = ''
|
self.options.pluginpath = ''
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue