 63aaa1a21e
			
		
	
	63aaa1a21e
	
	
	
		
			
			* Cleans up service for objectstore and vncproxy * Fixes virt.fake to be runnable via a flag Change-Id: I18e05a4d727bbbd3481063623dc3b6ad52e233d4
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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()
 |