]> review.fuel-infra Code Review - openstack-build/neutron-build.git/log
openstack-build/neutron-build.git
9 years agoresources_rpc: fixed singleton behavior for ResourcesPullRpcApi
Ihar Hrachyshka [Mon, 10 Aug 2015 06:57:41 +0000 (08:57 +0200)]
resources_rpc: fixed singleton behavior for ResourcesPullRpcApi

__init__ is called for any __call__ on a class, no matter whether it is
a singleton. Meaning, client was reinitialized every time a caller
instantiated the Rpc class. That's not a critical issue, but a minor
performance hit.

Change-Id: I24272ba44eb502c8552d3556c84214942944646c
Partially-Implements: blueprint quantum-qos-api

9 years agoFix get_objects to allow filtering
Nir Magnezi [Sun, 2 Aug 2015 12:56:56 +0000 (08:56 -0400)]
Fix get_objects to allow filtering

At the moment, an attempt to retrieve a list of objects (like qos
policy) and filter by name fails, because get_objects does not use
filters and therefore, upon query by object name, the server replies
with a list of all created objects (instead of a partial list).

Change-Id: I9df9981129b8f3b82e867c8423986f5e0150186b
Partially-Implements: blueprint quantum-qos-api

9 years agoPropagate notifications to agent consumers callbacks
Jakub Libosvar [Wed, 5 Aug 2015 18:15:26 +0000 (18:15 +0000)]
Propagate notifications to agent consumers callbacks

The update policy works. We still need to track down the deletes which
don't work currently.

Change-Id: I48e04b42c07c34cf1daa17e7a29a6950453946ff
Partially-Implements: blueprint quantum-qos-api

9 years agoAdd rpc agent api and callbacks to resources_rpc
Jakub Libosvar [Mon, 3 Aug 2015 15:48:02 +0000 (15:48 +0000)]
Add rpc agent api and callbacks to resources_rpc

This patch also refactors existing test cases for server side rpc
classes in order to test code in generic manner. Finally, we remove
notify() and get_resource() from consumers or producers modules
respectively in order to remove circular dependencies. The notificitaion
driver will send events directly using RPC api class instead of going
through registry.

Co-Authored-By: Miguel Angel Ajo <mangelajo@redhat.com>
Partially-Implements: blueprint quantum-qos-api
Change-Id: I9120748505856acc7aa8d15d896697dd8487bb02

9 years agoneutron.api.rpc.callbacks interface rework
Miguel Angel Ajo [Fri, 24 Jul 2015 00:45:35 +0000 (02:45 +0200)]
neutron.api.rpc.callbacks interface rework

Split rpc.callbacks interface into consumer and producer parts.

Better terms are chosen for two RPC APIs we have:
- pull when a component actively requests a new object state;
- push when a component updates anyone interested about an object
  change.

Also, for callback registration, the following terms are used:
- subscribe when a component is registered in consumer registry;
- provide when a component is registered in provider registry.

Covered the registries with some unit tests.

Lots of existing tests utilize the registries now, and need to be
isolated from other tests that mess with the managers (that are
singletons), so introduced a common qos base test class to mock the
manager with per-test instance of it).

Co-Authored-By: Ihar Hrachyshka <ihrachys@redhat.com>
Partially-Implements: blueprint quantum-qos-api
Change-Id: I130cfbc8b78da6df4405b90ea1ab47899491ba41

9 years agoMerge "Revert "Add extension callbacks support for networks"" into feature/qos
Jenkins [Sat, 8 Aug 2015 03:43:47 +0000 (03:43 +0000)]
Merge "Revert "Add extension callbacks support for networks"" into feature/qos

9 years agoMerge "Moved l2/agent_extensions_manager into l2/extensions/manager.py" into feature/qos
Jenkins [Sat, 8 Aug 2015 03:43:35 +0000 (03:43 +0000)]
Merge "Moved l2/agent_extensions_manager into l2/extensions/manager.py" into feature/qos

9 years agoMerge "Moved extensions/qos_agent.py into extensions/qos.py" into feature/qos
Jenkins [Sat, 8 Aug 2015 03:43:23 +0000 (03:43 +0000)]
Merge "Moved extensions/qos_agent.py into extensions/qos.py" into feature/qos

9 years agoMerge "Introduce base interface for core resource extensions" into feature/qos
Jenkins [Sat, 8 Aug 2015 03:40:10 +0000 (03:40 +0000)]
Merge "Introduce base interface for core resource extensions" into feature/qos

9 years agoMoved l2/agent_extensions_manager into l2/extensions/manager.py
Ihar Hrachyshka [Fri, 7 Aug 2015 06:24:00 +0000 (08:24 +0200)]
Moved l2/agent_extensions_manager into l2/extensions/manager.py

This is to keep manager more close to extensions. Also made some minor
renames in ovs agent attributes that seemed more beautiful.

Change-Id: Id5a356a595a052d0cf1f57d376ad8289e710a9b3
Partial-Implements: blueprint quantum-qos-api

