Hash device_id only if it is longer than the allowed MAX size for NVP

This ensure that a VM uuid stays untouched, avoiding potential
confusion when inspecting NVP port tags. This patch also abstracts
the hashing method out by introducing a device_id_to_vm_id method.
Filtering logic is preserved, and a test has been added to ensure
that. However such a logic is not currently used in the NeutronPlugin
(because of the introduction of async status updates), but it has
been added as utility method to nvplib.

Fixes bug #1215204

Change-Id: Ib96ecae438e30f195c8b45176abc1cf55b4b363f
Fix incorrect NotImplementedError

neutron.common.exceptions doesn't define NotImplementedError, but
some codes still use it. We should use builtin
exceptions.NotImplementedError instead.

Note: this patch also fixes a never run code in nvp.

Closes-Bug: #1221500
Change-Id: I5f367ab5edc1e7fbbc2e4eba5fe36d148d4d062d
Fix ovs_lib's issue of parsing flow proto field

When 'proto' other than 'ip' and nw_src/nw_dst are provided at the same
time, the proto parameter will be ignored.

Fixes bug: 1223668

Change-Id: Ie813e66995e2a9310ec4b48c0f7de673db2097f1
Don't add neutron metadata_nat_rules if disable metadata proxy

This patchset fixes this issue by adding a condition when adding nat
rules of neutron metadata proxy.

fixes bug #1212168

Change-Id: I99775aad73c49a8df3043690440d214614279a2b
Don't need to init testr in run_tests.sh

In run_tests.sh, function init_testr will initialize testr if the
directory .testrepository is not existed. Actually, testr will do
the check before run the test:

In Python package testrepository, setuptools_command.py:Testr.run

68 def run(self):
69     """Set up testr repo, then run testr"""
70     if not os.path.isdir(".testrepository"):
71         self._run_testr("init")

So, init_testr can be removed safely.

Fixes Bug #1224285

Change-Id: Ia74d9fff92b8efba9b72e5c7387f761144daa193
Fix unable to ping floating ip from internal_ip

The following patch adds a no-dnat rule so that an internal_ip
can communicate with it's floatingip.

Fixes bug: 1221419

Change-Id: I3899b01f316902d1139e47b153aadb7ecb1ff983
Add l2 population base classes

This patch initiates the blueprint l2-population
Implemented as a ml2 Mechanism driver.

OVS & LinuxBridge drivers will be added as dependencies.

Rebased on ML2 Portbinding.

Change-Id: Ia2345aa262ec791c9f38b6e41e1e4b46f69cadac
OVS agent implementation of l2-population

This patchset implements l2-population RPC callbacks in OVS agents,
it enables plugin to populate forwarding table following portbindings
events.

For now, it doesn't include ARP responder implementation which is
deferred to a future patchset (As this feature isn't yet supported by
OVS, it will require the use of an external responder such as ebtables)

It anyway brings some improvements in tunnelling management, as agent
will tear-down unecessary tunnels, and flood packets on a per-network
basis rather than to all other agents.

These changes should anyway have a limited risk, as tunnel management
won't be affected as long as l2_population option is not set. This
option must be used in conjonction with ml2 plugin using l2population
mechanism driver.

Implements: blueprint l2-population

Change-Id: I5185eefedb0ff392bc8b99d16f810813e26ff58d
Merge "Fix unable to ping floating ip from internal_ip"
Vxlan / L2population support to Linuxbridge Agent

This patch introduces VXLAN support for Linuxbridge agent alongside
with ml2 plugin support in linubridge mechnism driver.

A new vxlan configuration section is added for vxlan related parameters.

The agent also implements l2population RPC callbacks which allows ml2
plugin using l2population mechnism driver to populate vxlan forwarding
and neighbor tables following portbinding events. It allows agent to
respond locally to ARP requests for remote VMs and avoid dataplane based
learning. This should help limiting the use of multicast or flooding
for broadcast emulation in vxlan networks.

These changes should anyway have a limited risk, as agent behaviour
shouldn't be affected, except when vxlan is enabled alongside ml2 plugin.

Implements: blueprint l2-population

Change-Id: I99a961c53f9e451409f1affb079042936d8ae5c6
Merge "Add l2 population base classes"
Merge "OVS agent implementation of l2-population"
Merge "Vxlan / L2population support to Linuxbridge Agent"
Imported Translations from Transifex

Change-Id: I92988cad8948c56116469793ebda55933d358d7e
Avoid performing extra query for fetching qos bindings

Bug 1215872

Add a relationship with eager loading in the Port and Network models,
thus preventing the 'extend' functions from performing extra queries.
This patch also slight alters the methods for processing qos_queue
bindings in order to allow them for populating the qos_queue id in
the response being created.

Change-Id: Ie80d12aeed5de94afa61f23d7bcfc21372f23c4f
Clean up code of virt_phy_sw_v2 module

 Removes two methods not used:
 * _get_all_segmentation_ids
 * _validate_vlan_id

 About log formatting:
 * In the __init__, '\n' can be removed from this line:
     LOG.debug(_("Loaded device plugin %s\n"),

Closes-Bug: 1180783

Change-Id: Ic0aea7e8016f198e2ba245c710e12bc490720039
Fix LinuxBridge test name from Openvswitch

Fixes bug: 1224598

Change-Id: I791108f39e5fc7fcd9532b29d4b117d47907261c
Fixed typo defult_tz_uuid

Fixes bug: 1224038

Change-Id: I0a4c7a63fefc02c4b8ae52d61fd036be8d375351
Fix error code for deletion of router which is in use by vpnservice

In this commit, we check router is in use by a vpnservice or not when
we delete router.

Fixes bug 1224174

Change-Id: I55a4b9b93715fbb36816c69729d88eb494bcf15e
Enhance exception translation to better handle NeutronExceptions

NeutronExceptions have a 'message' class attribute that holds the
generic error message template, e.g. "Network %(network)s not found",
unfortunately, because the names are the same, it was overshadowing the
actual exception instance 'message', e.g. "Network 1 not found", after
translation when the exception was serialized to JSON.

This patch puts the exception's actual message in a new field called
'msg' and overwrites NeutronException unicode() so that 'msg' is used
during serialization and we'll get the correct message on the REST API
response.

Fixes bug: #1212882

Change-Id: I3965bffb1c2c2eee0af440d1ecd30ccb3bb958d5