Add debug log when over quota exception occurs

There are some weird logs showed in bug 1353962, with
current logs we can't decide which part is wrong.
Add more logs will help operater to know the real reason
that make the quota exceed.

If this change makes too much log out, after bug 1353962
is fixed, we can talk about remove those logs, but currently
it will be helpful.

Change-Id: I2ab1fb62efc06b1cee213920539980e331870bf5
Related-Bug: #1353962
Fix exception handling in _get_host_metrics()

In resource_tracker.py, the exception path of _get_host_metrics()
misspells variable name 'monitor'. When exception occurs, this
misspelling prevents us to log warning message. This code change
corrects the misspelling.

Closes-Bug: 1394052

Change-Id: I8a99a4ceb53c89038e8b292a15ad9fd20daa4233
Fix connecting unnecessary iSCSI sessions issue

In Icehouse with "iscsi_use_multipath=true", attaching a multipath
iSCSI volume may create unnecessary iSCSI sessions.

The iscsiadm discovery command in connect_volume() returns all of the
targets in the Cinder node, not just the ones related to the multipath
volume which is specified by iqn.  If the storage has many targets,
connecting to all these volumes will also result in many unnecessary
connections.

There are two types of iSCSI multipath devices.  One which shares
the same iqn between multiple portals, and the other which use
different iqns on different portals. connect_volume() needs to
identify the type by checking iscsiadm the output if the iqn is
used by multiple portals.

This patch changes the behavior of attaching volume:

   1. Identify the type by checking the iscsiadm output.
   2. Connect to the correct targets by connect_to_iscsi_portal().

Closes-Bug: #1382440

Change-Id: I488ad0c09bf26a609e27d67b9ef60b65bb45e0ad
Make notifications use Instance.get_flavor()

This makes the notifications.info_from_instance() method use the
Instance.get_flavor() method to retrieve flavor information, instead
of assuming that it is in system_metadata. This requires that it is
passed an Instance object, so this patch also converts the code to
make that assumption (which needs doing anyway) and fixes remaining
dict-using callers to pass the object. This will be required by a
subsequent patch to refactor flavor storage.

Related to blueprint flavor-from-sysmeta-to-blob

Change-Id: I6e4e07807cb6cd173d54137d4fe8d9b1a0d49709
Merge "Fix exception handling in _get_host_metrics()"
Merge "Make notifications use Instance.get_flavor()"
Merge "Fix connecting unnecessary iSCSI sessions issue"
Merge "Add debug log when over quota exception occurs"
Fix for extra_specs KeyError

During _cold_migrate, there is a code path when
extra_specs is not present in the request_spec['instance_type']
bag. Identified one test case where removing extra_specs
causes the same error as reported in the bug below. We
just need to tolerate this by using a default value for pop()

Closes-Bug: #1394569

Change-Id: I9d4d02069322af1a1f0b84c1e86d2e586c6712d8
Merge "Fix for extra_specs KeyError"