private boolean ActivateStorageDomains() {
    boolean returnValue = true;
    for (final Guid storageDomainId : getParameters().getStorages()) {
      StorageDomainPoolParametersBase activateParameters =
          new StorageDomainPoolParametersBase(storageDomainId, getStoragePool().getId());
      activateParameters.setSessionId(getParameters().getSessionId());
      activateParameters.setTransactionScopeOption(TransactionScopeOption.RequiresNew);
      returnValue =
          Backend.getInstance()
              .runInternalAction(VdcActionType.ActivateStorageDomain, activateParameters)
              .getSucceeded();

      // if activate domain failed then set domain status to inactive
      if (!returnValue) {
        TransactionSupport.executeInNewTransaction(
            new TransactionMethod<Void>() {
              @Override
              public Void runInTransaction() {
                DbFacade.getInstance()
                    .getStoragePoolIsoMapDao()
                    .updateStatus(
                        new StoragePoolIsoMapId(storageDomainId, getStoragePool().getId()),
                        StorageDomainStatus.InActive);
                return null;
              }
            });
      }
    }

    return returnValue;
  }
 @Override
 public EventResult storageDomainNotOperational(Guid storageDomainId, Guid storagePoolId) {
   StorageDomainPoolParametersBase parameters =
       new StorageDomainPoolParametersBase(storageDomainId, storagePoolId);
   parameters.setIsInternal(true);
   parameters.setInactive(true);
   boolean isSucceeded =
       backend
           .runInternalAction(
               VdcActionType.DeactivateStorageDomain,
               parameters,
               ExecutionHandler.createInternalJobContext())
           .getSucceeded();
   return new EventResult(isSucceeded, EventType.DOMAINNOTOPERATIONAL);
 }