9 years agoMoved extensions/qos_agent.py into extensions/qos.py
Ihar Hrachyshka [Fri, 7 Aug 2015 06:15:17 +0000 (08:15 +0200)]
Moved extensions/qos_agent.py into extensions/qos.py

This file does not contain any separate QoS agent but just an extension
for existing l2 agents to reuse.

Change-Id: I0587d89b0e841e5fd19b91157602efb5aa97513e
Partially-Implements: blueprint quantum-qos-api

9 years agoIntroduce base interface for core resource extensions
Ihar Hrachyshka [Thu, 6 Aug 2015 14:59:53 +0000 (16:59 +0200)]
Introduce base interface for core resource extensions

The interface can be found in neutron.core_extensions.base.

Adopted the interface in qos core resource extension.

Alos moved qos_extension under neutron.core_extensions.qos. Partially,
this is to avoid confusion around the fact that the module does not
really contain a neutron API extension but core resource extension.

Change-Id: I6f6976aa49694f7ef17afa4e93bc769cd0069f65
Partially-Implements: blueprint quantum-qos-api

9 years agoMerge "Updated quality_of_service devref doc to reflect reality" into feature/qos
Jenkins [Fri, 7 Aug 2015 19:22:12 +0000 (19:22 +0000)]
Merge "Updated quality_of_service devref doc to reflect reality" into feature/qos

9 years agoDon't claim Linux Bridge ml2 driver supports bandwidth limit QoS rules
Ihar Hrachyshka [Fri, 7 Aug 2015 11:56:35 +0000 (13:56 +0200)]
Don't claim Linux Bridge ml2 driver supports bandwidth limit QoS rules

Since we don't want rule_types API to misbehave by claiming support for
QoS for linuxbridge ml2 driver, let's trade API test for its
service correctness.

Note that we cannot enforce the supported rule_types for actual CRUD
operations because then we would need to disable the whole API test
coverage for rules, and we don't want it.

This suggests we should get Linux Bridge support in some way or another.

Change-Id: I86197d02d0474fd9a55a09efcce6a7380c08c5e0
Partially-Implements: blueprint ml2-qos

9 years agoClean up QoS rules first, then QoS policies
Ihar Hrachyshka [Fri, 7 Aug 2015 11:50:07 +0000 (13:50 +0200)]
Clean up QoS rules first, then QoS policies

Since policy deletion kills all rules by CASCADE, cleaning rules up
after policies is basically no-op. Instead, let's swap the order and
in that way implicitly cover rule deletions.

Change-Id: Id3a7d8ddf5599a532e3d5609d94522579f85b938
Partially-Implements: blueprint quantum-qos-api

9 years agoRevert "Add extension callbacks support for networks"
Ihar Hrachyshka [Thu, 6 Aug 2015 14:50:37 +0000 (16:50 +0200)]
Revert "Add extension callbacks support for networks"

This reverts commit 3de65f57e30b73f5d7efc0344a102f1e40a6b40e.

We don't rely on neutron.callbacks anymore to extend core resources, so
the patch is out of scope for feature/qos.

Change-Id: If611149be19c5c159fc7bd0a4ba2829c11735d52
Partially-Implements: blueprint quantum-qos-api

9 years agoUpdated quality_of_service devref doc to reflect reality
Ihar Hrachyshka [Thu, 6 Aug 2015 14:45:17 +0000 (16:45 +0200)]
Updated quality_of_service devref doc to reflect reality

This document will need to get more updates once we start to shuffle
code in preparation for merging back into master.

Change-Id: I69d1e4b3bab8b62c5d8e45ec6294f4195de7ef83
Partially-Implements: quantum-qos-api

9 years agoMerge remote-tracking branch 'origin/feature/qos' into merge-branch
Ihar Hrachyshka [Thu, 6 Aug 2015 13:23:40 +0000 (15:23 +0200)]
Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Change-Id: I7a78ea4a8b3a03ef2013d41f9788e554f73c990b

9 years agoMerge "Fixing ICMP type and code validation"
Jenkins [Thu, 6 Aug 2015 12:01:33 +0000 (12:01 +0000)]
Merge "Fixing ICMP type and code validation"

9 years agoMerge "DB, IPAM & RPC changes for IPv6 Prefix Delegation"
Jenkins [Thu, 6 Aug 2015 11:55:09 +0000 (11:55 +0000)]
Merge "DB, IPAM & RPC changes for IPv6 Prefix Delegation"

9 years agoMerge "Install arp spoofing protection flow after setting port tag"
Jenkins [Thu, 6 Aug 2015 10:57:32 +0000 (10:57 +0000)]
Merge "Install arp spoofing protection flow after setting port tag"

9 years agoMerge "Fix typos in neutron code"
Jenkins [Thu, 6 Aug 2015 09:29:44 +0000 (09:29 +0000)]
Merge "Fix typos in neutron code"

9 years agoMerge "Move away nested transaction from _ensure_default_security_group"
Jenkins [Thu, 6 Aug 2015 09:29:07 +0000 (09:29 +0000)]
Merge "Move away nested transaction from _ensure_default_security_group"

