Cedric Brandily [Wed, 21 Oct 2015 18:52:40 +0000 (20:52 +0200)]
Remove deprecated use_namespaces option
The use_namespaces option has been defined as a workaround to kernels
not properly supporting namespaces. This limitation is behind us, it's
time to remove use_namespaces after its deprecation in Kilo in order to
simplify code and remove a poorly tested case (use_namespaces=False).
This change prepares for removal pullup_route method[1] which was only
used when use_namespaces=False.
Eugene Nikanorov [Mon, 12 Oct 2015 09:59:01 +0000 (13:59 +0400)]
Resync L3, DHCP and OVS/LB agents upon revival
In big and busy clusters there could be a condition when
rabbitmq clustering mechanism synchronizes queues and during
this period agents connected to that instance of rabbitmq
can't communicate with the server and server considers them
dead moving resources away. After agent become active again,
it needs to cleanup state entries and synchronize its state
with neutron-server.
The solution is to make agents aware of their state from
neutron-server point of view. This is done by changing state
reports from cast to call that would return agent's status.
When agent was dead and becomes alive, it would receive special
AGENT_REVIVED status indicating that it should refresh its
local data which it would not do otherwise.
Elaborate how priorities are assigned to blueprints
Prioritizing is hard, and prioritizing in open source, let
alone Openstack, is even harder.
For this reason, this proposal attempts to clarify what priority
mean, how we prioritize in Neutron, in a way that's objective,
consistent, and reproducible. To start with, and make things slightly
simpler, we reduce the number of priority buckets we can choose from
to two: High and Low.
The way priorities are assigned is then based on a set of clearly defined
criteria: high priority work items are items that all core folks
collectively should care about because any failure in achieving tangible
result make them look bad. Low work items are great to have, but if they
slipped, it would be a shame but not the end of the world.
Hong Hui Xiao [Sun, 15 Nov 2015 09:06:45 +0000 (04:06 -0500)]
Don't add default route to HA router if there is no gateway ip
When adding an external network with no gateway ip to a HA router,
l3 agent will report exception. The exception comes from the code
of adding default route to HA router. However, if there is no
gateway ip in the external network, there is no need to add such
route.
Yalei Wang [Wed, 11 Nov 2015 15:50:20 +0000 (23:50 +0800)]
Add the missing arg of RetryRequest exception in _lock_subnetpool
RetryRequest exception defined in oslo.db need be called with a arg
which describes the inner exception. _lock_subnetpool method missed this
arg, and this patch adds it.
Eugene Nikanorov [Mon, 19 Oct 2015 13:41:32 +0000 (17:41 +0400)]
Avoid race condition for reserved DHCP ports
This patch introduces mechanism similar to compare-and-swap
for updating reserved DHCP port.
This addresses a case when two DHCP agents that start nearly at
the same time are assigned to one network and there is a reserved
DHCP port in the network. Then each of agents will try to use it
because agents don't check if reserved port is still available.
Reserved DHCP port can be acquired by different agent between calls to
get_active_networks and update_port, so this patch adds a check for
this case.
The lease duration isn't DHCP agent specific. DHCP is a feature that
should be provided by whatever plugin is loaded and operators would
still like to set lease times for DHCP.
In the reference implementation we just consume it directly in the
agent, but that doesn't mean it's specific to the agent implementation.
Bogdan Tabor [Wed, 7 Oct 2015 13:49:08 +0000 (15:49 +0200)]
Switch to using neutron.common.utils:replace_file()
neutron.agent.linux.utils:replace_file() and
neutron.common.utils:replace_file() have same functionality.
This is the 1st patch in the series of 4 patches.
It modifies neutron.common.utils:replace_file(),
so it can be used by all components as a replacement
for neutron.agent.linux.utils:replace_file().
New keyword parameter 'file_mode=0o644' is added
to neutron.common.utils:replace_file().
Ann Kamyshnikova [Wed, 21 Oct 2015 14:37:34 +0000 (17:37 +0300)]
Skip bindings with agent_id=None
To avoid having extra L3HARouterAgentPortBinding with l3_agent as None,
operation of setting l3_agent should be atomic.
For this purpose, transaction was added in methods
create_ha_port_and_bind and _bind_ha_router_to_agents in change
Iaad82fe522cfd70061daecf411c924fdc11b7e41
In case if router was just created and l3 agent was not scheduled yet,
so l3_agent_id is None, l3-agent-list-hosting-router <router> will fail.
This change makes it work by skipping binding with agent_id=None.
Oleg Bondarev [Wed, 28 Oct 2015 06:08:26 +0000 (15:08 +0900)]
Use admin context when requesting floating ip's router info
Currently it is possible for admin to create router and add any
tenant subnet to it, thus connecting the subnet to the external
network. In this case tenant user can assign floating ips to its
VMs though it does not own the router.
For proper notification we need to get router info using admin
context.
Eugene Nikanorov [Sun, 25 Oct 2015 11:47:38 +0000 (15:47 +0400)]
Cleanup dhcp namespace upon dhcp setup.
In some cases when more than 1 DHCP agents were assigned
to a network and then they became dead, their DHCP ports
become reserved. Later, when those agents revive or start
again, they acquire reserved ports, but it's not guaranteed
that they get exactly same ports. In such case DHCP agent
may create interface in the namespaces despite that another
interface already exist. In such case there will be two
hosts with dhcp namespaces each containing duplicate ports,
e.g. one port will be present on two hosts. This breaks
DHCP.
Ihar Hrachyshka [Fri, 13 Nov 2015 11:39:57 +0000 (12:39 +0100)]
Remove SysV init script for neutron-server
The script has some issues, f.e. it does not read any plugin
configuration file.
I don't believe anyone relies on it these days. The only distro I could
think of that could use it is Debian, but they have their own version of
the script maintained independently.
So it seems easier to remove it not to mislead users.
Elena Ezhova [Fri, 13 Nov 2015 11:26:45 +0000 (14:26 +0300)]
Refactor test_server functional tests
* Launching services with 0 workers makes no sense and would soon
be prohibited in oslo.service. Passing workers=1 means that a
service will be run in a current process.
* Extract the dummy _check_active method to the base class.
Ihar Hrachyshka [Fri, 13 Nov 2015 11:26:55 +0000 (12:26 +0100)]
Undeprecate force_gateway_on_subnet option
There are valid use cases for gateways outside of subnet range. F.e.
deployers may decide to provide external connectivity in that way, by
injecting link routes.
Ann Kamyshnikova [Fri, 25 Sep 2015 12:30:30 +0000 (15:30 +0300)]
Add transaction for setting agent_id in L3HARouterAgentPortBinding
To avoid having extra L3HARouterAgentPortBinding with l3_agent as
None, operation of setting l3_agent should be atomic.
For this purpose, transaction was added in methods
create_ha_port_and_bind and _bind_ha_router_to_agents.
Dongcan Ye [Thu, 29 Oct 2015 12:50:43 +0000 (20:50 +0800)]
Check missed IPSet utility using neutron-sanity-check
In some case, host may lack ipset utility (e.g., due to a
dependency issue)
This patch allows checking IPSet utility support from CLI:
neutron-sanity-check --ipset_installed
Or using configuration options, for example:
neutron-sanity-check --config-file /etc/neutron/neutron.conf
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini
The revert was merged too quickly, without waiting for tox project to fix us.
The gate passed for the revert only because infra folks removed images
that had new tox in them. We will be broken by the next images though.