Fixing a minor bug in Cache replace code in Connection Manager.
[controller.git] / opendaylight / connectionmanager / implementation / src / main / java / org / opendaylight / controller / connectionmanager / scheme / AnyControllerScheme.java
1 package org.opendaylight.controller.connectionmanager.scheme;
2
3 import java.net.InetAddress;
4 import java.util.Set;
5 import org.opendaylight.controller.clustering.services.IClusterGlobalServices;
6 import org.opendaylight.controller.connectionmanager.ConnectionMgmtScheme;
7 import org.opendaylight.controller.sal.core.Node;
8 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory;
10
11 class AnyControllerScheme extends AbstractScheme {
12     private static final Logger logger = LoggerFactory.getLogger(AnyControllerScheme.class);
13     private static AbstractScheme myScheme= null;
14
15     protected AnyControllerScheme(IClusterGlobalServices clusterServices) {
16         super(clusterServices, ConnectionMgmtScheme.ANY_CONTROLLER_ONE_MASTER);
17     }
18
19     public static AbstractScheme getScheme(IClusterGlobalServices clusterServices) {
20         if (myScheme == null) {
21             myScheme = new AnyControllerScheme(clusterServices);
22         }
23         return myScheme;
24     }
25
26     @SuppressWarnings("deprecation")
27     @Override
28     public boolean isConnectionAllowedInternal(Node node) {
29         if (nodeConnections == null) return true;
30         Set <InetAddress> controllers = nodeConnections.get(node);
31         if (controllers == null || controllers.size() == 0) return true;
32         return (controllers.size() == 1 && controllers.contains(clusterServices.getMyAddress()));
33     }
34 }