def fail(errback, audit, msg, res = nil)
      if msg.kind_of?(Exception)
        e = msg
        detailed = Log.format("Could not process shutdown state #{self}", e, :trace)
        msg = e.message
      else
        detailed = nil
      end
      msg += ": #{res.content}" if res && res.content
      audit.append_error(msg, :category => RightScale::EventCategories::CATEGORY_ERROR) if audit
      Log.error(detailed) if detailed
      errback.call if errback
      true
    end
def fail(errback, audit, msg, res = nil)
      if msg.kind_of?(Exception)
        e = msg
        detailed = Log.format("Could not process shutdown state #{self}", e, :trace)
        msg = e.message
      else
        detailed = nil
      end
      msg += ": #{res.content}" if res && res.content
      audit.append_error(msg, :category => RightScale::EventCategories::CATEGORY_ERROR) if audit
      Log.error(detailed) if detailed
      errback.call if errback
      true
    end
Handles any shutdown failure.

 === Parameters
 audit(Audit):: Audit or nil
 errback(Proc):: error handler or nil
 msg(String):: Error message that will be audited and logged
 res(RightScale::OperationResult):: Operation result with additional information

 === Return
 always true