[SDFAB-359] Allow purging flows, groups and meters by device and application ID
Change-Id: I5e507d230789979ac997dbc99697fa0483363f70
(cherry picked from commit cfd774018c0ed926873b1e171c106217cb2ac568)
diff --git a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
index dd7f802..ac97636 100644
--- a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
+++ b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
@@ -320,6 +320,15 @@
}
@Override
+ public void purgeFlowRules(DeviceId deviceId, ApplicationId appId) {
+ checkPermission(FLOWRULE_WRITE);
+ checkNotNull(deviceId, DEVICE_ID_NULL);
+ checkNotNull(appId, "Application ID cannot be null!");
+
+ store.purgeFlowRules(deviceId, appId);
+ }
+
+ @Override
public void removeFlowRules(FlowRule... flowRules) {
checkPermission(FLOWRULE_WRITE);
diff --git a/core/net/src/main/java/org/onosproject/net/group/impl/GroupManager.java b/core/net/src/main/java/org/onosproject/net/group/impl/GroupManager.java
index e633a96..65ec5d3 100644
--- a/core/net/src/main/java/org/onosproject/net/group/impl/GroupManager.java
+++ b/core/net/src/main/java/org/onosproject/net/group/impl/GroupManager.java
@@ -305,6 +305,12 @@
}
@Override
+ public void purgeGroupEntries(DeviceId deviceId, ApplicationId appId) {
+ checkPermission(GROUP_WRITE);
+ store.purgeGroupEntries(deviceId, appId);
+ }
+
+ @Override
public void purgeGroupEntries() {
checkPermission(GROUP_WRITE);
store.purgeGroupEntries();
diff --git a/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java b/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java
index 03bb5ca..805009d 100644
--- a/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java
+++ b/core/net/src/main/java/org/onosproject/net/meter/impl/MeterManager.java
@@ -23,6 +23,7 @@
import org.onosproject.cfg.ComponentConfigService;
import org.onosproject.cluster.ClusterService;
import org.onosproject.cluster.NodeId;
+import org.onosproject.core.ApplicationId;
import org.onosproject.mastership.MastershipService;
import org.onosproject.net.DeviceId;
import org.onosproject.net.config.NetworkConfigRegistry;
@@ -331,6 +332,11 @@
store.purgeMeter(deviceId);
}
+ @Override
+ public void purgeMeters(DeviceId deviceId, ApplicationId appId) {
+ store.purgeMeters(deviceId, appId);
+ }
+
private class InternalMeterProviderService
extends AbstractProviderService<MeterProvider>
implements MeterProviderService {