IntentMonitorAndReroute initial contribution
Change-Id: I88616235b1e8ae28894da75b3fc8d46cb209dac5
diff --git a/apps/imr/api/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/imr/api/src/main/resources/OSGI-INF/blueprint/shell-config.xml
new file mode 100644
index 0000000..fdddc88
--- /dev/null
+++ b/apps/imr/api/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -0,0 +1,29 @@
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+ <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
+
+ <command>
+ <action class="org.onosproject.imr.cli.StartMonitorCommand"/>
+ <completers>
+ <ref component-id="applicationIdCompleter"/>
+ <ref component-id="applicationNameCompleter"/>
+ <ref component-id="intentKeyImrCompleter"/>
+ </completers>
+ </command>
+
+ <command>
+ <action class="org.onosproject.imr.cli.StopMonitorCommand"/>
+ <completers>
+ <ref component-id="applicationIdCompleter"/>
+ <ref component-id="applicationNameCompleter"/>
+ <ref component-id="intentKeyImrCompleter"/>
+ </completers>
+ </command>
+
+ </command-bundle>
+
+ <bean id="applicationIdCompleter" class="org.onosproject.imr.cli.ApplicationIdImrCompleter"/>
+ <bean id="applicationNameCompleter" class="org.onosproject.imr.cli.ApplicationNameImrCompleter"/>
+ <bean id="intentKeyImrCompleter" class="org.onosproject.imr.cli.IntentKeyImrCompleter"/>
+
+</blueprint>
diff --git a/apps/imr/api/src/main/resources/definitions/intentStatsGet.json b/apps/imr/api/src/main/resources/definitions/intentStatsGet.json
new file mode 100644
index 0000000..5e60ccb
--- /dev/null
+++ b/apps/imr/api/src/main/resources/definitions/intentStatsGet.json
@@ -0,0 +1,96 @@
+{
+ "statistics": [
+ {
+ "id": 71,
+ "name": "org.onosproject.ifwd",
+ "intents": [
+ {
+ "00:00:00:00:00:08/None00:00:00:00:00:01/None": [
+ {
+ "id": "41658299096955970",
+ "tableId": 0,
+ "appId": "org.onosproject.net.intent",
+ "groupId": 0,
+ "priority": 100,
+ "timeout": 0,
+ "isPermanent": true,
+ "deviceId": "of:000000000000000c",
+ "state": "ADDED",
+ "life": 12,
+ "packets": 12,
+ "bytes": 1176,
+ "liveType": "UNKNOWN",
+ "lastSeen": 1512041486127,
+ "treatment": {
+ "instructions": [
+ {
+ "type": "OUTPUT",
+ "port": "2"
+ }
+ ],
+ "deferred": []
+ },
+ "selector": {
+ "criteria": [
+ {
+ "type": "IN_PORT",
+ "port": 4
+ },
+ {
+ "type": "ETH_DST",
+ "mac": "00:00:00:00:00:01"
+ },
+ {
+ "type": "ETH_SRC",
+ "mac": "00:00:00:00:00:08"
+ }
+ ]
+ }
+ },
+ {
+ "id": "41658299401587474",
+ "tableId": 0,
+ "appId": "org.onosproject.net.intent",
+ "groupId": 0,
+ "priority": 100,
+ "timeout": 0,
+ "isPermanent": true,
+ "deviceId": "of:0000000000000002",
+ "state": "ADDED",
+ "life": 12,
+ "packets": 12,
+ "bytes": 1176,
+ "liveType": "UNKNOWN",
+ "lastSeen": 1512041486122,
+ "treatment": {
+ "instructions": [
+ {
+ "type": "OUTPUT",
+ "port": "2"
+ }
+ ],
+ "deferred": []
+ },
+ "selector": {
+ "criteria": [
+ {
+ "type": "IN_PORT",
+ "port": 3
+ },
+ {
+ "type": "ETH_DST",
+ "mac": "00:00:00:00:00:01"
+ },
+ {
+ "type": "ETH_SRC",
+ "mac": "00:00:00:00:00:08"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/apps/imr/api/src/main/resources/definitions/monitoredIntentsGet.json b/apps/imr/api/src/main/resources/definitions/monitoredIntentsGet.json
new file mode 100644
index 0000000..c577adc
--- /dev/null
+++ b/apps/imr/api/src/main/resources/definitions/monitoredIntentsGet.json
@@ -0,0 +1,28 @@
+{
+ "response": [
+ {
+ "id": 71,
+ "name": "org.onosproject.ifwd",
+ "intents": [
+ {
+ "key": "00:00:00:00:00:08/None00:00:00:00:00:01/None",
+ "inElements": [
+ "00:00:00:00:00:08/None"
+ ],
+ "outElements": [
+ "00:00:00:00:00:01/None"
+ ]
+ },
+ {
+ "key": "00:00:00:00:00:01/None00:00:00:00:00:08/None",
+ "inElements": [
+ "00:00:00:00:00:01/None"
+ ],
+ "outElements": [
+ "00:00:00:00:00:08/None"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/apps/imr/api/src/main/resources/definitions/reRouteIntentsPost.json b/apps/imr/api/src/main/resources/definitions/reRouteIntentsPost.json
new file mode 100644
index 0000000..e6c088b
--- /dev/null
+++ b/apps/imr/api/src/main/resources/definitions/reRouteIntentsPost.json
@@ -0,0 +1,44 @@
+{
+ "routingList": [
+ {
+ "key": "00:00:00:00:00:08/None00:00:00:00:00:01/None",
+ "appId": {
+ "id" : 71,
+ "name" : "org.onosproject.ifwd"
+ },
+ "paths": [
+ {
+ "path":
+ ["00:00:00:00:00:08/None",
+ "of:000000000000000c",
+ "of:0000000000000001",
+ "of:000000000000000d",
+ "of:0000000000000002",
+ "of:000000000000000b",
+ "00:00:00:00:00:01/None"],
+ "weight": 1.0
+ }
+ ]
+ },
+ {
+ "key": "00:00:00:00:00:01/None00:00:00:00:00:08/None",
+ "appId": {
+ "id" : 71,
+ "name" : "org.onosproject.ifwd"
+ },
+ "paths": [
+ {
+ "path":
+ ["00:00:00:00:00:01/None",
+ "of:000000000000000b",
+ "of:0000000000000002",
+ "of:000000000000000e",
+ "of:0000000000000001",
+ "of:000000000000000c",
+ "00:00:00:00:00:01/None"],
+ "weight": 1.0
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file