9 years agoMerge "Initialize ancillary_port_info dict as blank in OVS agent"
Jenkins [Thu, 6 Aug 2015 07:57:19 +0000 (07:57 +0000)]
Merge "Initialize ancillary_port_info dict as blank in OVS agent"

9 years agoMerge "Enable fullstack multinode tests, add L3 HA test exemplar"
Jenkins [Thu, 6 Aug 2015 07:56:37 +0000 (07:56 +0000)]
Merge "Enable fullstack multinode tests, add L3 HA test exemplar"

9 years agoMerge "Python 3: convert dict_keys object to list"
Jenkins [Thu, 6 Aug 2015 07:56:19 +0000 (07:56 +0000)]
Merge "Python 3: convert dict_keys object to list"

9 years agoMerge "Fix ipset can't be destroyed when last rule is deleted"
Jenkins [Thu, 6 Aug 2015 06:44:44 +0000 (06:44 +0000)]
Merge "Fix ipset can't be destroyed when last rule is deleted"

9 years agoMerge "Revert "Remove VPN from API tests""
Jenkins [Thu, 6 Aug 2015 05:57:06 +0000 (05:57 +0000)]
Merge "Revert "Remove VPN from API tests""

9 years agoMerge "Enable VPN plugin for API test"
Jenkins [Thu, 6 Aug 2015 05:56:54 +0000 (05:56 +0000)]
Merge "Enable VPN plugin for API test"

9 years agoMerge "Fix dhcp autoschedule test assertion logic"
Jenkins [Thu, 6 Aug 2015 01:22:52 +0000 (01:22 +0000)]
Merge "Fix dhcp autoschedule test assertion logic"

9 years agoMerge "Follow up with some cleanup for agent qos_driver" into feature/qos
Jenkins [Thu, 6 Aug 2015 00:43:05 +0000 (00:43 +0000)]
Merge "Follow up with some cleanup for agent qos_driver" into feature/qos

9 years agoMerge "Gracefully handle duplicate rule creation" into feature/qos
Jenkins [Thu, 6 Aug 2015 00:42:53 +0000 (00:42 +0000)]
Merge "Gracefully handle duplicate rule creation" into feature/qos

9 years agoRevert "Remove VPN from API tests"
Doug Wiegley [Wed, 5 Aug 2015 20:05:41 +0000 (20:05 +0000)]
Revert "Remove VPN from API tests"

This reverts commit df35d21141dc4544421ccbff8715ea6da3e03def.

Also tweaks the gate_hook to get vpn installed via devstack plugin.

Change-Id: Id304a7d010c682acd3250928a29efd850b2e69cb

9 years agoEnable VPN plugin for API test
Paul Michali [Wed, 5 Aug 2015 20:51:46 +0000 (16:51 -0400)]
Enable VPN plugin for API test

Since API tests still contain VPN test cases, enable the VPN devstack
plugin, so that the service is enabled.

Change-Id: Icc3c4038a0772a85a2377bc10d50ab84927c4bad

9 years agoInitialize ancillary_port_info dict as blank in OVS agent
Ihar Hrachyshka [Wed, 29 Jul 2015 08:52:59 +0000 (10:52 +0200)]
Initialize ancillary_port_info dict as blank in OVS agent

The first assignment of ancillary_port_info was from the scan_ancillary_ports
function which could result in an exception and result in ancillary_port_info
being unbound for the port stats scan below.

This patch just initializes ancillary_port_info as an empty dict so the port
stats will always have an input.

Closes-Bug: #1479265
Change-Id: I37084bf27d4c328a7b78ca71cf26813207697361

9 years agoEnable fullstack multinode tests, add L3 HA test exemplar
Assaf Muller [Thu, 7 May 2015 06:02:59 +0000 (09:02 +0300)]
Enable fullstack multinode tests, add L3 HA test exemplar

* Created a 'resources' subdir and moved all fixture files
  to it.
* Split ML2ConfigFixture to the server-side ml2 configuration
  fixture, and the OVS agent configuration fixture.
* Neutron process logs were using H:M:S format as their file name,
  but when starting multiple agents of the same type my machine
  was fast enough to do that in the same second so that different
  processes were outputting to the same log file. No good!
  Added ms to the log name format. I also changed the log time
  from UTC to local timezone.
* Renamed and moved 'FullstackFixture' to neutron/tests/fullstack/
  resources/environment.Environment
* Added a 'Host' abstraction that groups agents that report with
  the same 'host' value. Hosts may be interconnected by the
  environment via shared bridges.
* The 'Environment' class will accept global
  attributes (This will be later filled with stuff like tunneling,
  l2pop or other environment-level flags), and in this patch accepts
  a  list of host attributes (Configuration that may differ between
  hosts like the l3 agent mode [legacy, dvr, dvr_snat]).
* Made OVS agent and L3 agent fixtures expose their bridges
  so that I could interconnect them.
* Added a super simple L3 HA test to show that this entire thing
  works.

Change-Id: Ie64de9f35bd6ab7cbad494061613ecf5e0ccd806

9 years agoSR-IOV: Update eswitch manager to support rate
Moshe Levi [Sun, 2 Aug 2015 09:58:54 +0000 (12:58 +0300)]
SR-IOV: Update eswitch manager to support rate

