gongysh [Fri, 9 Nov 2012 14:45:58 +0000 (22:45 +0800)]
Fix context problem
On plugin side, we use normal API context if any to call RPC methods.
We use our plugin dispatcher to convert RPC context into quantum admin
context. After that the callback's functions have the first argument context
as normal quantum context.
On agent side, we use admin context without session property as its
RPC calling context. Call back context is default RPCCommonContext in
Openstack common modules.
This patch also fixes the problem in the following bug:
Dan Wendlandt [Tue, 20 Nov 2012 22:09:19 +0000 (14:09 -0800)]
bug 1057844: improve floating-ip association checks
allow multiple floating ips to be associated with the same internal port
as long as they map to different external nets (not yet supported in
Folsom) or different internal fixed IPs. With Quantum, there is no
need to disallow either scenario.
Also improve check for a valid external network to router to internal
subnet path when a floating IP is bound.
Bob Kukura [Tue, 13 Nov 2012 18:50:53 +0000 (13:50 -0500)]
Improve openvswitch and linuxbridge agents' parsing of mappings
Created generic quantum.utils.parse_mappings function that detects
duplicate key or value strings, and changed openvswitch and
linuxbridge agents to use this to parse their mappings from physical
networks to bridges or interfaces. Fixes bug 1067669.
Dan Prince [Mon, 5 Nov 2012 16:57:53 +0000 (11:57 -0500)]
Move extension.py into quantum/api.
This change moves extensions.py out of the extensions module
and into the api module. This resolves an issue where the
following log WARNING message would occur each time the Quantum
API starts:
Did not find expected name "Extensions" in
/usr/lib/python2.7/site-packages/quantum/extensions/extensions.py
This change fixes the bug by ensuring the metadata and session objects
are properly cleaned up by clear_db(). Using the proper calls reduces
the memory required by unit tests.
The change allows loading several service plugins along with core plugin.
The following functionality changes were made:
1. Multiple plugins are loaded one per type
2. QuantumManager now holds dictionary {plugin_type: plugin_instance}
Core plugin is stored there as well
3. Extensions are checked against all loaded plugins
4. Service plugins are specified by service_plugins option in quantum.conf file
5. Provide basic interface for service plugins
6. Introduce dummy service plugin as example and PoC
7. Service plugin's REST calls get corresponding plugin's common prefix
8. Add UTs for new extension framework functionality and for QuantumManager
Aaron Rosen [Wed, 14 Nov 2012 22:52:06 +0000 (14:52 -0800)]
All egress traffic allowed by default should be implied
This commit removes the egress rules that were created by default
to align with the way security groups work in amazon VPC.
"By default, all egress is allowed from the security
group until you add outbound rules to the group (then only the egress you
specified is allowed)."
During quota check we used to simply retrieve the entire collection
of resources from the database, then counting them in Python. This
patch introduces a specialized _get_collection_count() method, which
instead take advantage of the DB's built-in count capabilities.
In order to take advantage of this, plugins can now implement
get_*_count() methods for their resources. This is used (if present)
by the quota checking function.
Patch incorporates review feedback from Dan W, Alex Xu, Zhongyue Luo,
Edgar Magana, Akihiro Motoki and gongysh.
blueprint ryu-plugin-update-for-ryu
Now ryu has GRE tunnel support, so update ryu plugin to support it.
This implements/simplifies GRE tunneling support for ryu plugin
Isaku Yamahata [Fri, 10 Aug 2012 05:53:08 +0000 (14:53 +0900)]
plugin/ryu: add tunnel support
blueprint ryu-tunnel-support
This patch adds tunneling support to Ryu plugin.
Ryu supports gre tunneling which requires quantum ryu plugin to manage
key assignment.
Zhongyue Luo [Mon, 12 Nov 2012 03:49:42 +0000 (11:49 +0800)]
Adds tests for attributes.is_attr_set
ATTR_NOT_SPECIFIED and None are singleton objects
When conducting "is in" against a list of objects, they are compared using
unequal unless they are the same object.
http://docs.python.org/2/reference/expressions.html#in
According to PEP8, they should be compared by their id not value
Therefore the is_attr_set logic has changed to:
return not (attribute is None or attribute is ATTR_NOT_SPECIFIED)
Dan Prince [Fri, 9 Nov 2012 15:33:59 +0000 (10:33 -0500)]
Explicitly include versioninfo in tarball.
The most recent sync of openstack-common setup.py/version.py code
seems to have cause quantum/versioninfo to disappear from the tarball.
(see git commit d65bca8)
This updates MANIFEST.in to explicitly include that file and seems
to resolve the issue.
Dan Prince [Mon, 5 Nov 2012 21:41:41 +0000 (16:41 -0500)]
Sync latest notifier changes from openstack-common
Updates Quantum with the latest changes from openstack-commons
notifier package:
Rename rabbit_notifier to rpc_notifier.
The previous rabbit_notifier module is generic and can be used
for all RPC notifications.
This commit moves the rabbit_notifier module to rpc_notifier and
adds a new deprecated rabbit_notifier module which can be used for
Grizzly so that users can have a chance to easily upgrade this
config setting.
Also updates the agent code and config file to reflect this change
(and get unit tests to pass)