use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.
the class ConsistentVirtualDeviceMastershipStore method getRole.
@Override
public MastershipRole getRole(NetworkId networkId, NodeId nodeId, DeviceId deviceId) {
checkArgument(networkId != null, NETWORK_ID_NULL);
checkArgument(nodeId != null, NODE_ID_NULL);
checkArgument(deviceId != null, DEVICE_ID_NULL);
String leadershipTopic = createDeviceMastershipTopic(networkId, deviceId);
Leadership leadership = leadershipService.getLeadership(leadershipTopic);
NodeId leader = leadership == null ? null : leadership.leaderNodeId();
List<NodeId> candidates = leadership == null ? ImmutableList.of() : ImmutableList.copyOf(leadership.candidates());
return Objects.equal(nodeId, leader) ? MastershipRole.MASTER : candidates.contains(nodeId) ? MastershipRole.STANDBY : MastershipRole.NONE;
}
use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.
the class ConsistentVirtualDeviceMastershipStore method getMastership.
@Override
public MastershipInfo getMastership(NetworkId networkId, DeviceId deviceId) {
checkArgument(networkId != null, NETWORK_ID_NULL);
checkArgument(deviceId != null, DEVICE_ID_NULL);
Leadership leadership = leadershipService.getLeadership(createDeviceMastershipTopic(networkId, deviceId));
return buildMastershipFromLeadership(leadership);
}
use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.
the class ConsistentVirtualDeviceMastershipStore method getNodes.
@Override
public RoleInfo getNodes(NetworkId networkId, DeviceId deviceId) {
checkArgument(networkId != null, NETWORK_ID_NULL);
checkArgument(deviceId != null, DEVICE_ID_NULL);
Leadership leadership = leadershipService.getLeadership(createDeviceMastershipTopic(networkId, deviceId));
return new RoleInfo(leadership.leaderNodeId(), leadership.candidates());
}
use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.
the class ConsistentVirtualDeviceMastershipStore method requestRole.
@Override
public CompletableFuture<MastershipRole> requestRole(NetworkId networkId, DeviceId deviceId) {
checkArgument(networkId != null, NETWORK_ID_NULL);
checkArgument(deviceId != null, DEVICE_ID_NULL);
String leadershipTopic = createDeviceMastershipTopic(networkId, deviceId);
Leadership leadership = leadershipService.runForLeadership(leadershipTopic);
return CompletableFuture.completedFuture(localNodeId.equals(leadership.leaderNodeId()) ? MastershipRole.MASTER : MastershipRole.STANDBY);
}
use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.
the class LeaderCommand method doExecute.
@Override
protected void doExecute() {
LeadershipAdminService leaderService = get(LeadershipAdminService.class);
Map<String, Leadership> leaderBoard = leaderService.getLeaderBoard();
if (topicPattern == null) {
allTopics = true;
} else {
allTopics = false;
pattern = Pattern.compile(topicPattern);
}
if (outputJson()) {
print("%s", json(leaderBoard));
return;
}
if (showCandidates) {
displayCandidates(leaderBoard);
} else {
displayLeaders(leaderBoard);
}
}
Aggregations