From 6f8133341b5126b9250d89a0d2cca4dd265c6d0d Mon Sep 17 00:00:00 2001 From: Joshua Hesketh Date: Sun, 5 Jan 2014 15:41:39 +1100 Subject: [PATCH] Move commands into cmd Change-Id: Ieb51e4af8ce88b725d8bf9c2753757261e39fea6 --- setup.cfg | 2 +- turbo_hipster/cmd/__init__.py | 0 turbo_hipster/cmd/server.py | 62 ++++++++++++++++++++++++++++++++++ turbo_hipster/worker_server.py | 41 ---------------------- 4 files changed, 63 insertions(+), 42 deletions(-) create mode 100644 turbo_hipster/cmd/__init__.py create mode 100644 turbo_hipster/cmd/server.py diff --git a/setup.cfg b/setup.cfg index 6f6632c..d0214ff 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ warnerrors = True [entry_points] console_scripts = - turbo-hipster = turbo_hipster.worker_server:main + turbo-hipster = turbo_hipster.cmd.server:main turbo-hipster-analyse = turbo_hipster.analyse_historical:main turbo-hipster-report = turbo_hipster.report_historical:main turbo-hipster-queue-logger = turbo_hipster.queue_logger:main diff --git a/turbo_hipster/cmd/__init__.py b/turbo_hipster/cmd/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/turbo_hipster/cmd/server.py b/turbo_hipster/cmd/server.py new file mode 100644 index 0000000..44d2604 --- /dev/null +++ b/turbo_hipster/cmd/server.py @@ -0,0 +1,62 @@ +#!/usr/bin/python2 +# +# Copyright 2013 Rackspace Australia +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + + +import argparse +import daemon +import extras +import json +import os +import sys + +from turbo_hipster import worker_server + +# as of python-daemon 1.6 it doesn't bundle pidlockfile anymore +# instead it depends on lockfile-0.9.1 which uses pidfile. +PID_FILE_MODULE = extras.try_imports(['daemon.pidlockfile', 'daemon.pidfile']) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('-c', '--config', + default= + '/etc/turbo-hipster/config.json', + help='Path to json config file.') + parser.add_argument('-b', '--background', action='store_true', + help='Run as a daemon in the background.') + parser.add_argument('-p', '--pidfile', + default='/var/run/turbo-hipster/' + 'turbo-hipster-worker-server.pid', + help='PID file to lock during daemonization.') + args = parser.parse_args() + + with open(args.config, 'r') as config_stream: + config = json.load(config_stream) + + server = worker_server.Server(config) + + if args.background: + pidfile = PID_FILE_MODULE.TimeoutPIDLockFile(args.pidfile, 10) + with daemon.DaemonContext(pidfile=pidfile): + server.main() + else: + server.main() + + +if __name__ == '__main__': + sys.path.insert(0, os.path.abspath( + os.path.join(os.path.dirname(__file__), '../'))) + main() diff --git a/turbo_hipster/worker_server.py b/turbo_hipster/worker_server.py index a87c7bc..5671443 100755 --- a/turbo_hipster/worker_server.py +++ b/turbo_hipster/worker_server.py @@ -18,10 +18,6 @@ """ worker_server.py is an executable worker server that loads and runs task_plugins. """ -import argparse -import daemon -import extras -import json import logging import os import signal @@ -29,10 +25,6 @@ import sys import worker_manager -# as of python-daemon 1.6 it doesn't bundle pidlockfile anymore -# instead it depends on lockfile-0.9.1 which uses pidfile. -PID_FILE_MODULE = extras.try_imports(['daemon.pidlockfile', 'daemon.pidfile']) - class Server(object): @@ -125,36 +117,3 @@ class Server(object): except KeyboardInterrupt: print "Ctrl + C: asking tasks to exit nicely...\n" self.exit_handler(signal.SIGINT) - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('-c', '--config', - default= - '/etc/turbo-hipster/config.json', - help='Path to json config file.') - parser.add_argument('-b', '--background', action='store_true', - help='Run as a daemon in the background.') - parser.add_argument('-p', '--pidfile', - default='/var/run/turbo-hipster/' - 'turbo-hipster-worker-server.pid', - help='PID file to lock during daemonization.') - args = parser.parse_args() - - with open(args.config, 'r') as config_stream: - config = json.load(config_stream) - - server = Server(config) - - if args.background: - pidfile = PID_FILE_MODULE.TimeoutPIDLockFile(args.pidfile, 10) - with daemon.DaemonContext(pidfile=pidfile): - server.main() - else: - server.main() - - -if __name__ == '__main__': - sys.path.insert(0, os.path.abspath( - os.path.join(os.path.dirname(__file__), '../'))) - main()