import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.Tunnel;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.ServicesInfo;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
@Override
- public List<ListenableFuture<Void>> unbindService(InstanceIdentifier<BoundServices> instanceIdentifier,
- BoundServices boundServiceOld) {
+ public List<ListenableFuture<Void>> unbindService(String interfaceName, BoundServices boundServiceOld,
+ List<BoundServices> boundServices) {
List<ListenableFuture<Void>> futures = new ArrayList<>();
DataBroker dataBroker = interfaceMgrProvider.getDataBroker();
- String interfaceName =
- InstanceIdentifier.keyOf(instanceIdentifier.firstIdentifierOf(ServicesInfo.class)).getInterfaceName();
- Class<? extends ServiceModeBase> serviceMode = InstanceIdentifier
- .keyOf(instanceIdentifier.firstIdentifierOf(ServicesInfo.class)).getServiceMode();
-
- // Get the Parent ServiceInfo
- ServicesInfo servicesInfo = FlowBasedServicesUtils.getServicesInfoForInterface(interfaceName, serviceMode,
- dataBroker);
- if (servicesInfo == null) {
- LOG.error("Reached Impossible part in the code for bound service: {}", boundServiceOld);
- return futures;
- }
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface
- ifState = InterfaceManagerCommonUtils.getInterfaceStateFromOperDS(interfaceName, dataBroker);
+ ifState = InterfaceManagerCommonUtils.getInterfaceState(interfaceName, dataBroker);
if (ifState == null) {
LOG.info("Interface not operational, not unbinding Service for Interface: {}", interfaceName);
return futures;
}
- List<BoundServices> boundServices = servicesInfo.getBoundServices();
if (L2vlan.class.equals(ifState.getType())
|| Tunnel.class.equals(ifState.getType())) {