Add model local verification toolchain

Change-Id: I89b775d0e4f598fd396e42c6fad4cc55733781ff
diff --git a/.kitchen.yml b/.kitchen.yml
new file mode 100644
index 0000000..7df4724
--- /dev/null
+++ b/.kitchen.yml
@@ -0,0 +1,41 @@
+---
+driver:
+  name: docker
+  use_sudo: false
+  volume:
+    - <%= ENV['PWD'] %>:/tmp/kitchen
+
+provisioner:
+  name: shell
+  script: verify.sh
+
+platforms:
+  <% `find classes/cluster -maxdepth 1 -mindepth 1 -type d | tr '_' '-' |sort -u`.split().each do |cluster| %>
+  <% cluster=cluster.split('/')[2] %>
+  - name: <%= cluster %>
+    driver_config:
+      #image: ubuntu:16.04
+      image: tcpcloud/salt-models-testing # With preinstalled dependencies (faster)
+      platform: ubuntu
+      hostname: cfg01.<%= cluster %>.local
+      provision_command:
+        - apt-get update
+        - apt-get install -y git curl python-pip
+        - git clone https://github.com/salt-formulas/salt-formulas-scripts /srv/salt/scripts
+        - cd /srv/salt/scripts; git pull -r; cd -
+        # NOTE: Configure ENV options as needed, example:
+        - echo "
+            export BOOTSTRAP=1;\n
+            export CLUSTER_NAME=<%= cluster %>;\n
+            export FORMULAS_SOURCE=pkg;\n
+            export RECLASS_VERSION=dev;\n
+            export RECLASS_IGNORE_CLASS_NOTFOUND=True;\n
+            export EXTRA_FORMULAS="";\n
+          " > /kitchen.env
+          #export RECLASS_SOURCE_PATH=/usr/lib/python2.7/site-packages/reclass;\n
+          #export PYTHONPATH=$RECLASS_SOURCE_PATH:$PYTHONPATH;\n
+  <% end %>
+
+suites:
+  - name: cluster
+
diff --git a/verify.sh b/verify.sh
new file mode 100755
index 0000000..f1f9739
--- /dev/null
+++ b/verify.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+#export HOSTNAME=${`hostname -s`}
+#export DOMAIN=${`hostname -d`}
+cd /srv/salt/scripts; git pull -r || true; source bootstrap.sh || exit 1
+
+# BOOTSTRAP
+if [[ $BOOTSTRAP =~ ^(True|true|1|yes)$ ]]; then
+  # workarounds for kitchen
+  test ! -e /tmp/kitchen  || (mkdir -p /srv/salt/reclass; rsync -avh /tmp/kitchen/ /srv/salt/reclass)
+  cd /srv/salt/reclass
+  # clone latest system-level if missing
+  if [[ -e .gitmodules ]] && [[ ! -e classes/system/linux ]]; then
+    git submodule update --init --recursive --remote || true
+  fi
+  source_local_envs
+  /srv/salt/scripts/bootstrap.sh
+  if [[ -e /tmp/kitchen ]]; then sed -i '/export BOOTSTRAP=/d' /kitchen.env; fi
+fi
+
+# VERIFY
+export RECLASS_IGNORE_CLASS_NOTFOUND=False
+cd /srv/salt/reclass &&\
+if [[ -z "$1" ]] ; then
+  verify_salt_master &&\
+  verify_salt_minions
+else
+  verify_salt_minion "$1"
+fi