summaryrefslogtreecommitdiffstats
path: root/bin/nova-api
diff options
context:
space:
mode:
authorTim Simpson <tim.simpson@rackspace.com>2011-08-22 14:07:27 -0500
committerTim Simpson <tim.simpson@rackspace.com>2011-08-22 14:07:27 -0500
commit1b9cc046e9ae2bc5d0c1bd015d4e3304541ebd3c (patch)
tree707030c6b553c2d7c35612e9193ff187412da36f /bin/nova-api
parente36ebf31699546e48d27754ac1e26b3704399ab0 (diff)
parent0af1508c38bcf027153dd91c0d862307e90a164e (diff)
downloadnova-1b9cc046e9ae2bc5d0c1bd015d4e3304541ebd3c.tar.gz
nova-1b9cc046e9ae2bc5d0c1bd015d4e3304541ebd3c.tar.xz
nova-1b9cc046e9ae2bc5d0c1bd015d4e3304541ebd3c.zip
Upstream merge
Diffstat (limited to 'bin/nova-api')
-rwxr-xr-xbin/nova-api42
1 files changed, 15 insertions, 27 deletions
diff --git a/bin/nova-api b/bin/nova-api
index fe8e83366..38e2624d8 100755
--- a/bin/nova-api
+++ b/bin/nova-api
@@ -19,12 +19,14 @@
"""Starter script for Nova API.
-Starts both the EC2 and OpenStack APIs in separate processes.
+Starts both the EC2 and OpenStack APIs in separate greenthreads.
"""
+import eventlet
+eventlet.monkey_patch()
+
import os
-import signal
import sys
@@ -33,32 +35,18 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(
if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")):
sys.path.insert(0, possible_topdir)
-import nova.service
-import nova.utils
from nova import flags
-
-
-FLAGS = flags.FLAGS
-
-
-def main():
- """Launch EC2 and OSAPI services."""
- nova.utils.Bootstrapper.bootstrap_binary(sys.argv)
-
- launcher = nova.service.Launcher()
-
- for api in FLAGS.enabled_apis:
- service = nova.service.WSGIService(api)
- launcher.launch_service(service)
-
- signal.signal(signal.SIGTERM, lambda *_: launcher.stop())
-
- try:
- launcher.wait()
- except KeyboardInterrupt:
- launcher.stop()
-
+from nova import log as logging
+from nova import service
+from nova import utils
if __name__ == '__main__':
- sys.exit(main())
+ utils.default_flagfile()
+ flags.FLAGS(sys.argv)
+ logging.setup()
+ servers = []
+ for api in flags.FLAGS.enabled_apis:
+ servers.append(service.WSGIService(api))
+ service.serve(*servers)
+ service.wait()