merged trunk

This commit is contained in:
Vishvananda Ishaya
2010-07-19 14:45:39 -05:00
9 changed files with 30 additions and 36 deletions

1
.bzrignore Normal file
View File

@@ -0,0 +1 @@
run_tests.err.log

View File

@@ -18,33 +18,32 @@
# under the License.
"""
Tornado daemon for nova objectstore. Supports S3 API.
Twisted daemon for nova objectstore. Supports S3 API.
"""
import logging
from tornado import httpserver
from tornado import ioloop
from nova import flags
from nova import server
from nova import utils
from nova.auth import users
from nova import twistd
from nova.objectstore import handler
FLAGS = flags.FLAGS
def main(argv):
def main():
# FIXME: if this log statement isn't here, no logging
# appears from other files and app won't start daemonized
logging.debug('Started HTTP server on %s' % (FLAGS.s3_internal_port))
app = handler.Application(users.UserManager())
server = httpserver.HTTPServer(app)
server.listen(FLAGS.s3_internal_port)
ioloop.IOLoop.instance().start()
logging.debug('Started HTTP server on %s' % (FLAGS.s3_port))
app = handler.get_application()
print app
return app
# NOTE(soren): Stolen from nova-compute
if __name__ == '__main__':
twistd.serve(__file__)
if __name__ == '__builtin__':
utils.default_flagfile()
server.serve('nova-objectstore', main)
application = main()

2
debian/control vendored
View File

@@ -91,7 +91,7 @@ Description: Nova Cloud Computing - API frontend
Package: nova-objectstore
Architecture: all
Depends: nova-common (= ${binary:Version}), nginx, ${python:Depends}, ${misc:Depends}
Depends: nova-common (= ${binary:Version}), ${python:Depends}, ${misc:Depends}
Description: Nova Cloud Computing - object store
Nova is a cloud computing fabric controller (the main part of an IaaS
system) built to match the popular AWS EC2 and S3 APIs. It is written in

View File

@@ -1,3 +1,2 @@
bin/nova-objectstore usr/bin
debian/nova-objectstore.conf etc/nova
debian/nova-objectstore.nginx.conf etc/nginx/sites-available

View File

@@ -1 +0,0 @@
/etc/nginx/sites-available/nova-objectstore.nginx.conf /etc/nginx/sites-enabled/nova-objectstore.nginx.conf

View File

@@ -1,17 +0,0 @@
server {
listen 3333 default;
server_name localhost;
client_max_body_size 10m;
access_log /var/log/nginx/localhost.access.log;
location ~ /_images/.+ {
root /var/lib/nova/images;
rewrite ^/_images/(.*)$ /$1 break;
}
location / {
proxy_pass http://localhost:3334/;
}
}

View File

@@ -37,7 +37,6 @@ DEFINE_bool = DEFINE_bool
# http://code.google.com/p/python-gflags/source/browse/trunk/gflags.py#39
DEFINE_integer('s3_port', 3333, 's3 port')
DEFINE_integer('s3_internal_port', 3334, 's3 port')
DEFINE_string('s3_host', '127.0.0.1', 's3 host')
#DEFINE_string('cloud_topic', 'cloud', 'the topic clouds listen on')
DEFINE_string('compute_topic', 'compute', 'the topic compute nodes listen on')

View File

@@ -110,6 +110,7 @@ class TopicConsumer(Consumer):
self.queue = topic
self.routing_key = topic
self.exchange = FLAGS.control_exchange
self.durable = False
super(TopicConsumer, self).__init__(connection=connection)
@@ -195,7 +196,10 @@ def call(topic, msg):
conn = Connection.instance()
d = defer.Deferred()
consumer = DirectConsumer(connection=conn, msg_id=msg_id)
consumer.register_callback(lambda data, message: d.callback(data))
def deferred_receive(data, message):
message.ack()
d.callback(data)
consumer.register_callback(deferred_receive)
injected = consumer.attach_to_tornado()
# clean up after the injected listened and return x
@@ -233,7 +237,8 @@ def send_message(topic, message, wait=True):
exchange=msg_id,
auto_delete=True,
exchange_type="direct",
routing_key=msg_id)
routing_key=msg_id,
durable=False)
consumer.register_callback(generic_response)
publisher = messaging.Publisher(connection=Connection.instance(),

View File

@@ -39,6 +39,7 @@ Due to our use of multiprocessing it we frequently get some ignorable
"""
import __main__
import os
import sys
@@ -66,6 +67,9 @@ FLAGS = flags.FLAGS
flags.DEFINE_bool('flush_db', True,
'Flush the database before running fake tests')
flags.DEFINE_string('tests_stderr', 'run_tests.err.log',
'Path to where to pipe STDERR during test runs. Default = "run_tests.err.log"')
if __name__ == '__main__':
OptionsClass = twistd.WrapTwistedOptions(trial_script.Options)
config = OptionsClass()
@@ -85,6 +89,11 @@ if __name__ == '__main__':
else:
from nova.tests.real_flags import *
# Establish redirect for STDERR
sys.stderr.flush()
err = open(FLAGS.tests_stderr, 'w+', 0)
os.dup2(err.fileno(), sys.stderr.fileno())
if len(argv) == 1 and len(config['tests']) == 0:
# If no tests were specified run the ones imported in this file
# NOTE(termie): "tests" is not a flag, just some Trial related stuff