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.ElanException;
+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;
private static final Logger LOG = LoggerFactory.getLogger(InterfaceRemoveWorkerOnElan.class);
- private String key;
- private ElanInstance elanInfo;
- private String interfaceName;
- private InterfaceInfo interfaceInfo;
- private boolean isInterfaceStateRemoved;
- private ElanInterfaceManager dataChangeListener;
+ 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;
}
public List<ListenableFuture<Void>> call() throws Exception {
List<ListenableFuture<Void>> futures = new ArrayList<>();
try {
- dataChangeListener.removeElanInterface(futures, elanInfo, interfaceName, interfaceInfo,
- isInterfaceStateRemoved);
+ futures.addAll(dataChangeListener.removeElanInterface(elanInfo, interfaceName, interfaceInfo));
} catch (RuntimeException e) {
- throw new ElanException("Error while processing " + key + " for " + interfaceName, e);
+ LOG.error("Error while processing key {} for elan interface {} and elan {}",
+ key, interfaceName, elanInfo, e);
+ ElanUtils.addToListenableFutureIfTxException(e, futures);
}
return futures;
}