Make "shared" filter more compatible with diff DBs
For the type BOOLEAN, in sqlalchemy,
it's mapped to BOOLEAN type if the backend database supports it,
otherwise, it's mapped to one of the Integer types, like SMALLINT,
and restrict the values to 1(True) and 0(False).
query_filter = (... | model.shared))
The above filter will generate a SQL where clause like:
where ... OR xxx.shared
This is not supported in databases which don't support BOOLEAN type.
Change it as below to make it more compatible:
query_filter = (... | model.shared == True))
It will generate a SQL where clause as below:
where ... OR xxx.shared = ?
In Python, True == 1, so this change is compatible
with both databases supporting BOOLEAN and those not supporting it.
* The old behavior required setting environment variables to
disable capture of stdout and stderr to allow debugging via pdb.
The new behavior requires enabling capture of stdout/stderr
instead. This is already the case in nova.
* testr behavior is unmodified.
* Tip 'o the hat to Robert Collins (lifeless)
The router.interface.{create|delete} notifications are intended to be
consumed by ceilometer, but did not include the router or tenant IDs
in the RPC message payload. Ceilometer requires both these data for
metering purposes.
The missing UUIDs are now provided in the notifications.
* flake8 supports more checks than pep8 (e.g. detection of
unused imports and variables), and has an extension mechanism.
A plugin to support automatic HACKING validation is planned.
* See: http://flake8.readthedocs.org/
Roman Podolyaka [Wed, 20 Mar 2013 16:50:50 +0000 (18:50 +0200)]
Use wrappers instead of direct calls to ip route.
- extract the logic of ip route wrapper into a separate
class to drop dependency on a specific network device
- add route wrapper to IPWrapper class
- use IPWrapper instead of direct calls to ip route in l3 agent
- update tests
EmilienM [Tue, 26 Mar 2013 13:43:12 +0000 (14:43 +0100)]
Add RabbitMQ and QPID HA support flags to quantum.conf
Since Quantum supports HA queues with RabbitMQ (https://review.openstack.org/#/c/13760/),
quantum.conf should provide new flags for explain how to configure multiple RabbitMQ servers and enable HA.
New flags :
rabbit_hosts=$rabbit_host:$rabbit_port
rabbit_ha_queues=false
qpid_hosts = localhost:5672
Rich Curran [Tue, 5 Feb 2013 20:55:28 +0000 (15:55 -0500)]
blueprint cisco-single-config
Scope: Unification of all the various plugin files for the Cisco plugin into a single file.
Use Cases: Quantum with the Cisco plugin.
Implementation Overview: All the config values contained in the various files in
etc/quantum/plugins/cisco will be unified into a single file
etc/quantum/plugins/cisco/cisco_plugin.ini. The plugins needs to be modified to
read from a single file instead of multiple.
Added quantum.openstack.common.cfg support.
Previously when creating a lb-vip it would be created without
a default gw. This patch fixes that and adds unit tests to check
that route add is called if the subnet has a gateway_ip.
When try to serialize an exception object as json, it failed
with 'ValueError: Circular reference detected' that is same error
as bug 119790. So this patch fixes bug 119790 too.
This implements work item #1 of the blueprint.
This patch enables authZ checks for 'member actions' in the base
controller and removes explicit checks from l3_db.
This patch also addresses a small glitch in the policy engine which
was assuming the request always had a body.
Davanum Srinivas [Fri, 22 Mar 2013 14:31:35 +0000 (10:31 -0400)]
Support for SSL in wsgi.Server
SSL are entirely optional. Support for SSL as well using code from glance. We
have some new options for configuring the SSL support. There are tests for
accessing a sample app w/o ipv6 or ssl, one with just ssl and one with
ipv6 and ssl
Aaron Rosen [Fri, 15 Mar 2013 21:45:42 +0000 (14:45 -0700)]
Add metadata support for nvp plugin without namespaces
If using a host that does not support namespaces the nvp plugin did not have
a way to leverage metadata unless using enable_isolated_metadata which
requires a subnet to not have a gateway. This patch changes the metadata
configuration for the NVP plugin by adding a flag metadata which can be
set to access_network (which was previously enable_metadata_access_network)
or dhcp_host_route. When set to dhcp_host_route when the dhcp agent creates
it's port a host_route is added towards the dhcp server's ip for the
destination 169.254.169.254/32 only if the subnet has as gatway_ip.
In order for a host to leverage metadata via dhcp_route_route it requires
the host's dhcp client to support host routes (code 121).
Dan Prince [Mon, 25 Mar 2013 17:47:50 +0000 (13:47 -0400)]
Enable exception format checking when testing.
Updates our new exception base class to enable exception
format checking. This should help enforce that we pass
the correct kwargs to exceptions when testing.
Isaku Yamahata [Mon, 18 Mar 2013 21:56:15 +0000 (06:56 +0900)]
netns: ip netns exec <name> kill doesn't make sense
It seems confusing netns with pidns.
Although 'ip netns exec' doesn't make sense,
'ip netns exec <netns> kill <pid>' itself success as expected.
But as side effects, dentry of /proc/<pid>/ns/net becomes young,
which increases the possibility to fail to delete netns. That's not good.
Aaron Rosen [Thu, 21 Mar 2013 01:19:04 +0000 (18:19 -0700)]
Fix race condition in dhcp agent
This patch fixes a race condition that can happen in the dhcp agent when
a subnet is created and then a host route is then immediately added to that
subnet following a subnet.update.end notification. The race condition occurs
in refresh_dhcp_helper() where self.enable_dhcp_helper() gets called twice
since the first call had not completed self.cache.put(network). This same race
condition can also occur in the other events so lockutils.synchronized() is
added to synchronize those code segments as well.
adding parameter to configure QueuePool in SQLAlchemy
This patch introduces the parameter sqlalchemy_pool_size.
The parameter is used to configure the QueuePool, created
in configure_db(). At the moment the configuration of the
pool is only possible when using eventlet's db_pool for
MySQL (sql_dbpool_enable = True).