Search in sources :

Example 6 with Leadership

use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.

the class ConsistentDeviceMastershipStore method getRole.

@Override
public MastershipRole getRole(NodeId nodeId, DeviceId deviceId) {
    checkArgument(nodeId != null, NODE_ID_NULL);
    checkArgument(deviceId != null, DEVICE_ID_NULL);
    String leadershipTopic = createDeviceMastershipTopic(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.equals(nodeId, leader) ? MastershipRole.MASTER : candidates.contains(nodeId) ? MastershipRole.STANDBY : MastershipRole.NONE;
}
Also used : Leadership(org.onosproject.cluster.Leadership) NodeId(org.onosproject.cluster.NodeId)

Example 7 with Leadership

use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.

the class ConsistentDeviceMastershipStore method getMastership.

@Override
public MastershipInfo getMastership(DeviceId deviceId) {
    checkArgument(deviceId != null, DEVICE_ID_NULL);
    Leadership leadership = leadershipService.getLeadership(createDeviceMastershipTopic(deviceId));
    return buildMastershipFromLeadership(leadership);
}
Also used : Leadership(org.onosproject.cluster.Leadership)

Example 8 with Leadership

use of org.onosproject.cluster.Leadership in project onos by opennetworkinglab.

the class ConsistentDeviceMastershipStore method requestRole.

@Override
public CompletableFuture<MastershipRole> requestRole(DeviceId deviceId) {
    checkArgument(deviceId != null, DEVICE_ID_NULL);
    String leadershipTopic = createDeviceMastershipTopic(deviceId);
    Leadership leadership = leadershipService.runForLeadership(leadershipTopic);
    NodeId leader = leadership == null ? null : leadership.leaderNodeId();
    List<NodeId> candidates = leadership == null ? ImmutableList.of() : ImmutableList.copyOf(leadership.candidates());
    MastershipRole role = Objects.equals(localNodeId, leader) ? MastershipRole.MASTER : candidates.contains(localNodeId) ? MastershipRole.STANDBY : MastershipRole.NONE;
    return CompletableFuture.completedFuture(role);
}
Also used : Leadership(org.onosproject.cluster.Leadership) NodeId(org.onosproject.cluster.NodeId) MastershipRole(org.onosproject.net.MastershipRole)

Example 9 with Leadership

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);
}
Also used : Leadership(org.onosproject.cluster.Leadership)

Example 10 with Leadership

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);
}
Also used : Leadership(org.onosproject.cluster.Leadership)

Aggregations

Leadership (org.onosproject.cluster.Leadership)20 Leader (org.onosproject.cluster.Leader)7 Test (org.junit.Test)6 NodeId (org.onosproject.cluster.NodeId)6 DefaultControllerNode (org.onosproject.cluster.DefaultControllerNode)5 LeadershipEvent (org.onosproject.cluster.LeadershipEvent)3 Map (java.util.Map)2 LeadershipAdminService (org.onosproject.cluster.LeadershipAdminService)2 Activate (org.osgi.service.component.annotations.Activate)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)1 Strings.isNullOrEmpty (com.google.common.base.Strings.isNullOrEmpty)1 Maps (com.google.common.collect.Maps)1 Comparator (java.util.Comparator)1 Dictionary (java.util.Dictionary)1 List (java.util.List)1 Objects (java.util.Objects)1 ExecutorService (java.util.concurrent.ExecutorService)1 Executors (java.util.concurrent.Executors)1