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/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index 5ef70fc..f089203 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -248,6 +248,22 @@
}
@Override
+ public void changePortState(DeviceId deviceId, PortNumber portNumber,
+ boolean enable) {
+ checkNotNull(deviceId, DEVICE_ID_NULL);
+ checkNotNull(deviceId, PORT_NUMBER_NULL);
+ DeviceProvider provider = getProvider(deviceId);
+ if (provider != null) {
+ log.warn("Port {} on device {} being administratively brought {}",
+ portNumber, deviceId,
+ (enable) ? "UP" : "DOWN");
+ provider.changePortState(deviceId, portNumber, enable);
+ } else {
+ log.warn("Provider not found for {}", deviceId);
+ }
+ }
+
+ @Override
protected DeviceProviderService createProviderService(
DeviceProvider provider) {
return new InternalDeviceProviderService(provider);
@@ -340,6 +356,7 @@
log.trace("event: {} {}", event.type(), event);
post(event);
}
+
}
@Override
@@ -790,4 +807,5 @@
}
}
}
+
}