@Override
public void joinNodeGroup(URI newNodeGroupService,
URI nodeGroup, Integer quorum) {
if (nodeGroup.equals(newNodeGroupService)) {
return;
}
URI publicUri =
UriUtils.buildUri(nodeGroup.getScheme(), nodeGroup.getHost(), nodeGroup.getPort(), null, null, null);
String nodeGroupService = nodeGroup.getPath();
URI clusterUri = this.networkMapping.get(publicUri);
URI clusterNodeGroup = UriUtils.buildUri(clusterUri, nodeGroupService);
NodeGroupService.JoinPeerRequest joinBody = NodeGroupService.JoinPeerRequest.create(clusterNodeGroup, quorum);
log("Joining %s through %s(%s)",
newNodeGroupService, nodeGroup, clusterNodeGroup);
send(Operation.createPost(newNodeGroupService)
.setBody(joinBody)
.setCompletion(getCompletion()));
}