'Delete an instance on this host.
:param context: nova request context
:param instance: nova.objects.instance.Instance object
:param bdms: nova.objects.block_device.BlockDeviceMappingList object'

@hooks.add_hook('delete_instance')
def _delete_instance(self, context, instance, bdms):

    events = self.instance_events.clear_events_for_instance(instance)
    if events:
        LOG.debug('Events    pending    at    deletion:    %(events)s', {'events': ','.join(events.keys())}, instance=instance)
    self._notify_about_instance_usage(context, instance, 'delete.start')
    compute_utils.notify_about_instance_action(context, instance, self.host, action=fields.NotificationAction.DELETE, phase=fields.NotificationPhase.START)
    self._shutdown_instance(context, instance, bdms)
    if (instance.info_cache is not None):
        instance.info_cache.delete()
    else:
        LOG.warning('Info    cache    for    instance    could    not    be    found.    Ignore.', instance=instance)
    self._cleanup_volumes(context, instance.uuid, bdms, raise_exc=False)
    instance.vm_state = vm_states.DELETED
    instance.task_state = None
    instance.power_state = power_state.NOSTATE
    instance.terminated_at = timeutils.utcnow()
    instance.save()
    system_meta = instance.system_metadata
    instance.destroy()
    self._complete_deletion(context, instance, bdms, system_meta)
