NSX: Add ability to retry on 503's returned by the controller

There are a number of circumstances where the NSX controller
may return 503. Currently the API client does not retry, so
this patch adds a retry logic with timeout.

Closes-bug: #1284277

Change-Id: I85df087d5ae409e6cb5c35eb171e89346abe81f4
Call target plugin out of DB transaction in the Metaplugin

Previously, there are cases that a target plugin is called
within a DB transaction in the metaplugin. This possibly causes
"DB lock timeout" error since a target plugin may take a long
time (ex. communicate to a controller).

Change-Id: Ie2971bfae1fecc97086b58cd943c321feb0aba04
Closes-Bug: #1267291
BigSwitch: Fix certificate file helper functions

Fixes function definitions for file-system calls
in certificate functions for BigSwitch plugin.

Closes-Bug: #1289192
Change-Id: Ifea8506ea0d751e0d5b08511eafd04d2fa26be23
Updated from global requirements

Change-Id: I2e22d529892a1a15aa300b9904362cf491fd8064
VPNaaS Device Driver for Cisco CSR

This is the device driver for the vendor specific VPNaaS plugin. This
change relies on the service driver code (review 74144), which is also
out for review.

Note: Support for sharing of IKE/IPSec policies (which is currently
      prevented by the service driver code), will be done as a later
      enhancement.
Note: Needs Tempest tests updated/created to test this.
Note: To run, this needs an out-of-band Cisco CSR installed and
      configured.
Note: This uses a newer version of requests library and a new httmock
      library. Until these are approved (75296), the UT will be
      renamed to prevent testing the REST client API to the CSR.

Change-Id: I4f73f7fa1bfcdc89a35ffe63dd253f8eede98485
Paritally-Implements: blueprint vpnaas-cisco-driver
NSX: Allow multiple references to same gw device

This patch amends a data model in order to allow user to specify
the same gateway device multiple times in a network gateway
specification.

The corresponding migration is also being amended with this
patch. This approach has been preferred to developing another
migration since the migration being amended is still the most
recent one for the NSX plugin.

Change-Id: I4d24837d8d65fc45b838f3b616c9ec8a73a50d9c
Closes-Bug: 1262790
Optimize floating IP status update

Hopefully also avoid tracebacks due to nested transactions
being rolled back

Change-Id: I1e74fb8d90de09b53d330f499b93073f19a5b9bf
Closes-Bug: #1290549
Query for port before calling l3plugin.disassociate_floatingips()

The call to l3plugin.disassociate_floatingips() trigggers several events
that could cause a timeout to occur trying to query the db for the port
therefore this patch changes the code to query first for the port.

Closes-bug: #1290478

Change-Id: I69fe9cff4b550240215329e1082a63cd11617faa
Merge "VPNaaS Device Driver for Cisco CSR"
Stop mock patches by default in base test class

Adds a mock.patch.stopall to the base unit test
case cleanup routines to stop patches by default
in unit tests. This behavior can be overwritten
by setting an attribute on the test class if
required.

Also removes the explicit stops in the Cisco n1kv,
VMware, and NEC unit tests to leverage the new
automatic cleanup.

Closes-Bug: #1290550
Change-Id: Ic642430a765ea8deb07ebd88b619da58a58e0edd
Merge "NSX: Add ability to retry on 503's returned by the controller"
Merge "Call target plugin out of DB transaction in the Metaplugin"
Merge "Updated from global requirements"
Merge "Optimize floating IP status update"
Merge "Query for port before calling l3plugin.disassociate_floatingips()"
Merge "Stop mock patches by default in base test class"
Merge "NSX: Allow multiple references to same gw device"