This patch update the eswitch manager to support
max rate on VF, moreover it updates the eswitch
manager to be singleton so it can be called from the
SR-IOV qos driver.

Partially-Implements: blueprint ml2-qos
Change-Id: I3e0d0a3fe2effade4e7bcd94018313ab2beb8f28

9 years agoFollow up with some cleanup for agent qos_driver
Ihar Hrachyshka [Tue, 4 Aug 2015 13:29:37 +0000 (15:29 +0200)]
Follow up with some cleanup for agent qos_driver

Removed error handling for missing rule type handler since the rule type
is already filtered thru supported types for the backend, so in case the
handler is really not present, that's a huge bug in the qos driver
extension and should not be handled gracefully.

Also fixed some grammar in docstrings.

Change-Id: Id157bd1e105051a583fea8e5107326289c551739
Partially-Implements: quantum-qos-api

9 years agoGracefully handle duplicate rule creation
John Schwarz [Mon, 3 Aug 2015 15:33:44 +0000 (18:33 +0300)]
Gracefully handle duplicate rule creation

Previously, creating a second bandwidth limit rule for a policy raised
an uncaught exception, which eventually caused 'ServerFault' on the
client side. This patch replaces this exception with a NeutronException
which leads to a more correct 'Conflict' error instead.

Note that the code is implemented in the base object class. This means
that future versioned objects will also feature this restriction if
their database implies that no duplicate entries can be created.

Change-Id: I882d60843e1e651f3f9754746ac670f499431466
Partially-Implements: quantum-qos-api

9 years agoMerge remote-tracking branch 'origin/feature/qos' into merge-branch
Ihar Hrachyshka [Wed, 5 Aug 2015 15:15:40 +0000 (17:15 +0200)]
Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Change-Id: I683102e617202e0ffc953a0d3cc179879f8faf82

9 years agoDB, IPAM & RPC changes for IPv6 Prefix Delegation
John Davidge [Thu, 16 Jul 2015 17:26:24 +0000 (18:26 +0100)]
DB, IPAM & RPC changes for IPv6 Prefix Delegation

This patch includes the DB, IPAM & RPC changes needed for the IPv6 Prefix
Delegation feature.

To enable this feature, the subnetpool_id attribute of subnets has been
modified to allow for a special subnetpool identifier - "prefix_delegation".

WORKFLOW:

1. Admin sets default_ipv6_subnet_pool in neutron.conf to "prefix_delegation"
2. User creates a new IPv6 subnet without a CIDR or subnetpool ID
3. User creates an interface between this subnet and a router with an existing
external interface

The agent-side changes will follow in separate patches.

A documentation patch is up for review here:

https://review.openstack.org/#/c/178739

Video guides for configuring and using this feature are available on
YouTube:

https://www.youtube.com/watch?v=wI830s881HQ
https://www.youtube.com/watch?v=zfsFyS01Fn0

Change-Id: Ic0c6ed4dba74da94a75838178a1837f93d2d0885
Co-Authored-By: Baodong (Robert) Li <baoli@cisco.com>
Partially-Implements: blueprint ipv6-prefix-delegation

9 years agoPython 3: convert dict_keys object to list
Cyril Roelandt [Wed, 5 Aug 2015 09:39:50 +0000 (11:39 +0200)]
Python 3: convert dict_keys object to list

This makes sure we use the same types in Python 2 and 3, prevents TypeErrors
from happening, and should have no performance impact since the the lists are
quite small anyway.

Change-Id: I4e8563231a22a440b4f22b76b17f76f2ba45e606
Blueprint: neutron-python3

9 years agoRemove VPN from API tests
Henry Gessau [Wed, 5 Aug 2015 01:29:46 +0000 (21:29 -0400)]
Remove VPN from API tests

Change Idd5524ed0b602408be5a53830981a8ab974b390c removed the
VPN service from devstack installations in the gate, so now we
can no longer test VPN APIs from neutron. The tests will be
added to the vpnaas repo's API test suite.

Change-Id: I25267bd6713cf38f7134f4f047dc550c6f4a2a78

9 years agoMerge "Update OVS driver to work with objects" into feature/qos
Jenkins [Tue, 4 Aug 2015 17:46:08 +0000 (17:46 +0000)]
Merge "Update OVS driver to work with objects" into feature/qos

9 years agoMerge "Cleaned up some TODO comments for feature/qos that do not apply anymore" into...
Jenkins [Tue, 4 Aug 2015 17:41:22 +0000 (17:41 +0000)]
Merge "Cleaned up some TODO comments for feature/qos that do not apply anymore" into feature/qos

9 years agoMerge "Python 3: fix test_ovs_tunnel"
Jenkins [Tue, 4 Aug 2015 16:52:00 +0000 (16:52 +0000)]
Merge "Python 3: fix test_ovs_tunnel"

9 years agoMerge "_get_dvr_sync_data: Return a list, rather than dict_values for python3"
Jenkins [Tue, 4 Aug 2015 16:41:37 +0000 (16:41 +0000)]
Merge "_get_dvr_sync_data: Return a list, rather than dict_values for python3"

