docs: def destroy(name, call=None):
      """
      This function irreversibly destroys a virtual machine on the cloud provider.
      Before doing so, it should fire an event on the Salt event bus.
  
      The tag for this event is `salt/cloud/<vm name>/destroying`.
      Once the virtual machine has been destroyed, another event is fired.
      The tag for that event is `salt/cloud/<vm name>/destroyed`.
  
      Dependencies:
          list_nodes
  
      @param name:
      @type name: str
      @param call:
      @type call:
      @return: True if all went well, otherwise an error message
      @rtype: bool|str
      """
      log.info("Attempting to delete instance %s", name)
      if not vb_machine_exists(name):
          return "{0} doesn't exist and can't be deleted".format(name)
  
      __utils__['cloud.fire_event'](
          'event',
          'destroying instance',
          'salt/cloud/{0}/destroying'.format(name),
          args={'name': name},
          sock_dir=__opts__['sock_dir'],
          transport=__opts__['transport']
      )
  
      vb_destroy_machine(name)
  
      __utils__['cloud.fire_event'](
          'event',
          'destroyed instance',
          'salt/cloud/{0}/destroyed'.format(name),
          args={'name': name},
          sock_dir=__opts__['sock_dir'],
          transport=__opts__['transport']
      )