   ###
   createSnapshot: (machine, label) ->
 
-    return if methodNotSupportedBy machine
+    return  if methodNotSupportedBy machine, 'createSnapshot'
 
     @eventListener.triggerState machine,
       status      : Machine.State.Snapshotting


  start: (machine) ->

    return if methodNotSupportedBy machine

    @eventListener.triggerState machine,
      status      : Machine.State.Starting

    @_trials[machine.uid] = {}


  methodNotSupportedBy = (machine, method) ->

    NotSupported = {
      name    : 'NotSupported'
      message : 'Operation is not supported for this VM'
    }

    if machine?.provider is 'managed'
      return NotSupported

    if method?
      switch method
        when 'reinit', 'createSnapshot'
          return NotSupported  if provider in ['aws', 'softlayer']



  errorHandler: (call, task, machine)->