9 years agoFix typos in neutron code
Edgar Magana [Tue, 4 Aug 2015 15:03:20 +0000 (08:03 -0700)]
Fix typos in neutron code

Fix typos found in neutron code and docs

Change-Id: I4afc3a4b36dd47d47d1238ac22e7f09e2d75050d
Related-Bug: #1424139

9 years agoMerge "Update port bindings for master router"
Jenkins [Tue, 4 Aug 2015 14:08:03 +0000 (14:08 +0000)]
Merge "Update port bindings for master router"

9 years agoMerge "Gracefully handle fetching nonexistent rule" into feature/qos
Jenkins [Tue, 4 Aug 2015 13:53:35 +0000 (13:53 +0000)]
Merge "Gracefully handle fetching nonexistent rule" into feature/qos

9 years agoMerge "objects.qos.policy: forbid deletion when attached to a port or a network"...
Jenkins [Tue, 4 Aug 2015 13:53:22 +0000 (13:53 +0000)]
Merge "objects.qos.policy: forbid deletion when attached to a port or a network" into feature/qos

9 years agoMerge "Replace to_dict() calls with a function decorator" into feature/qos
Jenkins [Tue, 4 Aug 2015 13:49:56 +0000 (13:49 +0000)]
Merge "Replace to_dict() calls with a function decorator" into feature/qos

9 years agoMerge "Remove handle_network/handle_subnet from l2 agent extensions" into feature/qos
Jenkins [Tue, 4 Aug 2015 13:44:31 +0000 (13:44 +0000)]
Merge "Remove handle_network/handle_subnet from l2 agent extensions" into feature/qos

9 years agoUpdate OVS driver to work with objects
Moshe Levi [Tue, 28 Jul 2015 12:46:10 +0000 (15:46 +0300)]
Update OVS driver to work with objects

This patch updates the QoS OVS driver to work with policy NeutronObjects
that are passed by the agent extension manager, instead of lists of rule
dicts, as we originally expected.  It also adds validation that the
rules that are sent by the neutron-server are actually supported by the
backend.

Finally, port dict was not really enough to determine the name of the
port in ovsdb. 'name' field is not really present in all port dicts, and
does not reflect what is known to ovs anyway. So instead, we should
rely on vif_port object to determine the ovs port name. Since ovs agent
only added the vif_port value to details dict when binding was desired,
I made adding the vif_port object unconditional, and covered that fact
with unit tests.

With this patch in place, I was able to get policy rules applied to a
port in devstack installation. Functional tests will belong to a
follow-up.

Partially-Implements: blueprint quantum-qos-api
Change-Id: I8926adb0a30728e4f82e55d71ad7e76676a22086

9 years agoMerge "Check that VXLAN is not in use in LB VXLAN check"
Jenkins [Tue, 4 Aug 2015 12:28:47 +0000 (12:28 +0000)]
Merge "Check that VXLAN is not in use in LB VXLAN check"

9 years agoPython 3: fix test_ovs_tunnel
Cyril Roelandt [Tue, 4 Aug 2015 12:27:48 +0000 (14:27 +0200)]
Python 3: fix test_ovs_tunnel

In Python 3, this happens:

>>> d = {}
>>> a = d.values()
>>> b = d.values()
>>> a == b
False

And anyway we're not really willing to pass dict_values objects around; we are
expecting lists, just like in Python 2, so let's just do the conversion.

Change-Id: I62ef32d50ba5ce64a653ffc62ba18c53cab9b15c
Blueprint: neutron-python3

9 years agoMerge "Python 3: Fix test_security_groups_db"
Jenkins [Tue, 4 Aug 2015 11:26:42 +0000 (11:26 +0000)]
Merge "Python 3: Fix test_security_groups_db"

9 years ago_get_dvr_sync_data: Return a list, rather than dict_values for python3
YAMAMOTO Takashi [Tue, 4 Aug 2015 09:47:51 +0000 (18:47 +0900)]
_get_dvr_sync_data: Return a list, rather than dict_values for python3

Align with the non-dvr case.

Blueprint: neutron-python3
Change-Id: I37d24875be530f200118374e9f8046f32a902c8e

9 years agoFixing ICMP type and code validation
Roey Chen [Fri, 24 Jul 2015 18:17:19 +0000 (11:17 -0700)]
Fixing ICMP type and code validation

The case where type is not specifed (None) but the code is '0' will not
result in an error, as it should.

APIImpact

Closes-Bug: #1480966
Change-Id: I878b13ec46a93947765227c40282efa9a7e02ca8

9 years agoMerge "Add API tests for non-accessible policies" into feature/qos
Jenkins [Tue, 4 Aug 2015 06:38:57 +0000 (06:38 +0000)]
Merge "Add API tests for non-accessible policies" into feature/qos

9 years agoMerge "Add DNS and DHCP log into dhcp agent"
Jenkins [Tue, 4 Aug 2015 04:08:09 +0000 (04:08 +0000)]
Merge "Add DNS and DHCP log into dhcp agent"

