BundleId bundleId = bundleIdMap.get(nodeId).getBundleId();
if (bundleId != null) {
final ControlBundleInput commitBundleInput = new ControlBundleInputBuilder()
- .setNode(input.getNode()).setBundleId(bundleId)
+ .setNode(input.getNode())
+ .setBundleId(bundleId)
.setFlags(BUNDLE_FLAGS)
- .setType(BundleControlType.ONFBCTCOMMITREQUEST).build();
+ .setType(BundleControlType.ONFBCTCOMMITREQUEST)
+ .build();
ListenableFuture<RpcResult<ControlBundleOutput>> rpcResult = salBundleService
.controlBundle(commitBundleInput);
bundleIdMap.put(nodeId, new BundleDetails(bundleId, rpcResult));
- Futures.addCallback(rpcResult, new CommitActiveBundleCallback(nodeId),
+
+ Futures.addCallback(rpcResult,
+ new CommitActiveBundleCallback(nodeId),
MoreExecutors.directExecutor());
return Futures.transform(
rpcResult,
}
@Override
- public ListenableFuture<RpcResult<GetActiveBundleOutput>> getActiveBundle(GetActiveBundleInput input) {
+ public ListenableFuture<RpcResult<GetActiveBundleOutput>> getActiveBundle(final GetActiveBundleInput input) {
Uint64 nodeId = input.getNodeId();
BundleDetails bundleDetails = bundleIdMap.get(nodeId);
if (bundleDetails != null) {
// pipeline when the commit bundle is ongoing.
bundleDetails.getResult().get();
return RpcResultBuilder.success(new GetActiveBundleOutputBuilder()
- .setResult(bundleDetails.getBundleId()).build()).buildFuture();
+ .setResult(bundleDetails.getBundleId())
+ .build())
+ .buildFuture();
} catch (InterruptedException | ExecutionException | NullPointerException e) {
return RpcResultBuilder.<GetActiveBundleOutput>failed()
.withRpcErrors(Collections.singleton(RpcResultBuilder.newError(RpcError.ErrorType.APPLICATION,
justification = "https://github.com/spotbugs/spotbugs/issues/811")
private Messages createMessages(final NodeRef nodeRef) {
final List<Message> messages = new ArrayList<>();
- messages.add(new MessageBuilder().setNode(nodeRef).setBundleInnerMessage(DELETE_ALL_FLOW).build());
- messages.add(new MessageBuilder().setNode(nodeRef).setBundleInnerMessage(DELETE_ALL_GROUP).build());
+ messages.add(new MessageBuilder()
+ .setNode(nodeRef)
+ .setBundleInnerMessage(DELETE_ALL_FLOW).build());
+ messages.add(new MessageBuilder()
+ .setNode(nodeRef)
+ .setBundleInnerMessage(DELETE_ALL_GROUP).build());
LOG.debug("The size of the flows and group messages created in createMessage() {}", messages.size());
return new MessagesBuilder().setMessage(messages).build();
}
LOG.debug("Triggering arbitrator reconciliation for device :{}", node);
final NodeRef nodeRef = new NodeRef(nodeIdentity.firstIdentifierOf(Node.class));
- final ControlBundleInput closeBundleInput = new ControlBundleInputBuilder().setNode(nodeRef)
- .setBundleId(bundleIdValue).setFlags(BUNDLE_FLAGS)
- .setType(BundleControlType.ONFBCTCLOSEREQUEST).build();
+ final ControlBundleInput closeBundleInput = new ControlBundleInputBuilder()
+ .setNode(nodeRef)
+ .setBundleId(bundleIdValue)
+ .setFlags(BUNDLE_FLAGS)
+ .setType(BundleControlType.ONFBCTCLOSEREQUEST)
+ .build();
- final ControlBundleInput openBundleInput = new ControlBundleInputBuilder().setNode(nodeRef)
- .setBundleId(bundleIdValue).setFlags(BUNDLE_FLAGS)
- .setType(BundleControlType.ONFBCTOPENREQUEST).build();
+ final ControlBundleInput openBundleInput = new ControlBundleInputBuilder()
+ .setNode(nodeRef)
+ .setBundleId(bundleIdValue)
+ .setFlags(BUNDLE_FLAGS)
+ .setType(BundleControlType.ONFBCTOPENREQUEST)
+ .build();
final AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder()
- .setNode(nodeRef).setBundleId(bundleIdValue).setFlags(BUNDLE_FLAGS)
- .setMessages(createMessages(nodeRef)).build();
+ .setNode(nodeRef)
+ .setBundleId(bundleIdValue)
+ .setFlags(BUNDLE_FLAGS)
+ .setMessages(createMessages(nodeRef))
+ .build();
ListenableFuture<RpcResult<ControlBundleOutput>> closeBundle = salBundleService
.controlBundle(closeBundleInput);
Uint64 nodeId = getDpnIdFromNodeName(node);
try {
if (addBundleMessagesFuture.get().isSuccessful()) {
- bundleIdMap.put(nodeId, new BundleDetails(bundleIdValue,
- FluentFutures.immediateNullFluentFuture()));
- LOG.debug("Arbitrator reconciliation initial task has been completed for node {} and open up"
- + " for application programming.", nodeId);
+ bundleIdMap.put(nodeId, new BundleDetails(bundleIdValue,FluentFutures.immediateNullFluentFuture()));
+ LOG.debug("Arbitrator reconciliation initial task has been completed for node {} ", nodeId);
return true;
} else {
LOG.error("Error while performing arbitrator reconciliation for device:{}", nodeId);
}
private void deregisterRpc(DeviceInfo node) {
- KeyedInstanceIdentifier<Node, NodeKey> path = InstanceIdentifier.create(Nodes.class).child(Node.class,
- new NodeKey(node.getNodeId()));
+ KeyedInstanceIdentifier<Node, NodeKey> path = InstanceIdentifier.create(Nodes.class)
+ .child(Node.class, new NodeKey(node.getNodeId()));
LOG.debug("The path is unregistered : {}", path);
routedRpcReg.unregisterPath(NodeContext.class, path);
}
}
@Override
- public void remove(final InstanceIdentifier<Flow> identifier, final Flow flow,
- final InstanceIdentifier<FlowCapableNode> nodeIdent, final BundleId bundleId) {
+ public void remove(final InstanceIdentifier<Flow> identifier,
+ final Flow flow,
+ final InstanceIdentifier<FlowCapableNode> nodeIdent,
+ final BundleId bundleId) {
final NodeId nodeId = getNodeIdFromNodeIdentifier(nodeIdent);
nodeConfigurator.enqueueJob(nodeId.getValue(), () -> {
final List<Message> messages = new ArrayList<>(1);
String node = nodeIdent.firstKeyOf(Node.class).getId().getValue();
BundleInnerMessage bundleInnerMessage = new BundleRemoveFlowCaseBuilder()
.setRemoveFlowCaseData(new RemoveFlowCaseDataBuilder(flow).build()).build();
- Message message = new MessageBuilder().setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
- .setBundleInnerMessage(bundleInnerMessage).build();
+ Message message = new MessageBuilder()
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleInnerMessage(bundleInnerMessage)
+ .build();
messages.add(message);
AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder()
- .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))).setBundleId(bundleId)
- .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder().setMessage(messages).build()).build();
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleId(bundleId)
+ .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder()
+ .setMessage(messages)
+ .build())
+ .build();
final ListenableFuture<RpcResult<AddBundleMessagesOutput>> resultFuture = forwardingRulesManager
.getSalBundleService().addBundleMessages(addBundleMessagesInput);
LOG.trace("Pushing flow remove message {} to bundle {} for device {}", addBundleMessagesInput,
}
@Override
- public void update(final InstanceIdentifier<Flow> identifier, final Flow originalFlow, final Flow updatedFlow,
- final InstanceIdentifier<FlowCapableNode> nodeIdent, final BundleId bundleId) {
+ public void update(final InstanceIdentifier<Flow> identifier,
+ final Flow originalFlow,
+ final Flow updatedFlow,
+ final InstanceIdentifier<FlowCapableNode> nodeIdent,
+ final BundleId bundleId) {
remove(identifier, originalFlow, nodeIdent, bundleId);
add(identifier, updatedFlow, nodeIdent, bundleId);
}
@Override
public ListenableFuture<RpcResult<AddBundleMessagesOutput>> add(final InstanceIdentifier<Flow> identifier,
final Flow flow,
- final InstanceIdentifier<FlowCapableNode> nodeIdent, final BundleId bundleId) {
+ final InstanceIdentifier<FlowCapableNode> nodeIdent,
+ final BundleId bundleId) {
final NodeId nodeId = getNodeIdFromNodeIdentifier(nodeIdent);
return nodeConfigurator.enqueueJob(nodeId.getValue(), () -> {
BundleInnerMessage bundleInnerMessage = new BundleAddFlowCaseBuilder()
- .setAddFlowCaseData(new AddFlowCaseDataBuilder(flow).build()).build();
+ .setAddFlowCaseData(new AddFlowCaseDataBuilder(flow)
+ .build())
+ .build();
Message message = new MessageBuilder().setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
- .setBundleInnerMessage(bundleInnerMessage).build();
+ .setBundleInnerMessage(bundleInnerMessage)
+ .build();
ListenableFuture<RpcResult<AddBundleMessagesOutput>> groupFuture = pushDependentGroup(nodeIdent, flow,
identifier, bundleId);
SettableFuture<RpcResult<AddBundleMessagesOutput>> resultFuture = SettableFuture.create();
- Futures.addCallback(groupFuture, new BundleFlowCallBack(nodeIdent, bundleId, message, identifier,
- resultFuture), MoreExecutors.directExecutor());
+ Futures.addCallback(groupFuture,
+ new BundleFlowCallBack(nodeIdent, bundleId, message, identifier, resultFuture),
+ MoreExecutors.directExecutor());
return resultFuture;
});
}
private ListenableFuture<RpcResult<AddBundleMessagesOutput>> pushDependentGroup(
- final InstanceIdentifier<FlowCapableNode> nodeIdent, Flow updatedFlow, InstanceIdentifier<Flow> identifier,
- BundleId bundleId) {
+ final InstanceIdentifier<FlowCapableNode> nodeIdent,
+ final Flow updatedFlow,
+ final InstanceIdentifier<Flow> identifier,
+ final BundleId bundleId) {
//TODO This read to the DS might have a performance impact.
//if the dependent group is not installed than we should just cache the parent group,
//till we receive the dependent group DTCN and then push it.
builder.setTransactionUri(new Uri(forwardingRulesManager.getNewTransactionId()));
BundleInnerMessage bundleInnerMessage = new BundleAddGroupCaseBuilder()
.setAddGroupCaseData(new AddGroupCaseDataBuilder(group.get()).build()).build();
- Message groupMessage = new MessageBuilder().setNode(
+ Message groupMessage = new MessageBuilder()
+ .setNode(
new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
- .setBundleInnerMessage(bundleInnerMessage).build();
+ .setBundleInnerMessage(bundleInnerMessage)
+ .build();
final List<Message> messages = new ArrayList<>(1);
messages.add(groupMessage);
AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder()
- .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))).setBundleId(bundleId)
- .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder().setMessage(messages).build())
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleId(bundleId)
+ .setFlags(BUNDLE_FLAGS)
+ .setMessages(new MessagesBuilder()
+ .setMessage(messages).build())
.build();
LOG.trace("Pushing flow update message {} to bundle {} for device {}", addBundleMessagesInput,
bundleId.getValue(), getNodeIdFromNodeIdentifier(nodeIdent));
resultFuture = forwardingRulesManager
- .getSalBundleService().addBundleMessages(addBundleMessagesInput);
+ .getSalBundleService()
+ .addBundleMessages(addBundleMessagesInput);
Futures.transformAsync(resultFuture, rpcResult -> {
if (rpcResult.isSuccessful()) {
forwardingRulesManager.getDevicesGroupRegistry()
this.resultFuture = resultFuture;
this.flowId = getFlowId(new FlowRef(identifier));
this.tableId = getTableId(new FlowTableRef(identifier));
- nodeId = getNodeIdFromNodeIdentifier(nodeIdent);
+ this.nodeId = getNodeIdFromNodeIdentifier(nodeIdent);
}
@Override
public void onSuccess(RpcResult<AddBundleMessagesOutput> rpcResult) {
if (rpcResult.isSuccessful()) {
AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder()
- .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))).setBundleId(bundleId)
- .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder().setMessage(
- Collections.singletonList(messages)).build()).build();
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleId(bundleId)
+ .setFlags(BUNDLE_FLAGS)
+ .setMessages(new MessagesBuilder()
+ .setMessage(
+ Collections.singletonList(messages)).build())
+ .build();
LOG.trace("Pushing flow add message {} to bundle {} for device {}", addBundleMessagesInput,
bundleId.getValue(), nodeId.getValue());
nodeConfigurator.enqueueJob(nodeId.getValue(), () -> {
final List<Message> messages = new ArrayList<>(1);
BundleInnerMessage bundleInnerMessage = new BundleRemoveGroupCaseBuilder()
- .setRemoveGroupCaseData(new RemoveGroupCaseDataBuilder(group).build()).build();
- Message message = new MessageBuilder().setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
- .setBundleInnerMessage(bundleInnerMessage).build();
+ .setRemoveGroupCaseData(new RemoveGroupCaseDataBuilder(group).build())
+ .build();
+ Message message = new MessageBuilder()
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleInnerMessage(bundleInnerMessage)
+ .build();
messages.add(message);
AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder()
- .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))).setBundleId(bundleId)
- .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder().setMessage(messages).build()).build();
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleId(bundleId)
+ .setFlags(BUNDLE_FLAGS)
+ .setMessages(new MessagesBuilder().setMessage(messages).build())
+ .build();
LOG.trace("Pushing group remove message {} to bundle {} for device {}", addBundleMessagesInput,
bundleId.getValue(), nodeId.getValue());
final ListenableFuture<RpcResult<AddBundleMessagesOutput>> resultFuture = forwardingRulesManager
.getSalBundleService().addBundleMessages(addBundleMessagesInput);
- Futures.addCallback(resultFuture, new BundleRemoveGroupCallBack(group.getGroupId().getValue(), nodeId),
+ Futures.addCallback(resultFuture,
+ new BundleRemoveGroupCallBack(group.getGroupId().getValue(), nodeId),
MoreExecutors.directExecutor());
LoggingFutures.addErrorLogging(resultFuture, LOG, "removeBundleGroup");
return resultFuture;
}
@Override
- public void update(final InstanceIdentifier<Group> identifier, final Group originalGroup, final Group updatedGroup,
- final InstanceIdentifier<FlowCapableNode> nodeIdent, final BundleId bundleId) {
+ public void update(final InstanceIdentifier<Group> identifier,
+ final Group originalGroup,
+ final Group updatedGroup,
+ final InstanceIdentifier<FlowCapableNode> nodeIdent,
+ final BundleId bundleId) {
final NodeId nodeId = getNodeIdFromNodeIdentifier(nodeIdent);
nodeConfigurator.enqueueJob(nodeId.getValue(), () -> {
final List<Message> messages = new ArrayList<>(1);
BundleInnerMessage bundleInnerMessage = new BundleUpdateGroupCaseBuilder()
- .setUpdateGroupCaseData(new UpdateGroupCaseDataBuilder(updatedGroup).build()).build();
- Message message = new MessageBuilder().setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
- .setBundleInnerMessage(bundleInnerMessage).build();
+ .setUpdateGroupCaseData(new UpdateGroupCaseDataBuilder(updatedGroup).build())
+ .build();
+ Message message = new MessageBuilder()
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleInnerMessage(bundleInnerMessage)
+ .build();
messages.add(message);
AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder()
- .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))).setBundleId(bundleId)
- .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder().setMessage(messages).build()).build();
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleId(bundleId)
+ .setFlags(BUNDLE_FLAGS)
+ .setMessages(new MessagesBuilder().setMessage(messages).build())
+ .build();
LOG.trace("Pushing group update message {} to bundle {} for device {}", addBundleMessagesInput,
bundleId.getValue(), nodeId.getValue());
final ListenableFuture<RpcResult<AddBundleMessagesOutput>> resultFuture = forwardingRulesManager
- .getSalBundleService().addBundleMessages(addBundleMessagesInput);
- Futures.addCallback(resultFuture, new BundleUpdateGroupCallBack(originalGroup.getGroupId().getValue(),
- nodeId), MoreExecutors.directExecutor());
+ .getSalBundleService()
+ .addBundleMessages(addBundleMessagesInput);
+ Futures.addCallback(resultFuture,
+ new BundleUpdateGroupCallBack(originalGroup.getGroupId().getValue(), nodeId),
+ MoreExecutors.directExecutor());
LoggingFutures.addErrorLogging(resultFuture, LOG, "updateBundleGroup");
return resultFuture;
});
@Override
public ListenableFuture<RpcResult<AddBundleMessagesOutput>> add(final InstanceIdentifier<Group> identifier,
- final Group group, final InstanceIdentifier<FlowCapableNode> nodeIdent, final BundleId bundleId) {
+ final Group group,
+ final InstanceIdentifier<FlowCapableNode> nodeIdent,
+ final BundleId bundleId) {
final NodeId nodeId = getNodeIdFromNodeIdentifier(nodeIdent);
final Uint32 groupId = group.getGroupId().getValue();
return nodeConfigurator.enqueueJob(nodeId.getValue(), () -> {
}
final List<Message> messages = new ArrayList<>(1);
BundleInnerMessage bundleInnerMessage = new BundleAddGroupCaseBuilder()
- .setAddGroupCaseData(new AddGroupCaseDataBuilder(group).build()).build();
- Message message = new MessageBuilder().setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
- .setBundleInnerMessage(bundleInnerMessage).build();
+ .setAddGroupCaseData(new AddGroupCaseDataBuilder(group).build())
+ .build();
+ Message message = new MessageBuilder()
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleInnerMessage(bundleInnerMessage)
+ .build();
messages.add(message);
AddBundleMessagesInput addBundleMessagesInput = new AddBundleMessagesInputBuilder()
- .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class))).setBundleId(bundleId)
- .setFlags(BUNDLE_FLAGS).setMessages(new MessagesBuilder().setMessage(messages).build()).build();
+ .setNode(new NodeRef(nodeIdent.firstIdentifierOf(Node.class)))
+ .setBundleId(bundleId)
+ .setFlags(BUNDLE_FLAGS)
+ .setMessages(new MessagesBuilder()
+ .setMessage(messages).build())
+ .build();
LOG.trace("Pushing group add message {} to bundle {} for device {}", addBundleMessagesInput,
bundleId.getValue(), nodeId.getValue());
ListenableFuture<RpcResult<AddBundleMessagesOutput>> resultFuture = forwardingRulesManager
- .getSalBundleService().addBundleMessages(addBundleMessagesInput);
- Futures.addCallback(resultFuture, new BundleAddGroupCallBack(groupId, nodeId),
+ .getSalBundleService()
+ .addBundleMessages(addBundleMessagesInput);
+ Futures.addCallback(resultFuture,
+ new BundleAddGroupCallBack(groupId, nodeId),
MoreExecutors.directExecutor());
return resultFuture;
});
LOG.error("Service call for removing group {} failed for node {} with error", groupId, nodeId, throwable);
}
}
-
}