merged trunk
This commit is contained in:
1
.bzrignore
Normal file
1
.bzrignore
Normal file
@@ -0,0 +1 @@
|
||||
run_tests.err.log
|
@@ -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
2
debian/control
vendored
@@ -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
|
||||
|
1
debian/nova-objectstore.install
vendored
1
debian/nova-objectstore.install
vendored
@@ -1,3 +1,2 @@
|
||||
bin/nova-objectstore usr/bin
|
||||
debian/nova-objectstore.conf etc/nova
|
||||
debian/nova-objectstore.nginx.conf etc/nginx/sites-available
|
||||
|
1
debian/nova-objectstore.links
vendored
1
debian/nova-objectstore.links
vendored
@@ -1 +0,0 @@
|
||||
/etc/nginx/sites-available/nova-objectstore.nginx.conf /etc/nginx/sites-enabled/nova-objectstore.nginx.conf
|
17
debian/nova-objectstore.nginx.conf
vendored
17
debian/nova-objectstore.nginx.conf
vendored
@@ -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/;
|
||||
}
|
||||
}
|
||||
|
@@ -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')
|
||||
|
@@ -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(),
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user