9 years agoMerge "Prevent update alloc pool over existing gateway ip"
Jenkins [Tue, 4 Aug 2015 00:44:18 +0000 (00:44 +0000)]
Merge "Prevent update alloc pool over existing gateway ip"

9 years agoMerge "L2 agent extension manager: read extensions list from config file" into featur...
Jenkins [Mon, 3 Aug 2015 22:40:49 +0000 (22:40 +0000)]
Merge "L2 agent extension manager: read extensions list from config file" into feature/qos

9 years agoMerge "Fix a microsecond format of isoformat()"
Jenkins [Mon, 3 Aug 2015 20:57:02 +0000 (20:57 +0000)]
Merge "Fix a microsecond format of isoformat()"

9 years agoMerge "List up necessary files for thirdparty-ci.rst"
Jenkins [Mon, 3 Aug 2015 20:56:50 +0000 (20:56 +0000)]
Merge "List up necessary files for thirdparty-ci.rst"

9 years agoMerge "Extend vxlan_group option to allow a range of group addresses"
Jenkins [Mon, 3 Aug 2015 20:37:01 +0000 (20:37 +0000)]
Merge "Extend vxlan_group option to allow a range of group addresses"

9 years agoAdd API tests for non-accessible policies
John Schwarz [Mon, 3 Aug 2015 12:49:13 +0000 (15:49 +0300)]
Add API tests for non-accessible policies

Tests which dealt with creating a rule for a policy that the tenant has
no access to, or for a policy which does not even exist, were missing.
This patch adds them.

Partially-Implements: quantum-qos-api
Change-Id: I0a2679fa1ccfb7bae6083df9a71c6cb5205a21d9

9 years agoMerge "Updated sub_projects.rst for networking-vsphere"
Jenkins [Mon, 3 Aug 2015 19:09:36 +0000 (19:09 +0000)]
Merge "Updated sub_projects.rst for networking-vsphere"

9 years agoMerge "Replaces reduce with six.moves.reduce for py 2/3 compatibility"
Jenkins [Mon, 3 Aug 2015 18:29:54 +0000 (18:29 +0000)]
Merge "Replaces reduce with six.moves.reduce for py 2/3 compatibility"

9 years agoMerge "Adding a cleanup for 'qlbaas-' namespaces in netns_cleanup"
Jenkins [Mon, 3 Aug 2015 18:29:41 +0000 (18:29 +0000)]
Merge "Adding a cleanup for 'qlbaas-' namespaces in netns_cleanup"

9 years agoMerge "Guarantee there is only one bandwidth limit rule per policy" into feature/qos
Jenkins [Mon, 3 Aug 2015 18:29:29 +0000 (18:29 +0000)]
Merge "Guarantee there is only one bandwidth limit rule per policy" into feature/qos

9 years agoGracefully handle fetching nonexistent rule
John Schwarz [Mon, 3 Aug 2015 13:56:27 +0000 (16:56 +0300)]
Gracefully handle fetching nonexistent rule

Currently, if we invoke the API for 'show rule' but the rule does not
exist, an exception is raised from deep within Neutron. This in turns
causes an uncaught exception and the user will see 'ServerFault'. This
patch proposes a fix for this scenario - the case where the rule does
not exist is handled and a NeutronException is caused, causing a proper
'NotFound' error on the client side instead.

Partially-Implements: blueprint quantum-qos-api
Change-Id: Ic703a0865d1cfa057ab1ad5290b793b22df06af6

9 years agoMerge "Update dhcp host portbinding on failover"
Jenkins [Mon, 3 Aug 2015 15:27:13 +0000 (15:27 +0000)]
Merge "Update dhcp host portbinding on failover"

9 years agouse single transaction to update qos policy associatation
Ihar Hrachyshka [Sun, 2 Aug 2015 21:44:53 +0000 (23:44 +0200)]
use single transaction to update qos policy associatation

To make association changes atomic, use autonested transaction.

Change-Id: I582ff43a0ce2f17e3f9fedf7cd32dfbac1ebae28
Partially-Implements: blueprint quantum-qos-api

9 years agoMerge "Moved QOS_POLICY_ID into qos_consts.py" into feature/qos
Jenkins [Mon, 3 Aug 2015 12:19:24 +0000 (12:19 +0000)]
Merge "Moved QOS_POLICY_ID into qos_consts.py" into feature/qos

9 years agoReplaces reduce with six.moves.reduce for py 2/3 compatibility
sonu.kumar [Mon, 3 Aug 2015 11:45:52 +0000 (17:15 +0530)]
Replaces reduce with six.moves.reduce for py 2/3 compatibility

This patch replaces "reduce" with "six.moves.reduce" to comply with
the newer python version i.e. python3.

Partially-Implements: Blueprint neutron-python3

Change-Id: Iddb52d86665123ade5920bc09f7802e29440e7dd

9 years agoPython 3: Fix test_security_groups_db
Cyril Roelandt [Mon, 3 Aug 2015 09:56:41 +0000 (11:56 +0200)]
Python 3: Fix test_security_groups_db

In Python 3, Exception() is not iterable.

