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/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java
index 60a203a..dfb8283 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java
@@ -3,9 +3,11 @@
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.onlab.onos.cli.AbstractShellCommand;
-import org.onlab.onos.net.DeviceId;
+import org.onlab.onos.cluster.MastershipAdminService;
+import org.onlab.onos.cluster.NodeId;
import org.onlab.onos.net.MastershipRole;
-import org.onlab.onos.net.device.DeviceAdminService;
+
+import static org.onlab.onos.net.DeviceId.deviceId;
/**
* Sets role of the controller node for the given infrastructure device.
@@ -18,15 +20,19 @@
required = true, multiValued = false)
String uri = null;
- @Argument(index = 1, name = "role", description = "Mastership role",
+ @Argument(index = 1, name = "node", description = "Node ID",
+ required = true, multiValued = false)
+ String node = null;
+
+ @Argument(index = 2, name = "role", description = "Mastership role",
required = true, multiValued = false)
String role = null;
@Override
protected void execute() {
+ MastershipAdminService service = get(MastershipAdminService.class);
MastershipRole mastershipRole = MastershipRole.valueOf(role.toUpperCase());
- get(DeviceAdminService.class).setRole(DeviceId.deviceId(uri),
- mastershipRole);
+ service.setRole(new NodeId(node), deviceId(uri), mastershipRole);
}
}