networking-arista already uses PBR:-
This patch removes `MANIFEST.in` file as pbr generates a
sensible manifest from git files and some standard files
and it removes the need for an explicit `MANIFEST.in` file.
If a call to send_api_request hits an exception,
it will return None. However, our code that expects iterable
types are returned from many of our GETs. This change replaces
None returns with empty dicts in such cases.
arista_ml2.py was becoming quite large and a dumping ground for
code. This change begins the process of organizing the driver in
a more structured, and manageable way.
If a higher level mechanism driver assigns a physical
network to a segment that we are binding, use that
segment rather than looking up the physical network
based on host_id.
Neutron changed the way resources are extended after Pike milestone-1. As a
result, there's a race condition where the sync thread
makes calls on the plugin before the ML2 plugin has finished
initialization. ML2 supports the get_workers() command to spawn agents for ML2
drivers. This change moves the sync thread to from the API Service to a
child worker process.
The keys to the json output of 'show network physical-topology hosts'
command changed from hostname to chassis ID. This patch makes the code to work
with older and latest version of the command's output.
The upstream plugin will catch any exception, so there is not need to
import this exception from Neutron. We can raise our specific exception
and remove this dependency.
The arista_provisioned_vms table should contain only ports which are
provisioned by the arista mechanism driver. This patch verifies the
device owner of a port before adding it to the table.
The existing code fails to detect a port migration if the port status
is in 'DOWN' state. With this patch, detection of a port migration
relies only on change in 'binding:host_id'.
This patch also fixes failure of deleting a network due to orphan port
in the arista_provisioned_vms database by deleting all entries from the
table if they exist.
In ocata, the tenant network port for baremetal instances
is owned by compute:<zone> instead of baremetal:<zone>. The
vnic_type for those ports is still 'baremetal', so use the
vnic_type to identify baremetal ports.
We were assuming that all ports with binding::profiles would have
local_link_information. This assumption is incorrect, so we should
handle such ports gracefully rather than throwing a KeyError.
This patch fixes unit tests failure due to adopting oslo-versioned
objects (ovo) for neutorn db by adding the core plugin instance to
the plugin directroy in the test.