Remove the ability for nodepoold to launch a builder

Nodepool is now a properly distributed system and we do not want users
to couple the starting/stopping of individual daemons when this is not
required. As a result we have explicitly uncoupled the daemons.

Change-Id: I0dee331e41ec39ac809fc863dd833077c7d0edeb
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
Paul Belanger 2016-12-14 14:48:47 -05:00
parent 94b0546aa5
commit 1e627a9213
2 changed files with 15 additions and 9 deletions

View File

@ -405,7 +405,7 @@ function start_nodepool {
export STATSD_PORT=8125
run_process statsd "socat -u udp-recv:$STATSD_PORT -"
run_process nodepool "$NODEPOOL_INSTALL/bin/nodepoold --no-builder -c $NODEPOOL_CONFIG -s $NODEPOOL_SECURE -l $NODEPOOL_LOGGING -d"
run_process nodepool "$NODEPOOL_INSTALL/bin/nodepoold -c $NODEPOOL_CONFIG -s $NODEPOOL_SECURE -l $NODEPOOL_LOGGING -d"
run_process nodepool-builder "$NODEPOOL_INSTALL/bin/nodepool-builder -c $NODEPOOL_CONFIG -l $NODEPOOL_LOGGING -d"
:
}

View File

@ -23,15 +23,17 @@ import extras
# instead it depends on lockfile-0.9.1 which uses pidfile.
pid_file_module = extras.try_imports(['daemon.pidlockfile', 'daemon.pidfile'])
import logging
import os
import sys
import signal
import nodepool.builder
import nodepool.cmd
import nodepool.nodepool
import nodepool.webapp
log = logging.getLogger(__name__)
def is_pidfile_stale(pidfile):
""" Determine whether a PID file is stale.
@ -72,11 +74,14 @@ class NodePoolDaemon(nodepool.cmd.NodepoolApp):
parser.add_argument('-p', dest='pidfile',
help='path to pid file',
default='/var/run/nodepool/nodepool.pid')
# TODO(pabelanger): Deprecated flag, remove in the future.
parser.add_argument('--no-builder', dest='builder',
action='store_false')
# TODO(pabelanger): Deprecated flag, remove in the future.
parser.add_argument('--build-workers', dest='build_workers',
default=1, help='number of build workers',
type=int)
# TODO(pabelanger): Deprecated flag, remove in the future.
parser.add_argument('--upload-workers', dest='upload_workers',
default=4, help='number of upload workers',
type=int)
@ -89,8 +94,6 @@ class NodePoolDaemon(nodepool.cmd.NodepoolApp):
def exit_handler(self, signum, frame):
self.pool.stop()
if self.args.builder:
self.builder.stop()
if not self.args.no_webapp:
self.webapp.stop()
sys.exit(0)
@ -105,9 +108,14 @@ class NodePoolDaemon(nodepool.cmd.NodepoolApp):
self.args.no_deletes,
self.args.no_launches)
if self.args.builder:
self.builder = nodepool.builder.NodePoolBuilder(
self.args.config, self.args.build_workers,
self.args.upload_workers)
log.warning(
"Note: nodepool no longer automatically builds images, "
"please ensure the separate nodepool-builder process is "
"running if you haven't already")
else:
log.warning(
"--no-builder is deprecated and will be removed in the near "
"future. Update your service scripts to avoid a breakage.")
if not self.args.no_webapp:
self.webapp = nodepool.webapp.WebApp(self.pool)
@ -120,8 +128,6 @@ class NodePoolDaemon(nodepool.cmd.NodepoolApp):
signal.signal(signal.SIGTERM, self.term_handler)
self.pool.start()
if self.args.builder:
self.builder.start()
if not self.args.no_webapp:
self.webapp.start()