*/
package org.opendaylight.netvirt.elan.internal;
+import com.google.common.util.concurrent.ListenableFuture;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
+import org.opendaylight.netvirt.elan.utils.ElanUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.util.concurrent.ListenableFuture;
-
public class InterfaceRemoveWorkerOnElan implements Callable<List<ListenableFuture<Void>>> {
- private String key;
- private ElanInstance elanInfo;
- private String interfaceName;
- private InterfaceInfo interfaceInfo;
- private boolean isInterfaceStateRemoved;
- private ElanInterfaceManager dataChangeListener;
- private static final Logger logger = LoggerFactory.getLogger(InterfaceRemoveWorkerOnElan.class);
+
+ private static final Logger LOG = LoggerFactory.getLogger(InterfaceRemoveWorkerOnElan.class);
+
+ private final String key;
+ private final ElanInstance elanInfo;
+ private final String interfaceName;
+ private final InterfaceInfo interfaceInfo;
+ private final ElanInterfaceManager dataChangeListener;
public InterfaceRemoveWorkerOnElan(String key, ElanInstance elanInfo, String interfaceName,
- InterfaceInfo interfaceInfo, boolean isInterfaceStateRemoved, ElanInterfaceManager dataChangeListener) {
- super();
+ InterfaceInfo interfaceInfo, ElanInterfaceManager dataChangeListener) {
this.key = key;
this.elanInfo = elanInfo;
this.interfaceName = interfaceName;
this.interfaceInfo = interfaceInfo;
- this.isInterfaceStateRemoved = isInterfaceStateRemoved;
this.dataChangeListener = dataChangeListener;
}
@Override
public String toString() {
- return "InterfaceRemoveWorkerOnElan [key=" + key + ", elanInfo=" + elanInfo +
- ", interfaceName=" + interfaceName
+ return "InterfaceRemoveWorkerOnElan [key=" + key + ", elanInfo=" + elanInfo
+ + ", interfaceName=" + interfaceName
+ ", interfaceInfo=" + interfaceInfo + "]";
}
@Override
+ @SuppressWarnings("checkstyle:IllegalCatch")
public List<ListenableFuture<Void>> call() throws Exception {
List<ListenableFuture<Void>> futures = new ArrayList<>();
try {
- dataChangeListener.removeElanInterface(futures, elanInfo, interfaceName, interfaceInfo, isInterfaceStateRemoved);
- } catch (Exception e) {
- logger.error("Error while processing {} for {}, error {}", key, interfaceName, e);
+ futures.addAll(dataChangeListener.removeElanInterface(elanInfo, interfaceName, interfaceInfo));
+ } catch (RuntimeException e) {
+ LOG.error("Error while processing key {} for elan interface {} and elan {}",
+ key, interfaceName, elanInfo, e);
+ ElanUtils.addToListenableFutureIfTxException(e, futures);
}
return futures;
}