Handle over quota exception from Neutron

When using the floating IP in Nova with Neutron, and
a quota limit is exceeded in Neutron, the exception from
the Neutron client results in Nova generating a 500 error.
This is unhelpful to user, and not consistent with nova-networking
Return FloatingIPExceedLimit exception when quota exceeded.

Change I8788993578ac872da9f676fe3e2fb8f98414289d at neutronclient
add OverQuotaClient exception and it is used in this patch

Change-Id: Ieb90521cf231acae8b5a9920acf6c77f2e34ef67
Closes-Bug: #1210598
Closes-Bug: #1301117
Improve shared storage checks for live migration

Due to an assumption that libvirt live migrations work only when both
instance path and disk data is shared between source and destination
hosts (e.g. libvirt instances directory is on NFS), instance disks are
removed from shared storage when instance path is not shared (e.g. Ceph
RBD backend is enabled).

Distinguish cases that require shared instance drive and shared libvirt
instance directory. Reflect the fact that RBD backed instances have
shared instance drive (and no shared libvirt instance directory) in the
relevant conditionals.

UpgradeImpact: Live migrations from or to a compute host running a
version of Nova pre-dating this commit are disabled in order to
eliminate possibility of data loss. Upgrade Nova on both the source and
the target node before attempting a live migration.

Closes-bug: 1250751
Closes-bug: 1314526
Co-authored-by: Ryan Moe <rmoe@mirantis.com>
Co-authored-by: Yaguang Tang <yaguang.tang@canonical.com>
Signed-off-by: Dmitry Borodaenko <dborodaenko@mirantis.com>
Change-Id: I2755c59b4db736151000dae351fd776d3c15ca39
Merge "Improve shared storage checks for live migration"
Merge "Handle over quota exception from Neutron"