'Post operations for live migration .
:param context: security context
:param instance: Instance dict
:param block_migration: if true, prepare for block migration'

@wrap_exception()
@wrap_instance_event(prefix='compute')
@wrap_instance_fault
def post_live_migration_at_destination(self, context, instance, block_migration):

    LOG.info('Post    operation    of    migration    started', instance=instance)
    self.network_api.setup_networks_on_host(context, instance, self.host)
    migration = {'source_compute': instance.host, 'dest_compute': self.host}
    self.network_api.migrate_instance_finish(context, instance, migration)
    network_info = self.network_api.get_instance_nw_info(context, instance)
    self._notify_about_instance_usage(context, instance, 'live_migration.post.dest.start', network_info=network_info)
    block_device_info = self._get_instance_block_device_info(context, instance)
    try:
        self.driver.post_live_migration_at_destination(context, instance, network_info, block_migration, block_device_info)
    except Exception:
        with excutils.save_and_reraise_exception():
            instance.vm_state = vm_states.ERROR
            LOG.error('Unexpected    error    during    post    live    migration    at    destination    host.', instance=instance)
    finally:
        current_power_state = self._get_power_state(context, instance)
        node_name = None
        prev_host = instance.host
        try:
            compute_node = self._get_compute_info(context, self.host)
            node_name = compute_node.hypervisor_hostname
        except exception.ComputeHostNotFound:
            LOG.exception('Failed    to    get    compute_info    for    %s', self.host)
        finally:
            instance.host = self.host
            instance.power_state = current_power_state
            instance.task_state = None
            instance.node = node_name
            instance.progress = 0
            instance.save(expected_task_state=task_states.MIGRATING)
    self.network_api.setup_networks_on_host(context, instance, prev_host, teardown=True)
    self.network_api.setup_networks_on_host(context, instance, self.host)
    self._notify_about_instance_usage(context, instance, 'live_migration.post.dest.end', network_info=network_info)
