summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Update install_venv_common to use patch -N.Dan Prince2013-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes it possible to call the post_process function in install_venv_common (which currently only patches files) multiple times. The motivation here is that I would like to use this to patch virtual env's created by tox. Tox doesn't provide a good hook to call post_process (which patches files) only once so the idea here is we'll just let it call post_process all the time... and for distro's where patching is used to fix the venv the patch -N option will make it skip patches on subsequent runs. Change-Id: Ib0a36e49dd1884de131c569fe8bb66fe20285e97
* | Switch to oslo.configMark McLoughlin2013-03-061-1/+1
| | | | | | | | | | | | | | The oslo-config package has been renamed. Switch to the new version. Change-Id: I6a0fa803b0076bc5338c996e21bbcef54e1d75cd
* | Merge "Preserve exceptions in impl_zmq."Jenkins2013-03-061-8/+9
|\ \
| * | Preserve exceptions in impl_zmq.Russell Bryant2013-03-051-8/+9
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is complication with re-raising exceptions and our usage of eventlet. If the code in the exception handler accesses the db or rpc in the exception handler, it will no longer be able to re-raise the exception. Using excutils.save_and_reraise_exception() works aorund this issue. The most common error is calling LOG.error() or LOG.exception(), as it is possible for these to go access rpc. There is an option to turn on notifications for these errors. Fix bug 845866. Change-Id: Ic914bba4703200ed114a42e3a55402883b430407
* / Simple code cleanupMatthew Sherborne2013-03-062-6/+4
|/ | | | | | | | | * Fix an exception that was raising a tuple * Remove unused imports * Remove unused exceptions * Remove extra blank lines Change-Id: I9127be991e9081dc173525c9b57ea297f389d16d
* support ISO 8601 micro-second precisionGuang Yee2013-03-042-6/+25
| | | | | | Bug 1134802 Change-Id: I9cc3c9d9324314d293f01f047882eb6be06e02dd
* Merge "Don't log a traceback on rpc call timeout."Jenkins2013-03-042-4/+4
|\
| * Don't log a traceback on rpc call timeout.Russell Bryant2013-03-022-4/+4
| | | | | | | | | | | | | | | | | | | | | | There are cases where an rpc call is gracefully handled. The rpc drivers should just let the caller deal with this and decide whether it is an error worth logging a traceback over. Otherwise, we unnecessarily raise alarm by leaving a mess in the log file. Fix bug 1137994. Change-Id: I0e831ddcc43ffea78aae1fb5e46c5037c461b2a1
* | Don't LOG.error on max_depth (by default).Dan Prince2013-03-021-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | Reverts part of a94b9b4 which added an extra LOG.error statement when max_depth is hit. This is causing spurious errors to get logged in some of our projects which have adopted this changed. Related to: https://bugs.launchpad.net/nova/+bug/1140133 Change-Id: Ie7939e41797da000dd8b269f905f351df0b7116d
* | Merge "Add simple in-memory cache from nova."Jenkins2013-03-012-0/+154
|\ \
| * | Add simple in-memory cache from nova.Vishvananda Ishaya2013-03-012-0/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nova's simple in-memory cache replicates the memcache interface, so clients can cache things in memcache or in memory using the same commands. Using memcached requires having the client library installed and the memcached_servers config option set. Callers can also pass in a list of memcached servers when they initialize the client. Change-Id: I831142a36797b04006cba4792df803e09f6fd69b
* | | Merge "Redis-based matchmaker"Jenkins2013-03-017-33/+542
|\ \ \
| * | | Redis-based matchmakerEric Windisch2013-03-017-33/+542
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces a reference implementation of a matchmaker (based on redis) that supports dynamic host/topic registrations, host expiration, and hooks for consuming applications to acknowledge or neg-acknowledge topic.host service availability. Implements blueprint advanced-matchmaking Change-Id: I8608d2089fca118b0e369f2eb5c6aedacf6821fe
* | | | Merge "update.py: DRY up using functools.partial()"Jenkins2013-03-011-3/+7
|\ \ \ \
| * | | | update.py: DRY up using functools.partial()Mark McLoughlin2013-03-011-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We call _copy_pyfile() a bunch of times with the same base and dest_dir arguments. Clean that up using functools.partial(). Change-Id: I22a3e748f2e138b17a6b99d90ec9eca72698f6e7
* | | | | Zmq correct envelope param for notify()Eric Windisch2013-02-281-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The notify parameter was expected as a kwarg, although __init__.py expects this to be a standard argument. Tests are not yet covering this, but are forthcoming. Change-Id: Id6a0a81ef250e43c7ab3dc9d5392f89752d0f313
* | | | | Zmq notifier topic manip fix.Eric Windisch2013-02-281-1/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ZeroMQ driver needs to manipulate the topic for notifications because the period is used as a delimiter internally. The code was already trying to perform this modification via topic.replace, but was not storing the result. Change-Id: I02a174dd96ff9181f6d7460fd41434ea05fb39d4
* | | | Merge "Port safe parsing with minidom patches from Nova"Jenkins2013-02-273-1/+177
|\ \ \ \
| * | | | Port safe parsing with minidom patches from NovaDavanum Srinivas2013-02-263-1/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent attacks through xml entity expansion etc. Fixes LP# 1100282 Change-Id: I391531deac122697556c282184c8f8890ea66489
* | | | | Merge "zmq: parse receiver CLI opts in main"Jenkins2013-02-271-1/+1
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | zmq: parse receiver CLI opts in mainMark McLoughlin2013-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We shouldn't be parsing options from sys.argv() unless the main function is being run. Change-Id: Id6bae72b80ce35721f02323a7bf7713132a49ac9
* | | | | Fixes import order nitsZhongyue Luo2013-02-262-3/+4
|/ / / / | | | | | | | | | | | | Change-Id: I6085bb4a0b990985c8f7a013c89b7d5acafdf312
* | | | Merge "openstack.common.setup: fails to get version from git"Jenkins2013-02-252-24/+73
|\ \ \ \
| * | | | openstack.common.setup: fails to get version from gitDavanum Srinivas2013-02-252-24/+73
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quantum run_tests.py fails because openstack.common.setup._get_version_from_git fails. It is because quantum unit tests run under quantum/tests/unit instead of git root dir. So the function should check parent dirs for .git. cinder folks seem to have hit this bug (1125416). ERROR: test_network_gateway_update (quantum.tests.unit.nicira.test_networkgw.NetworkGatewayExtensionTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "quantum/quantum/tests/unit/nicira/test_networkgw.py", line 70, in setUp config.parse(args=args) File "quantum/quantum/common/config.py", line 99, in parse version='%%prog %s' % quantum_version.release_string()) File "quantum/quantum/openstack/common/version.py", line 63, in release_string self.release = self._get_version_from_pkg_resources() File "quantum/quantum/openstack/common/version.py", line 56, in _get_version_from_pkg_resources return setup.get_version(self.package) File "quantum/quantum/openstack/common/setup.py", line 334, in get_version raise Exception("Versioning for this project requires either an sdist" Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. Change-Id: I2e24c00b5ba8f35381cac081ff72d86ea0d75d19 Fixes: bug #1131162 and bug #1125416 Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
* | | | Merge "Decode / Encode string utils for openstack"Jenkins2013-02-252-1/+107
|\ \ \ \
| * | | | Decode / Encode string utils for openstackFlaper Fesp2013-02-252-1/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently some clients lack of non-ASCII characters support. This patch introduces 2 functions (strutils.py) that will help clients and servers to "safely" encode and decode strings. About the ensure_(str|unicode) functions: They both try to use first the encoding used in stdin (or python's default encoding if that's None) and fallback to utf-8 if those encodings fail to decode a given text. Neither of them will try to encode / decode non-basestring objects and will raise a TypeError if one is passed. Use case: This is currently being used in glanceclient. I5c3ea93a716edfe284d19f6291d4e36028f91eb2 Needed For: * Bug 1061156 * Bug 1130572 Change-Id: I78960dfdb6159fd600a6f5e5551ab5d5a3366ab5
* | | | | Merge "Update flakes.py to match 0.6.1."Jenkins2013-02-253-7/+16
|\ \ \ \ \
| * | | | | Update flakes.py to match 0.6.1.Monty Taylor2013-02-253-7/+16
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | pyflakes 0.6.1 changes a module path - but we want to use it, because it finally groks attributes properly. Change-Id: Id35d1551c78212adb7ab470cefd9a53827167a71
* | | | | Merge "Support qpid unit tests."Jenkins2013-02-251-0/+1
|\ \ \ \ \
| * | | | | Support qpid unit tests.Russell Bryant2013-02-251-0/+1
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The qpid unit tests have never been run by default because qpid is not on pypi. I filed a bug asking the qpid project to support it: https://issues.apache.org/jira/browse/QPID-4539 Until that happens, I uploaded a package to pypi myself. https://pypi.python.org/pypi/qpid-python Fix bug 1061055. Change-Id: I2d52ff383b6393f34e94c25f959dccda5a7571de
* | | | | Merge "Clean up sqlalchemy exception code"Jenkins2013-02-253-40/+90
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Clean up sqlalchemy exception codeChris Behrens2013-02-223-40/+90
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moves DB exceptions that can be shared between DB implementations into their own module. Adds DBDeadlock() exception wrapping. Nova has its own code for determining Deadlock and it's better to consolidate it with DBDuplicateKey checking. Change-Id: I108bd0da2a14d62e460a997b1472f0b65bfc9b95
* / | | AMQP: skip duplicate messagesKei Masumoto2013-02-223-0/+82
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using rabbit's mirrored queues or qpid's replicated queues, there are conditions under which you can receive the same message twice. One such condition is where a message has been sent to a consumer but before an ack is received by a consumer, the master fails over to a slave and the slave resends the message. Note that the consumer may have sent the ack, but it was lost as the master went down. Dispatching the same message twice is obviously something we want to avoid. In order to do so, we add a unique_id to each message sent and have consumers maintain a fixed length queue of recently seen unique message IDs. Before dispatching any received message, the queue is checked and the message is skipped if it is a duplicate. Fixes bugs 1107064. Change-Id: I5bfacadbdf7de8b34d6370b9aa869c271957692d
* | | Fix "Needs to specify pyzmq version"Kei Masumoto2013-02-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | "pyzmq13.0.0" described as "pyzmq>=2.1.11" causes unit test error. Specifying correct version is necessary. Change-Id: Icb7acb0eb4d59a456999ba477e087d825be8dd4b
* | | Merge "Revert "Implement replay detection.""Jenkins2013-02-213-99/+22
|\ \ \
| * | | Revert "Implement replay detection."Mark McLoughlin2013-02-203-99/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts Ib0260a0c62e3d312d2e3448a125bed64d861319e (commit a603678) The issue we're trying to fix here is bug #1107064 - when using mirrored queues with AMQP, acks can be lost while a master is failing over to a slace causing the new slave to re-send messages which had previously been acked. The "replay detection" code applies to more than just amqp and also has the appearance of a security measure (e.g. the use of the term 'nonce') when clearly it serves no security purpose until we actually have message signing. Revert the "replay detection" approach in favour of the more targetted amqp bugfix. Change-Id: I8b8d15835c8b4c85cd388f5df08b60ff4c74e38d
* | | | Merge "Don't s/oslo/base/ for files in the rpc lib."Jenkins2013-02-211-1/+2
|\ \ \ \
| * | | | Don't s/oslo/base/ for files in the rpc lib.Russell Bryant2013-02-201-1/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | This breaks some message envelope handling code and is not needed for any of the source files in rpc/, so just avoid it. Change-Id: I8519568be5102a5890ae5ed046d6fcebe9bbb198
* / / / Revert "Fast serialization of RPC envelopes for Kombu"Russell Bryant2013-02-201-26/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 22c497097b0d0bd461be40a7a03290aa0b4179f2. I'm not convinced that this isn't just a micro-optimization when compared to the rest of the work that a given OpenStack service performs as the result of these messages. The implementation is also problematic. It depends on using a '\0' byte as a separator and assumes that '\0' will not exist anywhere else in the message. This seems to be asking for trouble. If future data could ever have a '\0' in it, this will be broken. Further, if a user could get a '\0' in a message directly with user-supplied input, this could result in a security vulnerability. Lastly, this has a significant impact on consumers of notifications that are outside of OpenStack code, which have been the primary use case of notifications (Ceilometer is changing that to a degree). I don't think consumers of notifications should have to implement this deserialization method. Change-Id: Ib3163ca98f568bf9f789d4b64bcc6d72e0fcb459
* | | Merge "Move DB thread pooling to DB API loader"Jenkins2013-02-204-75/+188
|\ \ \
| * | | Move DB thread pooling to DB API loaderChris Behrens2013-02-184-75/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug 1128605 The dbpool code in sqlalchemy session is the wrong place to implement thread pooling as it wraps each individual SQL call to run in its own thread. When combined with SQL server locking, all threads can be eaten waiting on locks with none available to run a 'COMMIT'. The correct place to do thread pooling is around each DB API call. This patch removes dbpool from sqlalchemy and creates a common DB API loader for all openstack projects which implements the following configuration options: db_backend: Full path to DB API backend module (or a known short name if a project chooses to implement a mapping) dbapi_use_tpool: True or False whether to use thread pooling around all DB API calls. DB backend modules must implement a 'get_backend()' method. Example usage for nova/db/api.py would be: """ from nova.openstack.common.db import api as db_api _KNOWN_BACKENDS = {'sqlalchemy': 'nova.db.sqlalchemy.api'} IMPL = db_api.DBAPI(backend_mapping=_KNOWN_BACKENDS) """ NOTE: Enabling thread pooling will be broken until this issue is resolved in eventlet _OR_ until we modify our eventlet.monkey_patch() calls to include 'thread=False': https://bitbucket.org/eventlet/eventlet/issue/137/ Change-Id: Idf14563ea07cf8ccf2a77b3f53659d8528927fc7
* | | | readd update.sh to address bootstrapping issueSean Dague2013-02-201-0/+14
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | Provide an easy way to people to run the update script even in a brand new oslo-incubator tree. (fix spelling error) Change-Id: I8c8f6e1d2d988ca0fffa79a7d8e9a67cf8311e7f
* | | Merge "Fix IPC direct topic routing."Jenkins2013-02-203-14/+32
|\ \ \
| * | | Fix IPC direct topic routing.Eric Windisch2013-02-193-14/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Direct messages were being stripped of the host value when performing IPC forwarding. This caused direct topics to be round-robined to all services running on the system consuming from the same base topic name. i.e. if 'scheduler.host1' and 'scheduler.host2' were running on the SAME machine, messages to 'scheduler.host1' may have been routed to 'scheduler.host2'. Now, mulitple processing specifying different rpc_zmq_host parameters will consume on separate direct topics and will not round-robin to other processes. Adds a zmq-specific test to ensure that messages to directed topics are not consumed by other consumers of direct topics sharing a bare topic on the same host. Fixes bug 1123715 Change-Id: I939c24397e58492fc16561666aed3ca891325e9c
* | | | Setup exception handler after configuring logging.Vishvananda Ishaya2013-02-191-7/+2
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently set up the exc handler before we configure logging. This means that an error in the setup will try to raise an exception which will then fail to log properly because we haven't set up handlers properly yet. Therefore, simply rely on the default exception handler during setup and setup our exception handler immediately after logging is configured. Fixes bug 1130464 Change-Id: I4b80c646a7d7d5048c8fbadc67dbb9f607d2af69
* | | Merge "Fix "DirectConsumer needs mirrored queue support""Jenkins2013-02-201-0/+1
|\ \ \
| * | | Fix "DirectConsumer needs mirrored queue support"Kei Masumoto2013-02-131-0/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | Currently TopicCosumer and FanoutConsumer can be used Mirrored Queue support, but not DirectConsumer. This patch fix this issue. Fix bug 1124162 Change-Id: I68ae23467ae810ce0ec917a4cb34a488283f401c
* | | Merge "Fast serialization of RPC envelopes for Kombu"Jenkins2013-02-201-2/+26
|\ \ \
| * | | Fast serialization of RPC envelopes for KombuEric Windisch2013-02-191-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By flattening the dictionary and turning it into a fast-serialized string, we save ourselves from Kombu's very slow JSON serialization routines. Change-Id: I64796265c7cc89a05406faabd8d7b253fe3b8acb
* | | | Merge "Implement replay detection."Jenkins2013-02-203-22/+99
|\ \ \ \