configure_for_func_testing.sh configures rootwrap into venv directory.
This patch consumes venv passed from project-config including python
version flavor.
Change-Id: I7fea6e9aa09550e00edf6ce2d7301312307df5fd
RootHelperProcess extends Popen from subprocess and sets all
stdin/stdout/stderr descriptors to PIPE. These descriptors use byte
array by default in Python 3. If universal_newlines [1] is set for Popen
object, then those descriptors work in text mode.
[1] https://docs.python.org/3.5/library/subprocess.html#popen-constructor
Change-Id: I3fa2192271aed81fb6da658b8196b365a20fa286
Now with the merge of push notifications, processing a port update
no longer automatically implies a transition from ACTIVE to BUILD
to ACTIVE again.
This resulted in a bug where Nova would unplug and replug an interface
quickly during rebuild and it would never get a vif-plugged event.
Nothing in the data model was actually being updated that resulted in
the status being set to DOWN or BUILD and the port would return before
the agent would process it as a removed port to mark it as DOWN.
This fixes the bug by making the agent force the port to DOWN whenever
it loses its VLAN. Watching for the VLAN loss was already introduced
to detect these fast unplug/plug events before so this just adds the
status update.
Closes-Bug: #1694371
Change-Id: Ice24eea2534fd6f3b103ec014218a65a45492b1f
Added devref documentation related to the "default" behaviour
for QoS policies.
Change-Id: Ic3b149ec5dfdc732a4b5851237389abaef8992b7
Closes-Bug: #1694298
This switches _build_routers_list to call 'super' in both
of the override cases so we aren't sensitive to class ordering.
Change-Id: I2f8b54826918280cf63d69a6d34bfc4b358b3b6a
Related-Bug: #1695101
Router scheduling was happening before the schedule call
so sometimes the router was being scheduled to a different
host than the test was expecting.
This fixes it by explicitly setting the router to not be HA
and calls schedule before adding interfaces that would trigger
scheduling.
Closes-Bug: #1698058
Change-Id: I6c6319f1da72546a9d21af198daf9a2a67e6dec8
Don't rely on the SQLAlchemy revision_col flag to bump revision
numbers and instead bump them in a before_flush handler. This
will allow the follow-up patch to do enforcement on conditional
updates before the revision number is incremented.
Partial-Bug: #1493714
Partially-Implements: blueprint push-notifications
Change-Id: I5feeec5b8385727eff53dc669363bc41db8ceaba
Break apart the SG RPC API into sg info generation logic,
notification logic, and logic to retrieve the rules from
the database.
This allows a follow-up patch to re-use the same security
group info generation logic while retrieving the security
group info from a push notification cache on the agent rather
than a DB on the server.
Partially-Implements: blueprint push-notifications
Change-Id: Ib4359e4016b5a72f70f3fd4f9134887eef59a0bd
This patch integrates the Oslo-Versioned Objects created for
VlanAllocation, VxlanAllocation, VxlanEndpoints, GreAllocation,
GreEndpoints, GeneveAllocation and GeneveEndpoints into the
code base.
Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db
Change-Id: I0d592bae452876b24c28ca4cc4bf6392b5ab6493
Co-Authored-By: Victor Morales <victor.morales@intel.com>
Fixes "TypeError: unhashable type: 'IPDevice'" in
neutron.tests.functional.agent.linux.test_ipset.IpsetManagerTestCase
IPDevice class defines an __eq__() method, which in Python 3 disables
the default __hash__() method (and cannot be used in a set). Use a list
instead as it is enough for the test
Change-Id: I09c538908e55df1b8d305265774c57df1ec42f21
Change linuxbridge ARP protection code to always hold the
neutron ebtables lock while operating on rules. There
were a couple of places where we were reading the rules
without it.
Change-Id: Id7b38a3a662fb2e2736baa015492c36699319e58
Related-bug: #1697833
neutron-lib contains the WorkerBase class [1] that is the equivalent of
neutron's WorkerSupportServiceMixin. This patch switches over to
neutron-lib's version.
Note: IIUC no consumers are using WorkerSupportServiceMixin so this
patch can land without waiting for them to sync-up. I've included
the lib impact tag just in case.
NeutronLibImpact
[1] https://review.openstack.org/#/c/424151/
[2] http://codesearch.openstack.org/?q=WorkerSupportServiceMixin
Change-Id: Iacf1b6dfe318e3e6cfc76e61c65d407cf9ae7b36
There were a few places left in the code (with TODOs) that were still
mocking out the callback manager. This patch switches them over to
the neutron-lib callback fixture.
Change-Id: I9e710db6a5103436b0f098e8f73625e3941df492
Add support for QoS ingress bandwidth limiting in
openvswitch agent.
It uses default ovs QoS policies on bandwidth limiting
mechanism.
DocImpact: Ingress bandwidth limit in QoS supported by
Openvswitch agent
Change-Id: I9d94e27db5d574b61061689dc99f12f095625ca0
Partial-Bug: #1560961
We only support one driver right now so there isn't a point
in logging it for every single IP allocation call.
TrivialFix
Change-Id: Iebd753e9ca433227c9622227ba76a246b4fea2b3
neutron.api.rpc.handlers.resources_rpc already logs the object
being pushed so we don't need to log that we are about to call it.
TrivialFix
Change-Id: I3f37f0788d8f5cc86d37b16c13054d74c5fee6c6
Doing so causes a eventlet.sleep(MagicMock()) call, which results
in comparing MagicMock with float and generates a TypeError in python3.
Change-Id: I970c215433fda05fa4570b2250a36aab4c18c616
It seems after the merge of
https://bugs.launchpad.net/ubuntu/+source/ebtables/+bug/1645324
that ebtables can fail to acquire a lock and bail with an error
255. This adds some retry logic to retry it up to 10 times to
work around this issue.
Closes-Bug: #1697833
Change-Id: Ic9dcf4b236a93e8811413c6ce2c4b82602544c6d
This is a simple code move within a class to prepare
for a class separation in the following patches.
TrivialFix
Partially-Implements: blueprint push-notifications
Change-Id: Ibe40973568f1c9def2ded2f3a750e3423f4bd416
This is a simple code move within a class to prepare
for a class separation in the following patches.
TrivialFix
Partially-Implements: blueprint push-notifications
Change-Id: I843b316b01ca67cfe4636b01f960e0ae751b37a6
This moves the retry decorators onto the DB querying
functions in preparation for a refactor that allows
the data structure generating functions to be backed
by the push notification cache on the agents.
Partially-Implements: blueprint push-notifications
Change-Id: Id43783a244e4bc121b7efc378b37d1f70ffd33b3
libffi-dev is required to install cffi and PyNaCL from tarballs.
cffi is installed from requirements.txt, so 'test' profile is not
specified.
We usual use wheel packages when installing python packages,
but tarball is sometimes used, for example, when a new version
is uploaded. I think it is worth adding it to bindep.txt
to avoid accidental gate failure.
Closes-Bug: #1697613
Change-Id: I4800c9f213fa5c8f28c8603e022264e6aa139090
DVR snat ports and gateway ports are not bound to any host
and so we don't see the snat namespace getting created.
The issue is the _build_routers_list in l3_dvr_db.py is not called due
to the inheritance order.
Change-Id: I56f9de31524aeef262cf2a78be3abf8487c21a12
Closes-Bug: #1695101