Added graceful shutdown for upstart service.
Reworked slightly the mastership & device managers and stores to make it work (sort-of) in the distributed env.
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleClusterStore.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleClusterStore.java
index 782b389..c782530 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleClusterStore.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleClusterStore.java
@@ -62,4 +62,8 @@
return ControllerNode.State.ACTIVE;
}
+ @Override
+ public void removeNode(NodeId nodeId) {
+ }
+
}
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceStore.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceStore.java
index e416756..78d6a4c 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceStore.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceStore.java
@@ -248,23 +248,6 @@
}
@Override
- public MastershipRole getRole(DeviceId deviceId) {
- MastershipRole role = roles.get(deviceId);
- return role != null ? role : MastershipRole.NONE;
- }
-
- @Override
- public DeviceEvent setRole(DeviceId deviceId, MastershipRole role) {
- synchronized (this) {
- Device device = getDevice(deviceId);
- checkArgument(device != null, DEVICE_NOT_FOUND, deviceId);
- MastershipRole oldRole = roles.put(deviceId, role);
- return oldRole == role ? null :
- new DeviceEvent(DEVICE_MASTERSHIP_CHANGED, device, null);
- }
- }
-
- @Override
public DeviceEvent removeDevice(DeviceId deviceId) {
synchronized (this) {
roles.remove(deviceId);
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleMastershipStore.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleMastershipStore.java
index 371a257..24480c6 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleMastershipStore.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleMastershipStore.java
@@ -38,7 +38,7 @@
private ControllerNode instance;
protected final ConcurrentMap<DeviceId, MastershipRole> roleMap =
- new ConcurrentHashMap<DeviceId, MastershipRole>();
+ new ConcurrentHashMap<>();
@Activate
public void activate() {
@@ -53,7 +53,7 @@
@Override
public MastershipEvent setRole(NodeId nodeId, DeviceId deviceId,
- MastershipRole role) {
+ MastershipRole role) {
if (roleMap.get(deviceId) == null) {
return null;
}
@@ -62,14 +62,6 @@
}
@Override
- public MastershipEvent addOrUpdateDevice(NodeId instance,
- DeviceId deviceId, MastershipRole role) {
- //TODO refine when we do listeners
- roleMap.put(deviceId, role);
- return null;
- }
-
- @Override
public NodeId getMaster(DeviceId deviceId) {
return instance.id();
}
@@ -80,6 +72,11 @@
}
@Override
+ public MastershipRole requestRole(DeviceId deviceId) {
+ return getRole(instance.id(), deviceId);
+ }
+
+ @Override
public MastershipRole getRole(NodeId nodeId, DeviceId deviceId) {
MastershipRole role = roleMap.get(deviceId);
if (role == null) {