'Remove a shelved instance from the hypervisor.
This frees up those resources for use by other instances, but may lead
to slower unshelve times for this instance.  This method is used by
volume backed instances since restoring them doesn\'t involve the
potentially large download of an image.
:param context: request context
:param instance: nova.objects.instance.Instance
:param clean_shutdown: give the GuestOS a chance to stop'

@wrap_exception()
@reverts_task_state
@wrap_instance_fault
def shelve_offload_instance(self, context, instance, clean_shutdown):

    @utils.synchronized(instance.uuid)
    def do_shelve_offload_instance():
        self._shelve_offload_instance(context, instance, clean_shutdown)
    do_shelve_offload_instance()
