Resource group to share resources between intents
Change-Id: I5bf7d4261197449924d07dabac841cf8ccbe9389
diff --git a/cli/src/main/java/org/onosproject/cli/net/AddHostToHostIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/AddHostToHostIntentCommand.java
index 67dbd76..1f33c46 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddHostToHostIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddHostToHostIntentCommand.java
@@ -61,6 +61,7 @@
.treatment(treatment)
.constraints(constraints)
.priority(priority())
+ .resourceGroup(resourceGroup())
.build();
service.submit(intent);
print("Host to Host intent submitted:\n%s", intent.toString());
diff --git a/cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java
index 6c1a0e9..bf9558c 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java
@@ -72,6 +72,7 @@
.egressPoint(egress)
.constraints(constraints)
.priority(priority())
+ .resourceGroup(resourceGroup())
.build();
service.submit(intent);
print("Multipoint to single point intent submitted:\n%s", intent.toString());
diff --git a/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
index f1944ce..3b48374 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
@@ -96,6 +96,7 @@
.egressPoint(egress)
.constraints(constraints)
.priority(priority())
+ .resourceGroup(resourceGroup())
.build();
service.submit(intent);
print("Point to point intent submitted:\n%s", intent.toString());
diff --git a/cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java
index 87ede2b..52c8dfc 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java
@@ -71,6 +71,7 @@
.egressPoints(egressPoints)
.constraints(constraints)
.priority(priority())
+ .resourceGroup(resourceGroup())
.build();
service.submit(intent);
print("Single point to multipoint intent submitted:\n%s", intent.toString());
diff --git a/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java b/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
index 5d5d18b..7ebc3be 100644
--- a/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
@@ -28,6 +28,7 @@
import org.onosproject.core.CoreService;
import org.onosproject.net.EncapsulationType;
import org.onosproject.net.PortNumber;
+import org.onosproject.net.ResourceGroup;
import org.onosproject.net.flow.DefaultTrafficSelector;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficSelector;
@@ -181,6 +182,11 @@
required = false, multiValued = false)
private boolean hashedPathSelection = false;
+ // Resource Group
+ @Option(name = "-r", aliases = "--resourceGroup", description = "Resource Group Id",
+ required = false, multiValued = false)
+ private String resourceGroupId = null;
+
/**
* Constructs a traffic selector based on the command line arguments
@@ -409,6 +415,18 @@
return appIdForIntent;
}
+ protected ResourceGroup resourceGroup() {
+ if (resourceGroupId != null) {
+ if (resourceGroupId.toLowerCase().startsWith("0x")) {
+ return ResourceGroup.of(Long.parseUnsignedLong(resourceGroupId.substring(2), 16));
+ } else {
+ return ResourceGroup.of(Long.parseUnsignedLong(resourceGroupId));
+ }
+ } else {
+ return null;
+ }
+ }
+
/**
* Creates a key for an intent based on command line arguments. If a key
* has been specified, it is returned. If no key is specified, null