@Override
 protected void executeCommand() {
   TransactionSupport.executeInNewTransaction(
       new TransactionMethod<Object>() {
         @Override
         public Object runInTransaction() {
           storage_pool_iso_map domainPoolMap =
               new storage_pool_iso_map(
                   getRecoveryStoragePoolParametersData().getNewMasterDomainId(),
                   getRecoveryStoragePoolParametersData().getStoragePoolId(),
                   StorageDomainStatus.Active);
           DbFacade.getInstance().getStoragePoolIsoMapDAO().save(domainPoolMap);
           getCompensationContext().snapshotNewEntity(domainPoolMap);
           getCompensationContext().stateChanged();
           return null;
         }
       });
   getStoragePool().setstatus(StoragePoolStatus.Problematic);
   if (StorageHelperDirector.getInstance()
       .getItem(getStorageDomain().getstorage_type())
       .ConnectStorageToDomainByVdsId(getNewMaster(), getVds().getvds_id())) {
     super.executeCommand();
   } else {
     getReturnValue()
         .setFault(
             new VdcFault(
                 new VdcBLLException(
                     VdcBllErrors.StorageServerConnectionError, "Failed to connect storage"),
                 VdcBllErrors.StorageServerConnectionError));
   }
 }
 @Override
 public NGuid getStorageDomainId() {
   super.setStorageDomainId(getMasterDomainIdFromDb());
   return super.getStorageDomainId();
 }