summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authormatt.dietz@rackspace.com <>2011-07-11 11:16:22 -0500
committermatt.dietz@rackspace.com <>2011-07-11 11:16:22 -0500
commit722cd2b16f25b334cacad4bcc9df42202ea33166 (patch)
tree671fc6ea2a01e4fe3ac198e8ba6a72ea58f26ae0 /bin
parent7142aa734c1e77a6efacac5bff918b44240b7a1a (diff)
parentd682fb4431050d97f09fb9677f6dc8d242e68d74 (diff)
downloadnova-722cd2b16f25b334cacad4bcc9df42202ea33166.tar.gz
nova-722cd2b16f25b334cacad4bcc9df42202ea33166.tar.xz
nova-722cd2b16f25b334cacad4bcc9df42202ea33166.zip
Merge from trunk
Diffstat (limited to 'bin')
-rw-r--r--bin/nova-api18
-rw-r--r--bin/nova-vncproxy15
2 files changed, 28 insertions, 5 deletions
diff --git a/bin/nova-api b/bin/nova-api
index fff67251f..fe8e83366 100644
--- a/bin/nova-api
+++ b/bin/nova-api
@@ -24,8 +24,10 @@ Starts both the EC2 and OpenStack APIs in separate processes.
"""
import os
+import signal
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")):
@@ -34,17 +36,23 @@ if os.path.exists(os.path.join(possible_topdir, "nova", "__init__.py")):
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)
- ec2 = nova.service.WSGIService("ec2")
- osapi = nova.service.WSGIService("osapi")
-
launcher = nova.service.Launcher()
- launcher.launch_service(ec2)
- launcher.launch_service(osapi)
+
+ 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()
diff --git a/bin/nova-vncproxy b/bin/nova-vncproxy
index 72271df3a..bdbb30a7f 100644
--- a/bin/nova-vncproxy
+++ b/bin/nova-vncproxy
@@ -63,6 +63,19 @@ flags.DEFINE_flag(flags.HelpshortFlag())
flags.DEFINE_flag(flags.HelpXMLFlag())
+def handle_flash_socket_policy(socket):
+ LOG.info(_("Received connection on flash socket policy port"))
+
+ fd = socket.makefile('rw')
+ expected_command = "<policy-file-request/>"
+ if expected_command in fd.read(len(expected_command) + 1):
+ LOG.info(_("Received valid flash socket policy request"))
+ fd.write('<?xml version="1.0"?><cross-domain-policy><allow-'
+ 'access-from domain="*" to-ports="%d" /></cross-'
+ 'domain-policy>' % (FLAGS.vncproxy_port))
+ fd.flush()
+ socket.close()
+
if __name__ == "__main__":
utils.default_flagfile()
FLAGS(sys.argv)
@@ -101,4 +114,6 @@ if __name__ == "__main__":
host=FLAGS.vncproxy_host,
port=FLAGS.vncproxy_port)
server.start()
+ server.start_tcp(handle_flash_socket_policy, 843, host=FLAGS.vncproxy_host)
+
server.wait()