Fix wrong log output in neutron/neutron/agent/linux/dhcp.py
When all subnets are turning off dhcp and killing the process,
this wrong log output "Killing dhcpmasq for network ..." occurs.
It should be "Killing dnsmasq for network ..."
Maru Newby [Sat, 21 Feb 2015 00:15:12 +0000 (00:15 +0000)]
Add script to copy neutron api tests from tempest
This change adds a script to automate the copying of api tests from
tempest in the style of oslo_incubator. The target path will be
neutron/tests/tempest and no manual modifications should be made to
this path until such time as neutron api test development is frozen in
tempest and development can proceed in the neutron tree. Until that
occurs, a policy of manual once-daily synchronization is suggested.
The target path includes the name 'tempest' as a clear indication that
this is not part of neutron, and that once development is allowed to
proceed, its contents should be rewritten and removed until there is
nothing left.
So long as the tests exist in both the tempest and neutron trees,
testing effort will be duplicated. The larger goal is to have the
tests in question removed from tempest as per the qa guidelines [1],
so this should be temporary.
Xu Han Peng [Fri, 6 Mar 2015 10:30:30 +0000 (18:30 +0800)]
Fix DB2 upgrade problem for Remove Hyper-V plugin
The recently added upgrade script to remove hyperv
neutron plugin breaks upgrade on DB2. This fix solves
this problme by using "1" instead of "true" in sql
when db2 is engine.
Kevin Benton [Sun, 1 Mar 2015 20:25:29 +0000 (12:25 -0800)]
Big Switch Networks code split
This commit removes all of the Big Switch Networks
code from the tree and replaces it with the import
statements required to pull in the entry points
from the new 'bsnstacklib' module.
All patches for BSN code should now be submitted
to the stackforge/networking-bigswitch project.
vijaychundury [Tue, 3 Mar 2015 13:02:02 +0000 (13:02 +0000)]
Replace IPv4 and IPv6 default addresses with constants
At various places in Neutron we are using IPv4 and IPv6 default addresses in
numeric format. This patch replaces them with constants to ensure consistency.
Update the table to reflect the fact that code decomposition
for this plugin has occured.
This patch also fixes supported extensions by vmware_nsx as
the plugin providing advanced services has been removed, and
the new plugin providing those does not yet have CI.
Change-Id: I4567ec206ac03b23d5355cd53b80544f05daef7c
Related to blueprint core-vendor-decompisition
Kyle Mestery [Thu, 5 Mar 2015 17:34:05 +0000 (17:34 +0000)]
Move Neutron Policy pages into the tree
The information from the NeutronPolicies wiki page [1] is useful. But
having it in a static wiki is less so. Moving this into the Neutron
documentation in-tree will allow for an easier maintenance of this
information.
ronak [Wed, 25 Feb 2015 22:55:18 +0000 (14:55 -0800)]
Adding DB model changes for Nuage Plugin post decomposition
Due to decomposition of plugin work initiated during K release,
nuage plugin have gone through much changes without them being
incorporated upstream. But as per the decomp spec guideline,
we need to keep migration and model definition upstream.
So adding new schema along with migration script into K release.
Add ability to run pylint check on modified files only
Change c0aa0b fused pylint with the checks done with the pep8 testenv.
This has the drawback of increasing the execution time of the command
'tox -epep8' fourfold.
This change introduces the ability to execute the pylint check on just
the list of python files affected by a specific patch. For instance,
this can be done with the following command:
tox -epep8 HEAD~1
A kind reminder is added, so that folks who end up noticing the spike of
time execution when they run tox -epep8 without posargs, can learn how
they can get their precious minutes back.
Change 17cae2c added tests that pass regardless of whatever code they
are supposed to validate. If one asked for a bad example of how not to
write/review test, change 17cae2c would be one of it.
This patch remove all the business logic pertaining to the VMware
plugin. The following modules are left in openstack/neutron:
- plugin-specific API extension declarations
- database models (and a module with constants they use)
- integration module pointing to the external repository
vijaychundury [Wed, 4 Mar 2015 13:41:14 +0000 (13:41 +0000)]
Remove references to 0.0.0.0/0 in iptable rules
Iptables removes 0.0.0.0/0 as rule source (-s) because any packet
matches the filter. Based on the discussion in the patch [1],
references to 0.0.0.0/0 are removed in the current patch.
Assaf Muller [Wed, 11 Feb 2015 21:11:33 +0000 (16:11 -0500)]
Change metadata driver unit tests to use monitored spawn
The modified unit test is currently the sole user of the
unmonitored _spawn_metadata_proxy. We must remove this usage so that
when the L3 agent manages the metadata proxy for HA routers,
the unmanaged methods may be removed.
Decouple L3 and VPN service plugins during router operations
This change leverages the event registry to decouple L3 and VPN
when checking whether certain router operations can be permitted
or not. Follow-up changes will clean up the rest of the coupling.
This clean-up is required because the existing code couples the two
service plugins together, as L3 needs to know about a higher-level
service, like VPN. A similar coupling would be needed for any other
service that might be using or interested in knowning about router
resources; in a world where advanced services have a life of their
own this hardly works or it leads to the tight coupling
experienced so far, which is not the right way to go about it.
Carl Baldwin [Mon, 23 Feb 2015 20:57:02 +0000 (20:57 +0000)]
Move _set_subnet_arp_info to dvr_router
Further teasing DVR apart from the agent and other router types. This
change illustrates the need to use plugin_rpc and context from the
agent. It leaves this as a dependence of dvr_router on the instance
of the agent. So, when the agent creates a dvr_router, it passes
itself in as an argument. It doesn't do this with other router types.
I would like to eliminate the dependence of RPC while processing a
router. However, this is just a refactor and at least decouples it as
much as possible and isolates the dependence to DVR only.
Carl Baldwin [Mon, 23 Feb 2015 20:20:24 +0000 (20:20 +0000)]
Refactor DVR _arp_entry methods
This should decouple the DVR stuff from the agent. This moves some
methods to dvr_router to encapulate them better. It removes a
reference to fullsync from DVR to better separate concerns.
Miguel Lavalle [Fri, 16 Jan 2015 04:16:01 +0000 (22:16 -0600)]
Refactor management of namespaces in the L3 Agent
Creates classes representing the 3 types of namespaces handled by the L3 agent:
router, snat and fip.
The scope of this change is:
- Creation and deletion methods are provided for each namespace class
- Creation and deletion of router and snat namespaces are moved to the router
classes. These namespaces are now members of the corresponding router class
- Invocation of Fip namespace creation and deletion is left in the agent, since
the agent owns it
- A context manager is provided to move the namespaces (router and snat)
cleanup code out of the agent
A follow up patchset will add methods to create and delete interfaces in the
namespaces. These methods are intended to be used by the router classes
Change-Id: I54b14e593ded6b2990d57a3ae9d598a699ae133e
Partially-Implements: bp restructure-l3-agent
Assaf Muller [Sun, 22 Feb 2015 00:28:54 +0000 (19:28 -0500)]
Introduce ip address monitor
In Juno, we used keepalived notifier scripts to report the local
state of an HA router's state. These have been found to be
unreliable. The proposed approach is to not use them altogether.
Instead, monitor the omnipresent VIP on the HA device - It is
only configured on the master instance. In order to do that,
we'll use the 'ip monitor address' wrapper introduced in this patch
to get address change events as they happen to avoid polling.
Ihar Hrachyshka [Thu, 26 Feb 2015 23:00:24 +0000 (00:00 +0100)]
oslo: sync all modules that depend on incubator log module
We're going to switch to oslo.log, so we need to untangle incubator
modules from the old log module. This is achieved by synchronizing all
the modules that used the module before from oslo-incubator.
Note that incubator modules now use standard logging module (and not
e.g. oslo.log).
The following modules (and their dependencies) are synced:
- eventlet_backdoor
- fileutils
- loopingcall
- periodic_task
- policy
- service
- systemd
- threadgroup
- versionutils
TestUnixDomainMetadataProxy tests too many implementation details when
checking cases of existing and non-existing socket file. Reduce mock
checks to the minimum needed to test for expected behaviour.
Otherwise test may catch wrong isdir() calls (f.e. when policies are
initialized) and fail (I experienced it in local checkout).
Before refactoring _remove_unused_security_group_info, we
found a few corner cases that were not tested. We ensure
with this test that sg_rules and sg_members of the firewall
object are properly cleaned up when the objects they
keep are not referenced anymore.
Kyle Mestery [Tue, 3 Mar 2015 14:57:31 +0000 (14:57 +0000)]
Default the Linuxbridge agent to enabling VXLAN
Linux kernels from 3.7 and up have supported VXLAN with Linuxbridge.
I think it's time we default to enabling this support in the
Linuxbridge agent in Neutron as well.
Isaku Yamahata [Tue, 3 Mar 2015 00:44:02 +0000 (16:44 -0800)]
ml2 plugin: use attributes.{NETWORK, SUBNET, PORT} consistently
ml2 plugin sometimes uses immediates and constants as the key for
resource like 'network'. Such inconsistency is undesirable, this patch
makes use of constants in neutron.api.v2.attributes consistently.
Isaku Yamahata [Fri, 17 Oct 2014 08:35:55 +0000 (17:35 +0900)]
ml2 extension driver: more tests, fix data argument inconsistency
This patch adds more tests for ML2 extension driver.
It also fixes a minor bug which was revealed.
The data argument for process/update method of extension driver
was inconsist. some are given data like
{'resource': {'arg': 'value'...}}. But some are given one like
{'arg': 'value'}.
This inconsistency needs to be fixed so that argument is
{'arg': 'value'}. Given the argument is known to be network,
there is no point to carry outer dictionary.
Eric Brown [Wed, 25 Feb 2015 23:32:50 +0000 (15:32 -0800)]
Use oslo_config choices support
The oslo_config library added support for a choices keyword argument in
version 1.2.0a3. This commit leverages the use of choices for StrOpts in
Neutron's configuration.
Prevent direct port-delete of FIP Agent GW and CSNAT
FloatingIP Agent GW Port and Centralized SNAT port
that are currently used by DVR in FloatingIP and
SNAT Namespaces respectively should not be allowed
to delete directly using the Port-delete command by
an admin.
This patch fixes the above stated issue by adding the
respective device-owners to the router_device_owners
list in l3_dvr_db.py
Fawad Khaliq [Sat, 28 Feb 2015 19:30:04 +0000 (11:30 -0800)]
PLUMgrid plugin decomposition
As part of the plugin decomposition work, this change
removes PLUMgrid plugin code from Neutron and moves it
to networking-plumgrid repo [1]. Plugin code, config,
drivers and unit test cases are all moved to
networking-plumgrid.
Improve structure of Vendor Decomposition progress chart
After a few commits started being proposed, it became clear that, in
order to minimize merge conflicts, or potential errors with hyperlinks,
the structure had to change/improve slightly.
This patch proposes a different structure that aims at addressing
this concern.
Yoni Shafrir [Wed, 21 Jan 2015 06:25:50 +0000 (08:25 +0200)]
Removing a router twice from the same agent shouldn't cause an error
When we remove a router from an agent that has already been
unscheduled from we raise an exception that eventually causes an error.
The method '_unbind_router' raises a 'RouterNotHostedByL3Agent' exception
on failure. In both cases the actual removal of the router
from the same agent has no effect.
The solution is to stop raising 'RouterNotHostedByL3Agent' so
that _unbind_router() being invoked without error can indicate that
the router is no longer bound.
This solution matches the behaviour found when trying
to schedule a router to the same agent twice.