Add some interlocks to intents test

Change-Id: I1d4b7509b2e038a1d2d123dfb9324234abcfd916
diff --git a/tools/test/bin/onos-check-intent b/tools/test/bin/onos-check-intent
new file mode 100755
index 0000000..900373b
--- /dev/null
+++ b/tools/test/bin/onos-check-intent
@@ -0,0 +1,21 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Checks that all intents in the system have a given state.
+# -----------------------------------------------------------------------------
+
+[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
+. $ONOS_ROOT/tools/build/envDefaults
+
+aux=/tmp/stc-$$.log
+trap "rm -f $aux 2>/dev/null" EXIT
+target=${1:-$OCI}
+
+set -x
+for i in 1 2 3; do
+    onos $target "onos:intents" | grep "state=$2" >> $aux && cat $aux && exit 0
+    sleep 1
+done
+
+cat $aux
+exit 1
+
diff --git a/tools/test/scenarios/net-host-intent.xml b/tools/test/scenarios/net-host-intent.xml
index d256a58..121303d 100644
--- a/tools/test/scenarios/net-host-intent.xml
+++ b/tools/test/scenarios/net-host-intent.xml
@@ -25,12 +25,26 @@
               exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect ."/>
 
         <step name="Create-Intent" requires="^"
-              exec="onos ${OCI} add-host-intent 00:00:00:00:00:01/-1 00:00:00:00:00:04/-1"/>
+              exec="onos ${OC1} add-host-intent 00:00:00:00:00:01/-1 00:00:00:00:00:04/-1"/>
+        <step name="Validate-Intent-Installed" exec="onos-check-intent ${OC1} INSTALLED"
+              requires="Create-Intent" />
 
         <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Host-Intent"/>
-        <dependency name="Host-Intent.Net-Link-Down-Up" requires="Create-Intent"/>
+        <dependency name="Host-Intent.Net-Link-Down-Up" requires="Validate-Intent-Installed"/>
+        <step name="Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} INSTALLED"
+              requires="Host-Intent.Link-1-Down" />
 
-        <step name="Remove-Intent" requires="Host-Intent.Net-Link-Down-Up"
-              exec="onos ${OCI} remove-intent --purge"/>
+        <step name="Validate-Intent-Failed" exec="onos-check-intent ${OC1} FAILED"
+              requires="Host-Intent.Link-2-Down" />
+
+        <step name="Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} INSTALLED"
+              requires="Host-Intent.Link-1-Up" />
+        <dependency name="Host-Intent.Ping-4" requires="Validate-Intent-Installed-Again" />
+
+        <step name="Remove-Intent" requires="~Host-Intent.Net-Link-Down-Up"
+              exec="onos ${OC1} remove-intent -p"/>
+        
+
+
     </group>
-</scenario>
\ No newline at end of file
+</scenario>