diff options
author | Vishvananda Ishaya <vishvananda@gmail.com> | 2011-09-23 12:08:23 -0700 |
---|---|---|
committer | Vishvananda Ishaya <vishvananda@gmail.com> | 2011-09-28 11:36:19 -0700 |
commit | a870dfae7da2df1e51a9066bf0583c3ab86690e8 (patch) | |
tree | 10d0a6b9341c8ac6d1b3e0b70d4f045382027562 /bin/nova-all | |
parent | ebec34e374bd9ec5354e3648a6e8f3ce26c951b5 (diff) | |
download | nova-a870dfae7da2df1e51a9066bf0583c3ab86690e8.tar.gz nova-a870dfae7da2df1e51a9066bf0583c3ab86690e8.tar.xz nova-a870dfae7da2df1e51a9066bf0583c3ab86690e8.zip |
Add nova-all to run all services
* Cleans up service for objectstore and vncproxy
* Fixes virt.fake to be runnable via a flag
Change-Id: I18e05a4d727bbbd3481063623dc3b6ad52e233d4
Diffstat (limited to 'bin/nova-all')
-rwxr-xr-x | bin/nova-all | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/bin/nova-all b/bin/nova-all new file mode 100755 index 000000000..497195bda --- /dev/null +++ b/bin/nova-all @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack, LLC +# Copyright 2010 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +# +# 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. + +"""Starter script for All nova services. + +This script attempts to start all the nova services in one process. Each +service is started in its own greenthread. Please note that exceptions and +sys.exit() on the starting of a service are logged and the script will +continue attempting to launch the rest of the services. + +""" + +import eventlet +eventlet.monkey_patch() + +import os +import sys + + +possible_topdir = os.path.normpath(os.path.join(os.path.abspath( + sys.argv[0]), os.pardir, os.pardir)) +if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")): + sys.path.insert(0, possible_topdir) + + +from nova import flags +from nova import log as logging +from nova import service +from nova import utils +from nova.vnc import server +from nova.objectstore import s3server + + +if __name__ == '__main__': + utils.default_flagfile() + flags.FLAGS(sys.argv) + logging.setup() + utils.monkey_patch() + servers = [] + # nova-api + for api in flags.FLAGS.enabled_apis: + try: + servers.append(service.WSGIService(api)) + except (Exception, SystemExit): + logging.exception(_('Failed to load %s') % '%s-api' % api) + # nova-vncproxy + try: + servers.append(server.get_wsgi_server()) + except (Exception, SystemExit): + logging.exception(_('Failed to load %s') % 'vncproxy-wsgi') + # nova-objectstore + try: + servers.append(s3server.get_wsgi_server()) + except (Exception, SystemExit): + logging.exception(_('Failed to load %s') % 'objectstore-wsgi') + for binary in ['nova-vncproxy', 'nova-compute', 'nova-volume', + 'nova-network', 'nova-scheduler', 'nova-vsa']: + try: + servers.append(service.Service.create(binary=binary)) + except (Exception, SystemExit): + logging.exception(_('Failed to load %s' % binary)) + service.serve(*servers) + service.wait() |