@Override
  protected boolean canDoAction() {
    if (getVm() == null) {
      return failCanDoAction(EngineMessage.ACTION_TYPE_FAILED_VM_NOT_FOUND);
    }
    if (getVm().getStatus() != VMStatus.Up) {
      return failVmStatusIllegal();
    }
    if (!FeatureSupported.vmSlaPolicy(getVm().getVdsGroupCompatibilityVersion())) {
      return failCanDoAction(EngineMessage.VM_SLA_POLICY_NOT_SUPPORTED);
    }

    return true;
  }