- for (Entry<InstanceIdentifier<?>, DataObject> fcncEntry : change.getCreatedData().entrySet()) {
- if (FlowCapableNodeConnector.class.equals(fcncEntry.getKey().getTargetType())) {
- InstanceIdentifier<NodeConnector> ncIid = fcncEntry.getKey().firstIdentifierOf(NodeConnector.class);
- FlowCapableNodeConnector fcnc = (FlowCapableNodeConnector) fcncEntry.getValue();
- LOG.trace(
- "FlowCapableNodeConnector created: NodeId: {} NodeConnectorId: {} FlowCapableNodeConnector: {}",
- ncIid.firstKeyOf(Node.class, NodeKey.class).getId().getValue(),
- ncIid.firstKeyOf(NodeConnector.class, NodeConnectorKey.class).getId().getValue(), fcnc);
- switchManager.updateSwitchNodeConnectorConfig(ncIid, fcnc);
- Name portName = getPortName(fcnc);
- boolean updated = updateEpWithNodeConnectorInfo(epWithOfOverlayAugByPortName.get(portName), ncIid, rwTx);
- boolean l3Updated = updateL3EpWithNodeConnectorInfo(l3EpWithOfOverlayAugByPortName.get(portName), ncIid, rwTx);
- if (updated || l3Updated) {
- isDataPutToTx = true;
- }
- }
- }
- for (Entry<InstanceIdentifier<?>, DataObject> fcncEntry : change.getUpdatedData().entrySet()) {
- if (FlowCapableNodeConnector.class.equals(fcncEntry.getKey().getTargetType())) {
- InstanceIdentifier<NodeConnector> ncIid = fcncEntry.getKey().firstIdentifierOf(NodeConnector.class);
- FlowCapableNodeConnector fcnc = (FlowCapableNodeConnector) fcncEntry.getValue();
- LOG.trace(
- "FlowCapableNodeConnector updated: NodeId: {} NodeConnectorId: {} FlowCapableNodeConnector: {}",
- ncIid.firstKeyOf(Node.class, NodeKey.class).getId().getValue(),
- ncIid.firstKeyOf(NodeConnector.class, NodeConnectorKey.class).getId().getValue(), fcnc);
- switchManager.updateSwitchNodeConnectorConfig(ncIid, fcnc);
- Name portName = getPortName(fcnc);
- boolean updated = updateEpWithNodeConnectorInfo(epWithOfOverlayAugByPortName.get(portName), ncIid, rwTx);
- boolean l3Updated = updateL3EpWithNodeConnectorInfo(l3EpWithOfOverlayAugByPortName.get(portName), ncIid, rwTx);
- if (updated || l3Updated) {
- isDataPutToTx = true;
- }
- FlowCapableNodeConnector originalFcnc = (FlowCapableNodeConnector) change.getOriginalData().get(
- fcncEntry.getKey());
- Name portNameFromOriginalFcnc = getPortName(originalFcnc);
- // port name already existed and then was changed
- if (portNameFromOriginalFcnc != null && !Objects.equal(portNameFromOriginalFcnc, portName)) {
- updated = updateEpWithNodeConnectorInfo(epWithOfOverlayAugByPortName
- .get(portNameFromOriginalFcnc), null, rwTx);
- l3Updated = updateL3EpWithNodeConnectorInfo(l3EpWithOfOverlayAugByPortName
- .get(portNameFromOriginalFcnc), null, rwTx);
+ for (DataTreeModification<FlowCapableNodeConnector> change: changes) {
+ DataObjectModification<FlowCapableNodeConnector> rootNode = change.getRootNode();
+ InstanceIdentifier<NodeConnector> ncIid = change.getRootPath().getRootIdentifier()
+ .firstIdentifierOf(NodeConnector.class);
+ final FlowCapableNodeConnector originalFcnc = rootNode.getDataBefore();
+ boolean updated;
+ boolean l3Updated;
+ switch (rootNode.getModificationType()) {
+ case SUBTREE_MODIFIED:
+ case WRITE:
+ FlowCapableNodeConnector fcnc = rootNode.getDataAfter();
+ LOG.trace(
+ "FlowCapableNodeConnector updated: NodeId: {} NodeConnectorId: {} FlowCapableNodeConnector: {}",
+ ncIid.firstKeyOf(Node.class, NodeKey.class).getId().getValue(),
+ ncIid.firstKeyOf(NodeConnector.class, NodeConnectorKey.class).getId().getValue(), fcnc);
+ switchManager.updateSwitchNodeConnectorConfig(ncIid, fcnc);
+ Name portName = getPortName(fcnc);
+ updated = updateEpWithNodeConnectorInfo(epWithOfOverlayAugByPortName.get(portName), ncIid, rwTx);
+ l3Updated = updateL3EpWithNodeConnectorInfo(l3EpWithOfOverlayAugByPortName.get(portName), ncIid, rwTx);