void handleunprocessedElanInterfaces(ElanInstance elanInstance) throws ElanException { List<ListenableFuture<Void>> futures = new ArrayList<>(); Queue<ElanInterface> elanInterfaces = unProcessedElanInterfaces.get(elanInstance.getElanInstanceName()); if (elanInterfaces == null || elanInterfaces.isEmpty()) { return; } for (ElanInterface elanInterface : elanInterfaces) { String interfaceName = elanInterface.getName(); InterfaceInfo interfaceInfo = interfaceManager.getInterfaceInfo(interfaceName); addElanInterface(futures, elanInterface, interfaceInfo, elanInstance); } }
@Override public List<String> getElanInterfaces(String elanInstanceName) { List<String> elanInterfaces = new ArrayList<>(); InstanceIdentifier<ElanInterfaces> elanInterfacesIdentifier = InstanceIdentifier.builder(ElanInterfaces.class) .build(); Optional<ElanInterfaces> elanInterfacesOptional = elanUtils.read(broker, LogicalDatastoreType.CONFIGURATION, elanInterfacesIdentifier); if (!elanInterfacesOptional.isPresent()) { return elanInterfaces; } List<ElanInterface> elanInterfaceList = elanInterfacesOptional.get().getElanInterface(); for (ElanInterface elanInterface : elanInterfaceList) { if (elanInterface.getElanInstanceName().equals(elanInstanceName)) { elanInterfaces.add(elanInterface.getName()); } } return elanInterfaces; }
private void bindEtreeService(ElanInstance elanInfo, ElanInterface elanInterface, WriteTransaction tx) { if (elanInterface.getAugmentation(EtreeInterface.class).getEtreeInterfaceType() == EtreeInterfaceType.Root) { bindElanService(elanInfo.getElanTag(), elanInfo.getElanInstanceName(), elanInterface.getName(), tx); } else { EtreeInstance etreeInstance = elanInfo.getAugmentation(EtreeInstance.class); if (etreeInstance == null) { LOG.error("EtreeInterface " + elanInterface.getName() + " is associated with a non EtreeInstance: " + elanInfo.getElanInstanceName()); } else { bindElanService(etreeInstance.getEtreeLeafTagVal().getValue(), elanInfo.getElanInstanceName(), elanInterface.getName(), tx); } } }
@Override public void onDataTreeChanged(Collection<DataTreeModification<ElanInterface>> changes) { for (DataTreeModification<ElanInterface> change : changes) { DataObjectModification<ElanInterface> mod = change.getRootNode(); switch (mod.getModificationType()) { case DELETE: ElanUtils.removeElanInterfaceFromCache(mod.getDataBefore().getName()); break; case SUBTREE_MODIFIED: case WRITE: ElanInterface elanInterface = mod.getDataAfter(); ElanUtils.addElanInterfaceIntoCache(elanInterface.getName(), elanInterface); break; default: throw new IllegalArgumentException("Unhandled modification type " + mod.getModificationType()); } } }
private void bindService(ElanInstance elanInfo, ElanInterface elanInterface, WriteTransaction tx) { if (isStandardElanService(elanInterface)) { bindElanService(elanInfo.getElanTag(), elanInfo.getElanInstanceName(), elanInterface.getName(), tx); } else { // Etree service bindEtreeService(elanInfo, elanInterface, tx); } }
String interfaceName = update.getName(); List<PhysAddress> existingPhysAddress = original.getStaticMacEntries(); List<PhysAddress> updatedPhysAddress = update.getStaticMacEntries();
@Override protected void add(InstanceIdentifier<ElanInterface> identifier, ElanInterface elanInterfaceAdded) { String elanInstanceName = elanInterfaceAdded.getElanInstanceName(); String interfaceName = elanInterfaceAdded.getName(); InterfaceInfo interfaceInfo = interfaceManager.getInterfaceInfo(interfaceName); if (interfaceInfo == null) {
Preconditions.checkNotNull(elanInterface, "elanInterface cannot be null"); String interfaceName = elanInterface.getName(); String elanInstanceName = elanInterface.getElanInstanceName();
@Override protected void remove(InstanceIdentifier<ElanInterface> identifier, ElanInterface del) { String interfaceName = del.getName(); ElanInstance elanInfo = ElanUtils.getElanInstanceByName(broker, del.getElanInstanceName()); /* * Handling in case the elan instance is deleted.If the Elan instance is * deleted, there is no need to explicitly delete the elan interfaces */ if (elanInfo == null) { return; } InterfaceInfo interfaceInfo = interfaceManager.getInterfaceInfo(interfaceName); String elanInstanceName = elanInfo.getElanInstanceName(); DataStoreJobCoordinator coordinator = DataStoreJobCoordinator.getInstance(); InterfaceRemoveWorkerOnElan configWorker = new InterfaceRemoveWorkerOnElan(elanInstanceName, elanInfo, interfaceName, interfaceInfo, false, this); coordinator.enqueueJob(elanInstanceName, configWorker, ElanConstants.JOB_MAX_RETRIES); }
throws ElanException { String elanInstanceName = elanInstance.getElanInstanceName(); String interfaceName = elanInterface.getName(); WriteTransaction tx = broker.newWriteOnlyTransaction(); BigInteger dpId = interfaceInfo.getDpId();