Merge "Resolve paths before demonization"

This commit is contained in:
Zuul 2018-02-09 06:53:26 +00:00 committed by Gerrit Code Review
commit d44bf47be3
3 changed files with 35 additions and 9 deletions

View File

@ -85,6 +85,11 @@ class NodepoolApp(object):
self.parser = None
self.args = None
def get_path(self, path):
if path is None:
return None
return os.path.abspath(os.path.expanduser(path))
def create_parser(self):
parser = argparse.ArgumentParser(description=self.app_description)
@ -98,10 +103,14 @@ class NodepoolApp(object):
return parser
def parse_args(self):
args = self.parser.parse_args()
self.logconfig = self.get_path(args.logconfig)
return args
def setup_logging(self):
if self.args.logconfig:
fp = os.path.expanduser(self.args.logconfig)
logging_config = logconfig.load_config(fp)
if self.logconfig:
logging_config = logconfig.load_config(self.logconfig)
else:
# If someone runs in the foreground and doesn't give a logging
# config, leave the config set to emit to stdout.
@ -121,7 +130,7 @@ class NodepoolApp(object):
argv = sys.argv[1:]
self.parser = self.create_parser()
self.args = self.parser.parse_args()
self.args = self.parse_args()
return self._do_run()
def _do_run(self):
@ -156,12 +165,17 @@ class NodepoolDaemonApp(NodepoolApp):
return parser
def parse_args(self):
args = super(NodepoolDaemonApp, self).parse_args()
self.pidfile = self.get_path(args.pidfile)
return args
def _do_run(self):
if self.args.nodaemon:
return super(NodepoolDaemonApp, self)._do_run()
else:
pid = pid_file_module.TimeoutPIDLockFile(self.args.pidfile, 10)
pid = pid_file_module.TimeoutPIDLockFile(self.pidfile, 10)
if is_pidfile_stale(pid):
pid.break_lock()

View File

@ -47,10 +47,16 @@ class NodePoolBuilderApp(nodepool.cmd.NodepoolDaemonApp):
'(used for testing)')
return parser
def parse_args(self):
args = super(NodePoolBuilderApp, self).parse_args()
self.config_file = self.get_path(args.config)
self.secure_file = self.get_path(args.secure)
return args
def run(self):
self.nb = builder.NodePoolBuilder(
self.args.config,
secure_path=self.args.secure,
self.config_file,
secure_path=self.secure_file,
num_builders=self.args.build_workers,
num_uploaders=self.args.upload_workers,
fake=self.args.fake)

View File

@ -41,6 +41,12 @@ class NodePoolLauncherApp(nodepool.cmd.NodepoolDaemonApp):
parser.add_argument('--no-webapp', action='store_true')
return parser
def parse_args(self):
args = super(NodePoolLauncherApp, self).parse_args()
self.config_file = self.get_path(args.config)
self.secure_file = self.get_path(args.secure)
return args
def exit_handler(self, signum, frame):
self.pool.stop()
if not self.args.no_webapp:
@ -51,8 +57,8 @@ class NodePoolLauncherApp(nodepool.cmd.NodepoolDaemonApp):
os._exit(0)
def run(self):
self.pool = nodepool.launcher.NodePool(self.args.secure,
self.args.config)
self.pool = nodepool.launcher.NodePool(self.secure_file,
self.config_file)
if not self.args.no_webapp:
config = self.pool.loadConfig()
self.webapp = nodepool.webapp.WebApp(self.pool,