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;
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 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
+ @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) {
- LOG.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;
}