summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-06-28 20:24:25 +0000
committerGerrit Code Review <review@openstack.org>2012-06-28 20:24:25 +0000
commit96d5c1ef8ce3c9525acbf3a00fc609f65c1e7d4c (patch)
tree3e8cda27d9bff17054a90bc75529a891e1b7f84d /bin
parent0dc32690fe158e4cb11c2c9bcc65acaf73b94a7a (diff)
parent46c1b6eaee4ca00c256c5c403c6d6bfeaf3b63f8 (diff)
Merge "Add multi-process support for API services"
Diffstat (limited to 'bin')
-rwxr-xr-xbin/nova-all15
-rwxr-xr-xbin/nova-api10
-rwxr-xr-xbin/nova-api-ec24
-rwxr-xr-xbin/nova-api-metadata4
-rwxr-xr-xbin/nova-api-os-compute4
-rwxr-xr-xbin/nova-api-os-volume4
6 files changed, 21 insertions, 20 deletions
diff --git a/bin/nova-all b/bin/nova-all
index 5c0644b8c..6aee87805 100755
--- a/bin/nova-all
+++ b/bin/nova-all
@@ -28,7 +28,7 @@ continue attempting to launch the rest of the services.
"""
import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
import os
import sys
@@ -54,25 +54,26 @@ if __name__ == '__main__':
flags.parse_args(sys.argv)
logging.setup()
utils.monkey_patch()
- servers = []
+ launcher = service.ProcessLauncher()
+
# nova-api
for api in flags.FLAGS.enabled_apis:
try:
- servers.append(service.WSGIService(api))
+ server = service.WSGIService(api)
+ launcher.launch_server(server, workers=server.workers or 1)
except (Exception, SystemExit):
LOG.exception(_('Failed to load %s') % '%s-api' % api)
for mod in [s3server, xvp_proxy]:
try:
- servers.append(mod.get_wsgi_server())
+ launcher.launch_server(mod.get_wsgi_server())
except (Exception, SystemExit):
LOG.exception(_('Failed to load %s') % mod.__name__)
for binary in ['nova-compute', 'nova-volume',
'nova-network', 'nova-scheduler', 'nova-cert']:
try:
- servers.append(service.Service.create(binary=binary))
+ launcher.launch_server(service.Service.create(binary=binary))
except (Exception, SystemExit):
LOG.exception(_('Failed to load %s'), binary)
- service.serve(*servers)
- service.wait()
+ launcher.wait()
diff --git a/bin/nova-api b/bin/nova-api
index e6779df4f..b778854f0 100755
--- a/bin/nova-api
+++ b/bin/nova-api
@@ -24,7 +24,7 @@ Starts both the EC2 and OpenStack APIs in separate greenthreads.
"""
import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
import os
import sys
@@ -45,8 +45,8 @@ if __name__ == '__main__':
flags.parse_args(sys.argv)
logging.setup()
utils.monkey_patch()
- servers = []
+ launcher = service.ProcessLauncher()
for api in flags.FLAGS.enabled_apis:
- servers.append(service.WSGIService(api))
- service.serve(*servers)
- service.wait()
+ server = service.WSGIService(api)
+ launcher.launch_server(server, workers=server.workers or 1)
+ launcher.wait()
diff --git a/bin/nova-api-ec2 b/bin/nova-api-ec2
index b53c9158a..f76f3dd7e 100755
--- a/bin/nova-api-ec2
+++ b/bin/nova-api-ec2
@@ -20,7 +20,7 @@
"""Starter script for Nova EC2 API."""
import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
import os
import sys
@@ -42,5 +42,5 @@ if __name__ == '__main__':
logging.setup()
utils.monkey_patch()
server = service.WSGIService('ec2')
- service.serve(server)
+ service.serve(server, workers=server.workers)
service.wait()
diff --git a/bin/nova-api-metadata b/bin/nova-api-metadata
index 2f2ef9454..2aad93453 100755
--- a/bin/nova-api-metadata
+++ b/bin/nova-api-metadata
@@ -20,7 +20,7 @@
"""Starter script for Nova Metadata API."""
import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
import os
import sys
@@ -42,5 +42,5 @@ if __name__ == '__main__':
logging.setup()
utils.monkey_patch()
server = service.WSGIService('metadata')
- service.serve(server)
+ service.serve(server, workers=server.workers)
service.wait()
diff --git a/bin/nova-api-os-compute b/bin/nova-api-os-compute
index 75c921943..c83855254 100755
--- a/bin/nova-api-os-compute
+++ b/bin/nova-api-os-compute
@@ -20,7 +20,7 @@
"""Starter script for Nova OS API."""
import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
import os
import sys
@@ -42,5 +42,5 @@ if __name__ == '__main__':
logging.setup()
utils.monkey_patch()
server = service.WSGIService('osapi_compute')
- service.serve(server)
+ service.serve(server, workers=server.workers)
service.wait()
diff --git a/bin/nova-api-os-volume b/bin/nova-api-os-volume
index b93fd51ae..f08c69384 100755
--- a/bin/nova-api-os-volume
+++ b/bin/nova-api-os-volume
@@ -20,7 +20,7 @@
"""Starter script for Nova OS API."""
import eventlet
-eventlet.monkey_patch()
+eventlet.monkey_patch(os=False)
import os
import sys
@@ -42,5 +42,5 @@ if __name__ == '__main__':
logging.setup()
utils.monkey_patch()
server = service.WSGIService('osapi_volume')
- service.serve(server)
+ service.serve(server, workers=server.workers)
service.wait()