CORD-613 Adding ability to administratively enable or disable a port via CLI.
Currently uses the OpenFlow device provider to change portState.
Also fixes a bug in PortNumberCompleter.
Adds completion options to portstats for deviceId and portNumber.
Change-Id: Idcce775fe8bc5484fdd0e630bcb5026b85125478
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java b/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java
index 500b635..a750e06 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java
@@ -16,6 +16,7 @@
package org.onosproject.net.device;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
/**
* Service for administering the inventory of infrastructure devices.
@@ -31,4 +32,13 @@
// TODO: add ability to administratively suspend/resume device
+
+ /**
+ * Administratively enables or disables a port on a device.
+ *
+ * @param deviceId device identifier
+ * @param portNumber port identifier
+ * @param enable true if port is to be enabled, false to disable
+ */
+ void changePortState(DeviceId deviceId, PortNumber portNumber, boolean enable);
}
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java b/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java
index d8adbb0..1727fc8 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java
@@ -17,6 +17,7 @@
import org.onosproject.net.DeviceId;
import org.onosproject.net.MastershipRole;
+import org.onosproject.net.PortNumber;
import org.onosproject.net.provider.Provider;
/**
@@ -54,4 +55,14 @@
* @return true if reachable, false otherwise
*/
boolean isReachable(DeviceId deviceId);
+
+ /**
+ * Administratively enables or disables a port.
+ *
+ * @param deviceId device identifier
+ * @param portNumber device identifier
+ * @param enable true if port is to be enabled, false to disable
+ */
+ void changePortState(DeviceId deviceId, PortNumber portNumber,
+ boolean enable);
}