# File lib/deltacloud/drivers/rhevm/rhevm_client.rb, line 69
    def vm_action(id, action, headers={})
      headers.merge!(auth_header)
      headers.merge!({
        :content_type => 'application/xml',
        :accept => 'application/xml',
      })
      if action==:delete
        RHEVM::client(@api_entrypoint)["/vms/%s" % id].delete(headers)
      else
        begin
          client_response = RHEVM::client(@api_entrypoint)["/vms/%s/%s" % [id, action]].post('<action/>', headers)
        rescue
          if $!.is_a?(RestClient::BadRequest)
            fault = (Nokogiri::XML($!.http_body)/'//fault/detail')
            fault = fault.text.gsub(/\[|\]/, '') if fault
          end
          fault ||= $!.message
          raise RHEVMBackendException::new(fault)
        end
        xml_response = Client::parse_response(client_response)

        return false if (xml_response/'action/status').first.text.strip.upcase!="COMPLETE"
      end
      return true
    end