Add priority to Intents

Change-Id: Ibe63356f5b15a6aa6ca7731dba3382c3317a95ec
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 69feb35..abc0c4b 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java
@@ -75,7 +75,8 @@
         Intent intent = new MultiPointToSinglePointIntent(appId(), key(),
                                                           selector, treatment,
                                                           ingressPoints, egress,
-                                                          constraints);
+                                                          constraints,
+                                                          priority());
         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 980acfe..3c93fa6 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
@@ -70,7 +70,8 @@
         Intent intent = new PointToPointIntent(appId(),
                 key(),
                 selector, treatment,
-                ingress, egress, constraints);
+                ingress, egress, constraints,
+                priority());
         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 8ac8186..b6193fa 100644
--- a/cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java
@@ -15,6 +15,10 @@
  */
 package org.onosproject.cli.net;
 
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.net.ConnectPoint;
@@ -27,10 +31,6 @@
 import org.onosproject.net.intent.IntentService;
 import org.onosproject.net.intent.SinglePointToMultiPointIntent;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
 import static org.onosproject.net.DeviceId.deviceId;
 import static org.onosproject.net.PortNumber.portNumber;
 
@@ -79,7 +79,8 @@
                         treatment,
                         ingressPoint,
                         egressPoints,
-                        constraints);
+                        constraints,
+                        priority());
         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 a8a28e2..848b3a8 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.net.flow.TrafficSelector;
 import org.onosproject.net.flow.TrafficTreatment;
 import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.intent.Intent;
 import org.onosproject.net.intent.Key;
 import org.onosproject.net.intent.constraint.BandwidthConstraint;
 import org.onosproject.net.intent.constraint.LambdaConstraint;
@@ -96,6 +97,11 @@
             required = false, multiValued = false)
     private String setEthDstString = null;
 
+    // Priorities
+    @Option(name = "-p", aliases = "--priority", description = "Priority",
+            required = false, multiValued = false)
+    private int priority = Intent.DEFAULT_INTENT_PRIORITY;
+
     /**
      * Constructs a traffic selector based on the command line arguments
      * presented to the command.
@@ -200,4 +206,13 @@
         }
         return key;
     }
+
+    /**
+     * Gets the priority to use for the intent.
+     *
+     * @return priority
+     */
+    protected int priority() {
+        return priority;
+    }
 }
diff --git a/cli/src/main/java/org/onosproject/cli/net/IntentCycleCommand.java b/cli/src/main/java/org/onosproject/cli/net/IntentCycleCommand.java
index 109f669..6a61295 100644
--- a/cli/src/main/java/org/onosproject/cli/net/IntentCycleCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/IntentCycleCommand.java
@@ -130,7 +130,8 @@
             intents.add(new PointToPointIntent(appId(), Key.of(i + keyOffset, appId()),
                                                selector, treatment,
                                                ingress, egress,
-                                               Collections.emptyList()));
+                                               Collections.emptyList(),
+                                               Intent.DEFAULT_INTENT_PRIORITY));
 
         }
         return intents;
diff --git a/cli/src/main/java/org/onosproject/cli/net/IntentPushTestCommand.java b/cli/src/main/java/org/onosproject/cli/net/IntentPushTestCommand.java
index d140f97..20af27d 100644
--- a/cli/src/main/java/org/onosproject/cli/net/IntentPushTestCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/IntentPushTestCommand.java
@@ -139,7 +139,8 @@
             intents.add(new PointToPointIntent(appId(), Key.of(i + keyOffset, appId()),
                                                selector, treatment,
                                                ingress, egress,
-                                               Collections.emptyList()));
+                                               Collections.emptyList(),
+                                               Intent.DEFAULT_INTENT_PRIORITY));
 
         }
         return intents;