John Schwarz [Mon, 12 Oct 2015 12:53:49 +0000 (15:53 +0300)]
Don't remove ip addresses if not master
When setting --admin-state-up=False on an HA router with a gateway set,
standby nodes don't have any ip addresses set on the devices (although
the devices themselves are present). In such cases, Neutron should not
try to un-set those ip addresses before deleting the device itself.
Jakub Libosvar [Tue, 13 Oct 2015 11:18:56 +0000 (13:18 +0200)]
Include alembic versions directory to the package
If package is built without access to git metadata, all the migration
scripts are not included in the build. We need to explicitly specify to
package the scripts.
The project has been removed in I8def7fc2e92f967785b9ab05f8496de641e8f866
and it's been retired from stackforge [1]. So it's safe to remove it from
the list with the remaining bits.
Remove the port-forwarding sub-project from the list
This project is no longer maintained, there are newer talks
going on to better support the use case [1], possibly in
tree. To this aim, it's safe to remove this project from
the list.
Thomas Herve [Tue, 20 Oct 2015 13:42:59 +0000 (15:42 +0200)]
Properly handle segmentation_id in OVS agent
The segmentation_id of a OVS VLAN can be None, but a recent change
assumed that it was always an integer. It highlighted the fact that we
try to store None in the OVS database, which got stored as a string.
This fixes the storage, and handles loading the value while keeping
compatibility.
Ihar Hrachyshka [Tue, 13 Oct 2015 16:11:29 +0000 (18:11 +0200)]
ovs: remove several unneeded object attributes from setup_rpc()
It's currently not clear what the interactions and interdependencies
between existing attributes set inside setup_rpc() and other code are.
This complicates its perception. So reduce the complexity a bit by using
local variables instead of object attributes where applies; and moving
agent_id calculation out of setup_rpc() since it's not related to AMQP.
Romil Gupta [Mon, 19 Oct 2015 13:17:04 +0000 (06:17 -0700)]
Remove SUPPORTED_AGENT_TYPES for l2pop
In a world where agents can be out of tree,
this check seems no longer necessary.
As part of networking-vsphere project which runs ovsvapp agent
on each ESXi host inside service VM, which talk to neutron-server
having l2pop enabled in a multi-hypervisor mode like KVM, ESXi.
The tunnels are not getting established between KVM compute node
and ESXi host. The l2pop mech_driver needs to embrace ovsvapp agent
to form the tunnels.
Hence, this patch-set addresses the issue by removing the
SUPPORTED_AGENT_TYPES for l2pop.
Provide links to who belongs to what team, and
rename the section to better reflect its content.
Add the Neutron drivers team, which apparently
was missing and only captured on the wiki.o.o.
Carl Baldwin [Fri, 16 Oct 2015 16:16:15 +0000 (16:16 +0000)]
Refactor _populate_ports_for_subnets for testability
I want to add to this function but I found it very difficult to test
the additions that I was making (because this code isn't well covered
by UTs). This patch adds some unit testing so that I can change it
more confidently but does not change any functionality.
Split the FIP Namespace delete in L3 agent for DVR
Right now we are seeing a race condition in the l3 agent
for DVR routers when a floatingip is deleted and created.
The agent tries to delete the floatingip namespace and
while it tries to delete there is another call to add a
namespace. There is a timing window in between these two
calls where sometimes the call to create a namespace succeeds
but, when tried to execute any commands in the namespace
it fails, since the namespace was deleted concurrently.
Since the fip namespace is associated with an external net
and each node has only one fip namespace for an external net,
we would like to only delete the fip namespace when the
external net is deleted.
The first step is to split the delete functionality into two.
The call to fip_ns.cleanup will only remove the dependency that
the fipnamespace has with the router namespace such as fpr and
rfp veth pairs.
The call to fip_ns.delete will actually delete the
the fip namespace and the fg device.
Martin Hickey [Wed, 14 Oct 2015 21:32:49 +0000 (22:32 +0100)]
Add stevedore aliases for interface_driver configuration
Changed the interface_driver configure for agents from class
imports to stevedor aliases. The loading method needed to be
updated to load as a DriverManager. Backward compatability
for configuration as class import.
It is easy to oversubscribe ourselves during a release
cycle. We approve specs only to experience that we fail
to review consistently; code is posted last minute,
we get lost into chasing race conditions, the odd dependency
throws the gate under the bus, and the ever-present cosmetic
refactoring patch steers our attention from what matters,
which is *reviewing what we commit to deliver*.
In order to keep ourselves focused on the bigger picture,
this patch proposes/formalizes changes to the way we
register blueprints so that we can improve our ability
to better foresee what we'll deliver at the end of a
release.
We obviously can't predict the future or chain people
to a desk, but a regular pulse check of a well planned
task list should at least help mitigate the feeding frenzy
that usually happens closer to FF. That inevitably
leads to half-baked and buggy solutions.
The patch broke notifications about FIP updates and triggered 100%
gate failures for Ironic gate.
I believe that I0cbe8c51c3714e6cbdc48ca37135b783f8014905 is also
breaking notifications, but for FIP create, which probably was not
utilized in any gate before and hence not caught in time.
The change the reverted patch introduced made update_floatingip to
fetch router based on FIP router_id field on every call, which was
not the case before the patch. For some reason unknown at the
moment, we get NotFound from database on this fetch.
The patch does not answer the question why we get NotFound from
database on fetching a FIP router_id, but that's another issue that
should be investigated while Ironic gate is happy.
Fix AttributeError on port_bound for missing ports
If the port is concurrently deleted, db_get_val returns None, and
that causes the Exception to be raised. However, the exception is just
log noise if the port has been deleted concurrently and it does not
lead to failures.
This can happen if port_update and port_delete operations occur
in short sequence and interleave. To prevent this trace from
occurring, this patch checks that the port is being eliminated and
emits an error trace only if the port is indeed to be expected
amongst the list of ports to be updated.
We do not raise an exception to avoid disrupting the agent sync
process, and leave to the admin the investigation of the issue
(should that be cronic rather than transient).
Under normal circumstances, if the port is expected it should
be there, and if it isn't this should be treated as a bug to be
investigated further.
changzhi [Thu, 20 Aug 2015 13:40:42 +0000 (21:40 +0800)]
DVR: Notify specific agent when update floatingip
The L3 agent was determined when update floatingip.
So notify the specific agent rather than notify all agents.
This will save some RPC resources. This is only for DVR routers.
Legacy and HA routers notify only the relevant agents.
Do not try to delete a veth from a nonexistent namespace
Currently, VethFixture cleanup tries to delete veth from their
namespaces even if they don't exist anymore (without crashing the
cleanup). It implies an extra trace if an error is raised which can be
confusing.
This change avoids to try deleting a veth from a nonexistent namespace
in the fixture VethFixture.
Ihar Hrachyshka [Thu, 15 Oct 2015 15:57:56 +0000 (17:57 +0200)]
Lower the log level for the message about concurrent port delete
There is nothing wrong or interesting in that log message that would be
useful during general cloud operation. It may be useful when debugging
an issue, so leaving the message, but with lowered log level.
John Davidge [Wed, 14 Oct 2015 14:09:45 +0000 (15:09 +0100)]
Update RFE documentation to clarify when the tag is not appropriate
Adds a passage to clarify that the 'rfe' tag is not to be used for work
that is already well-defined, to avoid code being submitted before proper
discussion can take place.
There seems to be a timing issue between the
ARP entries that arrive from the server to
the agent and the internal qr-device getting
created by the agent.
So those unsuccessful arp entries are dropped.
This patch makes sure that the early ARP entries
are cached in the agent and then utilized when
the internal device is up.
This is a null-merge of the 7.0.0 release tag back into the master
branch so that the 7.0.0 tag will appear in the git commit history of
the master branch. It contains no actual changes to the master branch,
regardless of how our code review system's UI represents it. Please
ask in #openstack-infra if you have any questions, and otherwise try
to merge this as quickly as possible to avoid later conflicts on the
master branch.
Brian Haley [Wed, 14 Oct 2015 02:56:24 +0000 (22:56 -0400)]
Create ipset set_name_exists() method
All the callers of set_exists() already know the set name,
so there's no reason to re-calculate it based on the id and
ethertype. Renamed to set_name_exists() to be clear on what
it is checking.
Sachi King [Mon, 28 Sep 2015 05:20:19 +0000 (15:20 +1000)]
Add -constraints sections for base CI jobs
Using factors with sections is not a thing and likely will not be for
a while, as such we are going to have to duplicate sections to be able
to set the constraints based install_command.
Cyril Roelandt [Tue, 13 Oct 2015 12:46:39 +0000 (14:46 +0200)]
Python 3: make post_test_hook work with more tox targets
This makes it possible to run the script with different "flavors" of
"dsvm-functional" and "dsvm-fullstack". In particular, this is needed to
have a dsvm-functional-py34 gate running (see
https://review.openstack.org/#/c/233177/).
Kevin Benton [Wed, 14 Oct 2015 05:33:53 +0000 (22:33 -0700)]
Move retries out of ML2 plugin
There are several DB retry decorators in the ML2 plugin.
We want to keep them in the API layer as much possible so
this patch removes all but 1 and adds the retryrequest catch
to the API-level decorator.
The remaining one is the update_port_status which is an internal
RPC called method so it's not clear if there is a benefit to
moving it to the ml2 rpc file.
Liberty is behind us. The RFE process has been in place for a cycle
and some refinements have been necessary to make it more streamlined.
The cut-over section has outlived its purpose so it can be removed.
In its place, this patch clarifies how we are going to track RFE in
Launchpad, once the RFE has been 'approved'.
The tl;dr version of this patch is: from Mitaka onwards, feature
submission must happen via RFE bug report submission. Launchpad
blueprints are going to become a tool to be used at discretion of
the project release manager for milestone tracking purposes.