Search in sources :

Example 11 with Leadership

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

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

Example 13 with Leadership

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

the class SimpleLeadershipManager method runForLeadership.

@Override
public Leadership runForLeadership(String path) {
    elections.put(path, true);
    Leadership leadership = new Leadership(path, new Leader(localNodeId, 0, 0), Arrays.asList(localNodeId));
    for (LeadershipEventListener listener : listeners) {
        listener.event(new LeadershipEvent(Type.LEADER_AND_CANDIDATES_CHANGED, leadership));
    }
    return leadership;
}
Also used : LeadershipEvent(org.onosproject.cluster.LeadershipEvent) Leadership(org.onosproject.cluster.Leadership) Leader(org.onosproject.cluster.Leader) LeadershipEventListener(org.onosproject.cluster.LeadershipEventListener)

Example 14 with Leadership

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

the class ConsistentDeviceMastershipStore method getTermFor.

@Override
public MastershipTerm getTermFor(DeviceId deviceId) {
    checkArgument(deviceId != null, DEVICE_ID_NULL);
    String leadershipTopic = createDeviceMastershipTopic(deviceId);
    Leadership leadership = leadershipService.getLeadership(leadershipTopic);
    return leadership != null && leadership.leaderNodeId() != null ? MastershipTerm.of(leadership.leaderNodeId(), leadership.leader().term()) : null;
}
Also used : Leadership(org.onosproject.cluster.Leadership)

Example 15 with Leadership

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

the class ConsistentVirtualDeviceMastershipStore method getTermFor.

@Override
public MastershipTerm getTermFor(NetworkId networkId, DeviceId deviceId) {
    checkArgument(networkId != null, NETWORK_ID_NULL);
    checkArgument(deviceId != null, DEVICE_ID_NULL);
    String leadershipTopic = createDeviceMastershipTopic(networkId, deviceId);
    Leadership leadership = leadershipService.getLeadership(leadershipTopic);
    return leadership != null && leadership.leaderNodeId() != null ? MastershipTerm.of(leadership.leaderNodeId(), leadership.leader().term()) : null;
}
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