Add's support for Juniper Contrail packaging + test-kitchen (#2)

* Add's support for Juniper packaging
 - handle vendor packaging differences
 - map.jina loaded from yaml
 - test kitchen validation on Travis
 - multiple test/pillars fixtures
 - .kitchen.vagrant.yml for tests not passing on docker
 - fix, remove virtual package name as full is required

* Fix epcim complains about non reclass usage test

Change-Id: I7b4892cce1063f583b045954b6b64b30d3b01a65

* Update contrail-vrouter-agent.conf for lbaas

* Juniper: Allow downgrades while installing pkgs on controller nodes; precreate cassandra data dir
diff --git a/.kitchen.yml b/.kitchen.yml
new file mode 100644
index 0000000..52aeb8b
--- /dev/null
+++ b/.kitchen.yml
@@ -0,0 +1,125 @@
+---
+driver:
+  name: docker
+  hostname: opencontrail
+  use_sudo: true
+
+provisioner:
+  name: salt_solo
+  salt_install: bootstrap
+  salt_bootstrap_url: https://bootstrap.saltstack.com
+  salt_version: latest
+  require_chef: false
+  log_level: error
+  formula: opencontrail
+  grains:
+    noservices: True
+  vendor_repo:
+    - type: apt
+      url: http://apt-mk.mirantis.com/trusty
+      key_url: http://apt-mk.mirantis.com/public.gpg
+      components: oc303 extra
+      distribution: nightly
+  dependencies:
+    - name: linux
+      repo: git
+      source: https://github.com/salt-formulas/salt-formula-linux
+  state_top:
+    base:
+      "*":
+        - linux
+        - opencontrail
+  pillars:
+    top.sls:
+      base:
+        "*":
+          - linux_repo_cassandra
+          - linux_repo_mos
+          - linux
+          - opencontrail
+          - opencontrail_juniper
+    linux.sls:
+      linux:
+        system:
+          enabled: true
+          name: opencontrail
+        network:
+          enabled: true
+          hostname: opencontrail
+          interface:
+            vhost0:
+              enabled: True
+              type: eth
+    opencontrail_juniper.sls: {}
+  pillars-from-files:
+    linux_repo_mos.sls: tests/pillar/repo_mos8.sls
+    linux_repo_cassandra.sls: tests/pillar/repo_cassandra.sls
+
+verifier:
+  name: inspec
+  sudo: true
+
+platforms:
+  - name: <%= ENV['PLATFORM'] || 'ubuntu-trusty' %>
+    driver_config:
+      image: <%= ENV['PLATFORM'] || 'trevorj/salty-whales:trusty' %>
+      platform: ubuntu
+
+suites:
+
+  - name: analytics
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/analytics.sls
+
+  - name: cluster
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/cluster.sls
+
+  - name: control
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/control.sls
+
+  - name: single
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/single.sls
+
+
+# Note: require juniper contrail repo available
+  - name: vendor-juniper
+    provisioner:
+      vendor_repo:
+        - type: apt
+          url: http://aptly.local/contrail
+          key_url: http://aptly.local/public.gpg
+          components: main
+          distribution: trusty
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/control.sls
+      pillars:
+        opencontrail_juniper.sls:
+          opencontrail:
+            common:
+              vendor: juniper
+
+# Note: Following suites not pass on docker platform
+#       the scope of the test may be limited.
+  - name: tor
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/tor.sls
+
+  - name: vrouter_kubernetes
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/vrouter_kubernetes.sls
+
+  - name: vrouter
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/vrouter.sls
+
+# vim: ft=yaml sw=2 ts=2 sts=2 tw=125