'Given the set of instances and migrations already account for
by resource tracker, sanity check the hypervisor to determine
if there are any "orphaned" instances left hanging around.
Orphans could be consuming memory and should be accounted for in
usage calculations to guard against potential out of memory
errors.'

def _find_orphaned_instances(self):

    uuids1 = frozenset(self.tracked_instances.keys())
    uuids2 = frozenset(self.tracked_migrations.keys())
    uuids = (uuids1 | uuids2)
    usage = self.driver.get_per_instance_usage()
    vuuids = frozenset(usage.keys())
    orphan_uuids = (vuuids - uuids)
    orphans = [usage[uuid] for uuid in orphan_uuids]
    return orphans