Change-Id: I89ffefeebb18f967129245936270318014f17f3f
Blueprint: neutron-python3

9 years agoReplace to_dict() calls with a function decorator
John Schwarz [Mon, 27 Jul 2015 09:09:10 +0000 (12:09 +0300)]
Replace to_dict() calls with a function decorator

Up until now, API server functions would need to return simple iterable
objects, such as dicts and lists of dicts. This patch introduces a
decorator which allows such functions to return non-simple objects (as
long as the returned object implements the 'to_dict()' method, or is a
list of such objects) and converts them on its own, simplifying the
user's code and removing code duplication.

Change-Id: Ib30a9213b86b33826291197cf01f00bc1dd3db52

9 years agoAdd DNS and DHCP log into dhcp agent
changzhi [Fri, 17 Jul 2015 02:43:09 +0000 (10:43 +0800)]
Add DNS and DHCP log into dhcp agent

Enable set DNS and DHCP log of dnsmasq for dhcp agent
Add a new configuration named 'dnsmasq_base_log_dir'
in dhcp_agent.ini.

This entry should be a path of log file. It should
like this:

    dnsmasq_base_log_dir=/tmp

And the DNS and DHCP log will be written into the file
"/tmp/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/dhcp_dns_log".
The dir path will be created if the given path doesn't exists.

DocImpact

Closes-Bug: #1475636
Change-Id: I87be346ec5059eaa8a29f48fe53933af82d1b155

9 years agoInstall arp spoofing protection flow after setting port tag
shihanzhang [Wed, 8 Jul 2015 01:32:39 +0000 (09:32 +0800)]
Install arp spoofing protection flow after setting port tag

when ovs-agent set a tag for a port, it will first remove all
flows on this port, because it should guarantee that no drop_port
flow installed by port_dead remains, so arp spoofing protection
flow must be installed after it.

Closes-Bug: #1472452

Change-Id: I566d0fd93b39e81a34214f1a7a0a1decc9a169d6

9 years agoMove 1c844d1677f7 expand migration to appropriate branch
Salvatore Orlando [Mon, 3 Aug 2015 06:36:54 +0000 (23:36 -0700)]
Move 1c844d1677f7 expand migration to appropriate branch

Commit cb60d0bb4e0cc0cba68f59fdf5f4e89d6ec52950 added an expand
migration. Howewer it indicated a contract migration as its
ancestor (2a16083502f3). As a result the migration was treated
by alembic as a contract one, even if it was defined in the
'expand' directory.

This patch 'rebases' this migration on top of the expand branch
HEAD. This might impact trunk chasers which have already executed
migration 1c844d1677f7 as a part of the contract branch.

Change-Id: I431aa684ccd029c6cff37a7666bb7ce1a7541f9c

9 years agoFix ipset can't be destroyed when last rule is deleted
shihanzhang [Mon, 1 Jun 2015 08:17:37 +0000 (16:17 +0800)]
Fix ipset can't be destroyed when last rule is deleted

when it deletes a security group all rules, it should
include this sg information in RPC method
'security_group_info_for_devices', otherwise the ports
in this sg can't corrcectly update their iptables and
ipset sets.

Change-Id: Ibb071ce84590bd46cda2c1e010a566e75e22b4d2
Closes-bug: #1460562

9 years agoMerge "Remove unnecessary executable permission"
Jenkins [Mon, 3 Aug 2015 04:52:42 +0000 (04:52 +0000)]
Merge "Remove unnecessary executable permission"

9 years agoGuarantee there is only one bandwidth limit rule per policy
Ihar Hrachyshka [Wed, 29 Jul 2015 18:44:54 +0000 (20:44 +0200)]
Guarantee there is only one bandwidth limit rule per policy

Added corresponding db model constraint.

Change-Id: I5592d49909408df66e4d01cebbc45204c2be66c1
Partially-Implements: blueprint quantum-qos-api

9 years agoCleaned up some TODO comments for feature/qos that do not apply anymore
Ihar Hrachyshka [Sun, 2 Aug 2015 20:40:40 +0000 (22:40 +0200)]
Cleaned up some TODO comments for feature/qos that do not apply anymore

1. Removed comment to add tests for invalid input for attach/detach
methods for QosPolicy. Those tests are already implemented in the test
class, so the TODO became obsolete.

2. Removed TODO to use a constant for rule 'type' field. There is no
'type' field in rules anymore, so it does not apply any more.

Change-Id: I205cbc2d9a2eeee1a0a9fb5794efc063de6f326d
Partially-Implements: blueprint quantum-qos-api

9 years agoL2 agent extension manager: read extensions list from config file
Ihar Hrachyshka [Sun, 2 Aug 2015 17:17:27 +0000 (19:17 +0200)]
L2 agent extension manager: read extensions list from config file

This effectively disables qos extension in the OVS agent, but we don't
rely on it in any functional or fullstack tests so far.

To enable the extension, a user should add:

[agent]
extensions = qos

to their openvswitch_agent.ini file.

DocImpact
Partially-Implements: blueprint quantum-qos-api
Change-Id: Icfbf32c36f98cc6e203841b152c7f6fc4f48c20a

