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
Avoid KeyError 'distributed' exception when using NVP <3.x

This patch fixes an issue found when creating routers with
NVP plugin and NVP platform 2.2

Fixes bug 1220931

Change-Id: Ia7b358b59e48a723c07efec015bb650accaa3322
Imported Translations from Transifex

Change-Id: Ib94bfe915a60c9c1a1d2375b9a15c666f065d865
Ensure pid file is removed when metadata ns daemon receives SIGTERM

These files from the metadata namespace proxy are not being removed
because delete_pid() is registered with atexit. This means it only runs
when a process exits normally and won't run when a process receives a
signal.

This patch registers a signal handler for SIGTERM that calls exit()
to make the process exit normally so delete_pid() gets called.

Fixes bug: 1223250

Change-Id: I6309802e2109359560ccc084559ec8e4d310cce2
add missing comma to supported alias string list

Fixes bug: 1222949

Change-Id: Iac7f3b7605149e706e2ea8a30700dccd09f3c57e
Merge "Imported Translations from Transifex"
Adds help text to brocade configuration options

Help text was added to the configuration options defined in the brocade neutron
plugin. This help text should assist users of the brocade plugin. The OSTYPE
configuration option was not used in the plugin and was labeled as such so a
user of the plugin would not worry about the meaning of it.

The example etc file /etc/neutron/plugins/brocade/brocade.ini has been updated
to share the same help values where applicable.

Fixes-Bug: #1157511

Change-Id: Ie068396e77902037a7a0b5334d4dfb0dcdd3575e
Register an extend_dict function for ext_gw_mode extension

Bug 1223585wq

Use dict extension methods instead of overriding make_router_dict in
order to make this extension consistent with all the others.

Change-Id: I94fa7e70e5a869963ec4dfa9de85c8d922976843
Imported Translations from Transifex

Change-Id: I8de01b47a78ae301d9760ee8ab0e596e967e333f
Merge "Register an extend_dict function for ext_gw_mode extension"
Merge "Imported Translations from Transifex"
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
Support for NVP advanced service router

When creating an LR:
    - deploy an Edge asynchronously
    - create a L2 switch for connecting LR and Edge
    - attach a router port to the L2 switch.
    - assign ip address 169.254.2.1/28 and nexthop 169.254.2.3 to LR
When set external gateway:
    - configure Edge interface and default gateway
    - Add static routes to Edge for all logic networks attached to LR via nexthop 169.254.2.1
    - configure SNAT rules for all logic networks attached to LR
When add router interface:
    - Add static route/SNAT rule for the network attached to LR
When associate floating IP address:
    - configure DNAT rule for the floating ip and the port

Tests being done:
    - Verified Edge is deployed asynchronously and LR is attached to the internal created L2 switch
    - Manually attach Edge's vNic to the L2 switch and Edge is able to ping 169.254.2.1
    - Verified router-delete deletes Edge asynchronously and remove the internal L2 switch
    - Verified SNAT/DNAT/static-routes rules are configured on Edge in correct order
    - Verified external vnic ip address/netmask and default gateway is configured

Implements: blueprint nvp-service-router
Change-Id: If9eff53df4d65cf4e318dedbfaafc742f6c6ab7f
Adds support for L3 routing/NAT as a service plugin

- Adds L3 routing/NAT service plugin
- Removes L3 routing/NAT from ML2 plugin
- Moves "router:external" attribute to new extension "External-net"
- Introduces separate RPC topic for L3 callbacks from L3 agent

Implements: blueprint quantum-l3-routing-plugin

Change-Id: Id9af10c2910f9a1730b163203a68d101ffc3b282
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
Merge "Ensure pid file is removed when metadata ns daemon receives SIGTERM"
Merge "Support for NVP advanced service router"
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