package org.ovirt.engine.core.bll.storage;

import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.common.businessentities.StoragePool;
import org.ovirt.engine.core.utils.log.Log;
import org.ovirt.engine.core.utils.log.LogFactory;

public class ConnectSingleAsyncOperation extends ActivateDeactivateSingleAsyncOperation {

    public ConnectSingleAsyncOperation(java.util.ArrayList<VDS> vdss, StorageDomain domain, StoragePool storagePool) {
        super(vdss, domain, storagePool);
    }

    @Override
    public void execute(int iterationId) {
        VDS vds = getVdss().get(iterationId);

        try {
            StorageHelperDirector.getInstance().getItem(getStorageDomain().getStorageType())
                    .connectStorageToDomainByVdsId(getStorageDomain(), vds.getId());
        } catch (RuntimeException e) {
            log.errorFormat("Failed to connect host {0} to storage domain (name: {1}, id: {2}). Exception: {3}",
                    vds.getName(), getStorageDomain().getName(), getStorageDomain().getId(), e);
        }
    }

    private static Log log = LogFactory.getLog(ConnectSingleAsyncOperation.class);
}

package org.ovirt.engine.core.bll.storage;

import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.common.businessentities.StoragePool;
import org.ovirt.engine.core.utils.log.Log;
import org.ovirt.engine.core.utils.log.LogFactory;

public class ConnectSingleAsyncOperation extends ActivateDeactivateSingleAsyncOperation {

    public ConnectSingleAsyncOperation(java.util.ArrayList<VDS> vdss, StorageDomain domain, StoragePool storagePool) {
        super(vdss, domain, storagePool);
    }

    @Override
    public void execute(int iterationId) {
        try {
            StorageHelperDirector.getInstance().getItem(getStorageDomain().getStorageType())
                    .connectStorageToDomainByVdsId(getStorageDomain(), getVdss().get(iterationId).getId());
        } catch (RuntimeException e) {
            log.errorFormat("Failed to connect host {0} to storage pool {1}. Exception: {3}", getVdss()
                    .get(iterationId).getName(), getStoragePool().getName(), e);
        }
    }

    private static Log log = LogFactory.getLog(ConnectSingleAsyncOperation.class);
}

--- 
+++ 
@@ -14,12 +14,14 @@
 
     @Override
     public void execute(int iterationId) {
+        VDS vds = getVdss().get(iterationId);
+
         try {
             StorageHelperDirector.getInstance().getItem(getStorageDomain().getStorageType())
-                    .connectStorageToDomainByVdsId(getStorageDomain(), getVdss().get(iterationId).getId());
+                    .connectStorageToDomainByVdsId(getStorageDomain(), vds.getId());
         } catch (RuntimeException e) {
-            log.errorFormat("Failed to connect host {0} to storage pool {1}. Exception: {3}", getVdss()
-                    .get(iterationId).getName(), getStoragePool().getName(), e);
+            log.errorFormat("Failed to connect host {0} to storage domain (name: {1}, id: {2}). Exception: {3}",
+                    vds.getName(), getStorageDomain().getName(), getStorageDomain().getId(), e);
         }
     }
 
engine: Improve log message on failure to connect to storage server

From now on log message will contain name and id of the relevant
storage domain a host failed to connect to.

Change-Id: Ife941b59766e699a046122abc74aaede366a2015
Signed-off-by: Sergey Gotliv <76a2e639c7812c7311d8d25c611b643bca4ae95e@redhat.com>