9 years agoobjects.qos.policy: forbid deletion when attached to a port or a network
Ihar Hrachyshka [Sun, 2 Aug 2015 15:27:56 +0000 (17:27 +0200)]
objects.qos.policy: forbid deletion when attached to a port or a network

Similar to security groups, we forbid removing a policy that is attached
to any port or a network.

Change-Id: I0854c8ebc3b690c9195beeca92fe37f1121b410a
Partially-Implements: blueprint quantum-qos-api

9 years agoMerge "Added missing [qos] section into neutron.conf" into feature/qos
Jenkins [Sun, 2 Aug 2015 15:57:58 +0000 (15:57 +0000)]
Merge "Added missing [qos] section into neutron.conf" into feature/qos

9 years agoMerge "Enable rule delete test" into feature/qos
Jenkins [Sun, 2 Aug 2015 15:57:41 +0000 (15:57 +0000)]
Merge "Enable rule delete test" into feature/qos

9 years agoRemove handle_network/handle_subnet from l2 agent extensions
Ihar Hrachyshka [Sun, 2 Aug 2015 15:40:13 +0000 (17:40 +0200)]
Remove handle_network/handle_subnet from l2 agent extensions

L2 agents do not care about networks or subnets, they only care about
ports.

Change-Id: I3b354765e0efc9fa511421e7acbb937ded1146d8
Partially-Implements: blueprint quantum-qos-api

9 years agoMove away nested transaction from _ensure_default_security_group
Roey Chen [Wed, 29 Jul 2015 11:45:29 +0000 (04:45 -0700)]
Move away nested transaction from _ensure_default_security_group

This patch remove the nested transaction started in
_ensure_default_security_group, before calling create_security_group.
Instead, a nested transaction will be started inside
create_security_group.

The purpose of this change is to reduce the time period in which the db
transaction is open (to avoid races, db lock timeouts, etc), when creating
the default security-group.

Closes-Bug: #1479558
Change-Id: Ia0efa72c70c2f405c851370b0b26770008e5ff95

9 years agoMerge "Introduce get_ports_attributes in OVSBridge"
Jenkins [Sun, 2 Aug 2015 12:42:10 +0000 (12:42 +0000)]
Merge "Introduce get_ports_attributes in OVSBridge"

9 years agoMerge "Don't set tenant_id for rule objects" into feature/qos
Jenkins [Sun, 2 Aug 2015 12:26:34 +0000 (12:26 +0000)]
Merge "Don't set tenant_id for rule objects" into feature/qos

9 years agoMerge "objects: consolidate single transaction checks into test_base" into feature/qos
Jenkins [Sun, 2 Aug 2015 11:11:44 +0000 (11:11 +0000)]
Merge "objects: consolidate single transaction checks into test_base" into feature/qos

9 years agoMoved QOS_POLICY_ID into qos_consts.py
Ihar Hrachyshka [Mon, 27 Jul 2015 18:53:26 +0000 (20:53 +0200)]
Moved QOS_POLICY_ID into qos_consts.py

Partially-Implements: blueprint quantum-qos-api
Change-Id: If789695b4084aed467d5f773c6b6bebea073724d

9 years agoIntroduce get_ports_attributes in OVSBridge
rossella [Thu, 9 Jul 2015 22:08:50 +0000 (22:08 +0000)]
Introduce get_ports_attributes in OVSBridge

OVSBridge was inheriting db_list from BaseOVS, which was
returning the information of all the ports on the machine,
not only the ones belonging to the bridge.
The OVSNeutronAgent was using that method with the assumption
that ports were filtered by bridge.
To avoid confusion, this patch add a new method to OVSBridge
get_ports_attributes to query the info for all the ports
belonging to the bridge.
db_list is removed from BaseOVS since that method is already
available in ovsdb/api.py
ovs_lib methods that use db_list are refactored accordingly.

Co-Authored-By: Assaf Muller <amuller@redhat.com>
Change-Id: I2ce6d232744f48ba7fc0f824a7db32e3655bc2aa
Closes-Bug: 1473199

9 years agoMerge "objects.qos.policy: provide rules field, not type specific" into feature/qos
Jenkins [Sun, 2 Aug 2015 09:54:07 +0000 (09:54 +0000)]
Merge "objects.qos.policy: provide rules field, not type specific" into feature/qos

9 years agoMerge "Unite qos_rules and qos_*_rules tables" into feature/qos
Jenkins [Sun, 2 Aug 2015 09:52:28 +0000 (09:52 +0000)]
Merge "Unite qos_rules and qos_*_rules tables" into feature/qos

9 years agoMerge "Fix accessing shared policies, add assoc tests" into feature/qos
Jenkins [Sun, 2 Aug 2015 09:29:32 +0000 (09:29 +0000)]
Merge "Fix accessing shared policies, add assoc tests" into feature/qos

9 years agoMerge "qos: forbid creating rules when there is no access to policy" into feature/qos
Jenkins [Sun, 2 Aug 2015 08:01:18 +0000 (08:01 +0000)]
Merge "qos: forbid creating rules when there is no access to policy" into feature/qos