diff --git a/.kitchen.yml b/.kitchen.yml
index 42ec81a..113ee81 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -30,7 +30,6 @@
           - linux_repo_openstack
           - linux_repo_opencontrail
           - linux_repo_cassandra
-          - linux_repo_mos
           - linux
           - opencontrail
           - opencontrail_juniper
@@ -41,9 +40,8 @@
           name: opencontrail
     opencontrail_juniper.sls: {}
   pillars-from-files:
-    linux_repo_mos.sls: tests/pillar/repo_mos8.sls
     linux_repo_cassandra.sls: tests/pillar/repo_cassandra.sls
-    linux_repo_opencontrail.sls: tests/pillar/repo_opencontrail.sls
+    linux_repo_opencontrail.sls: tests/pillar/repo_opencontrail_<%= ENV['OC_REPO'] || 'oc311' %>.sls
     linux_repo_openstack.sls: tests/pillar/repo_openstack.sls
 
 verifier:
@@ -58,9 +56,29 @@
 
 suites:
 
-  - name: <%= ENV['SUITE'] || 'single' %>
+  # - name: single<%= ENV['OC_VERSION'] || '' %>
+  #   provisioner:
+  #     pillars-from-files:
+  #       opencontrail.sls: tests/pillar/single<%= ENV['OC_VERSION'] || '' %>.sls
+  - name: analytics<%= ENV['OC_VERSION'] || '' %>
     provisioner:
       pillars-from-files:
-        opencontrail.sls: tests/pillar/<%= ENV['SUITE'] || 'single' %>.sls
+        opencontrail.sls: tests/pillar/analytics<%= ENV['OC_VERSION'] || '' %>.sls
+  - name: control<%= ENV['OC_VERSION'] || '' %>
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/control<%= ENV['OC_VERSION'] || '' %>.sls
+  # - name: cluster<%= ENV['OC_VERSION'] || '' %>
+  #   provisioner:
+  #     pillars-from-files:
+  #       opencontrail.sls: tests/pillar/cluster<%= ENV['OC_VERSION'] || '' %>.sls
+  - name: tor<%= ENV['OC_VERSION'] || '' %>
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/tor<%= ENV['OC_VERSION'] || '' %>.sls
+  - name: vrouter<%= ENV['OC_VERSION'] || '' %>
+    provisioner:
+      pillars-from-files:
+        opencontrail.sls: tests/pillar/vrouter<%= ENV['OC_VERSION'] || '' %>.sls
 
 # vim: ft=yaml sw=2 ts=2 sts=2 tw=125
diff --git a/.travis.yml b/.travis.yml
index 4dd9d20..7ed0bdb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,19 +18,11 @@
   - bundle install
 
 env:
-  matrix:
-   - SUITE=analytics
-   - SUITE=control
-   - SUITE=cluster
-   - SUITE=single
-   - SUITE=tor
-   - SUITE=vrouter
-   - PLATFORM=trevorj/salty-whales:trusty SUITE=analytics
-   - PLATFORM=trevorj/salty-whales:trusty SUITE=control
-   - PLATFORM=trevorj/salty-whales:trusty SUITE=cluster
-   - PLATFORM=trevorj/salty-whales:trusty SUITE=single
-   - PLATFORM=trevorj/salty-whales:trusty SUITE=tor
-   - PLATFORM=trevorj/salty-whales:trusty SUITE=vrouter
+  - PLATFORM=trevorj/salty-whales:trusty
+  - PLATFORM=trevorj/salty-whales:trusty OC_REPO=oc323
+  - OC_REPO=oc323
+  - PLATFORM=trevorj/salty-whales:trusty OC_REPO=oc40 OC_VERSION=4_0
+  - OC_REPO=oc40 OC_VERSION=4_0
 
 before_script:
   - set -o pipefail
diff --git a/opencontrail/collector.sls b/opencontrail/collector.sls
index 5e49aaa..ca5333d 100644
--- a/opencontrail/collector.sls
+++ b/opencontrail/collector.sls
@@ -65,7 +65,7 @@
   - require:
     - pkg: opencontrail_collector_packages
 
-{% if collector.version == 3.0 %}
+{%- if collector.version >= 3.0 %}
 
 /etc/contrail/supervisord_analytics_files/contrail-analytics-nodemgr.ini:
   file.managed:
@@ -84,8 +84,7 @@
   - require_in:
     - service: opencontrail_collector_services
 
-{% endif %}
-
+{%- endif %}
 
 opencontrail_collector_services:
   service.running:
diff --git a/opencontrail/compute.sls b/opencontrail/compute.sls
index 8729b02..7df9d2b 100644
--- a/opencontrail/compute.sls
+++ b/opencontrail/compute.sls
@@ -35,6 +35,8 @@
   - watch_in:
     - service: opencontrail_compute_services
 
+{%- if compute.version <= 3.0 %}
+
 /etc/contrail/vrouter_nodemgr_param:
   file.managed:
   - source: salt://opencontrail/files/{{ compute.version }}/vrouter_nodemgr_param
@@ -42,6 +44,8 @@
   - require:
     - pkg: opencontrail_compute_packages
 
+{%- endif %}
+
 /etc/contrail/agent_param:
   file.managed:
   - source: salt://opencontrail/files/{{ compute.version }}/agent_param
@@ -63,7 +67,7 @@
   - source: salt://opencontrail/files/findns
   - mode: 755
 
-{% if compute.version == 3.0 %}
+{%- if compute.version >= 3.0 %}
 
 /etc/contrail/supervisord_vrouter_files/contrail-vrouter-nodemgr.ini:
   file.managed:
@@ -84,7 +88,7 @@
   - require:
     - file: /etc/udev/rules.d/vhost-net.rules
 
-{% endif %}
+{%- endif %}
 
 {%- if compute.dpdk.enabled %}
 
diff --git a/opencontrail/config.sls b/opencontrail/config.sls
index 17964b4..dc035e5 100644
--- a/opencontrail/config.sls
+++ b/opencontrail/config.sls
@@ -9,6 +9,8 @@
   - names: {{ config.pkgs }}
   - force_yes: True
 
+{% if config.version == 2.2 or config.version == 3.0 %}
+
 /etc/ifmap-server/authorization.properties:
   file.managed:
   - source: salt://opencontrail/files/{{ config.version }}/config/authorization.properties
@@ -42,22 +44,10 @@
   - require:
     - pkg: opencontrail_config_packages
 
-/etc/contrail/supervisord_config_files/contrail-api.ini:
-  file.managed:
-  - source: salt://opencontrail/files/{{ config.version }}/config/contrail-api.ini
-  - makedirs: true
-  - require:
-    - pkg: opencontrail_config_packages
-
 /etc/contrail/supervisord_config_files/contrail-discovery.ini:
   file.managed:
   - source: salt://opencontrail/files/{{ config.version }}/config/contrail-discovery.ini
-  - require:
-    - pkg: opencontrail_config_packages
-
-/etc/init.d/contrail-api:
-  file.managed:
-  - source: salt://opencontrail/files/{{ config.version }}/config/contrail-api
+  - makedirs: true
   - require:
     - pkg: opencontrail_config_packages
 
@@ -67,16 +57,31 @@
   - require:
     - pkg: opencontrail_config_packages
 
-/etc/contrail/contrail-api.conf:
+/etc/contrail/contrail-discovery.conf:
   file.managed:
-  - source: salt://opencontrail/files/{{ config.version }}/contrail-api.conf
+  - source: salt://opencontrail/files/{{ config.version }}/contrail-discovery.conf
   - template: jinja
   - require:
     - pkg: opencontrail_config_packages
 
-/etc/contrail/contrail-discovery.conf:
+{%- endif %}
+
+/etc/contrail/supervisord_config_files/contrail-api.ini:
   file.managed:
-  - source: salt://opencontrail/files/{{ config.version }}/contrail-discovery.conf
+  - source: salt://opencontrail/files/{{ config.version }}/config/contrail-api.ini
+  - makedirs: true
+  - require:
+    - pkg: opencontrail_config_packages
+
+/etc/init.d/contrail-api:
+  file.managed:
+  - source: salt://opencontrail/files/{{ config.version }}/config/contrail-api
+  - require:
+    - pkg: opencontrail_config_packages
+
+/etc/contrail/contrail-api.conf:
+  file.managed:
+  - source: salt://opencontrail/files/{{ config.version }}/contrail-api.conf
   - template: jinja
   - require:
     - pkg: opencontrail_config_packages
@@ -138,7 +143,7 @@
   - require:
     - pkg: opencontrail_config_packages
 
-{% if config.version == 3.0 %}
+{%- if config.version >= 3.0 %}
 
 /etc/contrail/supervisord_config_files/contrail-config-nodemgr.ini:
   file.managed:
@@ -169,7 +174,7 @@
   - require_in:
     - service: opencontrail_config_services
 
-{% endif %}
+{%- endif %}
 
 opencontrail_config_services:
   service.running:
@@ -179,12 +184,14 @@
   - onlyif: /bin/false
   {%- endif %}
   - watch: 
+    {%- if config.version <= 3.0 %}
     - file: /etc/contrail/contrail-discovery.conf
+    - file: /etc/ifmap-server/basicauthusers.properties
+    {%- endif %}
     - file: /etc/contrail/contrail-svc-monitor.conf
     - file: /etc/contrail/contrail-schema.conf
     - file: /etc/contrail/contrail-api.conf
     - file: /etc/contrail/vnc_api_lib.ini
-    - file: /etc/ifmap-server/basicauthusers.properties
     - file: /etc/sudoers.d/contrail_sudoers
 
 {%- if grains.get('virtual_subtype', None) == "Docker" %}
diff --git a/opencontrail/control.sls b/opencontrail/control.sls
index 1dcdf6b..e89e6f8 100644
--- a/opencontrail/control.sls
+++ b/opencontrail/control.sls
@@ -43,7 +43,7 @@
   - require:
     - pkg: opencontrail_control_packages
 
-{% if control.version == 3.0 %}
+{%- if control.version >= 3.0 %}
 
 /etc/contrail/supervisord_control_files/contrail-control-nodemgr.ini:
   file.managed:
@@ -62,7 +62,7 @@
   - require_in:
     - service: opencontrail_control_services
 
-{% endif %}
+{%- endif %}
 
 opencontrail_control_services:
   service.running:
diff --git a/opencontrail/database.sls b/opencontrail/database.sls
index 2293117..036201a 100644
--- a/opencontrail/database.sls
+++ b/opencontrail/database.sls
@@ -101,7 +101,7 @@
   file.managed:
   - contents: '{{ database.id }}'
 
-{% if database.version == 3.0 %}
+{%- if database.version >= 3.0 %}
 
 /usr/share/kafka/config/server.properties:
   file.managed:
@@ -122,7 +122,7 @@
     - service: opencontrail_database_services
     - service: opencontrail_zookeeper_service
 
-{% endif %}
+{%- endif %}
 
 {% if grains.os_family == "Debian" %}
 #Stop cassandra started by init script - replaced by contrail-database
diff --git a/opencontrail/files/4.0/agent_param b/opencontrail/files/4.0/agent_param
new file mode 100644
index 0000000..22560b5
--- /dev/null
+++ b/opencontrail/files/4.0/agent_param
@@ -0,0 +1,12 @@
+{%- from "opencontrail/map.jinja" import compute with context %}
+LOG=/var/log/contrail.log
+CONFIG=/etc/contrail/contrail-vrouter-agent.conf
+prog=/usr/bin/contrail-vrouter-agent
+kmod="vrouter"
+pname=contrail-vrouter-agent
+LIBDIR=/usr/lib
+DEVICE=vhost0
+dev={{ compute.interface.dev }}
+vgw_subnet_ip=__VGW_SUBNET_IP__
+vgw_intf=__VGW_INTF_LIST__
+LOGFILE=--log-file=/var/log/contrail/vrouter.log
diff --git a/opencontrail/files/4.0/cassandra.yaml b/opencontrail/files/4.0/cassandra.yaml
new file mode 100644
index 0000000..3ec784d
--- /dev/null
+++ b/opencontrail/files/4.0/cassandra.yaml
@@ -0,0 +1,803 @@
+{%- from "opencontrail/map.jinja" import database with context %}
+# Cassandra storage config YAML 
+
+# NOTE:
+#   See http://wiki.apache.org/cassandra/StorageConfiguration for
+#   full explanations of configuration directives
+# /NOTE
+
+# The name of the cluster. This is mainly used to prevent machines in
+# one logical cluster from joining another.
+cluster_name: '{{ database.name }}'
+
+# This defines the number of tokens randomly assigned to this node on the ring
+# The more tokens, relative to other nodes, the larger the proportion of data
+# that this node will store. You probably want all nodes to have the same number
+# of tokens assuming they have equal hardware capability.
+#
+# If you leave this unspecified, Cassandra will use the default of 1 token for legacy compatibility,
+# and will use the initial_token as described below.
+#
+# Specifying initial_token will override this setting on the node's initial start,
+# on subsequent starts, this setting will apply even if initial token is set.
+#
+# If you already have a cluster with 1 token per node, and wish to migrate to 
+# multiple tokens per node, see http://wiki.apache.org/cassandra/Operations
+num_tokens: 256
+
+# initial_token allows you to specify tokens manually.  While you can use # it with
+# vnodes (num_tokens > 1, above) -- in which case you should provide a 
+# comma-separated list -- it's primarily used when adding nodes # to legacy clusters 
+# that do not have vnodes enabled.
+# initial_token:
+
+# See http://wiki.apache.org/cassandra/HintedHandoff
+# May either be "true" or "false" to enable globally, or contain a list
+# of data centers to enable per-datacenter.
+# hinted_handoff_enabled: DC1,DC2
+hinted_handoff_enabled: true
+# this defines the maximum amount of time a dead host will have hints
+# generated.  After it has been dead this long, new hints for it will not be
+# created until it has been seen alive and gone down again.
+max_hint_window_in_ms: 10800000 # 3 hours
+# Maximum throttle in KBs per second, per delivery thread.  This will be
+# reduced proportionally to the number of nodes in the cluster.  (If there
+# are two nodes in the cluster, each delivery thread will use the maximum
+# rate; if there are three, each will throttle to half of the maximum,
+# since we expect two nodes to be delivering hints simultaneously.)
+hinted_handoff_throttle_in_kb: 1024
+# Number of threads with which to deliver hints;
+# Consider increasing this number when you have multi-dc deployments, since
+# cross-dc handoff tends to be slower
+max_hints_delivery_threads: 2
+
+# Maximum throttle in KBs per second, total. This will be
+# reduced proportionally to the number of nodes in the cluster.
+batchlog_replay_throttle_in_kb: 1024
+
+# Authentication backend, implementing IAuthenticator; used to identify users
+# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthenticator,
+# PasswordAuthenticator}.
+#
+# - AllowAllAuthenticator performs no checks - set it to disable authentication.
+# - PasswordAuthenticator relies on username/password pairs to authenticate
+#   users. It keeps usernames and hashed passwords in system_auth.credentials table.
+#   Please increase system_auth keyspace replication factor if you use this authenticator.
+authenticator: AllowAllAuthenticator
+
+# Authorization backend, implementing IAuthorizer; used to limit access/provide permissions
+# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer,
+# CassandraAuthorizer}.
+#
+# - AllowAllAuthorizer allows any action to any user - set it to disable authorization.
+# - CassandraAuthorizer stores permissions in system_auth.permissions table. Please
+#   increase system_auth keyspace replication factor if you use this authorizer.
+authorizer: AllowAllAuthorizer
+
+# Validity period for permissions cache (fetching permissions can be an
+# expensive operation depending on the authorizer, CassandraAuthorizer is
+# one example). Defaults to 2000, set to 0 to disable.
+# Will be disabled automatically for AllowAllAuthorizer.
+permissions_validity_in_ms: 2000
+
+# Refresh interval for permissions cache (if enabled).
+# After this interval, cache entries become eligible for refresh. Upon next
+# access, an async reload is scheduled and the old value returned until it
+# completes. If permissions_validity_in_ms is non-zero, then this must be
+# also.
+# Defaults to the same value as permissions_validity_in_ms.
+# permissions_update_interval_in_ms: 1000
+
+# The partitioner is responsible for distributing groups of rows (by
+# partition key) across nodes in the cluster.  You should leave this
+# alone for new clusters.  The partitioner can NOT be changed without
+# reloading all data, so when upgrading you should set this to the
+# same partitioner you were already using.
+#
+# Besides Murmur3Partitioner, partitioners included for backwards
+# compatibility include RandomPartitioner, ByteOrderedPartitioner, and
+# OrderPreservingPartitioner.
+#
+partitioner: org.apache.cassandra.dht.Murmur3Partitioner
+
+# Directories where Cassandra should store data on disk.  Cassandra
+# will spread data evenly across them, subject to the granularity of
+# the configured compaction strategy.
+# If not set, the default directory is $CASSANDRA_HOME/data/data.
+data_file_directories:
+    - /var/lib/cassandra/data
+
+# commit log.  when running on magnetic HDD, this should be a
+# separate spindle than the data directories.
+# If not set, the default directory is $CASSANDRA_HOME/data/commitlog.
+commitlog_directory: /var/lib/cassandra/commitlog
+
+# policy for data disk failures:
+# die: shut down gossip and Thrift and kill the JVM for any fs errors or
+#      single-sstable errors, so the node can be replaced.
+# stop_paranoid: shut down gossip and Thrift even for single-sstable errors.
+# stop: shut down gossip and Thrift, leaving the node effectively dead, but
+#       can still be inspected via JMX.
+# best_effort: stop using the failed disk and respond to requests based on
+#              remaining available sstables.  This means you WILL see obsolete
+#              data at CL.ONE!
+# ignore: ignore fatal errors and let requests fail, as in pre-1.2 Cassandra
+disk_failure_policy: stop
+
+# policy for commit disk failures:
+# die: shut down gossip and Thrift and kill the JVM, so the node can be replaced.
+# stop: shut down gossip and Thrift, leaving the node effectively dead, but
+#       can still be inspected via JMX.
+# stop_commit: shutdown the commit log, letting writes collect but
+#              continuing to service reads, as in pre-2.0.5 Cassandra
+# ignore: ignore fatal errors and let the batches fail
+commit_failure_policy: stop
+
+# Maximum size of the key cache in memory.
+#
+# Each key cache hit saves 1 seek and each row cache hit saves 2 seeks at the
+# minimum, sometimes more. The key cache is fairly tiny for the amount of
+# time it saves, so it's worthwhile to use it at large numbers.
+# The row cache saves even more time, but must contain the entire row,
+# so it is extremely space-intensive. It's best to only use the
+# row cache if you have hot rows or static rows.
+#
+# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.
+#
+# Default value is empty to make it "auto" (min(5% of Heap (in MB), 100MB)). Set to 0 to disable key cache.
+key_cache_size_in_mb:
+
+# Duration in seconds after which Cassandra should
+# save the key cache. Caches are saved to saved_caches_directory as
+# specified in this configuration file.
+#
+# Saved caches greatly improve cold-start speeds, and is relatively cheap in
+# terms of I/O for the key cache. Row cache saving is much more expensive and
+# has limited use.
+#
+# Default is 14400 or 4 hours.
+key_cache_save_period: 14400
+
+# Number of keys from the key cache to save
+# Disabled by default, meaning all keys are going to be saved
+# key_cache_keys_to_save: 100
+
+# Maximum size of the row cache in memory.
+# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.
+#
+# Default value is 0, to disable row caching.
+row_cache_size_in_mb: 0
+
+# Duration in seconds after which Cassandra should
+# save the row cache. Caches are saved to saved_caches_directory as specified
+# in this configuration file.
+#
+# Saved caches greatly improve cold-start speeds, and is relatively cheap in
+# terms of I/O for the key cache. Row cache saving is much more expensive and
+# has limited use.
+#
+# Default is 0 to disable saving the row cache.
+row_cache_save_period: 0
+
+# Number of keys from the row cache to save
+# Disabled by default, meaning all keys are going to be saved
+# row_cache_keys_to_save: 100
+
+# Maximum size of the counter cache in memory.
+#
+# Counter cache helps to reduce counter locks' contention for hot counter cells.
+# In case of RF = 1 a counter cache hit will cause Cassandra to skip the read before
+# write entirely. With RF > 1 a counter cache hit will still help to reduce the duration
+# of the lock hold, helping with hot counter cell updates, but will not allow skipping
+# the read entirely. Only the local (clock, count) tuple of a counter cell is kept
+# in memory, not the whole counter, so it's relatively cheap.
+#
+# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.
+#
+# Default value is empty to make it "auto" (min(2.5% of Heap (in MB), 50MB)). Set to 0 to disable counter cache.
+# NOTE: if you perform counter deletes and rely on low gcgs, you should disable the counter cache.
+counter_cache_size_in_mb:
+
+# Duration in seconds after which Cassandra should
+# save the counter cache (keys only). Caches are saved to saved_caches_directory as
+# specified in this configuration file.
+#
+# Default is 7200 or 2 hours.
+counter_cache_save_period: 7200
+
+# Number of keys from the counter cache to save
+# Disabled by default, meaning all keys are going to be saved
+# counter_cache_keys_to_save: 100
+
+# The off-heap memory allocator.  Affects storage engine metadata as
+# well as caches.  Experiments show that JEMAlloc saves some memory
+# than the native GCC allocator (i.e., JEMalloc is more
+# fragmentation-resistant).
+# 
+# Supported values are: NativeAllocator, JEMallocAllocator
+#
+# If you intend to use JEMallocAllocator you have to install JEMalloc as library and
+# modify cassandra-env.sh as directed in the file.
+#
+# Defaults to NativeAllocator
+# memory_allocator: NativeAllocator
+
+# saved caches
+# If not set, the default directory is $CASSANDRA_HOME/data/saved_caches.
+saved_caches_directory: /var/lib/cassandra/saved_caches
+
+# commitlog_sync may be either "periodic" or "batch." 
+# 
+# When in batch mode, Cassandra won't ack writes until the commit log
+# has been fsynced to disk.  It will wait
+# commitlog_sync_batch_window_in_ms milliseconds between fsyncs.
+# This window should be kept short because the writer threads will
+# be unable to do extra work while waiting.  (You may need to increase
+# concurrent_writes for the same reason.)
+#
+# commitlog_sync: batch
+# commitlog_sync_batch_window_in_ms: 2
+#
+# the other option is "periodic" where writes may be acked immediately
+# and the CommitLog is simply synced every commitlog_sync_period_in_ms
+# milliseconds. 
+commitlog_sync: periodic
+commitlog_sync_period_in_ms: 10000
+
+# The size of the individual commitlog file segments.  A commitlog
+# segment may be archived, deleted, or recycled once all the data
+# in it (potentially from each columnfamily in the system) has been
+# flushed to sstables.  
+#
+# The default size is 32, which is almost always fine, but if you are
+# archiving commitlog segments (see commitlog_archiving.properties),
+# then you probably want a finer granularity of archiving; 8 or 16 MB
+# is reasonable.
+commitlog_segment_size_in_mb: 32
+
+# any class that implements the SeedProvider interface and has a
+# constructor that takes a Map<String, String> of parameters will do.
+seed_provider:
+    # Addresses of hosts that are deemed contact points. 
+    # Cassandra nodes use this list of hosts to find each other and learn
+    # the topology of the ring.  You must change this if you are running
+    # multiple nodes!
+    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
+      parameters:
+          # seeds is actually a comma-delimited list of addresses.
+          # Ex: "<ip1>,<ip2>,<ip3>"
+          - seeds: "{%- for member in database.members %}{{ member.host }},{%- endfor %}"
+
+# For workloads with more data than can fit in memory, Cassandra's
+# bottleneck will be reads that need to fetch data from
+# disk. "concurrent_reads" should be set to (16 * number_of_drives) in
+# order to allow the operations to enqueue low enough in the stack
+# that the OS and drives can reorder them. Same applies to
+# "concurrent_counter_writes", since counter writes read the current
+# values before incrementing and writing them back.
+#
+# On the other hand, since writes are almost never IO bound, the ideal
+# number of "concurrent_writes" is dependent on the number of cores in
+# your system; (8 * number_of_cores) is a good rule of thumb.
+concurrent_reads: 32
+concurrent_writes: 32
+concurrent_counter_writes: 32
+
+
+# Total memory to use for sstable-reading buffers.  Defaults to
+# the smaller of 1/4 of heap or 512MB.
+# file_cache_size_in_mb: 512
+
+# Total permitted memory to use for memtables. Cassandra will stop 
+# accepting writes when the limit is exceeded until a flush completes,
+# and will trigger a flush based on memtable_cleanup_threshold
+# If omitted, Cassandra will set both to 1/4 the size of the heap.
+# memtable_heap_space_in_mb: 2048
+# memtable_offheap_space_in_mb: 2048
+
+# Ratio of occupied non-flushing memtable size to total permitted size
+# that will trigger a flush of the largest memtable.  Lager mct will
+# mean larger flushes and hence less compaction, but also less concurrent
+# flush activity which can make it difficult to keep your disks fed
+# under heavy write load.
+#
+# memtable_cleanup_threshold defaults to 1 / (memtable_flush_writers + 1)
+# memtable_cleanup_threshold: 0.11
+
+# Specify the way Cassandra allocates and manages memtable memory.
+# Options are:
+#   heap_buffers:    on heap nio buffers
+#   offheap_buffers: off heap (direct) nio buffers
+#   offheap_objects: native memory, eliminating nio buffer heap overhead
+memtable_allocation_type: heap_buffers
+
+# Total space to use for commitlogs.  Since commitlog segments are
+# mmapped, and hence use up address space, the default size is 32
+# on 32-bit JVMs, and 8192 on 64-bit JVMs.
+#
+# If space gets above this value (it will round up to the next nearest
+# segment multiple), Cassandra will flush every dirty CF in the oldest
+# segment and remove it.  So a small total commitlog space will tend
+# to cause more flush activity on less-active columnfamilies.
+# commitlog_total_space_in_mb: 8192
+
+# This sets the amount of memtable flush writer threads.  These will
+# be blocked by disk io, and each one will hold a memtable in memory
+# while blocked. 
+#
+# memtable_flush_writers defaults to the smaller of (number of disks,
+# number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
+#memtable_flush_writers: 8
+
+# A fixed memory pool size in MB for for SSTable index summaries. If left
+# empty, this will default to 5% of the heap size. If the memory usage of
+# all index summaries exceeds this limit, SSTables with low read rates will
+# shrink their index summaries in order to meet this limit.  However, this
+# is a best-effort process. In extreme conditions Cassandra may need to use
+# more than this amount of memory.
+index_summary_capacity_in_mb:
+
+# How frequently index summaries should be resampled.  This is done
+# periodically to redistribute memory from the fixed-size pool to sstables
+# proportional their recent read rates.  Setting to -1 will disable this
+# process, leaving existing index summaries at their current sampling level.
+index_summary_resize_interval_in_minutes: 60
+
+# Whether to, when doing sequential writing, fsync() at intervals in
+# order to force the operating system to flush the dirty
+# buffers. Enable this to avoid sudden dirty buffer flushing from
+# impacting read latencies. Almost always a good idea on SSDs; not
+# necessarily on platters.
+trickle_fsync: false
+trickle_fsync_interval_in_kb: 10240
+
+# TCP port, for commands and data
+# For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+storage_port: 7000
+
+# SSL port, for encrypted communication.  Unused unless enabled in
+# encryption_options
+# For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+ssl_storage_port: 7001
+
+# Address or interface to bind to and tell other Cassandra nodes to connect to.
+# You _must_ change this if you want multiple nodes to be able to communicate!
+#
+# Set listen_address OR listen_interface, not both. Interfaces must correspond
+# to a single address, IP aliasing is not supported.
+#
+# Leaving it blank leaves it up to InetAddress.getLocalHost(). This
+# will always do the Right Thing _if_ the node is properly configured
+# (hostname, name resolution, etc), and the Right Thing is to use the
+# address associated with the hostname (it might not be).
+#
+# Setting listen_address to 0.0.0.0 is always wrong.
+#
+# If you choose to specify the interface by name and the interface has an ipv4 and an ipv6 address
+# you can specify which should be chosen using listen_interface_prefer_ipv6. If false the first ipv4
+# address will be used. If true the first ipv6 address will be used. Defaults to false preferring
+# ipv4. If there is only one address it will be selected regardless of ipv4/ipv6.
+{% if database.bind.interface is defined %}
+listen_interface: {{ database.bind.interface }}
+{% else %}
+listen_address: {{ database.bind.host }}
+# listen_interface: eth0
+{% endif %}
+# listen_interface_prefer_ipv6: false
+
+# Address to broadcast to other Cassandra nodes
+# Leaving this blank will set it to the same value as listen_address
+# broadcast_address: 1.2.3.4
+
+# Internode authentication backend, implementing IInternodeAuthenticator;
+# used to allow/disallow connections from peer nodes.
+# internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
+
+# Whether to start the native transport server.
+# Please note that the address on which the native transport is bound is the
+# same as the rpc_address. The port however is different and specified below.
+start_native_transport: true
+# port for the CQL native transport to listen for clients on
+# For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+native_transport_port: 9042
+# The maximum threads for handling requests when the native transport is used.
+# This is similar to rpc_max_threads though the default differs slightly (and
+# there is no native_transport_min_threads, idle threads will always be stopped
+# after 30 seconds).
+# native_transport_max_threads: 128
+#
+# The maximum size of allowed frame. Frame (requests) larger than this will
+# be rejected as invalid. The default is 256MB.
+# native_transport_max_frame_size_in_mb: 256
+
+# The maximum number of concurrent client connections.
+# The default is -1, which means unlimited.
+# native_transport_max_concurrent_connections: -1
+
+# The maximum number of concurrent client connections per source ip.
+# The default is -1, which means unlimited.
+# native_transport_max_concurrent_connections_per_ip: -1
+
+# Whether to start the thrift rpc server.
+start_rpc: true
+
+# The address or interface to bind the Thrift RPC service and native transport
+# server to.
+#
+# Set rpc_address OR rpc_interface, not both. Interfaces must correspond
+# to a single address, IP aliasing is not supported.
+#
+# Leaving rpc_address blank has the same effect as on listen_address
+# (i.e. it will be based on the configured hostname of the node).
+#
+# Note that unlike listen_address, you can specify 0.0.0.0, but you must also
+# set broadcast_rpc_address to a value other than 0.0.0.0.
+#
+# For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+#
+# If you choose to specify the interface by name and the interface has an ipv4 and an ipv6 address
+# you can specify which should be chosen using rpc_interface_prefer_ipv6. If false the first ipv4
+# address will be used. If true the first ipv6 address will be used. Defaults to false preferring
+# ipv4. If there is only one address it will be selected regardless of ipv4/ipv6.
+{% if database.bind.interface is defined %}
+rpc_interface: {{ database.bind.interface }}
+{% else %}
+rpc_address: {{ database.bind.host }}
+{% endif %}
+# port for Thrift to listen for clients on
+rpc_port: {{ database.bind.rpc_port }}
+
+# RPC address to broadcast to drivers and other Cassandra nodes. This cannot
+# be set to 0.0.0.0. If left blank, this will be set to the value of
+# rpc_address. If rpc_address is set to 0.0.0.0, broadcast_rpc_address must
+# be set.
+# broadcast_rpc_address: 1.2.3.4
+
+# enable or disable keepalive on rpc/native connections
+rpc_keepalive: true
+
+# Cassandra provides two out-of-the-box options for the RPC Server:
+#
+# sync  -> One thread per thrift connection. For a very large number of clients, memory
+#          will be your limiting factor. On a 64 bit JVM, 180KB is the minimum stack size
+#          per thread, and that will correspond to your use of virtual memory (but physical memory
+#          may be limited depending on use of stack space).
+#
+# hsha  -> Stands for "half synchronous, half asynchronous." All thrift clients are handled
+#          asynchronously using a small number of threads that does not vary with the amount
+#          of thrift clients (and thus scales well to many clients). The rpc requests are still
+#          synchronous (one thread per active request). If hsha is selected then it is essential
+#          that rpc_max_threads is changed from the default value of unlimited.
+#
+# The default is sync because on Windows hsha is about 30% slower.  On Linux,
+# sync/hsha performance is about the same, with hsha of course using less memory.
+#
+# Alternatively,  can provide your own RPC server by providing the fully-qualified class name
+# of an o.a.c.t.TServerFactory that can create an instance of it.
+rpc_server_type: sync
+
+# Uncomment rpc_min|max_thread to set request pool size limits.
+#
+# Regardless of your choice of RPC server (see above), the number of maximum requests in the
+# RPC thread pool dictates how many concurrent requests are possible (but if you are using the sync
+# RPC server, it also dictates the number of clients that can be connected at all).
+#
+# The default is unlimited and thus provides no protection against clients overwhelming the server. You are
+# encouraged to set a maximum that makes sense for you in production, but do keep in mind that
+# rpc_max_threads represents the maximum number of client requests this server may execute concurrently.
+#
+# rpc_min_threads: 16
+# rpc_max_threads: 2048
+
+# uncomment to set socket buffer sizes on rpc connections
+# rpc_send_buff_size_in_bytes:
+# rpc_recv_buff_size_in_bytes:
+
+# Uncomment to set socket buffer size for internode communication
+# Note that when setting this, the buffer size is limited by net.core.wmem_max
+# and when not setting it it is defined by net.ipv4.tcp_wmem
+# See:
+# /proc/sys/net/core/wmem_max
+# /proc/sys/net/core/rmem_max
+# /proc/sys/net/ipv4/tcp_wmem
+# /proc/sys/net/ipv4/tcp_wmem
+# and: man tcp
+# internode_send_buff_size_in_bytes:
+# internode_recv_buff_size_in_bytes:
+
+# Frame size for thrift (maximum message length).
+thrift_framed_transport_size_in_mb: 15
+
+# Set to true to have Cassandra create a hard link to each sstable
+# flushed or streamed locally in a backups/ subdirectory of the
+# keyspace data.  Removing these links is the operator's
+# responsibility.
+incremental_backups: false
+
+# Whether or not to take a snapshot before each compaction.  Be
+# careful using this option, since Cassandra won't clean up the
+# snapshots for you.  Mostly useful if you're paranoid when there
+# is a data format change.
+snapshot_before_compaction: false
+
+# Whether or not a snapshot is taken of the data before keyspace truncation
+# or dropping of column families. The STRONGLY advised default of true 
+# should be used to provide data safety. If you set this flag to false, you will
+# lose data on truncation or drop.
+auto_snapshot: true
+
+# When executing a scan, within or across a partition, we need to keep the
+# tombstones seen in memory so we can return them to the coordinator, which
+# will use them to make sure other replicas also know about the deleted rows.
+# With workloads that generate a lot of tombstones, this can cause performance
+# problems and even exaust the server heap.
+# (http://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets)
+# Adjust the thresholds here if you understand the dangers and want to
+# scan more tombstones anyway.  These thresholds may also be adjusted at runtime
+# using the StorageService mbean.
+tombstone_warn_threshold: 1000
+tombstone_failure_threshold: 100000
+
+# Granularity of the collation index of rows within a partition.
+# Increase if your rows are large, or if you have a very large
+# number of rows per partition.  The competing goals are these:
+#   1) a smaller granularity means more index entries are generated
+#      and looking up rows withing the partition by collation column
+#      is faster
+#   2) but, Cassandra will keep the collation index in memory for hot
+#      rows (as part of the key cache), so a larger granularity means
+#      you can cache more hot rows
+column_index_size_in_kb: 64
+
+
+# Log WARN on any batch size exceeding this value. 5kb per batch by default.
+# Caution should be taken on increasing the size of this threshold as it can lead to node instability.
+batch_size_warn_threshold_in_kb: 5
+
+# Number of simultaneous compactions to allow, NOT including
+# validation "compactions" for anti-entropy repair.  Simultaneous
+# compactions can help preserve read performance in a mixed read/write
+# workload, by mitigating the tendency of small sstables to accumulate
+# during a single long running compactions. The default is usually
+# fine and if you experience problems with compaction running too
+# slowly or too fast, you should look at
+# compaction_throughput_mb_per_sec first.
+#
+# concurrent_compactors defaults to the smaller of (number of disks,
+# number of cores), with a minimum of 2 and a maximum of 8.
+# 
+# If your data directories are backed by SSD, you should increase this
+# to the number of cores.
+#concurrent_compactors: 1
+
+# Throttles compaction to the given total throughput across the entire
+# system. The faster you insert data, the faster you need to compact in
+# order to keep the sstable count down, but in general, setting this to
+# 16 to 32 times the rate you are inserting data is more than sufficient.
+# Setting this to 0 disables throttling. Note that this account for all types
+# of compaction, including validation compaction.
+compaction_throughput_mb_per_sec: 16
+
+# When compacting, the replacement sstable(s) can be opened before they
+# are completely written, and used in place of the prior sstables for
+# any range that has been written. This helps to smoothly transfer reads 
+# between the sstables, reducing page cache churn and keeping hot rows hot
+sstable_preemptive_open_interval_in_mb: 50
+
+# Throttles all outbound streaming file transfers on this node to the
+# given total throughput in Mbps. This is necessary because Cassandra does
+# mostly sequential IO when streaming data during bootstrap or repair, which
+# can lead to saturating the network connection and degrading rpc performance.
+# When unset, the default is 200 Mbps or 25 MB/s.
+# stream_throughput_outbound_megabits_per_sec: 200
+
+# Throttles all streaming file transfer between the datacenters,
+# this setting allows users to throttle inter dc stream throughput in addition
+# to throttling all network stream traffic as configured with
+# stream_throughput_outbound_megabits_per_sec
+# inter_dc_stream_throughput_outbound_megabits_per_sec:
+
+# How long the coordinator should wait for read operations to complete
+read_request_timeout_in_ms: 10000
+# How long the coordinator should wait for seq or index scans to complete
+range_request_timeout_in_ms: 10000
+# How long the coordinator should wait for writes to complete
+write_request_timeout_in_ms: 10000
+# How long the coordinator should wait for counter writes to complete
+counter_write_request_timeout_in_ms: 5000
+# How long a coordinator should continue to retry a CAS operation
+# that contends with other proposals for the same row
+cas_contention_timeout_in_ms: 1000
+# How long the coordinator should wait for truncates to complete
+# (This can be much longer, because unless auto_snapshot is disabled
+# we need to flush first so we can snapshot before removing the data.)
+truncate_request_timeout_in_ms: 60000
+# The default timeout for other, miscellaneous operations
+request_timeout_in_ms: 10000
+
+# Enable operation timeout information exchange between nodes to accurately
+# measure request timeouts.  If disabled, replicas will assume that requests
+# were forwarded to them instantly by the coordinator, which means that
+# under overload conditions we will waste that much extra time processing 
+# already-timed-out requests.
+#
+# Warning: before enabling this property make sure to ntp is installed
+# and the times are synchronized between the nodes.
+cross_node_timeout: false
+
+# Enable socket timeout for streaming operation.
+# When a timeout occurs during streaming, streaming is retried from the start
+# of the current file. This _can_ involve re-streaming an important amount of
+# data, so you should avoid setting the value too low.
+# Default value is 0, which never timeout streams.
+# streaming_socket_timeout_in_ms: 0
+
+# phi value that must be reached for a host to be marked down.
+# most users should never need to adjust this.
+# phi_convict_threshold: 8
+
+# endpoint_snitch -- Set this to a class that implements
+# IEndpointSnitch.  The snitch has two functions:
+# - it teaches Cassandra enough about your network topology to route
+#   requests efficiently
+# - it allows Cassandra to spread replicas around your cluster to avoid
+#   correlated failures. It does this by grouping machines into
+#   "datacenters" and "racks."  Cassandra will do its best not to have
+#   more than one replica on the same "rack" (which may not actually
+#   be a physical location)
+#
+# IF YOU CHANGE THE SNITCH AFTER DATA IS INSERTED INTO THE CLUSTER,
+# YOU MUST RUN A FULL REPAIR, SINCE THE SNITCH AFFECTS WHERE REPLICAS
+# ARE PLACED.
+#
+# Out of the box, Cassandra provides
+#  - SimpleSnitch:
+#    Treats Strategy order as proximity. This can improve cache
+#    locality when disabling read repair.  Only appropriate for
+#    single-datacenter deployments.
+#  - GossipingPropertyFileSnitch
+#    This should be your go-to snitch for production use.  The rack
+#    and datacenter for the local node are defined in
+#    cassandra-rackdc.properties and propagated to other nodes via
+#    gossip.  If cassandra-topology.properties exists, it is used as a
+#    fallback, allowing migration from the PropertyFileSnitch.
+#  - PropertyFileSnitch:
+#    Proximity is determined by rack and data center, which are
+#    explicitly configured in cassandra-topology.properties.
+#  - Ec2Snitch:
+#    Appropriate for EC2 deployments in a single Region. Loads Region
+#    and Availability Zone information from the EC2 API. The Region is
+#    treated as the datacenter, and the Availability Zone as the rack.
+#    Only private IPs are used, so this will not work across multiple
+#    Regions.
+#  - Ec2MultiRegionSnitch:
+#    Uses public IPs as broadcast_address to allow cross-region
+#    connectivity.  (Thus, you should set seed addresses to the public
+#    IP as well.) You will need to open the storage_port or
+#    ssl_storage_port on the public IP firewall.  (For intra-Region
+#    traffic, Cassandra will switch to the private IP after
+#    establishing a connection.)
+#  - RackInferringSnitch:
+#    Proximity is determined by rack and data center, which are
+#    assumed to correspond to the 3rd and 2nd octet of each node's IP
+#    address, respectively.  Unless this happens to match your
+#    deployment conventions, this is best used as an example of
+#    writing a custom Snitch class and is provided in that spirit.
+#
+# You can use a custom Snitch by setting this to the full class name
+# of the snitch, which will be assumed to be on your classpath.
+endpoint_snitch: SimpleSnitch
+
+# controls how often to perform the more expensive part of host score
+# calculation
+dynamic_snitch_update_interval_in_ms: 100 
+# controls how often to reset all host scores, allowing a bad host to
+# possibly recover
+dynamic_snitch_reset_interval_in_ms: 600000
+# if set greater than zero and read_repair_chance is < 1.0, this will allow
+# 'pinning' of replicas to hosts in order to increase cache capacity.
+# The badness threshold will control how much worse the pinned host has to be
+# before the dynamic snitch will prefer other replicas over it.  This is
+# expressed as a double which represents a percentage.  Thus, a value of
+# 0.2 means Cassandra would continue to prefer the static snitch values
+# until the pinned host was 20% worse than the fastest.
+dynamic_snitch_badness_threshold: 0.1
+
+# request_scheduler -- Set this to a class that implements
+# RequestScheduler, which will schedule incoming client requests
+# according to the specific policy. This is useful for multi-tenancy
+# with a single Cassandra cluster.
+# NOTE: This is specifically for requests from the client and does
+# not affect inter node communication.
+# org.apache.cassandra.scheduler.NoScheduler - No scheduling takes place
+# org.apache.cassandra.scheduler.RoundRobinScheduler - Round robin of
+# client requests to a node with a separate queue for each
+# request_scheduler_id. The scheduler is further customized by
+# request_scheduler_options as described below.
+request_scheduler: org.apache.cassandra.scheduler.NoScheduler
+
+# Scheduler Options vary based on the type of scheduler
+# NoScheduler - Has no options
+# RoundRobin
+#  - throttle_limit -- The throttle_limit is the number of in-flight
+#                      requests per client.  Requests beyond 
+#                      that limit are queued up until
+#                      running requests can complete.
+#                      The value of 80 here is twice the number of
+#                      concurrent_reads + concurrent_writes.
+#  - default_weight -- default_weight is optional and allows for
+#                      overriding the default which is 1.
+#  - weights -- Weights are optional and will default to 1 or the
+#               overridden default_weight. The weight translates into how
+#               many requests are handled during each turn of the
+#               RoundRobin, based on the scheduler id.
+#
+# request_scheduler_options:
+#    throttle_limit: 80
+#    default_weight: 5
+#    weights:
+#      Keyspace1: 1
+#      Keyspace2: 5
+
+# request_scheduler_id -- An identifier based on which to perform
+# the request scheduling. Currently the only valid option is keyspace.
+# request_scheduler_id: keyspace
+
+# Enable or disable inter-node encryption
+# Default settings are TLS v1, RSA 1024-bit keys (it is imperative that
+# users generate their own keys) TLS_RSA_WITH_AES_128_CBC_SHA as the cipher
+# suite for authentication, key exchange and encryption of the actual data transfers.
+# Use the DHE/ECDHE ciphers if running in FIPS 140 compliant mode.
+# NOTE: No custom encryption options are enabled at the moment
+# The available internode options are : all, none, dc, rack
+#
+# If set to dc cassandra will encrypt the traffic between the DCs
+# If set to rack cassandra will encrypt the traffic between the racks
+#
+# The passwords used in these options must match the passwords used when generating
+# the keystore and truststore.  For instructions on generating these files, see:
+# http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore
+#
+server_encryption_options:
+    internode_encryption: none
+    keystore: conf/.keystore
+    keystore_password: cassandra
+    truststore: conf/.truststore
+    truststore_password: cassandra
+    # More advanced defaults below:
+    # protocol: TLS
+    # algorithm: SunX509
+    # store_type: JKS
+    # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]
+    # require_client_auth: false
+
+# enable or disable client/server encryption.
+client_encryption_options:
+    enabled: false
+    keystore: conf/.keystore
+    keystore_password: cassandra
+    # require_client_auth: false
+    # Set trustore and truststore_password if require_client_auth is true
+    # truststore: conf/.truststore
+    # truststore_password: cassandra
+    # More advanced defaults below:
+    # protocol: TLS
+    # algorithm: SunX509
+    # store_type: JKS
+    # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]
+
+# internode_compression controls whether traffic between nodes is
+# compressed.
+# can be:  all  - all traffic is compressed
+#          dc   - traffic between different datacenters is compressed
+#          none - nothing is compressed.
+internode_compression: all
+
+# Enable or disable tcp_nodelay for inter-dc communication.
+# Disabling it will result in larger (but fewer) network packets being sent,
+# reducing overhead from the TCP protocol itself, at the cost of increasing
+# latency if you block for cross-datacenter responses.
+inter_dc_tcp_nodelay: true
diff --git a/opencontrail/files/4.0/client_vnc_api_lib.ini b/opencontrail/files/4.0/client_vnc_api_lib.ini
new file mode 100644
index 0000000..40bfbb3
--- /dev/null
+++ b/opencontrail/files/4.0/client_vnc_api_lib.ini
@@ -0,0 +1,20 @@
+{%- from "opencontrail/map.jinja" import client with context %}
+[global]
+;WEB_SERVER = 127.0.0.1
+;WEB_PORT = 9696  ; connection through quantum plugin
+
+WEB_SERVER = {{ client.api.host }}
+WEB_PORT = {{ client.api.port }}
+BASE_URL = /
+;BASE_URL = /tenants/infra ; common-prefix for all URLs
+
+; Authentication settings (optional)
+[auth]
+AUTHN_TYPE = keystone
+AUTHN_PROTOCOL = http
+AUTHN_SERVER= {{ client.identity.host }}
+AUTHN_PORT = {{ client.identity.port }}
+AUTHN_TENANT = {{ client.identity.tenant }}
+AUTHN_USER = {{ client.identity.user }}
+AUTHN_PASSWORD = {{ client.identity.password }}
+AUTHN_URL = /v2.0/tokens
diff --git a/opencontrail/files/4.0/collector/contrail-analytics-nodemgr.ini b/opencontrail/files/4.0/collector/contrail-analytics-nodemgr.ini
new file mode 100755
index 0000000..0285e66
--- /dev/null
+++ b/opencontrail/files/4.0/collector/contrail-analytics-nodemgr.ini
@@ -0,0 +1,35 @@
+; The below sample eventlistener section shows all possible
+; eventlistener subsection values, create one or more 'real'
+; eventlistener: sections to be able to handle event notifications
+; sent by supervisor.
+
+[eventlistener:contrail-analytics-nodemgr]
+command=/bin/bash -c "exec /usr/bin/contrail-nodemgr"
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+events=PROCESS_COMMUNICATION,PROCESS_STATE,TICK_60
+buffer_size=10000                ; event buffer queue size (default 10)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=-1                   ; the relative start priority (default -1)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+stdout_logfile=/var/log/contrail/contrail-analytics-nodemgr-stdout.log        ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+stderr_logfile=/var/log/contrail/contrail-analytics-nodemgr-stderr.log ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups        ; # of stderr logfile backups (default 10)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions
+;serverurl=AUTO                ; override serverurl computation (childutils)
+
diff --git a/opencontrail/files/4.0/collector/redis.conf b/opencontrail/files/4.0/collector/redis.conf
new file mode 100644
index 0000000..a196902
--- /dev/null
+++ b/opencontrail/files/4.0/collector/redis.conf
@@ -0,0 +1,708 @@
+# Redis configuration file example
+
+# Note on units: when memory size is needed, it is possible to specify
+# it in the usual form of 1k 5GB 4M and so forth:
+#
+# 1k => 1000 bytes
+# 1kb => 1024 bytes
+# 1m => 1000000 bytes
+# 1mb => 1024*1024 bytes
+# 1g => 1000000000 bytes
+# 1gb => 1024*1024*1024 bytes
+#
+# units are case insensitive so 1GB 1Gb 1gB are all the same.
+
+################################## INCLUDES ###################################
+
+# Include one or more other config files here.  This is useful if you
+# have a standard template that goes to all Redis server but also need
+# to customize a few per-server settings.  Include files can include
+# other files, so use this wisely.
+#
+# Notice option "include" won't be rewritten by command "CONFIG REWRITE"
+# from admin or Redis Sentinel. Since Redis always uses the last processed
+# line as value of a configuration directive, you'd better put includes
+# at the beginning of this file to avoid overwriting config change at runtime.
+#
+# If instead you are interested in using includes to override configuration
+# options, it is better to use include as the last line.
+#
+# include /path/to/local.conf
+# include /path/to/other.conf
+
+################################ GENERAL  #####################################
+
+# By default Redis does not run as a daemon. Use 'yes' if you need it.
+# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
+daemonize yes
+
+# When running daemonized, Redis writes a pid file in /var/run/redis.pid by
+# default. You can specify a custom pid file location here.
+pidfile /var/run/redis/redis-server.pid
+
+# Accept connections on the specified port, default is 6379.
+# If port 0 is specified Redis will not listen on a TCP socket.
+port 6379
+
+# By default Redis listens for connections from all the network interfaces
+# available on the server. It is possible to listen to just one or multiple
+# interfaces using the "bind" configuration directive, followed by one or
+# more IP addresses.
+#
+# Examples:
+#
+# bind 192.168.1.100 10.0.0.1
+#bind 127.0.0.1
+
+# Specify the path for the unix socket that will be used to listen for
+# incoming connections. There is no default, so Redis will not listen
+# on a unix socket when not specified.
+#
+# unixsocket /var/run/redis/redis.sock
+# unixsocketperm 755
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# TCP keepalive.
+#
+# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
+# of communication. This is useful for two reasons:
+#
+# 1) Detect dead peers.
+# 2) Take the connection alive from the point of view of network
+#    equipment in the middle.
+#
+# On Linux, the specified value (in seconds) is the period used to send ACKs.
+# Note that to close the connection the double of the time is needed.
+# On other kernels the period depends on the kernel configuration.
+#
+# A reasonable value for this option is 60 seconds.
+tcp-keepalive 0
+
+# Specify the server verbosity level.
+# This can be one of:
+# debug (a lot of information, useful for development/testing)
+# verbose (many rarely useful info, but not a mess like the debug level)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+loglevel notice
+
+# Specify the log file name. Also the empty string can be used to force
+# Redis to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile /var/log/redis/redis-server.log
+
+# To enable logging to the system logger, just set 'syslog-enabled' to yes,
+# and optionally update the other syslog parameters to suit your needs.
+# syslog-enabled no
+
+# Specify the syslog identity.
+# syslog-ident redis
+
+# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+# syslog-facility local0
+
+# Set the number of databases. The default database is DB 0, you can select
+# a different one on a per-connection basis using SELECT <dbid> where
+# dbid is a number between 0 and 'databases'-1
+databases 16
+
+################################ SNAPSHOTTING  ################################
+#
+# Save the DB on disk:
+#
+#   save <seconds> <changes>
+#
+#   Will save the DB if both the given number of seconds and the given
+#   number of write operations against the DB occurred.
+#
+#   In the example below the behaviour will be to save:
+#   after 900 sec (15 min) if at least 1 key changed
+#   after 300 sec (5 min) if at least 10 keys changed
+#   after 60 sec if at least 10000 keys changed
+#
+#   Note: you can disable saving at all commenting all the "save" lines.
+#
+#   It is also possible to remove all the previously configured save
+#   points by adding a save directive with a single empty string argument
+#   like in the following example:
+#
+#   save ""
+
+#save 900 1
+#save 300 10
+#save 60 10000
+
+# By default Redis will stop accepting writes if RDB snapshots are enabled
+# (at least one save point) and the latest background save failed.
+# This will make the user aware (in a hard way) that data is not persisting
+# on disk properly, otherwise chances are that no one will notice and some
+# disaster will happen.
+#
+# If the background saving process will start working again Redis will
+# automatically allow writes again.
+#
+# However if you have setup your proper monitoring of the Redis server
+# and persistence, you may want to disable this feature so that Redis will
+# continue to work as usual even if there are problems with disk,
+# permissions, and so forth.
+stop-writes-on-bgsave-error yes
+
+# Compress string objects using LZF when dump .rdb databases?
+# For default that's set to 'yes' as it's almost always a win.
+# If you want to save some CPU in the saving child set it to 'no' but
+# the dataset will likely be bigger if you have compressible values or keys.
+rdbcompression yes
+
+# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
+# This makes the format more resistant to corruption but there is a performance
+# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
+# for maximum performances.
+#
+# RDB files created with checksum disabled have a checksum of zero that will
+# tell the loading code to skip the check.
+rdbchecksum yes
+
+# The filename where to dump the DB
+#dbfilename dump.rdb
+
+# The working directory.
+#
+# The DB will be written inside this directory, with the filename specified
+# above using the 'dbfilename' configuration directive.
+# 
+# The Append Only File will also be created inside this directory.
+# 
+# Note that you must specify a directory here, not a file name.
+dir /var/lib/redis
+
+################################# REPLICATION #################################
+
+# Master-Slave replication. Use slaveof to make a Redis instance a copy of
+# another Redis server. Note that the configuration is local to the slave
+# so for example it is possible to configure the slave to save the DB with a
+# different interval, or to listen to another port, and so on.
+#
+# slaveof <masterip> <masterport>
+
+# If the master is password protected (using the "requirepass" configuration
+# directive below) it is possible to tell the slave to authenticate before
+# starting the replication synchronization process, otherwise the master will
+# refuse the slave request.
+#
+# masterauth <master-password>
+
+# When a slave loses its connection with the master, or when the replication
+# is still in progress, the slave can act in two different ways:
+#
+# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will
+#    still reply to client requests, possibly with out of date data, or the
+#    data set may just be empty if this is the first synchronization.
+#
+# 2) if slave-serve-stale-data is set to 'no' the slave will reply with
+#    an error "SYNC with master in progress" to all the kind of commands
+#    but to INFO and SLAVEOF.
+#
+slave-serve-stale-data yes
+
+# You can configure a slave instance to accept writes or not. Writing against
+# a slave instance may be useful to store some ephemeral data (because data
+# written on a slave will be easily deleted after resync with the master) but
+# may also cause problems if clients are writing to it because of a
+# misconfiguration.
+#
+# Since Redis 2.6 by default slaves are read-only.
+#
+# Note: read only slaves are not designed to be exposed to untrusted clients
+# on the internet. It's just a protection layer against misuse of the instance.
+# Still a read only slave exports by default all the administrative commands
+# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
+# security of read only slaves using 'rename-command' to shadow all the
+# administrative / dangerous commands.
+slave-read-only yes
+
+# Slaves send PINGs to server in a predefined interval. It's possible to change
+# this interval with the repl_ping_slave_period option. The default value is 10
+# seconds.
+#
+# repl-ping-slave-period 10
+
+# The following option sets the replication timeout for:
+#
+# 1) Bulk transfer I/O during SYNC, from the point of view of slave.
+# 2) Master timeout from the point of view of slaves (data, pings).
+# 3) Slave timeout from the point of view of masters (REPLCONF ACK pings).
+#
+# It is important to make sure that this value is greater than the value
+# specified for repl-ping-slave-period otherwise a timeout will be detected
+# every time there is low traffic between the master and the slave.
+#
+# repl-timeout 60
+
+# Disable TCP_NODELAY on the slave socket after SYNC?
+#
+# If you select "yes" Redis will use a smaller number of TCP packets and
+# less bandwidth to send data to slaves. But this can add a delay for
+# the data to appear on the slave side, up to 40 milliseconds with
+# Linux kernels using a default configuration.
+#
+# If you select "no" the delay for data to appear on the slave side will
+# be reduced but more bandwidth will be used for replication.
+#
+# By default we optimize for low latency, but in very high traffic conditions
+# or when the master and slaves are many hops away, turning this to "yes" may
+# be a good idea.
+repl-disable-tcp-nodelay no
+
+# Set the replication backlog size. The backlog is a buffer that accumulates
+# slave data when slaves are disconnected for some time, so that when a slave
+# wants to reconnect again, often a full resync is not needed, but a partial
+# resync is enough, just passing the portion of data the slave missed while
+# disconnected.
+#
+# The biggest the replication backlog, the longer the time the slave can be
+# disconnected and later be able to perform a partial resynchronization.
+#
+# The backlog is only allocated once there is at least a slave connected.
+#
+# repl-backlog-size 1mb
+
+# After a master has no longer connected slaves for some time, the backlog
+# will be freed. The following option configures the amount of seconds that
+# need to elapse, starting from the time the last slave disconnected, for
+# the backlog buffer to be freed.
+#
+# A value of 0 means to never release the backlog.
+#
+# repl-backlog-ttl 3600
+
+# The slave priority is an integer number published by Redis in the INFO output.
+# It is used by Redis Sentinel in order to select a slave to promote into a
+# master if the master is no longer working correctly.
+#
+# A slave with a low priority number is considered better for promotion, so
+# for instance if there are three slaves with priority 10, 100, 25 Sentinel will
+# pick the one with priority 10, that is the lowest.
+#
+# However a special priority of 0 marks the slave as not able to perform the
+# role of master, so a slave with priority of 0 will never be selected by
+# Redis Sentinel for promotion.
+#
+# By default the priority is 100.
+slave-priority 100
+
+# It is possible for a master to stop accepting writes if there are less than
+# N slaves connected, having a lag less or equal than M seconds.
+#
+# The N slaves need to be in "online" state.
+#
+# The lag in seconds, that must be <= the specified value, is calculated from
+# the last ping received from the slave, that is usually sent every second.
+#
+# This option does not GUARANTEES that N replicas will accept the write, but
+# will limit the window of exposure for lost writes in case not enough slaves
+# are available, to the specified number of seconds.
+#
+# For example to require at least 3 slaves with a lag <= 10 seconds use:
+#
+# min-slaves-to-write 3
+# min-slaves-max-lag 10
+#
+# Setting one or the other to 0 disables the feature.
+#
+# By default min-slaves-to-write is set to 0 (feature disabled) and
+# min-slaves-max-lag is set to 10.
+
+################################## SECURITY ###################################
+
+# Require clients to issue AUTH <PASSWORD> before processing any other
+# commands.  This might be useful in environments in which you do not trust
+# others with access to the host running redis-server.
+#
+# This should stay commented out for backward compatibility and because most
+# people do not need auth (e.g. they run their own servers).
+# 
+# Warning: since Redis is pretty fast an outside user can try up to
+# 150k passwords per second against a good box. This means that you should
+# use a very strong password otherwise it will be very easy to break.
+#
+# requirepass foobared
+
+# Command renaming.
+#
+# It is possible to change the name of dangerous commands in a shared
+# environment. For instance the CONFIG command may be renamed into something
+# hard to guess so that it will still be available for internal-use tools
+# but not available for general clients.
+#
+# Example:
+#
+# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
+#
+# It is also possible to completely kill a command by renaming it into
+# an empty string:
+#
+# rename-command CONFIG ""
+#
+# Please note that changing the name of commands that are logged into the
+# AOF file or transmitted to slaves may cause problems.
+
+################################### LIMITS ####################################
+
+# Set the max number of connected clients at the same time. By default
+# this limit is set to 10000 clients, however if the Redis server is not
+# able to configure the process file limit to allow for the specified limit
+# the max number of allowed clients is set to the current file limit
+# minus 32 (as Redis reserves a few file descriptors for internal uses).
+#
+# Once the limit is reached Redis will close all the new connections sending
+# an error 'max number of clients reached'.
+#
+# maxclients 10000
+
+# Don't use more memory than the specified amount of bytes.
+# When the memory limit is reached Redis will try to remove keys
+# according to the eviction policy selected (see maxmemory-policy).
+#
+# If Redis can't remove keys according to the policy, or if the policy is
+# set to 'noeviction', Redis will start to reply with errors to commands
+# that would use more memory, like SET, LPUSH, and so on, and will continue
+# to reply to read-only commands like GET.
+#
+# This option is usually useful when using Redis as an LRU cache, or to set
+# a hard memory limit for an instance (using the 'noeviction' policy).
+#
+# WARNING: If you have slaves attached to an instance with maxmemory on,
+# the size of the output buffers needed to feed the slaves are subtracted
+# from the used memory count, so that network problems / resyncs will
+# not trigger a loop where keys are evicted, and in turn the output
+# buffer of slaves is full with DELs of keys evicted triggering the deletion
+# of more keys, and so forth until the database is completely emptied.
+#
+# In short... if you have slaves attached it is suggested that you set a lower
+# limit for maxmemory so that there is some free RAM on the system for slave
+# output buffers (but this is not needed if the policy is 'noeviction').
+#
+# maxmemory <bytes>
+
+# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
+# is reached. You can select among five behaviors:
+# 
+# volatile-lru -> remove the key with an expire set using an LRU algorithm
+# allkeys-lru -> remove any key accordingly to the LRU algorithm
+# volatile-random -> remove a random key with an expire set
+# allkeys-random -> remove a random key, any key
+# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
+# noeviction -> don't expire at all, just return an error on write operations
+# 
+# Note: with any of the above policies, Redis will return an error on write
+#       operations, when there are not suitable keys for eviction.
+#
+#       At the date of writing this commands are: set setnx setex append
+#       incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
+#       sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
+#       zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
+#       getset mset msetnx exec sort
+#
+# The default is:
+#
+# maxmemory-policy volatile-lru
+
+# LRU and minimal TTL algorithms are not precise algorithms but approximated
+# algorithms (in order to save memory), so you can select as well the sample
+# size to check. For instance for default Redis will check three keys and
+# pick the one that was used less recently, you can change the sample size
+# using the following configuration directive.
+#
+# maxmemory-samples 3
+
+############################## APPEND ONLY MODE ###############################
+
+# By default Redis asynchronously dumps the dataset on disk. This mode is
+# good enough in many applications, but an issue with the Redis process or
+# a power outage may result into a few minutes of writes lost (depending on
+# the configured save points).
+#
+# The Append Only File is an alternative persistence mode that provides
+# much better durability. For instance using the default data fsync policy
+# (see later in the config file) Redis can lose just one second of writes in a
+# dramatic event like a server power outage, or a single write if something
+# wrong with the Redis process itself happens, but the operating system is
+# still running correctly.
+#
+# AOF and RDB persistence can be enabled at the same time without problems.
+# If the AOF is enabled on startup Redis will load the AOF, that is the file
+# with the better durability guarantees.
+#
+# Please check http://redis.io/topics/persistence for more information.
+
+appendonly no
+
+# The name of the append only file (default: "appendonly.aof")
+
+appendfilename "appendonly.aof"
+
+# The fsync() call tells the Operating System to actually write data on disk
+# instead to wait for more data in the output buffer. Some OS will really flush 
+# data on disk, some other OS will just try to do it ASAP.
+#
+# Redis supports three different modes:
+#
+# no: don't fsync, just let the OS flush the data when it wants. Faster.
+# always: fsync after every write to the append only log . Slow, Safest.
+# everysec: fsync only one time every second. Compromise.
+#
+# The default is "everysec", as that's usually the right compromise between
+# speed and data safety. It's up to you to understand if you can relax this to
+# "no" that will let the operating system flush the output buffer when
+# it wants, for better performances (but if you can live with the idea of
+# some data loss consider the default persistence mode that's snapshotting),
+# or on the contrary, use "always" that's very slow but a bit safer than
+# everysec.
+#
+# More details please check the following article:
+# http://antirez.com/post/redis-persistence-demystified.html
+#
+# If unsure, use "everysec".
+
+# appendfsync always
+appendfsync everysec
+# appendfsync no
+
+# When the AOF fsync policy is set to always or everysec, and a background
+# saving process (a background save or AOF log background rewriting) is
+# performing a lot of I/O against the disk, in some Linux configurations
+# Redis may block too long on the fsync() call. Note that there is no fix for
+# this currently, as even performing fsync in a different thread will block
+# our synchronous write(2) call.
+#
+# In order to mitigate this problem it's possible to use the following option
+# that will prevent fsync() from being called in the main process while a
+# BGSAVE or BGREWRITEAOF is in progress.
+#
+# This means that while another child is saving, the durability of Redis is
+# the same as "appendfsync none". In practical terms, this means that it is
+# possible to lose up to 30 seconds of log in the worst scenario (with the
+# default Linux settings).
+# 
+# If you have latency problems turn this to "yes". Otherwise leave it as
+# "no" that is the safest pick from the point of view of durability.
+
+no-appendfsync-on-rewrite no
+
+# Automatic rewrite of the append only file.
+# Redis is able to automatically rewrite the log file implicitly calling
+# BGREWRITEAOF when the AOF log size grows by the specified percentage.
+# 
+# This is how it works: Redis remembers the size of the AOF file after the
+# latest rewrite (if no rewrite has happened since the restart, the size of
+# the AOF at startup is used).
+#
+# This base size is compared to the current size. If the current size is
+# bigger than the specified percentage, the rewrite is triggered. Also
+# you need to specify a minimal size for the AOF file to be rewritten, this
+# is useful to avoid rewriting the AOF file even if the percentage increase
+# is reached but it is still pretty small.
+#
+# Specify a percentage of zero in order to disable the automatic AOF
+# rewrite feature.
+
+auto-aof-rewrite-percentage 100
+auto-aof-rewrite-min-size 64mb
+
+################################ LUA SCRIPTING  ###############################
+
+# Max execution time of a Lua script in milliseconds.
+#
+# If the maximum execution time is reached Redis will log that a script is
+# still in execution after the maximum allowed time and will start to
+# reply to queries with an error.
+#
+# When a long running script exceed the maximum execution time only the
+# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
+# used to stop a script that did not yet called write commands. The second
+# is the only way to shut down the server in the case a write commands was
+# already issue by the script but the user don't want to wait for the natural
+# termination of the script.
+#
+# Set it to 0 or a negative value for unlimited execution without warnings.
+lua-time-limit 15000
+
+################################## SLOW LOG ###################################
+
+# The Redis Slow Log is a system to log queries that exceeded a specified
+# execution time. The execution time does not include the I/O operations
+# like talking with the client, sending the reply and so forth,
+# but just the time needed to actually execute the command (this is the only
+# stage of command execution where the thread is blocked and can not serve
+# other requests in the meantime).
+# 
+# You can configure the slow log with two parameters: one tells Redis
+# what is the execution time, in microseconds, to exceed in order for the
+# command to get logged, and the other parameter is the length of the
+# slow log. When a new command is logged the oldest one is removed from the
+# queue of logged commands.
+
+# The following time is expressed in microseconds, so 1000000 is equivalent
+# to one second. Note that a negative number disables the slow log, while
+# a value of zero forces the logging of every command.
+slowlog-log-slower-than 10000
+
+# There is no limit to this length. Just be aware that it will consume memory.
+# You can reclaim memory used by the slow log with SLOWLOG RESET.
+slowlog-max-len 128
+
+############################# Event notification ##############################
+
+# Redis can notify Pub/Sub clients about events happening in the key space.
+# This feature is documented at http://redis.io/topics/keyspace-events
+# 
+# For instance if keyspace events notification is enabled, and a client
+# performs a DEL operation on key "foo" stored in the Database 0, two
+# messages will be published via Pub/Sub:
+#
+# PUBLISH __keyspace@0__:foo del
+# PUBLISH __keyevent@0__:del foo
+#
+# It is possible to select the events that Redis will notify among a set
+# of classes. Every class is identified by a single character:
+#
+#  K     Keyspace events, published with __keyspace@<db>__ prefix.
+#  E     Keyevent events, published with __keyevent@<db>__ prefix.
+#  g     Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
+#  $     String commands
+#  l     List commands
+#  s     Set commands
+#  h     Hash commands
+#  z     Sorted set commands
+#  x     Expired events (events generated every time a key expires)
+#  e     Evicted events (events generated when a key is evicted for maxmemory)
+#  A     Alias for g$lshzxe, so that the "AKE" string means all the events.
+#
+#  The "notify-keyspace-events" takes as argument a string that is composed
+#  by zero or multiple characters. The empty string means that notifications
+#  are disabled at all.
+#
+#  Example: to enable list and generic events, from the point of view of the
+#           event name, use:
+#
+#  notify-keyspace-events Elg
+#
+#  Example 2: to get the stream of the expired keys subscribing to channel
+#             name __keyevent@0__:expired use:
+#
+#  notify-keyspace-events Ex
+#
+#  By default all notifications are disabled because most users don't need
+#  this feature and the feature has some overhead. Note that if you don't
+#  specify at least one of K or E, no events will be delivered.
+notify-keyspace-events ""
+
+############################### ADVANCED CONFIG ###############################
+
+# Hashes are encoded using a memory efficient data structure when they have a
+# small number of entries, and the biggest entry does not exceed a given
+# threshold. These thresholds can be configured using the following directives.
+hash-max-ziplist-entries 512
+hash-max-ziplist-value 64
+
+# Similarly to hashes, small lists are also encoded in a special way in order
+# to save a lot of space. The special representation is only used when
+# you are under the following limits:
+list-max-ziplist-entries 512
+list-max-ziplist-value 64
+
+# Sets have a special encoding in just one case: when a set is composed
+# of just strings that happens to be integers in radix 10 in the range
+# of 64 bit signed integers.
+# The following configuration setting sets the limit in the size of the
+# set in order to use this special memory saving encoding.
+set-max-intset-entries 512
+
+# Similarly to hashes and lists, sorted sets are also specially encoded in
+# order to save a lot of space. This encoding is only used when the length and
+# elements of a sorted set are below the following limits:
+zset-max-ziplist-entries 128
+zset-max-ziplist-value 64
+
+# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
+# order to help rehashing the main Redis hash table (the one mapping top-level
+# keys to values). The hash table implementation Redis uses (see dict.c)
+# performs a lazy rehashing: the more operation you run into a hash table
+# that is rehashing, the more rehashing "steps" are performed, so if the
+# server is idle the rehashing is never complete and some more memory is used
+# by the hash table.
+# 
+# The default is to use this millisecond 10 times every second in order to
+# active rehashing the main dictionaries, freeing memory when possible.
+#
+# If unsure:
+# use "activerehashing no" if you have hard latency requirements and it is
+# not a good thing in your environment that Redis can reply form time to time
+# to queries with 2 milliseconds delay.
+#
+# use "activerehashing yes" if you don't have such hard requirements but
+# want to free memory asap when possible.
+activerehashing yes
+
+# The client output buffer limits can be used to force disconnection of clients
+# that are not reading data from the server fast enough for some reason (a
+# common reason is that a Pub/Sub client can't consume messages as fast as the
+# publisher can produce them).
+#
+# The limit can be set differently for the three different classes of clients:
+#
+# normal -> normal clients
+# slave  -> slave clients and MONITOR clients
+# pubsub -> clients subscribed to at least one pubsub channel or pattern
+#
+# The syntax of every client-output-buffer-limit directive is the following:
+#
+# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
+#
+# A client is immediately disconnected once the hard limit is reached, or if
+# the soft limit is reached and remains reached for the specified number of
+# seconds (continuously).
+# So for instance if the hard limit is 32 megabytes and the soft limit is
+# 16 megabytes / 10 seconds, the client will get disconnected immediately
+# if the size of the output buffers reach 32 megabytes, but will also get
+# disconnected if the client reaches 16 megabytes and continuously overcomes
+# the limit for 10 seconds.
+#
+# By default normal clients are not limited because they don't receive data
+# without asking (in a push way), but just after a request, so only
+# asynchronous clients may create a scenario where data is requested faster
+# than it can read.
+#
+# Instead there is a default limit for pubsub and slave clients, since
+# subscribers and slaves receive data in a push fashion.
+#
+# Both the hard or the soft limit can be disabled by setting them to zero.
+client-output-buffer-limit normal 0 0 0
+client-output-buffer-limit slave 256mb 64mb 60
+client-output-buffer-limit pubsub 32mb 8mb 60
+
+# Redis calls an internal function to perform many background tasks, like
+# closing connections of clients in timeout, purging expired keys that are
+# never requested, and so forth.
+#
+# Not all tasks are performed with the same frequency, but Redis checks for
+# tasks to perform accordingly to the specified "hz" value.
+#
+# By default "hz" is set to 10. Raising the value will use more CPU when
+# Redis is idle, but at the same time will make Redis more responsive when
+# there are many keys expiring at the same time, and timeouts may be
+# handled with more precision.
+#
+# The range is between 1 and 500, however a value over 100 is usually not
+# a good idea. Most users should use the default of 10 and raise this up to
+# 100 only in environments where very low latency is required.
+hz 10
+
+# When a child rewrites the AOF file, if the following option is enabled
+# the file will be fsync-ed every 32 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+aof-rewrite-incremental-fsync yes
+
diff --git a/opencontrail/files/4.0/collector/supervisord_analytics.conf b/opencontrail/files/4.0/collector/supervisord_analytics.conf
new file mode 100644
index 0000000..31de3c2
--- /dev/null
+++ b/opencontrail/files/4.0/collector/supervisord_analytics.conf
@@ -0,0 +1,104 @@
+; Sample supervisor config file.
+;
+; For more information on the config file, please see:
+; http://supervisord.org/configuration.html
+;
+; Note: shell expansion ("~" or "$HOME") is not supported.  Environment
+; variables can be expanded using this syntax: "%(ENV_HOME)s".
+
+[unix_http_server]
+file=/tmp/supervisord_analytics.sock    ; (the path to the socket file)
+chmod=0700                 ; socket file mode (default 0700)
+;chown=nobody:nogroup       ; socket file uid:gid owner
+;username=user              ; (default is no username (open server))
+;password=123               ; (default is no password (open server))
+
+;[inet_http_server]         ; inet (TCP) server disabled by default
+;port=127.0.0.1:9001        ; Port for analytics (ip_address:port specifier, *:port for all iface)
+;username=user              ; (default is no username (open server))
+;password=123               ; (default is no password (open server))
+
+[supervisord]
+logfile=/var/log/contrail/supervisord-analytics.log   ; (main log file;default $CWD/supervisord.log)
+logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
+logfile_backups=3            ; (num of main logfile rotation backups;default 10)
+loglevel=info                ; (log level;default info; others: debug,warn,trace)
+pidfile=/var/run/supervisord-analytics.pid   ; (supervisord pidfile;default supervisord.pid)
+nodaemon=false               ; (start in foreground if true;default false)
+minfds=10240
+minprocs=200                 ; (min. avail process descriptors;default 200)
+;umask=022                   ; (process file creation umask;default 022)
+;user=chrism                 ; (default is current user, required if root)
+;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
+;directory=/tmp              ; (default is not to cd during start)
+nocleanup=true              ; (don't clean up tempfiles at start;default false)
+childlogdir=/var/log/contrail ; ('AUTO' child log dir, default $TEMP)
+;environment=KEY=value       ; (key value pairs to add to environment)
+;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)
+
+; the below section must remain in the config file for RPC
+; (supervisorctl/web interface) to work, additional interfaces may be
+; added by defining them in separate rpcinterface: sections
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///tmp/supervisord_analytics.sock ; use a unix:// URL  for a unix socket
+;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
+;username=chris              ; should be same as http_username if set
+;password=123                ; should be same as http_password if set
+;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
+;history_file=~/.sc_history  ; use readline history if available
+
+; The below sample program section shows all possible program subsection values,
+; create one or more 'real' program: sections to be able to control them under
+; supervisor.
+
+;[program:theprogramname]
+;command=/bin/cat              ; the program (relative uses PATH, can take args)
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=999                  ; the relative start priority (default 999)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;user=chrism                   ; setuid to this UNIX account to run the program
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
+;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions (def no adds)
+;serverurl=AUTO                ; override serverurl computation (childutils)
+
+; The below sample group section shows all possible group values,
+; create one or more 'real' group: sections to create "heterogeneous"
+; process groups.
+
+;[group:thegroupname]
+;programs=progname1,progname2  ; each refers to 'x' in [program:x] definitions
+;priority=999                  ; the relative start priority (default 999)
+
+; The [include] section can just contain the "files" setting.  This
+; setting can list multiple files (separated by whitespace or
+; newlines).  It can also contain wildcards.  The filenames are
+; interpreted as relative to this file.  Included files *cannot*
+; include files themselves.
+
+[include]
+files = /etc/contrail/supervisord_analytics_files/*.ini
+
diff --git a/opencontrail/files/4.0/config.global.js b/opencontrail/files/4.0/config.global.js
new file mode 100644
index 0000000..8e80e58
--- /dev/null
+++ b/opencontrail/files/4.0/config.global.js
@@ -0,0 +1,377 @@
+{%- from "opencontrail/map.jinja" import common,web with context %}
+/*
+ * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
+ */
+
+var config = {};
+
+
+config.orchestration = {};
+{%- if web.identity.engine == "keystone" %}
+config.orchestration.Manager = 'openstack'
+
+{%- if web.identity.version == "3" %}
+config.multi_tenancy = {};
+config.multi_tenancy.enabled = true;
+{%- endif %}
+
+{%- else %}
+config.orchestration.Manager = 'none'
+config.multi_tenancy = {};
+config.multi_tenancy.enabled = false;
+{%- endif %}
+/****************************************************************************
+ * This boolean flag indicates to communicate with Orchestration
+ * modules(networkManager, imageManager, computeManager, identityManager,
+ * storageManager), should the webServer communicate using the
+ * ip/port/authProtocol/apiVersion as specified in this file, or as returned
+ * from auth catalog list.
+ * Note: config.identityManager.apiVersion is not controlled by this boolean
+ * flag.
+ *
+ * true  - These values should be taken from this config
+ *         file.
+ * false - These values should be taken from auth catalog list
+ *
+*****************************************************************************/
+config.serviceEndPointFromConfig = true;
+
+/****************************************************************************
+ * This boolean flag specifies wheather region list should be taken from config
+ * file or from keystone endpoint
+ * true  - If set as true, then keystone endpoint is taken from
+ *         config.regions
+ * false - If set as false, then keystone endpoint is taken from
+ *         config.identityManager
+ *
+ ****************************************************************************/
+config.regionsFromConfig = false;
+
+/****************************************************************************
+ * Below are the configs for Api Server and analytics Service type & name as
+ * provisioned in keystone
+ *
+ * apiServiceType - Service Type for apiServer, default value is apiServer
+ * opServiceType  - Service Type for analytics, default value is opServer
+ *
+ * Note: If there are multiple api server or analytices nodes in a specific
+ *       region, then provision service type/name as ApiServer0, ApiServer1,
+ *       ApiServer2 etc, similarly for analytics node: OpServer0, OpServer1,
+ *       OpServer2 etc.
+ *
+ ****************************************************************************/
+config.endpoints = {};
+config.endpoints.apiServiceType = 'ApiServer';
+config.endpoints.opServiceType = 'OpServer';
+
+/****************************************************************************
+ * Mapping to region name with keystone endpoint
+ *
+ * For example:
+ * config.regions.RegionOne = 'http://nodeIp:5000/v2.0';
+ * config.regions.RegionTwo = 'http://nodeIp:5000/v3';
+ *
+ ****************************************************************************/
+config.regions = {};
+config.regions.RegionOne = 'http://{{ web.identity.host }}:5000/v{{ web.identity.version }}';
+
+/****************************************************************************
+ * This boolean flag indicates if serviceEndPointFromConfig is set as false,
+ * then to take IP/Port/Protocol/Version information from auth catalog,
+ * should publicURL OR internalURL will be used.
+ *
+ * true  - publicURL in endpoint will be used to retrieve IP/Port/Protocol/
+ *         Version information
+ * false - internalURL in endpoint will be used to retrieve
+ *         IP/Port/Protocol/Version information
+ *
+ * NOTE: if config.serviceEndPointFromConfig is set as true, then this flag
+ *       does not have any effect.
+ *
+ *****************************************************************************/
+config.serviceEndPointTakePublicURL = false;
+
+/****************************************************************************
+ * Below are the config options for all Orchestration Modules below:
+ *  - networkManager
+ *  - imageManager
+ *  - computeManager
+ *  - identityManager
+ *  - storageManager
+ *  - cnfg
+ *  - analytics
+ *
+ * Options:
+ * ip:
+ *      IP to connect to for this Server.
+ * port:
+ *      Port to connect to for this server
+ * authProtocol:
+ *      Specify authProtocol either 'http' or 'https'
+ * apiVersion:
+ *      REST API Version for this server to connect to.
+ *      Specify a list of Versions in array notation.
+ *      Below are the supported list of apiVersion for the modules as of now:
+ *      imageManager    -   ['v1', 'v2']
+ *      computeManager  -   ['v1.1', 'v2']
+ *      identityManager -   ['v2.0']
+ *      storageManager  -   ['v1']
+ *
+ *      Not applicable for cnfg/analytics as of now
+ * strictSSL:
+ *      If true, requires certificates to be valid
+ * ca:
+ *      An authority certificate to check the remote host against,
+ *      if you do not want to specify then use ''
+*****************************************************************************/
+{%- if web.identity.engine == "keystone" %}
+config.networkManager = {};
+config.networkManager.ip = '{{ web.network.host }}';
+config.networkManager.port = '9696'
+config.networkManager.authProtocol = 'http';
+config.networkManager.apiVersion = [];
+config.networkManager.strictSSL = false;
+config.networkManager.ca = '';
+
+config.imageManager = {};
+config.imageManager.ip = '{{ web.identity.host }}';
+config.imageManager.port = '9292';
+config.imageManager.authProtocol = 'http';
+config.imageManager.apiVersion = ['v1', 'v2'];
+config.imageManager.strictSSL = false;
+config.imageManager.ca = '';
+
+config.computeManager = {};
+config.computeManager.ip = '{{ web.identity.host }}';
+config.computeManager.port = '8774';
+config.computeManager.authProtocol = 'http';
+config.computeManager.apiVersion = ['v1.1', 'v2'];
+config.computeManager.strictSSL = false;
+config.computeManager.ca = '';
+
+config.identityManager = {};
+config.identityManager.ip = '{{ web.identity.host }}';
+config.identityManager.port = '5000';
+config.identityManager.authProtocol = 'http';
+/******************************************************************************
+ * Note: config.identityManager.apiVersion is not controlled by boolean flag
+ * config.serviceEndPointFromConfig. If specified apiVersion here, then these
+ * API versions will be used while using REST API to identityManager.
+ * If want to use with default apiVersion(v2.0), then can specify it as
+ * empty array.
+******************************************************************************/
+config.identityManager.apiVersion = ['v{{ web.identity.version }}'];
+config.identityManager.strictSSL = false;
+config.identityManager.ca = '';
+
+config.storageManager = {};
+config.storageManager.ip = '{{ web.identity.host }}';
+config.storageManager.port = '8776';
+config.storageManager.authProtocol = 'http';
+config.storageManager.apiVersion = ['v1'];
+config.storageManager.strictSSL = false;
+config.storageManager.ca = '';
+{%- endif %}
+
+// VNConfig API server and port.
+config.cnfg = {};
+config.cnfg.server_ip = '{{ web.master.host }}';
+config.cnfg.server_port = '8082';
+config.cnfg.authProtocol = 'http';
+config.cnfg.strictSSL = false;
+config.cnfg.ca = '';
+config.cnfg.statusURL = "/global-system-configs";
+
+// Analytics API server and port.
+config.analytics = {};
+config.analytics.server_ip = '{{ web.analytics.host }}';
+config.analytics.server_port = '8081';
+config.analytics.authProtocol = 'http';
+config.analytics.strictSSL = false;
+config.analytics.ca = '';
+config.analytics.statusURL = "/analytics/uves/bgp-peers";
+
+//DNS API Server and port.
+/* Please note: being introspect port, SSL options for dns should come from
+   config.introspect.ssl configuration
+ */
+config.dns = {};
+config.dns.server_ip = ['{{ web.master.host }}']; //check this
+config.dns.server_port = '8092';
+config.dns.statusURL = "/Snh_PageReq?x=AllEntries%20VdnsServersReq";
+
+// vcenter related parameters
+config.vcenter = {};
+config.vcenter.server_ip = '127.0.0.1';         //vCenter IP
+config.vcenter.server_port = '443';             //Port
+config.vcenter.authProtocol = 'https';          //http or https
+config.vcenter.datacenter = 'vcenter';          //datacenter name
+config.vcenter.dvsswitch = 'vswitch';           //dvsswitch name
+config.vcenter.strictSSL = false;               //Validate the certificate or ignore
+config.vcenter.ca = '';                         //specify the certificate key file
+{%- if common.vendor == "juniper" %}
+config.vcenter.wsdl = '/usr/src/contrail/contrail-web-core/webroot/js/vim.wsdl';
+{%- else %}
+config.vcenter.wsdl = '/var/lib/contrail-webui/contrail-web-core/webroot/js/vim.wsdl';
+{%- endif %}
+
+/*****************************************************************************
+ * The below configurations descibe the SSL options for connecting to different
+ * introspect port.
+ *
+ * enabled:
+ *      Boolean flag to enable or disable ssl while connecting to different
+ *      introspect port
+ * key:
+ *      Private key to use for SSL
+ * cert:
+ *      Public x509 certificate to use
+ * ca:
+ *      A string, Buffer or array of strings or Buffers of trusted certificates
+ *      in PEM format. These are used to authorize connections.
+ * strictSSL:
+ *      If true, the server certificate is verified against the list of
+ *      supplied CAs
+ *****************************************************************************/
+config.introspect = {};
+config.introspect.ssl = {};
+config.introspect.ssl.enabled = false;
+config.introspect.ssl.key = '';
+config.introspect.ssl.cert = '';
+config.introspect.ssl.ca = '';
+config.introspect.ssl.strictSSL = false;
+
+/* Job Server */
+config.jobServer = {};
+config.jobServer.server_ip = '127.0.0.1';
+config.jobServer.server_port = '3000';
+
+/* Upload/Download Directory */
+config.files = {};
+config.files.download_path = '/tmp';
+
+/* WebUI Redis Server */
+config.redis_server_port = '6379';
+config.redis_server_ip = '{{ web.cache.host }}';
+{%- if common.vendor == "juniper" %}
+config.redis_dump_file = '/var/lib/redis/dump.rdb';
+{%- else %}
+config.redis_dump_file = '/var/lib/redis/dump-webui.rdb';
+{%- endif %}
+config.redis_password = '';
+
+/* Cassandra Server */
+config.cassandra = {};
+config.cassandra.server_ips = [{%- for member in web.members %}'{{ member.host }}'{% if not loop.last %},{% endif %}{%- endfor %}];
+config.cassandra.server_port = '{{ web.database.port }}';
+config.cassandra.enable_edit = false;
+
+/* KUE Job Scheduler */
+config.kue = {};
+config.kue.ui_port = '3002'
+
+/* IP List to listen on */
+config.webui_addresses = ['0.0.0.0'];
+
+/* Is insecure access to WebUI?
+ * If set as false, then all http request will be redirected
+ * to https, if set true, then no https request will be processed, but only http
+ * request
+ */
+config.insecure_access = false;
+
+// HTTP port for NodeJS Server.
+config.http_port = '8080';
+
+// HTTPS port for NodeJS Server.
+config.https_port = '8143';
+
+// Activate/Deactivate Login.
+config.require_auth = false;
+
+/* Number of node worker processes for cluster. */
+config.node_worker_count = 1;
+
+/* Number of Parallel Active Jobs with same type */
+config.maxActiveJobs = 10;
+
+/* Redis DB index for Web-UI */
+config.redisDBIndex = 3;
+
+config.featurePkg = {};
+config.featurePkg.webController = {};
+
+{%- if common.vendor == "juniper" %}
+/* Logo File: Use complete path of logo file location */
+config.logo_file = '/usr/src/contrail/contrail-web-core/webroot/img/juniper-networks-logo.png';
+
+/* Favicon File: Use complete path of favicon file location */
+config.favicon_file = '/usr/src/contrail/contrail-web-core/webroot/img/juniper-networks-favicon.ico';
+
+/* Add new feature Package Config details below */
+config.featurePkg.webController.path = '/usr/src/contrail/contrail-web-controller';
+config.featurePkg.webController.enable = true;
+
+{%- else %}
+/* Logo File: Use complete path of logo file location */
+config.logo_file = '/var/lib/contrail-webui/contrail-web-core/webroot/img/opencontrail-logo.png';
+
+/* Favicon File: Use complete path of favicon file location */
+config.favicon_file = '/var/lib/contrail-webui/contrail-web-core/webroot/img/juniper-networks-favicon.ico';
+
+/* Add new feature Package Config details below */
+config.featurePkg.webController.path = '/var/lib/contrail-webui/contrail-web-controller';
+config.featurePkg.webController.enable = true;
+
+{%- endif %}
+
+/* Enable/disable Stat Query Links in Sidebar*/
+config.qe = {};
+config.qe.enable_stat_queries = false;
+
+/* Configure level of logs, supported log levels are:
+   debug, info, notice, warning, error, crit, alert, emerg
+ */
+config.logs = {};
+config.logs.level = 'debug';
+
+/******************************************************************************
+ * Boolean flag getDomainProjectsFromApiServer indicates wheather the project
+ * list should come from API Server or Identity Manager.
+ * If Set
+ *      - true, then project list will come from API Server
+ *      - false, then project list will come from Identity Manager
+ * Default: false
+ *
+******************************************************************************/
+config.getDomainProjectsFromApiServer = false;
+/*****************************************************************************
+* Boolean flag L2_enable indicates the default forwarding-mode of a network.
+* Allowed values : true / false
+* Set this flag to true if all the networks are to be L2 networks,
+* set to false otherwise.
+*****************************************************************************/
+config.network = {};
+config.network.L2_enable = false;
+
+/******************************************************************************
+ * Boolean flag getDomainsFromApiServer indicates wheather the domain
+ * list should come from API Server or Identity Manager.
+ * If Set
+ *      - true, then domain list will come from API Server
+ *      - false, then domain list will come from Identity Manager
+ * Default: true
+ * NOTE: if config.identityManager.apiVersion is set as v2.0, then this flag
+ *       does not have any effect, in that case the domain list is retrieved
+ *       from API Server.
+ *
+ *****************************************************************************/
+config.getDomainsFromApiServer = false;
+
+config.jsonSchemaPath = "/var/lib/contrail-webui/contrail-web-core/src/serverroot/configJsonSchemas";
+
+// Export this as a module.
+module.exports = config;
+
+config.features = {};
+config.features.disabled = [];
diff --git a/opencontrail/files/4.0/config/contrail-api b/opencontrail/files/4.0/config/contrail-api
new file mode 100644
index 0000000..64da831
--- /dev/null
+++ b/opencontrail/files/4.0/config/contrail-api
@@ -0,0 +1,9 @@
+
+#!/bin/sh
+
+# chkconfig: 2345 99 01
+# description: Juniper Network Virtualization API
+
+supervisorctl -s unix:///tmp/supervisord_config.sock ${1} `basename ${0}:0`
+
+#supervisorctl -s unix:///tmp/supervisord_config.sock ${1} `basename ${0}`
\ No newline at end of file
diff --git a/opencontrail/files/4.0/config/contrail-api.ini b/opencontrail/files/4.0/config/contrail-api.ini
new file mode 100644
index 0000000..673529c
--- /dev/null
+++ b/opencontrail/files/4.0/config/contrail-api.ini
@@ -0,0 +1,14 @@
+
+[program:contrail-api]
+command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s
+numprocs=1
+process_name=%(process_num)s
+redirect_stderr=true
+stdout_logfile= /var/log/contrail/contrail-api-%(process_num)s-stdout.log
+stderr_logfile=/dev/null
+priority=440
+autostart=true
+killasgroup=true
+stopsignal=KILL
+exitcodes=0
+
diff --git a/opencontrail/files/4.0/config/contrail-config-nodemgr.ini b/opencontrail/files/4.0/config/contrail-config-nodemgr.ini
new file mode 100755
index 0000000..7f57ed6
--- /dev/null
+++ b/opencontrail/files/4.0/config/contrail-config-nodemgr.ini
@@ -0,0 +1,38 @@
+; The below sample eventlistener section shows all possible
+; eventlistener subsection values, create one or more 'real'
+; eventlistener: sections to be able to handle event notifications
+; sent by supervisor.
+
+[eventlistener:contrail-config-nodemgr]
+command=/bin/bash -c "exec python /usr/bin/contrail-nodemgr --nodetype=contrail-config"
+events=PROCESS_COMMUNICATION,PROCESS_STATE,TICK_60
+;[eventlistener:theeventlistenername]
+;command=/bin/eventlistener    ; the program (relative uses PATH, can take args)
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+;events=EVENT                  ; event notif. types to subscribe to (req'd)
+buffer_size=10000                ; event buffer queue size (default 10)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=-1                   ; the relative start priority (default -1)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+stdout_logfile=/var/log/contrail/contrail-config-nodemgr-stdout.log       ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+stderr_logfile=/var/log/contrail/contrail-config-nodemgr-stderr.log ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups        ; # of stderr logfile backups (default 10)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions
+;serverurl=AUTO                ; override serverurl computation (childutils)
+
diff --git a/opencontrail/files/4.0/config/contrail_sudoers b/opencontrail/files/4.0/config/contrail_sudoers
new file mode 100644
index 0000000..a65cc42
--- /dev/null
+++ b/opencontrail/files/4.0/config/contrail_sudoers
@@ -0,0 +1,6 @@
+
+Defaults:contrail !requiretty
+
+Cmnd_Alias CONFIGRESTART = /usr/sbin/service supervisor-config restart
+
+contrail ALL = (root) NOPASSWD:CONFIGRESTART 
diff --git a/opencontrail/files/4.0/config/supervisord_config.conf b/opencontrail/files/4.0/config/supervisord_config.conf
new file mode 100644
index 0000000..5295900
--- /dev/null
+++ b/opencontrail/files/4.0/config/supervisord_config.conf
@@ -0,0 +1,104 @@
+; Sample supervisor config file.
+;
+; For more information on the config file, please see:
+; http://supervisord.org/configuration.html
+;
+; Note: shell expansion ("~" or "$HOME") is not supported.  Environment
+; variables can be expanded using this syntax: "%(ENV_HOME)s".
+
+[unix_http_server]
+file=/tmp/supervisord_config.sock   ; (the path to the socket file)
+chmod=0700                 ; socket file mode (default 0700)
+;chown=nobody:nogroup       ; socket file uid:gid owner
+;username=user              ; (default is no username (open server))
+;password=123               ; (default is no password (open server))
+
+;[inet_http_server]         ; inet (TCP) server disabled by default
+;port=127.0.0.1:9001        ; Port for analytics (ip_address:port specifier, *:port for all iface)
+;username=user              ; (default is no username (open server))
+;password=123               ; (default is no password (open server))
+
+[supervisord]
+logfile=/var/log/contrail/supervisord-config.log ; (main log file;default $CWD/supervisord.log)
+logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
+logfile_backups=3            ; (num of main logfile rotation backups;default 10)
+loglevel=info                ; (log level;default info; others: debug,warn,trace)
+pidfile=/var/run/supervisord-config.pid   ; (supervisord pidfile;default supervisord.pid)
+nodaemon=false               ; (start in foreground if true;default false)
+minfds=10240
+minprocs=200                 ; (min. avail process descriptors;default 200)
+;umask=022                   ; (process file creation umask;default 022)
+;user=chrism                 ; (default is current user, required if root)
+;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
+;directory=/tmp              ; (default is not to cd during start)
+nocleanup=true              ; (don't clean up tempfiles at start;default false)
+childlogdir=/var/log/contrail ; ('AUTO' child log dir, default $TEMP)
+;environment=KEY=value       ; (key value pairs to add to environment)
+;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)
+
+; the below section must remain in the config file for RPC
+; (supervisorctl/web interface) to work, additional interfaces may be
+; added by defining them in separate rpcinterface: sections
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///tmp/supervisord_config.sock ; use a unix:// URL  for a unix socket
+;serverurl=http://127.0.0.1:9004 ; use an http:// url to specify an inet socket
+;username=chris              ; should be same as http_username if set
+;password=123                ; should be same as http_password if set
+;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
+;history_file=~/.sc_history  ; use readline history if available
+
+; The below sample program section shows all possible program subsection values,
+; create one or more 'real' program: sections to be able to control them under
+; supervisor.
+
+;[program:theprogramname]
+;command=/bin/cat              ; the program (relative uses PATH, can take args)
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=999                  ; the relative start priority (default 999)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;user=chrism                   ; setuid to this UNIX account to run the program
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
+;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions (def no adds)
+;serverurl=AUTO                ; override serverurl computation (childutils)
+
+; The below sample group section shows all possible group values,
+; create one or more 'real' group: sections to create "heterogeneous"
+; process groups.
+
+;[group:thegroupname]
+;programs=progname1,progname2  ; each refers to 'x' in [program:x] definitions
+;priority=999                  ; the relative start priority (default 999)
+
+; The [include] section can just contain the "files" setting.  This
+; setting can list multiple files (separated by whitespace or
+; newlines).  It can also contain wildcards.  The filenames are
+; interpreted as relative to this file.  Included files *cannot*
+; include files themselves.
+
+[include]
+files = /etc/contrail/supervisord_config_files/*.ini
+
diff --git a/opencontrail/files/4.0/contrail-alarm-gen.conf b/opencontrail/files/4.0/contrail-alarm-gen.conf
new file mode 100644
index 0000000..bff7991
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-alarm-gen.conf
@@ -0,0 +1,31 @@
+{%- from "opencontrail/map.jinja" import collector with context %}
+[DEFAULTS]
+host_ip = {{ collector.bind.address }}
+collectors = {% for member in collector.analytics.members %}{{ member.host }}:8086 {% endfor %}
+#http_server_port = 5995
+log_local = 1
+log_level = SYS_NOTICE
+#log_category = 
+log_file = /var/log/contrail/contrail-alarm-gen.log
+kafka_broker_list = {% for member in collector.database.members %}{{ member.host }}:9092 {% endfor %}
+partitions=30
+zk_list = {% for member in collector.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+#rabbitmq_server_list = xx.xx.xx.xx
+rabbitmq_server_list = {{ collector.message_queue.host }}
+rabbitmq_port = 5672
+
+[API_SERVER]
+# List of api-servers in ip:port format separated by space
+api_server_list={% for member in collector.config.members %}{{ member.host }}:9100 {% endfor %}
+#api_server_use_ssl=False
+
+[REDIS]
+#redis_server_port=6379
+#redis_uve_list=ip1:6379 ip2:6379
+
+[SANDESH]
+#sandesh_ssl_enable=False
+#introspect_ssl_enable=False
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-analytics-api.conf b/opencontrail/files/4.0/contrail-analytics-api.conf
new file mode 100644
index 0000000..f6f4004
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-analytics-api.conf
@@ -0,0 +1,43 @@
+{%- from "opencontrail/map.jinja" import collector with context %}
+[DEFAULTS]
+host_ip = {{ collector.bind.address }}
+collectors = {% for member in collector.database.members %}{{ member.host }}:8086 {% endfor %}
+cassandra_server_list={% for member in collector.database.members %}{{ member.host }}:9042 {% endfor %}
+http_server_port = 8090
+api_server={% for member in collector.config.members %}{{ member.host }}:9100 {% endfor %}
+rest_api_port = {{ collector.bind.get('port', '8081') }}
+rest_api_ip = 0.0.0.0 
+log_local = 1
+log_level = SYS_NOTICE
+log_category = 
+log_file = /var/log/contrail/contrail-analytics-api.log
+
+# Sandesh send rate limit can be used to throttle system logs transmitted per
+# second. System logs are dropped if the sending rate is exceeded
+#sandesh_send_rate_limit =
+partitions=30
+
+aaa_mode = {{ collector.get('aaa_mode', 'no-auth') }}
+
+# Time-to-live in hours of the various data stored by collector into
+# cassandra
+# analytics_config_audit_ttl, if not set (or set to -1), defaults to analytics_data_ttl
+# analytics_statistics_ttl, if not set (or set to -1), defaults to analytics_data_ttl
+# analytics_flow_ttl, if not set (or set to -1), defaults to analytics_statsdata_ttl
+analytics_data_ttl={{ collector.data_ttl }}
+analytics_config_audit_ttl={{ collector.data_ttl }}
+analytics_statistics_ttl={{ collector.data_ttl }}
+analytics_flow_ttl={{ collector.data_ttl }}
+
+[REDIS]
+#server=127.0.0.1
+redis_server_port = 6379
+redis_query_port = 6379
+#redis_uve_list = ip1:6379 ip2:6379
+
+[SANDESH]
+#sandesh_ssl_enable=False
+#introspect_ssl_enable=False
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-analytics-nodemgr.conf b/opencontrail/files/4.0/contrail-analytics-nodemgr.conf
new file mode 100644
index 0000000..48f812d
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-analytics-nodemgr.conf
@@ -0,0 +1,3 @@
+{%- from "opencontrail/map.jinja" import collector with context %}
+[COLLECTOR]
+server_list={% for member in collector.analytics.members %}{{ member.host }}:8086 {% endfor %}
\ No newline at end of file
diff --git a/opencontrail/files/4.0/contrail-api.conf b/opencontrail/files/4.0/contrail-api.conf
new file mode 100644
index 0000000..d4045ca
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-api.conf
@@ -0,0 +1,47 @@
+{%- from "opencontrail/map.jinja" import config with context %}
+[DEFAULTS]
+collectors = {% for member in config.analytics.members %}{{ member.host }}:8086 {% endfor %}
+cassandra_server_list={% for member in config.database.members %}{{ member.host }}:9160 {% endfor %}
+listen_ip_addr=0.0.0.0
+listen_port={{ config.bind.get('api_port', '8082') }}
+aaa_mode={{ config.get('aaa_mode', 'cloud-admin') }}
+cloud_admin_role={{ config.get('cloud_admin_role', 'admin') }}
+log_file=/var/log/contrail/contrail-api.log
+log_local=1
+log_level=SYS_NOTICE
+#zk_server_ip=10.0.102.31:2181,10.0.102.32:2181,10.0.102.33:2181
+zk_server_ip={% for member in config.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+redis_server_ip=$__contrail_redis_ip__
+{%- if config.message_queue.members is defined %}
+rabbit_server={{ config.message_queue.members|join(',',attribute='host') }}
+rabbit_ha_mode=True
+{%- else %}
+rabbit_server={{ config.message_queue.host }}
+{%- endif %}
+rabbit_port={{ config.message_queue.port }}
+{%- if config.identity.engine == "keystone" %}
+auth=keystone
+{%- endif %}
+#rabbit_port=5673
+
+# (StrOpt) default encoding to use for string resources.
+# this is optional variable. Define it if you want to override
+# the default encoder returned by sys.getdefaultencoding()
+# default_encoding = <encoding name>
+# Eg. to set ascii as the encoder
+# default_encoding = ascii
+# Eg. to set utf-8 as the encoder
+# default_encoding = utf-8
+
+[SECURITY]
+use_certs=False
+keyfile=/etc/contrail/ssl/private_keys/apiserver_key.pem
+certfile=/etc/contrail/ssl/certs/apiserver.pem
+ca_certs=/etc/contrail/ssl/certs/ca.pem
+
+[SANDESH]
+#sandesh_ssl_enable=false
+#introspect_ssl_enable=false
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
\ No newline at end of file
diff --git a/opencontrail/files/4.0/contrail-collector.conf b/opencontrail/files/4.0/contrail-collector.conf
new file mode 100644
index 0000000..cd2ca0a
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-collector.conf
@@ -0,0 +1,118 @@
+{%- from "opencontrail/map.jinja" import collector with context %}
+#
+# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
+#
+# Control-node configuration options
+#
+
+[DEFAULT]
+# Everything in this section is optional
+
+# Time-to-live in hours of the various data stored by collector into
+# cassandra
+# analytics_config_audit_ttl, if not set (or set to -1), defaults to analytics_data_ttl
+# analytics_statistics_ttl, if not set (or set to -1), defaults to analytics_data_ttl
+# analytics_flow_ttl, if not set (or set to -1), defaults to analytics_statsdata_ttl
+analytics_data_ttl={{ collector.data_ttl }}
+analytics_config_audit_ttl={{ collector.data_ttl }}
+analytics_statistics_ttl={{ collector.data_ttl }}
+analytics_flow_ttl={{ collector.data_ttl }}
+
+cassandra_server_list={% for member in collector.database.members %}{{ member.host }}:9042 {% endfor %}
+
+# IP address and port to be used to connect to kafka.
+# Multiple IP:port strings separated by space can be provided
+kafka_broker_list={% for member in collector.database.members %}{{ member.host }}:9092 {% endfor %}
+partitions=30
+
+# IP address and port to be used to connect to zookeeper.
+# Multiple IP:port are specified as single string separated by comma
+zookeeper_server_list={% for member in collector.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+
+# Disable flow collection
+disable_flow_collection={{ collector.get('disable_flow_collection', 'false')|lower }}
+
+# dup=0
+hostip={{ collector.bind.address }} # Resolved IP of `hostname`
+# hostname= # Retrieved as `hostname`
+http_server_port=8089
+# log_category=
+# log_disable=0
+log_file=/var/log/contrail/contrail-collector.log
+# log_files_count=10
+# log_file_size=1048576 # 1MB
+log_level=SYS_NOTICE
+log_local=1
+
+# TCP and UDP ports to listen on for receiving syslog messages. -1 to disable.
+syslog_port=-1
+
+# UDP port to listen on for receiving sFlow messages. -1 to disable.
+# sflow_port=6343
+
+# UDP port to listen on for receiving ipfix messages. -1 to disable.
+# ipfix_port=4739
+
+# test_mode=0
+
+# Sandesh send rate limit can be used to throttle system logs transmitted per
+# second. System logs are dropped if the sending rate is exceeded
+# sandesh_send_rate_limit=
+
+[COLLECTOR]
+port=8086
+# server= 0.0.0.0
+
+# UDP port to listen on for receiving Google Protocol Buffer messages
+# protobuf_port=3333
+
+[STRUCTURED_SYSLOG_COLLECTOR]
+# TCP & UDP port to listen on for receiving structured syslog messages
+# port=3514
+
+# List of external syslog receivers to forward structured syslog messages in ip:port format separated by space
+# tcp_forward_destination=10.213.17.53:514
+
+# kafka broker list to forward structured syslogs
+kafka_broker_list={% for member in collector.database.members %}{{ member.host }}:9092 {% endfor %}
+
+# kafka topic to forward structured syslogs
+# kafka_topic=structured_syslog_topic
+
+# number of kafka partitions
+# kafka_partitions=30
+
+[API_SERVER]
+# List of api-servers in ip:port format separated by space
+api_server_list={% for member in collector.config.members %}{{ member.host }}:9100 {% endfor %}
+# api_server_use_ssl=False
+
+[DATABASE]
+# disk usage percentage
+#disk_usage_percentage.high_watermark0=90
+#disk_usage_percentage.low_watermark0=85
+#disk_usage_percentage.high_watermark1=80
+#disk_usage_percentage.low_watermark1=75
+#disk_usage_percentage.high_watermark2=70
+#disk_usage_percentage.low_watermark2=60
+
+# Cassandra pending compaction tasks
+#pending_compaction_tasks.high_watermark0=400
+#pending_compaction_tasks.low_watermark0=300
+#pending_compaction_tasks.high_watermark1=200
+#pending_compaction_tasks.low_watermark1=150
+#pending_compaction_tasks.high_watermark2=100
+#pending_compaction_tasks.low_watermark2=80
+
+# Message severity levels to be written to database
+#high_watermark0.message_severity_level=SYS_EMERG
+#low_watermark0.message_severity_level=SYS_ALERT
+#high_watermark1.message_severity_level=SYS_ERR
+#low_watermark1.message_severity_level=SYS_WARN
+#high_watermark2.message_severity_level=SYS_DEBUG
+#low_watermark2.message_severity_level=INVALID
+
+[REDIS]
+port=6379
+server=127.0.0.1
+
diff --git a/opencontrail/files/4.0/contrail-config-nodemgr.conf b/opencontrail/files/4.0/contrail-config-nodemgr.conf
new file mode 100644
index 0000000..d5d632f
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-config-nodemgr.conf
@@ -0,0 +1,3 @@
+{%- from "opencontrail/map.jinja" import config with context %}
+[COLLECTOR]
+server_list={% for member in config.analytics.members %}{{ member.host }}:8086 {% endfor %}
diff --git a/opencontrail/files/4.0/contrail-control-nodemgr.conf b/opencontrail/files/4.0/contrail-control-nodemgr.conf
new file mode 100644
index 0000000..2f77929
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-control-nodemgr.conf
@@ -0,0 +1,3 @@
+{%- from "opencontrail/map.jinja" import control with context %}
+[COLLECTOR]
+server_list={% for member in control.analytics.members %}{{ member.host }}:8086 {% endfor %}
diff --git a/opencontrail/files/4.0/contrail-control.conf b/opencontrail/files/4.0/contrail-control.conf
new file mode 100644
index 0000000..ae5be90
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-control.conf
@@ -0,0 +1,62 @@
+{%- from "opencontrail/map.jinja" import control with context %}
+#
+# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
+#
+# Control-node configuration options
+#
+
+[DEFAULT]
+# bgp_config_file=bgp_config.xml
+# bgp_port=179
+collectors= {% for member in control.analytics.members %}{{ member.host }}:8086 {% endfor %}
+# gr_helper_bgp_disable=0
+# gr_helper_xmpp_disable=0
+hostip={{ control.bind.address }} # Resolved IP of `hostname`
+#hostname=ctl-oc-1 # Retrieved as `hostname` 
+{%- if control.name is defined %}
+hostname={{ control.name }}
+{%- else %}
+hostname={{ pillar.linux.system.name }}
+{%- endif %}
+# http_server_port=8083
+# log_category=
+# log_disable=0
+log_file=/var/log/contrail/contrail-control.log
+# log_files_count=10
+# log_file_size=10485760 # 10MB
+log_level=SYS_NOTICE
+log_local=1
+# test_mode=0
+# xmpp_server_port=5269
+# xmpp_auth_enable=0
+# xmpp_server_cert=/etc/contrail/ssl/certs/server.pem
+# xmpp_server_key=/etc/contrail/ssl/private/server-privkey.pem
+# xmpp_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
+
+# Sandesh send rate limit can be used to throttle system logs transmitted per
+# second. System logs are dropped if the sending rate is exceeded
+# sandesh_send_rate_limit=
+
+[CONFIGDB]
+#AMQP related configs
+#rabbitmq_server_list=ip1:port1 ip2:por1
+rabbitmq_server_list={% for member in control.message_queue.members -%}{{ member.host }}:{{ member.get('port', 5672) }} {% endfor %}
+rabbitmq_user={{ control.message_queue.get('user', 'guest') }}
+rabbitmq_password={{ control.message_queue.get('password', 'guest') }}
+rabbitmq_vhost={{ control.message_queue.get('vhost', '') }}
+# rabbitmq_use_ssl=false
+# rabbitmq_ssl_version=
+# rabbitmq_ssl_keyfile=
+# rabbitmq_ssl_certfile=
+# rabbitmq_ssl_ca_certs=
+#
+config_db_server_list={% for member in control.database.members %}{{ member.host }}:9042 {% endfor %}
+# config_db_username=
+# config_db_password=
+
+[SANDESH]
+# sandesh_ssl_enable=false
+# introspect_ssl_enable=false
+# sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+# sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+# sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-database-nodemgr.conf b/opencontrail/files/4.0/contrail-database-nodemgr.conf
new file mode 100644
index 0000000..5ccad47
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-database-nodemgr.conf
@@ -0,0 +1,7 @@
+{%- from "opencontrail/map.jinja" import database with context %}
+[DEFAULT]
+hostip={{ database.bind.host }}
+minimum_diskGB={{ database.minimum_disk }}
+
+[COLLECTOR]
+server_list={% for member in database.analytics.members %}{{ member.host }}:8086 {% endfor %}
diff --git a/opencontrail/files/4.0/contrail-device-manager.conf b/opencontrail/files/4.0/contrail-device-manager.conf
new file mode 100644
index 0000000..80ffb9c
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-device-manager.conf
@@ -0,0 +1,24 @@
+{%- from "opencontrail/map.jinja" import config with context %}
+[DEFAULTS]
+{%- if config.message_queue.members is defined %}
+rabbit_server={{ config.message_queue.members|join(',',attribute='host') }}
+rabbit_ha_mode=True
+{%- else %}
+rabbit_server={{ config.message_queue.host }}
+{%- endif %}
+rabbit_port={{ config.message_queue.port }}
+api_server_ip={{ config.api.host }}
+api_server_port=8082
+zk_server_ip={% for member in config.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+log_file=/var/log/contrail/contrail-device-manager.log
+cassandra_server_list={% for member in config.database.members %}{{ member.host }}:9160 {% endfor %}
+collectors = {% for member in config.analytics.members %}{{ member.host }}:8086 {% endfor %}
+log_local=1
+log_level=SYS_NOTICE
+
+[SANDESH]
+#sandesh_ssl_enable=False
+#introspect_ssl_enable=False
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-dns.conf b/opencontrail/files/4.0/contrail-dns.conf
new file mode 100644
index 0000000..93e5b72
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-dns.conf
@@ -0,0 +1,66 @@
+{%- from "opencontrail/map.jinja" import control with context %}
+#
+# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
+#
+# DNS configuration options
+#
+
+[DEFAULT]
+collectors= {% for member in control.analytics.members %}{{ member.host }}:8086 {% endfor %}
+# dns_config_file=dns_config.xml
+# named_config_file=contrail-named.conf                 # named config file
+# named_config_directory=/etc/contrail/dns              # named config directory
+# named_log_file=/var/log/contrail/contrail-named.log   # named log file
+# rndc_config_file=contrail-rndc.conf                   # rndc config file
+# rndc_secret=secretkey                                 # rndc secret
+named_max_cache_size=32M # max-cache-size (bytes) per view, can be in K or M
+named_max_retransmissions=12
+named_retransmission_interval=1000 # msec
+hostip={{ control.bind.address }} # Resolved IP of `hostname`
+{%- if control.name is defined %}
+hostname={{ control.name }}
+{%- else %}
+hostname={{ pillar.linux.system.name }}
+{%- endif %}
+# http_server_port=8092
+# dns_server_port=53
+# log_category=
+# log_disable=0
+log_file=/var/log/contrail/contrail-dns.log
+# log_files_count=10
+# log_file_size=1048576 # 1MB
+log_level=SYS_NOTICE
+log_local=1
+# test_mode=0
+# log_property_file= # log4cplus property file
+# xmpp_dns_auth_enable=0
+# xmpp_server_cert=/etc/contrail/ssl/certs/server.pem
+# xmpp_server_key=/etc/contrail/ssl/private/server-privkey.pem
+# xmpp_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
+
+# Sandesh send rate limit can be used to throttle system logs transmitted per
+# second. System logs are dropped if the sending rate is exceeded
+# sandesh_send_rate_limit=
+
+[CONFIGDB]
+#AMQP related configs
+rabbitmq_server_list={% for member in control.message_queue.members -%}{{ member.host }}:{{ member.get('port', 5672) }} {% endfor %}
+rabbitmq_user={{ control.message_queue.get('user', 'guest') }}
+rabbitmq_password={{ control.message_queue.get('password', 'guest') }}
+rabbitmq_vhost={{ control.message_queue.get('vhost', '') }}
+# rabbitmq_use_ssl=false
+# rabbitmq_ssl_version=
+# rabbitmq_ssl_keyfile=
+# rabbitmq_ssl_certfile=
+# rabbitmq_ssl_ca_certs=
+#
+config_db_server_list={% for member in control.database.members %}{{ member.host }}:9042 {% endfor %}
+# config_db_username=
+# config_db_password=
+
+[SANDESH]
+# sandesh_ssl_enable=false
+# introspect_ssl_enable=false
+# sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+# sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+# sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-issu.conf b/opencontrail/files/4.0/contrail-issu.conf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-issu.conf
diff --git a/opencontrail/files/4.0/contrail-keystone-auth.conf b/opencontrail/files/4.0/contrail-keystone-auth.conf
new file mode 100644
index 0000000..422f2f2
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-keystone-auth.conf
@@ -0,0 +1,21 @@
+{%- from "opencontrail/map.jinja" import config with context -%}
+[KEYSTONE]
+auth_host={{ config.identity.host }}
+auth_protocol=http
+auth_port={{ config.identity.port }}
+admin_user={{ config.identity.user }}
+admin_password={{ config.identity.password }}
+admin_tenant_name={{ config.identity.tenant }}
+insecure=True
+{%- if config.cache is defined %}
+#memcache_servers=127.0.0.1:11211
+memcache_servers={% for member in config.cache.members %}{{ member.host }}:{{ member.port }}{% if not loop.last %},{% endif %}{% endfor %}
+{%- endif %}
+{%- if config.identity.version == "3" %}
+project_name={{ config.identity.tenant }}
+project_domain_name={{ config.identity.get('domain', 'default')|lower}}
+auth_url=http://{{ config.identity.host }}:{{ config.identity.port }}/v3
+{%- else %}
+auth_url=http://{{ config.identity.host }}:{{ config.identity.port }}/v2.0
+{%- endif %}
+keystone_sync_on_demand={{ config.identity.get('sync_on_demand', 'true') }}
diff --git a/opencontrail/files/4.0/contrail-query-engine.conf b/opencontrail/files/4.0/contrail-query-engine.conf
new file mode 100644
index 0000000..3cc9ef6
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-query-engine.conf
@@ -0,0 +1,40 @@
+{%- from "opencontrail/map.jinja" import collector with context %}
+#
+# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
+#
+# Query-Engine configuration options
+#
+
+[DEFAULT]
+# analytics_data_ttl=48
+cassandra_server_list={% for member in collector.database.members %}{{ member.host }}:9042 {% endfor %}
+collectors = {% for member in collector.analytics.members %}{{ member.host }}:8086 {% endfor %}
+hostip={{ collector.bind.address }}
+# hostname= # Retrieved as `hostname`
+http_server_port=8091
+# log_category=
+# log_disable=0
+log_file=/var/log/contrail/contrail-query-engine.log
+# log_files_count=10
+# log_file_size=1048576 # 1MB
+log_level=SYS_NOTICE
+log_local=1
+# test_mode=0
+# max_slice=100
+# max_tasks=16
+# start_time=0
+# test_mode=0
+# Sandesh send rate limit can be used to throttle system logs transmitted per
+# second. System logs are dropped if the sending rate is exceeded
+# sandesh_send_rate_limit=
+
+[REDIS]
+port=6379
+server=127.0.0.1
+
+[SANDESH]
+# sandesh_ssl_enable=false
+# introspect_ssl_enable=false
+# sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+# sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+# sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-schema.conf b/opencontrail/files/4.0/contrail-schema.conf
new file mode 100644
index 0000000..1824708
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-schema.conf
@@ -0,0 +1,31 @@
+{%- from "opencontrail/map.jinja" import config with context %}
+[DEFAULTS]
+api_server_ip={{ config.api.host }}
+api_server_port=8082
+#zk_server_ip=10.0.102.31:2181,10.0.102.32:2181,10.0.102.33:2181
+zk_server_ip={% for member in config.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+log_file=/var/log/contrail/contrail-schema.log
+cassandra_server_list={% for member in config.database.members %}{{ member.host }}:9160 {% endfor %}
+log_local=1
+log_level=SYS_NOTICE
+{%- if config.message_queue.members is defined %}
+rabbit_server={{ config.message_queue.members|join(',',attribute='host') }}
+rabbit_ha_mode=True
+{%- else %}
+rabbit_server={{ config.message_queue.host }}
+{%- endif %}
+rabbit_port={{ config.message_queue.port }}
+collectors = {% for member in config.analytics.members %}{{ member.host }}:8086 {% endfor %}
+
+[SECURITY]
+use_certs=False
+keyfile=/etc/contrail/ssl/private_keys/schema_xfer_key.pem
+certfile=/etc/contrail/ssl/certs/schema_xfer.pem
+ca_certs=/etc/contrail/ssl/certs/ca.pem
+
+[SANDESH]
+#sandesh_ssl_enable=False
+#introspect_ssl_enable=False
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-snmp-collector.conf b/opencontrail/files/4.0/contrail-snmp-collector.conf
new file mode 100644
index 0000000..cdfe630
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-snmp-collector.conf
@@ -0,0 +1,31 @@
+{%- from "opencontrail/map.jinja" import collector with context %}
+[DEFAULTS]
+collectors = {% for member in collector.database.members %}{{ member.host }}:8086 {% endfor %}
+#fast_scan_frequency=60
+#http_server_port=5920
+log_local=1
+log_level=SYS_NOTICE
+log_file=/var/log/contrail/contrail-snmp-collector.log
+zookeeper = {% for member in collector.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+#scan_frequency=600
+
+[API_SERVER]
+# List of api-servers in ip:port format separated by space
+api_server_list={% for member in collector.config.members %}{{ member.host }}:9100 {% endfor %}
+#api_server_use_ssl=False
+
+[KEYSTONE]
+#keystone parameters come from contrail-keystone-auth.conf
+#auth_host=127.0.0.1
+#auth_protocol=http
+#auth_port=35357
+#admin_user=user1
+#admin_password=password1
+#admin_tenant_name=default-domain
+
+[SANDESH]
+#sandesh_ssl_enable=False
+#introspect_ssl_enable=False
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-svc-monitor.conf b/opencontrail/files/4.0/contrail-svc-monitor.conf
new file mode 100644
index 0000000..b55d24c
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-svc-monitor.conf
@@ -0,0 +1,49 @@
+{%- from "opencontrail/map.jinja" import config with context %}
+
+[DEFAULTS]
+api_server_ip={{ config.api.host }}
+api_server_port=8082
+#zk_server_ip=10.0.102.31:2181,10.0.102.32:2181,10.0.102.33:2181
+zk_server_ip={% for member in config.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+log_file=/var/log/contrail/contrail-svc-monitor.log
+cassandra_server_list={% for member in config.database.members %}{{ member.host }}:9160 {% endfor %}
+region_name=RegionOne
+#nova_endpoint_type=publicURL
+log_local=1
+log_level=SYS_NOTICE
+{%- if config.message_queue.members is defined %}
+rabbit_server={{ config.message_queue.members|join(',',attribute='host') }}
+rabbit_ha_mode=True
+{%- else %}
+rabbit_server={{ config.message_queue.host }}
+{%- endif %}
+rabbit_port={{ config.message_queue.port }}
+collectors={% for member in config.analytics.members %}{{ member.host }}:8086 {% endfor %}
+
+[SCHEDULER]
+# Analytics server list used to get vrouter status and schedule service instance
+analytics_server_list={% for member in config.analytics.members %}{{ member.host }}:9081 {% endfor %}
+
+# Driver to use for scheduling virtual machine of a NetNS service instance to a
+# vrouter agent
+# si_netns_scheduler_driver = svc_monitor.scheduler.vrouter_scheduler.RandomScheduler
+
+[KEYSTONE]
+#auth_host=127.0.0.1
+#admin_user=
+#admin_password=
+#admin_tenant_name=
+#admin_token=
+
+[SECURITY]
+use_certs=False
+keyfile=/etc/contrail/ssl/private_keys/svc_monitor_key.pem
+certfile=/etc/contrail/ssl/certs/svc_monitor.pem
+ca_certs=/etc/contrail/ssl/certs/ca.pem
+
+[SANDESH]
+#sandesh_ssl_enable=False
+#introspect_ssl_enable=False
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-topology.conf b/opencontrail/files/4.0/contrail-topology.conf
new file mode 100644
index 0000000..976c5b1
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-topology.conf
@@ -0,0 +1,27 @@
+{%- from "opencontrail/map.jinja" import collector with context %}
+[DEFAULTS]
+analytics_api={{ collector.bind.address }}:8081
+collectors = {% for member in collector.database.members %}{{ member.host }}:8086 {% endfor %}
+
+#http_server_port=5921
+
+log_local=1
+log_level=SYS_NOTICE
+log_file=/var/log/contrail/contrail-topology.log
+zookeeper = {% for member in collector.database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+
+#scan_frequency=60
+
+#zookeeper=127.0.0.1:2181
+
+[API_SERVER]
+# List of api-servers in ip:port format separated by space
+api_server_list={% for member in collector.config.members %}{{ member.host }}:9100 {% endfor %}
+#api_server_use_ssl=False
+
+[SANDESH]
+#sandesh_ssl_enable=False
+#introspect_ssl_enable=False
+#sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+#sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+#sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
diff --git a/opencontrail/files/4.0/contrail-tor-agent.conf b/opencontrail/files/4.0/contrail-tor-agent.conf
new file mode 100644
index 0000000..b239bc7
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-tor-agent.conf
@@ -0,0 +1,93 @@
+{%- from "opencontrail/map.jinja" import tor with context %}
+{%- from "opencontrail/map.jinja" import compute with context %}
+{%- set port = tor.bind.port + number %}
+#
+# Vnswad configuration options
+#
+
+[CONTROL-NODE]
+# IP address to be used to connect to control-node. Maximum of 2 IP addresses
+# (separated by a space) can be provided. If no IP is configured then the
+# value provided by discovery service will be used. (optional)
+# server=10.0.0.1 10.0.0.2
+
+[DEFAULT]
+agent_name={{ pillar.linux.system.name }}-{{ number }}
+# Everything in this section is optional
+
+# IP address and port to be used to connect to collector. If these are not
+# configured, value provided by discovery service will be used. Multiple
+# IP:port strings separated by space can be provided
+# collectors=127.0.0.1:8086
+
+# Enable/disable debug logging. Possible values are 0 (disable) and 1 (enable)
+# debug=0
+
+# Aging time for flow-records in seconds
+# flow_cache_timeout=0
+
+# Hostname of compute-node. If this is not configured value from `hostname`
+# will be taken
+# hostname=
+
+# Category for logging. Default value is '*'
+# log_category=
+
+# Local log file name
+log_file=/var/log/contrail/contrail-tor-agent-{{ number }}.log
+
+# Log severity levels. Possible values are SYS_EMERG, SYS_ALERT, SYS_CRIT,
+# SYS_ERR, SYS_WARN, SYS_NOTICE, SYS_INFO and SYS_DEBUG. Default is SYS_DEBUG
+# log_level=SYS_DEBUG
+
+# Enable/Disable local file logging. Possible values are 0 (disable) and 1 (enable)
+# log_local=0
+
+# Enable/Disable local flow message logging. Possible values are 0 (disable) and 1 (enable)
+# log_flow=0
+# Encapsulation type for tunnel. Possible values are MPLSoGRE, MPLSoUDP, VXLAN
+# tunnel_type=
+
+# Enable/Disable headless mode for agent. In headless mode agent retains last
+# known good configuration from control node when all control nodes are lost.
+# Possible values are true(enable) and false(disable)
+# headless_mode=
+
+# Define agent mode. Only supported value is "tor"
+  agent_mode=tor
+
+
+# Http server port for inspecting vnswad state (useful for debugging)
+# http_server_port=8085
+http_server_port={{ port }}
+
+[DNS]
+# IP address to be used to connect to dns-node. Maximum of 2 IP addresses
+# (separated by a space) can be provided. If no IP is configured then the
+# value provided by discovery service will be used. (Optional)
+# server=10.0.0.1 10.0.0.2
+
+[NETWORKS]
+# control-channel IP address used by WEB-UI to connect to vnswad to fetch
+# required information (Optional)
+control_network_ip={{ tor.control.address }}
+
+[TOR]
+# IP address of the TOR to manage
+tor_ip={{ tor.device.host }}
+
+# Identifier for ToR. Agent will subscribe to ifmap-configuration by this name
+tor_id={{ number }}
+
+# ToR management scheme is based on this type. Only supported value is "ovs"
+tor_type=ovs
+
+# OVS server port number on the ToR
+tor_ovs_port=6632
+
+# IP-Transport protocol used to connect to tor. Only supported value is "tcp"
+tor_ovs_protocol=tcp
+
+tsn_ip={{ tor.interface.address }}
+
+
diff --git a/opencontrail/files/4.0/contrail-vrouter-agent.conf b/opencontrail/files/4.0/contrail-vrouter-agent.conf
new file mode 100644
index 0000000..22df53c
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-vrouter-agent.conf
@@ -0,0 +1,385 @@
+{%- from "opencontrail/map.jinja" import common,compute with context %}
+#
+# Vnswad configuration options
+#
+
+[CONTROL-NODE]
+# List of IPAdress:Port of control-node's separated by space.(Mandatory)
+# servers=10.0.0.1:5269 10.0.0.2:5260 10.0.0.3:5260
+servers={% for member in compute.control.members %}{{ member.host }}:5269 {% endfor %}
+
+[DEFAULT]
+# Everything in this section is optional
+
+# IP address and port to be used to connect to collector.
+# Multiple IP:port strings separated by space can be provided
+collectors = {% for member in compute.collector.members %}{{ member.host }}:8086 {% endfor %}
+
+# Agent mode : can be vrouter / tsn / tor (default is vrouter)
+# agent_mode=
+{%- if pillar.opencontrail.tor is defined %}
+agent_mode = tsn
+{%- endif %}
+
+# Enable/disable debug logging. Possible values are 0 (disable) and 1 (enable)
+# debug=0
+
+# Aging time for flow-records in seconds
+# flow_cache_timeout=0
+
+{%- if compute.dpdk.enabled %}
+
+# DPDK or legacy work mode
+platform=dpdk
+
+# Physical address of PCI used by dpdk
+#physical_interface_address=0000:81:00.1
+physical_interface_address={{ compute.interface.pci }}
+
+# MAC address of device used by dpdk
+physical_interface_mac={{ compute.interface.mac_address }}
+
+{%- endif %}
+# hostname= # Retrieved from gethostname() or `hostname -s` equivalent
+
+# Http server port for inspecting vnswad state (useful for debugging)
+# http_server_port=8085
+
+# Category for logging. Default value is '*'
+# log_category=
+
+# Number of tx-buffers on pkt0 interface
+# pkt0_tx_buffers=1000
+#
+# Measure delays in different queues
+# measure_queue_delay=0
+
+# Local log file name
+log_file=/var/log/contrail/contrail-vrouter-agent.log
+
+# Log severity levels. Possible values are SYS_EMERG, SYS_ALERT, SYS_CRIT, 
+# SYS_ERR, SYS_WARN, SYS_NOTICE, SYS_INFO and SYS_DEBUG. Default is SYS_DEBUG
+log_level=SYS_NOTICE
+
+# Enable/Disable local file logging. Possible values are 0 (disable) and 1 (enable)
+log_local=1
+
+# Enable/Disable local flow message logging. Possible values are 0 (disable) and 1 (enable)
+# log_flow=0
+
+# Disable sending of flow samples to collector. Possible values are 0 and 1
+# disable_flow_collection=false
+disable_flow_collection={{ compute.get('disable_flow_collection', 'false')|lower }}
+
+# Encapsulation type for tunnel. Possible values are MPLSoGRE, MPLSoUDP, VXLAN
+# tunnel_type=
+
+# Enable/Disable headless mode for agent. In headless mode agent retains last
+# known good configuration from control node when all control nodes are lost.
+# Possible values are true(enable) and false(disable)
+# headless_mode=
+headless_mode=true
+
+# DHCP relay mode (true or false) to determine if a DHCP request in fabric
+# interface with an unconfigured IP should be relayed or not
+# dhcp_relay_mode=
+
+# Sandesh send rate limit can be used to throttle system logs transmitted per
+# second. System logs are dropped if the sending rate is exceeded
+# sandesh_send_rate_limit=
+
+# Enable/Disable SSL based XMPP Authentication
+# xmpp_auth_enable=false
+# xmpp_dns_auth_enable=false
+# xmpp_server_cert=/etc/contrail/ssl/certs/server.pem
+# xmpp_server_key=/etc/contrail/ssl/private/server-privkey.pem
+# xmpp_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
+
+# Gateway mode : can be server/ vcpe (default is none)
+# gateway_mode=
+
+[SANDESH]
+# sandesh_ssl_enable=false
+# introspect_ssl_enable=false
+# sandesh_keyfile=/etc/contrail/ssl/private/server-privkey.pem
+# sandesh_certfile=/etc/contrail/ssl/certs/server.pem
+# sandesh_ca_cert=/etc/contrail/ssl/certs/ca-cert.pem
+
+[RESTART]
+# Enable/Disable backup of config and resource files
+# backup_enable=true
+#
+# Directory containing backup of config and resource files
+# backup_dir=/var/lib/contrail/backup
+#
+# Number of backup files
+# backup_file_count=3
+#
+# Agent avoids generating backup file if change is detected within time
+# configured below (in milli-sec)
+# backup_idle_timeout=10000
+#
+# Restore config/resource definitions from file
+# restore_enable=true
+#
+# Audit time for config/resource read from file
+# restore_audit_timeout=15000
+
+[DNS]
+# Client port used by vrouter-agent while connecting to contrail-named
+# dns_client_port=
+
+# List of IPAdress:Port of DNS Servers separated by space.
+# servers=10.0.0.1:53 10.0.0.2:53 10.0.0.3:53
+
+# Timeout for DNS server queries in milli-seconds
+# dns_timeout=
+
+# Maximum retries for DNS server queries
+# dns_max_retries=
+
+[HYPERVISOR]
+# Everything in this section is optional
+
+# Hypervisor type. Possible values are kvm, xen and vmware
+type=kvm
+
+# Link-local IP address and prefix in ip/prefix_len format (for xen)
+# xen_ll_ip=
+
+# Link-local interface name when hypervisor type is Xen
+# xen_ll_interface=
+
+# Physical interface name when hypervisor type is vmware
+# vmware_physical_interface=
+
+# Mode of operation for VMWare. Possible values esxi_neutron, vcenter
+# default is esxi_neutron
+# vmware_mode=
+
+[FLOWS]
+# Everything in this section is optional
+
+# Number of threads for flow setup
+# thread_count = 4
+#
+# Maximum flows allowed per VM (given as % of maximum system flows)
+# max_vm_flows=
+
+# Maximum number of link-local flows allowed across all VMs
+# max_system_linklocal_flows=4096
+
+# Maximum number of link-local flows allowed per VM
+# max_vm_linklocal_flows=1024
+
+# Number of Index state-machine events to log
+# index_sm_log_count=0
+
+# Enable/Disable tracing of flow messages. Introspect can over-ride this value
+# trace_enable=false
+#
+# Number of add-tokens
+# add_tokens=100
+# Number of ksync-tokens
+# ksync_tokens=50
+# Number of del-tokens
+# del_tokens=50
+# Number of update-tokens
+# update_tokens=50
+
+[METADATA]
+# Shared secret for metadata proxy service (Optional)
+# metadata_proxy_secret=contrail
+
+# Metadata proxy port on which agent listens (Optional)
+# metadata_proxy_port=
+
+# Enable(true) ssl support for metadata proxy service
+# metadata_use_ssl=
+
+# Path for Metadata Agent client certificate
+# metadata_client_cert=
+
+# Metadata Agent client certificate type(default=PEM)
+# metdata_client_cert_type=
+
+# Path for Metadata Agent client private key
+# metadata_client_key=
+
+# Path for CA certificate
+# metadata_ca_cert=
+
+[NETWORKS]
+# control-channel IP address used by WEB-UI to connect to vnswad to fetch
+# required information (Optional)
+{%- if compute.bind is defined %}
+control_network_ip={{ compute.bind.address }}
+{%- else %}
+control_network_ip={{ compute.interface.address }}
+{%- endif %}
+
+[VIRTUAL-HOST-INTERFACE]
+# Everything in this section is mandatory
+
+# name of virtual host interface
+name=vhost0
+
+# IP address and prefix in ip/prefix_len format
+ip={{ compute.interface.address }}/{{ compute.interface.mask }}
+
+# Gateway IP address for virtual host
+gateway={{ compute.interface.gateway }}
+
+# Flag to indicate if hosts in vhost subnet can be resolved by ARP
+# If set to 1 host in subnet would be resolved by ARP, if set to 0
+# all the traffic destined to hosts within subnet also go via
+# default gateway
+# subnet_hosts_resolvable=0
+
+# Physical interface name to which virtual host interface maps to
+physical_interface={{ compute.interface.dev }}
+
+# List of IP addresses assigned for the compute node other than vhost. Specify
+# this only if vhost interface is un-numbered in host-os. Agent will use one
+# of the compute_node_address to run services that need IP Address in host-os
+# (like metadata...)
+#compute_node_address = 10.204.216.28
+
+# We can have multiple gateway sections with different indices in the 
+# following format
+[GATEWAY-0]
+# Name of the routing_instance for which the gateway is being configured
+# routing_instance=default-domain:admin:public:public
+
+# Gateway interface name
+# interface=vgw
+
+# Virtual network ip blocks for which gateway service is required. Each IP
+# block is represented as ip/prefix. Multiple IP blocks are represented by
+# separating each with a space
+# ip_blocks=1.1.1.1/24
+
+[GATEWAY-1]
+# Name of the routing_instance for which the gateway is being configured
+# routing_instance=default-domain:admin:public1:public1
+
+# Gateway interface name
+# interface=vgw1
+
+# Virtual network ip blocks for which gateway service is required. Each IP
+# block is represented as ip/prefix. Multiple IP blocks are represented by
+# separating each with a space
+# ip_blocks=2.2.1.0/24 2.2.2.0/24
+
+# Routes to be exported in routing_instance. Each route is represented as
+# ip/prefix. Multiple routes are represented by separating each with a space
+# routes=10.10.10.1/24 11.11.11.1/24
+
+[SERVICE-INSTANCE]
+# Path to the script which handles the netns commands
+netns_command=/usr/bin/opencontrail-vrouter-netns
+docker_command=/usr/bin/opencontrail-vrouter-docker
+
+# Number of workers that will be used to start netns commands
+#netns_workers=1
+
+# Timeout for each netns command, when the timeout is reached, the netns
+# command is killed.
+#netns_timeout=30
+
+[TASK]
+# Number of threads used by TBB
+# thread_count = 8
+# Log message if time taken to execute task exceeds a threshold (in msec)
+# log_exec_threshold = 10
+#
+# Log message if time taken to schedule task exceeds a threshold (in msec)
+# log_schedule_threshold = 25
+#
+# TBB Keepawake timer interval in msec
+# tbb_keepawake_timeout = 20
+#
+# Timeout for task monitor in msec
+# task_monitor_timeout = 50000
+#
+# Policy to pin the ksync netlink io thread to CPU. By default, CPU pinning
+# is disabled. Other values for policy are,
+# "last" - Last CPUID
+# "<num>" - CPU-ID to pin (in decimal)
+# ksync_thread_cpu_pin_policy=last
+
+[SERVICES]
+# bgp_as_a_service_port_range - reserving set of ports to be used.
+# bgp_as_a_service_port_range=30000-35000
+
+# [QOS]
+#
+# #Knob to configure priority tagging when in DCB mode. Default value is true
+# priority_tagging = false
+#
+# [QUEUE-1]
+# Logical nic queues for qos config
+# logical_queue=
+
+# [QUEUE-2]
+# Logical nic queues for qos config
+# logical_queue=
+
+# [QUEUE-3]
+# This is the default hardware queue
+# default_hw_queue= true
+
+# Logical nic queues for qos config
+# logical_queue=
+
+# [QOS-NIANTIC]
+# [PG-1]
+# Scheduling algorithm for priority group (strict/rr)
+# scheduling=
+
+# Total hardware queue bandwidth used by priority group
+# bandwidth=
+
+# [PG-2]
+# Scheduling algorithm for priority group (strict/rr)
+# scheduling=
+
+# Total hardware queue bandwidth used by priority group
+# bandwidth=
+
+# [PG-3]
+# Scheduling algorithm for priority group (strict/rr)
+# scheduling=
+
+# Total hardware queue bandwidth used by priority group
+# bandwidth=
+
+[LLGR]
+# Note: All time values are in seconds.
+
+# End of Rib Rx(received from CN)
+# Fallback time in seconds to age out stale entries on CN becoming
+# active this is used only when end-of-rib is not seen from CN.
+# end_of_rib_rx_fallback_time=
+
+# End of Rib Tx(to be sent to CN)
+# Fallback time in seconds to send EOR to CN. Agent waits for inactivity to
+# send the same however it may so happen that activity never dies down,
+# so use fallback.
+# Inactivity time is the time agent waits to conclude EOC. During this interval
+# no config will be seen.
+# end_of_rib_tx_fallback_time=
+# end_of_rib_tx_inactivity_time=
+
+# Config cleanup time
+# Once end of config is determined this time is used to start stale cleanup
+# of config.
+# stale_config_cleanup_time=
+
+# End of config determination time
+# Inactivity time is the time agent waits to conclude EOC. During this interval
+# no config will be seen.
+# Fallback time in seconds to find EOC in case config inactivity is not seen.
+# config_fallback_time=
+# config_inactivity_time=
+
diff --git a/opencontrail/files/4.0/contrail-vrouter-dpdk.ini b/opencontrail/files/4.0/contrail-vrouter-dpdk.ini
new file mode 100644
index 0000000..b44d437
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-vrouter-dpdk.ini
@@ -0,0 +1,11 @@
+{%- from "opencontrail/map.jinja" import compute with context %}
+[program:contrail-vrouter-dpdk]
+command=taskset {{ compute.dpdk.taskset }} /usr/bin/contrail-vrouter-dpdk --no-daemon --vr_flow_entries=2097152 --vr_mpls_labels 6000 --socket-mem {{ compute.dpdk.socket_mem }}
+priority=410
+autostart=true
+killasgroup=true
+stdout_capture_maxbytes=1MB
+redirect_stderr=true
+stdout_logfile=/var/log/contrail/contrail-vrouter-dpdk-stdout.log
+stderr_logfile=/var/log/contrail/contrail-vrouter-dpdk-stderr.log
+exitcodes=0                   ; 'expected' exit codes for process (default 0,2)
diff --git a/opencontrail/files/4.0/contrail-vrouter-nodemgr.conf b/opencontrail/files/4.0/contrail-vrouter-nodemgr.conf
new file mode 100644
index 0000000..952a2a5
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-vrouter-nodemgr.conf
@@ -0,0 +1,3 @@
+{%- from "opencontrail/map.jinja" import compute with context %}
+[COLLECTOR]
+server_list = {% for member in compute.collector.members %}{{ member.host }}:8086 {% endfor %}
diff --git a/opencontrail/files/4.0/contrail-vrouter-nodemgr.ini b/opencontrail/files/4.0/contrail-vrouter-nodemgr.ini
new file mode 100644
index 0000000..2ba3b63
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-vrouter-nodemgr.ini
@@ -0,0 +1,39 @@
+; The below sample eventlistener section shows all possible
+; eventlistener subsection values, create one or more 'real'
+; eventlistener: sections to be able to handle event notifications
+; sent by supervisor.
+
+[eventlistener:contrail-vrouter-nodemgr]
+command=/bin/bash -c "exec python /usr/bin/contrail-nodemgr --nodetype=contrail-vrouter"
+events=PROCESS_COMMUNICATION,PROCESS_STATE,TICK_60
+;[eventlistener:theeventlistnername]
+;command=/bin/eventlistener    ; the program (relative uses PATH, can take args)
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+;events=EVENT                  ; event notif. types to subscribe to (req'd)
+buffer_size=10000                ; event buffer queue size (default 10)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=-1                   ; the relative start priority (default -1)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;user=chrism                   ; setuid to this UNIX account to run the program
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+stdout_logfile=/var/log/contrail/contrail-vrouter-nodemgr-stdout.log ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+stderr_logfile=/var/log/contrail/contrail-vrouter-nodemgr-stderr.log ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups        ; # of stderr logfile backups (default 10)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions
+;serverurl=AUTO                ; override serverurl computation (childutils)
+
diff --git a/opencontrail/files/4.0/contrail-webui-userauth.js b/opencontrail/files/4.0/contrail-webui-userauth.js
new file mode 100644
index 0000000..29424ea
--- /dev/null
+++ b/opencontrail/files/4.0/contrail-webui-userauth.js
@@ -0,0 +1,23 @@
+{%- from "opencontrail/map.jinja" import web with context %}
+/*
+ * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
+ */
+
+/****************************************************************************
+ * Specify the authentication parameters for admin user
+ ****************************************************************************/
+ {%- if web.identity.engine == "keystone" %}
+var auth = {};
+auth.admin_user = '{{ web.identity.user }}';
+auth.admin_password = '{{ web.identity.password }}';
+auth.admin_token = '{{ web.identity.token }}';
+auth.admin_tenant_name = '{{ web.identity.tenant }}';
+
+module.exports = auth;
+{%- else %}
+var auth = {};
+auth.admin_user = 'admin';
+auth.admin_password = 'contrail123';
+auth.admin_token = '';
+module.exports = auth;
+{%- endif %}
\ No newline at end of file
diff --git a/opencontrail/files/4.0/control/contrail-control-nodemgr.ini b/opencontrail/files/4.0/control/contrail-control-nodemgr.ini
new file mode 100755
index 0000000..be08379
--- /dev/null
+++ b/opencontrail/files/4.0/control/contrail-control-nodemgr.ini
@@ -0,0 +1,37 @@
+; The below sample eventlistener section shows all possible
+; eventlistener subsection values, create one or more 'real'
+; eventlistener: sections to be able to handle event notifications
+; sent by supervisor.
+
+[eventlistener:contrail-control-nodemgr]
+command=/bin/bash -c "exec python /usr/bin/contrail-nodemgr --nodetype=contrail-control" 
+events=PROCESS_COMMUNICATION,PROCESS_STATE,TICK_60
+;[eventlistener:theeventlistenername]
+;command=/bin/eventlistener    ; the program (relative uses PATH, can take args)
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+;events=EVENT                  ; event notif. types to subscribe to (req'd)
+buffer_size=10000                ; event buffer queue size (default 10)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=-1                   ; the relative start priority (default -1)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+stdout_logfile=/var/log/contrail/contrail-control-nodemgr-stdout.log ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+stderr_logfile=/var/log/contrail/contrail-control-nodemgr-stderr.log ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups        ; # of stderr logfile backups (default 10)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions
+;serverurl=AUTO                ; override serverurl computation (childutils)
diff --git a/opencontrail/files/4.0/control/contrail-named.conf b/opencontrail/files/4.0/control/contrail-named.conf
new file mode 100644
index 0000000..18ef5af
--- /dev/null
+++ b/opencontrail/files/4.0/control/contrail-named.conf
@@ -0,0 +1,44 @@
+options {
+    directory "/etc/contrail/dns/";
+    managed-keys-directory "/etc/contrail/dns/";
+    empty-zones-enable no;
+    pid-file "/etc/contrail/dns/named.pid";
+    listen-on port 53 { any; };
+    allow-query { any; };
+    allow-recursion { any; };
+    allow-query-cache { any; };
+};
+
+key "rndc-key" {
+    algorithm hmac-md5;
+    secret "xvysmOR8lnUQRBcunkC6vg==";
+};
+
+controls {
+    inet 127.0.0.1 port 8094
+    allow { 127.0.0.1; }  keys { "rndc-key"; };
+};
+
+logging {
+    channel debug_log {
+        file "/var/log/contrail/contrail-named.log" versions 3 size 5m;
+        severity debug;
+        print-time yes;
+        print-severity yes;
+        print-category yes;
+    };
+    category default {
+        debug_log;
+    };
+    category queries {
+        debug_log;
+    };
+};
+
+view "_default_view_" {
+    match-clients {any;};
+    match-destinations {any;};
+    match-recursive-only no;
+    forwarders {10.0.110.18; };
+};
+
diff --git a/opencontrail/files/4.0/control/contrail-rndc.conf b/opencontrail/files/4.0/control/contrail-rndc.conf
new file mode 100644
index 0000000..5a820a1
--- /dev/null
+++ b/opencontrail/files/4.0/control/contrail-rndc.conf
@@ -0,0 +1,11 @@
+key "rndc-key" {
+    algorithm hmac-md5;
+    secret "xvysmOR8lnUQRBcunkC6vg==";
+};
+
+options {
+    default-key "rndc-key";
+    default-server 127.0.0.1;
+    default-port 8094;
+};
+
diff --git a/opencontrail/files/4.0/control/supervisord_control.conf b/opencontrail/files/4.0/control/supervisord_control.conf
new file mode 100644
index 0000000..683637d
--- /dev/null
+++ b/opencontrail/files/4.0/control/supervisord_control.conf
@@ -0,0 +1,104 @@
+; Sample supervisor config file.
+;
+; For more information on the config file, please see:
+; http://supervisord.org/configuration.html
+;
+; Note: shell expansion ("~" or "$HOME") is not supported.  Environment
+; variables can be expanded using this syntax: "%(ENV_HOME)s".
+
+[unix_http_server]
+file=/tmp/supervisord_control.sock   ; (the path to the socket file)
+chmod=0700                 ; socket file mode (default 0700)
+;chown=nobody:nogroup       ; socket file uid:gid owner
+;username=user              ; (default is no username (open server))
+;password=123               ; (default is no password (open server))
+
+;[inet_http_server]         ; inet (TCP) server disabled by default
+;port=127.0.0.1:9001        ; Port for analytics (ip_address:port specifier, *:port for all iface)
+;username=user              ; (default is no username (open server))
+;password=123               ; (default is no password (open server))
+
+[supervisord]
+logfile=/var/log/contrail/supervisord-control.log ; (main log file;default $CWD/supervisord.log)
+logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
+logfile_backups=3            ; (num of main logfile rotation backups;default 10)
+loglevel=info                ; (log level;default info; others: debug,warn,trace)
+pidfile=/var/run/supervisord_control.pid ; (supervisord pidfile;default supervisord.pid)
+nodaemon=false               ; (start in foreground if true;default false)
+minfds=10240
+minprocs=200                 ; (min. avail process descriptors;default 200)
+;umask=022                   ; (process file creation umask;default 022)
+;user=chrism                 ; (default is current user, required if root)
+;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
+;directory=/tmp              ; (default is not to cd during start)
+nocleanup=true              ; (don't clean up tempfiles at start;default false)
+childlogdir=/var/log/contrail ; ('AUTO' child log dir, default $TEMP)
+;environment=KEY=value       ; (key value pairs to add to environment)
+;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)
+
+; the below section must remain in the config file for RPC
+; (supervisorctl/web interface) to work, additional interfaces may be
+; added by defining them in separate rpcinterface: sections
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///tmp/supervisord_control.sock ; use a unix:// URL  for a unix socket
+;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
+;username=chris              ; should be same as http_username if set
+;password=123                ; should be same as http_password if set
+;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
+;history_file=~/.sc_history  ; use readline history if available
+
+; The below sample program section shows all possible program subsection values,
+; create one or more 'real' program: sections to be able to control them under
+; supervisor.
+
+;[program:theprogramname]
+;command=/bin/cat              ; the program (relative uses PATH, can take args)
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=999                  ; the relative start priority (default 999)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;user=chrism                   ; setuid to this UNIX account to run the program
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
+;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions (def no adds)
+;serverurl=AUTO                ; override serverurl computation (childutils)
+
+; The below sample group section shows all possible group values,
+; create one or more 'real' group: sections to create "heterogeneous"
+; process groups.
+
+;[group:thegroupname]
+;programs=progname1,progname2  ; each refers to 'x' in [program:x] definitions
+;priority=999                  ; the relative start priority (default 999)
+
+; The [include] section can just contain the "files" setting.  This
+; setting can list multiple files (separated by whitespace or
+; newlines).  It can also contain wildcards.  The filenames are
+; interpreted as relative to this file.  Included files *cannot*
+; include files themselves.
+
+[include]
+files = /etc/contrail/supervisord_control_files/*.ini
+
diff --git a/opencontrail/files/4.0/ctrl-details b/opencontrail/files/4.0/ctrl-details
new file mode 100644
index 0000000..7dac73e
--- /dev/null
+++ b/opencontrail/files/4.0/ctrl-details
@@ -0,0 +1,16 @@
+{%- from "opencontrail/map.jinja" import common with context %}
+CONTROLLER_MGMT={{ common.identity.host }}
+SERVICE_TOKEN={{ common.identity.token }}
+ADMIN_TOKEN={{ common.identity.password }}
+CONTROLLER={{ common.identity.host }}
+QUANTUM={{ common.network.host }}
+QUANTUM_PORT={{ common.network.port }}
+COMPUTE=None
+AUTH_PROTOCOL=http
+QUANTUM_PROTOCOL=http
+AMQP_SERVER={{ common.identity.host }}
+INTERNAL_VIP={{ common.identity.host }}
+HYPERVISOR=libvirt
+NOVA_PASSWORD={{ common.identity.password }}
+NEUTRON_PASSWORD={{ common.identity.password }}
+SERVICE_TENANT_NAME=service
diff --git a/opencontrail/files/4.0/database/cassandra-env.sh b/opencontrail/files/4.0/database/cassandra-env.sh
new file mode 100644
index 0000000..ba438ec
--- /dev/null
+++ b/opencontrail/files/4.0/database/cassandra-env.sh
@@ -0,0 +1,308 @@
+{%- from "opencontrail/map.jinja" import database with context %}# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+calculate_heap_sizes()
+{
+    case "`uname`" in
+        Linux)
+            system_memory_in_mb=`free -m | awk '/:/ {print $2;exit}'`
+            system_cpu_cores=`egrep -c 'processor([[:space:]]+):.*' /proc/cpuinfo`
+        ;;
+        FreeBSD)
+            system_memory_in_bytes=`sysctl hw.physmem | awk '{print $2}'`
+            system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024`
+            system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'`
+        ;;
+        SunOS)
+            system_memory_in_mb=`prtconf | awk '/Memory size:/ {print $3}'`
+            system_cpu_cores=`psrinfo | wc -l`
+        ;;
+        Darwin)
+            system_memory_in_bytes=`sysctl hw.memsize | awk '{print $2}'`
+            system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024`
+            system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'`
+        ;;
+        *)
+            # assume reasonable defaults for e.g. a modern desktop or
+            # cheap server
+            system_memory_in_mb="2048"
+            system_cpu_cores="2"
+        ;;
+    esac
+
+    # some systems like the raspberry pi don't report cores, use at least 1
+    if [ "$system_cpu_cores" -lt "1" ]
+    then
+        system_cpu_cores="1"
+    fi
+
+    # set max heap size based on the following
+    # max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB))
+    # calculate 1/2 ram and cap to 1024MB
+    # calculate 1/4 ram and cap to 8192MB
+    # pick the max
+    half_system_memory_in_mb=`expr $system_memory_in_mb / 2`
+    quarter_system_memory_in_mb=`expr $half_system_memory_in_mb / 2`
+    if [ "$half_system_memory_in_mb" -gt "1024" ]
+    then
+        half_system_memory_in_mb="1024"
+    fi
+    if [ "$quarter_system_memory_in_mb" -gt "8192" ]
+    then
+        quarter_system_memory_in_mb="8192"
+    fi
+    if [ "$half_system_memory_in_mb" -gt "$quarter_system_memory_in_mb" ]
+    then
+        max_heap_size_in_mb="$half_system_memory_in_mb"
+    else
+        max_heap_size_in_mb="$quarter_system_memory_in_mb"
+    fi
+    MAX_HEAP_SIZE="${max_heap_size_in_mb}M"
+
+    # Young gen: min(max_sensible_per_modern_cpu_core * num_cores, 1/4 * heap size)
+    max_sensible_yg_per_core_in_mb="100"
+    max_sensible_yg_in_mb=`expr $max_sensible_yg_per_core_in_mb "*" $system_cpu_cores`
+
+    desired_yg_in_mb=`expr $max_heap_size_in_mb / 4`
+
+    if [ "$desired_yg_in_mb" -gt "$max_sensible_yg_in_mb" ]
+    then
+        HEAP_NEWSIZE="${max_sensible_yg_in_mb}M"
+    else
+        HEAP_NEWSIZE="${desired_yg_in_mb}M"
+    fi
+}
+
+# Determine the sort of JVM we'll be running on.
+
+java_ver_output=`"${JAVA:-java}" -version 2>&1`
+
+jvmver=`echo "$java_ver_output" | grep '[openjdk|java] version' | awk -F'"' 'NR==1 {print $2}'`
+JVM_VERSION=${jvmver%_*}
+JVM_PATCH_VERSION=${jvmver#*_}
+
+if [ "$JVM_VERSION" -lt "1.7" ] ; then
+    echo "Cassandra 2.0 and later require Java 7u25 or later."
+    exit 1;
+fi
+
+if [ "$JVM_VERSION" -lt "1.8" ] && [ "$JVM_PATCH_VERSION" -lt "25" ] ; then
+    echo "Cassandra 2.0 and later require Java 7u25 or later."
+    exit 1;
+fi
+
+
+jvm=`echo "$java_ver_output" | grep -A 1 'java version' | awk 'NR==2 {print $1}'`
+case "$jvm" in
+    OpenJDK)
+        JVM_VENDOR=OpenJDK
+        # this will be "64-Bit" or "32-Bit"
+        JVM_ARCH=`echo "$java_ver_output" | awk 'NR==3 {print $2}'`
+        ;;
+    "Java(TM)")
+        JVM_VENDOR=Oracle
+        # this will be "64-Bit" or "32-Bit"
+        JVM_ARCH=`echo "$java_ver_output" | awk 'NR==3 {print $3}'`
+        ;;
+    *)
+        # Help fill in other JVM values
+        JVM_VENDOR=other
+        JVM_ARCH=unknown
+        ;;
+esac
+
+
+# Override these to set the amount of memory to allocate to the JVM at
+# start-up. For production use you may wish to adjust this for your
+# environment. MAX_HEAP_SIZE is the total amount of memory dedicated
+# to the Java heap; HEAP_NEWSIZE refers to the size of the young
+# generation. Both MAX_HEAP_SIZE and HEAP_NEWSIZE should be either set
+# or not (if you set one, set the other).
+#
+# The main trade-off for the young generation is that the larger it
+# is, the longer GC pause times will be. The shorter it is, the more
+# expensive GC will be (usually).
+#
+# The example HEAP_NEWSIZE assumes a modern 8-core+ machine for decent pause
+# times. If in doubt, and if you do not particularly want to tweak, go with
+# 100 MB per physical CPU core.
+
+#MAX_HEAP_SIZE="4G"
+#HEAP_NEWSIZE="800M"
+
+{%- if database.max_heap_size is defined %}
+MAX_HEAP_SIZE="{{ database.max_heap_size }}"
+{%- endif %}
+{%- if database.heap_newsize is defined %}
+HEAP_NEWSIZE="{{ database.heap_newsize }}"
+{%- endif %}
+
+# Set this to control the amount of arenas per-thread in glibc
+#export MALLOC_ARENA_MAX=4
+
+if [ "x$MAX_HEAP_SIZE" = "x" ] && [ "x$HEAP_NEWSIZE" = "x" ]; then
+    calculate_heap_sizes
+else
+    if [ "x$MAX_HEAP_SIZE" = "x" ] ||  [ "x$HEAP_NEWSIZE" = "x" ]; then
+        echo "please set or unset MAX_HEAP_SIZE and HEAP_NEWSIZE in pairs (see cassandra-env.sh)"
+        exit 1
+    fi
+fi
+
+if [ "x$MALLOC_ARENA_MAX" = "x" ]
+then
+    export MALLOC_ARENA_MAX=4
+fi
+
+# Specifies the default port over which Cassandra will be available for
+# JMX connections.
+# For security reasons, you should not expose this port to the internet.  Firewall it if needed.
+JMX_PORT="7199"
+
+
+# Here we create the arguments that will get passed to the jvm when
+# starting cassandra.
+
+# enable assertions.  disabling this in production will give a modest
+# performance benefit (around 5%).
+JVM_OPTS="$JVM_OPTS -ea"
+
+# add the jamm javaagent
+JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar"
+
+# some JVMs will fill up their heap when accessed via JMX, see CASSANDRA-6541
+JVM_OPTS="$JVM_OPTS -XX:+CMSClassUnloadingEnabled"
+
+# enable thread priorities, primarily so we can give periodic tasks
+# a lower priority to avoid interfering with client workload
+JVM_OPTS="$JVM_OPTS -XX:+UseThreadPriorities"
+# allows lowering thread priority without being root.  see
+# http://tech.stolsvik.com/2010/01/linux-java-thread-priorities-workaround.html
+JVM_OPTS="$JVM_OPTS -XX:ThreadPriorityPolicy=42"
+
+# min and max heap sizes should be set to the same value to avoid
+# stop-the-world GC pauses during resize, and so that we can lock the
+# heap in memory on startup to prevent any of it from being swapped
+# out.
+JVM_OPTS="$JVM_OPTS -Xms${MAX_HEAP_SIZE}"
+JVM_OPTS="$JVM_OPTS -Xmx${MAX_HEAP_SIZE}"
+JVM_OPTS="$JVM_OPTS -Xmn${HEAP_NEWSIZE}"
+JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
+
+# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
+if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then
+    JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof"
+fi
+
+
+startswith() { [ "${1#$2}" != "$1" ]; }
+
+# Per-thread stack size.
+JVM_OPTS="$JVM_OPTS -Xss256k"
+
+# Larger interned string table, for gossip's benefit (CASSANDRA-6410)
+JVM_OPTS="$JVM_OPTS -XX:StringTableSize=1000003"
+
+# GC tuning options
+JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC" 
+JVM_OPTS="$JVM_OPTS -XX:+UseConcMarkSweepGC" 
+JVM_OPTS="$JVM_OPTS -XX:+CMSParallelRemarkEnabled" 
+JVM_OPTS="$JVM_OPTS -XX:SurvivorRatio=8" 
+JVM_OPTS="$JVM_OPTS -XX:MaxTenuringThreshold=1"
+JVM_OPTS="$JVM_OPTS -XX:CMSInitiatingOccupancyFraction=75"
+JVM_OPTS="$JVM_OPTS -XX:+UseCMSInitiatingOccupancyOnly"
+JVM_OPTS="$JVM_OPTS -XX:+UseTLAB"
+JVM_OPTS="$JVM_OPTS -XX:CompileCommandFile=$CASSANDRA_CONF/hotspot_compiler"
+JVM_OPTS="$JVM_OPTS -XX:CMSWaitDuration=10000"
+
+# note: bash evals '1.7.x' as > '1.7' so this is really a >= 1.7 jvm check
+if { [ "$JVM_VERSION" -gt "1.7" ] && [ "$JVM_VERSION" -lt "1.8.0" ] && [ "$JVM_PATCH_VERSION" -ge "60" ]; } || [ "$JVM_VERSION" -gt "1.8" ] ; then
+    JVM_OPTS="$JVM_OPTS -XX:+CMSParallelInitialMarkEnabled -XX:+CMSEdenChunksRecordAlways -XX:CMSWaitDuration=10000"
+fi
+
+if [ "$JVM_ARCH" = "64-Bit" ] ; then
+    JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark"
+fi
+
+# GC logging options -- uncomment to enable
+JVM_OPTS="$JVM_OPTS -XX:+PrintGCDetails"
+JVM_OPTS="$JVM_OPTS -XX:+PrintGCDateStamps"
+JVM_OPTS="$JVM_OPTS -XX:+PrintHeapAtGC"
+JVM_OPTS="$JVM_OPTS -XX:+PrintTenuringDistribution"
+JVM_OPTS="$JVM_OPTS -XX:+PrintGCApplicationStoppedTime"
+JVM_OPTS="$JVM_OPTS -XX:+PrintPromotionFailure"
+JVM_OPTS="$JVM_OPTS -XX:PrintFLSStatistics=1"
+JVM_OPTS="$JVM_OPTS -Xloggc:/var/log/cassandra/gc-`date +%s`.log"
+# If you are using JDK 6u34 7u2 or later you can enable GC log rotation
+# don't stick the date in the log name if rotation is on.
+# JVM_OPTS="$JVM_OPTS -Xloggc:/var/log/cassandra/gc.log"
+# JVM_OPTS="$JVM_OPTS -XX:+UseGCLogFileRotation"
+# JVM_OPTS="$JVM_OPTS -XX:NumberOfGCLogFiles=10"
+# JVM_OPTS="$JVM_OPTS -XX:GCLogFileSize=10M"
+
+# Configure the following for JEMallocAllocator and if jemalloc is not available in the system 
+# library path (Example: /usr/local/lib/). Usually "make install" will do the right thing. 
+# export LD_LIBRARY_PATH=<JEMALLOC_HOME>/lib/
+# JVM_OPTS="$JVM_OPTS -Djava.library.path=<JEMALLOC_HOME>/lib/"
+
+# uncomment to have Cassandra JVM listen for remote debuggers/profilers on port 1414
+# JVM_OPTS="$JVM_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1414"
+
+# uncomment to have Cassandra JVM log internal method compilation (developers only)
+# JVM_OPTS="$JVM_OPTS -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation"
+
+# Prefer binding to IPv4 network intefaces (when net.ipv6.bindv6only=1). See
+# http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342561 (short version:
+# comment out this entry to enable IPv6 support).
+JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"
+
+# jmx: metrics and administration interface
+#
+# add this if you're having trouble connecting:
+# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"
+#
+# see
+# https://blogs.oracle.com/jmxetc/entry/troubleshooting_connection_problems_in_jconsole
+# for more on configuring JMX through firewalls, etc. (Short version:
+# get it working with no firewall first.)
+#
+# Cassandra ships with JMX accessible *only* from localhost.  
+# To enable remote JMX connections, uncomment lines below
+# with authentication and/or ssl enabled. See https://wiki.apache.org/cassandra/JmxSecurity 
+#
+LOCAL_JMX=yes
+
+if [ "$LOCAL_JMX" = "yes" ]; then
+  JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC"
+else
+  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
+  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
+  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
+  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
+  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
+fi
+
+# To use mx4j, an HTML interface for JMX, add mx4j-tools.jar to the lib/
+# directory.
+# See http://wiki.apache.org/cassandra/Operations#Monitoring_with_MX4J
+# By default mx4j listens on 0.0.0.0:8081. Uncomment the following lines
+# to control its listen address and port.
+#MX4J_ADDRESS="-Dmx4jaddress=127.0.0.1"
+#MX4J_PORT="-Dmx4jport=8081"
+
+JVM_OPTS="$JVM_OPTS $MX4J_ADDRESS"
+JVM_OPTS="$JVM_OPTS $MX4J_PORT"
+JVM_OPTS="$JVM_OPTS $JVM_EXTRA_OPTS"
diff --git a/opencontrail/files/4.0/database/contrail-database-nodemgr.ini b/opencontrail/files/4.0/database/contrail-database-nodemgr.ini
new file mode 100755
index 0000000..af67e91
--- /dev/null
+++ b/opencontrail/files/4.0/database/contrail-database-nodemgr.ini
@@ -0,0 +1,37 @@
+; The below sample eventlistener section shows all possible
+; eventlistener subsection values, create one or more 'real'
+; eventlistener: sections to be able to handle event notifications
+; sent by supervisor.
+
+[eventlistener:contrail-database-nodemgr]
+command=/bin/bash -c "exec python /usr/bin/contrail-nodemgr --nodetype=contrail-database"
+environment_file= /etc/contrail/database_nodemgr_param
+
+;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
+;numprocs=1                    ; number of processes copies to start (def 1)
+events=PROCESS_COMMUNICATION,PROCESS_STATE,TICK_60
+buffer_size=10000                ; event buffer queue size (default 10)
+;directory=/tmp                ; directory to cwd to before exec (def no cwd)
+;umask=022                     ; umask for process (default None)
+;priority=-1                   ; the relative start priority (default -1)
+;autostart=true                ; start at supervisord start (default: true)
+;autorestart=unexpected        ; whether/when to restart (default: unexpected)
+;startsecs=1                   ; number of secs prog must stay running (def. 1)
+;startretries=3                ; max # of serial start failures (default 3)
+;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
+;stopsignal=QUIT               ; signal used to kill process (default TERM)
+;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
+;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
+;killasgroup=false             ; SIGKILL the UNIX process group (def false)
+;user=chrism                   ; setuid to this UNIX account to run the program
+;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
+stdout_logfile=/var/log/contrail/contrail-database-nodemgr-stdout.log ; stdout log path, NONE for none; default AUTO
+;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
+;stdout_events_enabled=false   ; emit events on stdout writes (default false)
+stderr_logfile=/var/log/contrail/contrail-database-nodemgr-stderr.log ; stderr log path, NONE for none; default AUTO
+;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
+;stderr_logfile_backups        ; # of stderr logfile backups (default 10)
+;stderr_events_enabled=false   ; emit events on stderr writes (default false)
+;environment=A=1,B=2           ; process environment additions
+;serverurl=AUTO                ; override serverurl computation (childutils)
diff --git a/opencontrail/files/4.0/database/log4j.properties b/opencontrail/files/4.0/database/log4j.properties
new file mode 100644
index 0000000..0d4c4e7
--- /dev/null
+++ b/opencontrail/files/4.0/database/log4j.properties
@@ -0,0 +1,51 @@
+#
+# ZooKeeper Logging Configuration
+#
+
+# Format is "<default threshold> (, <appender>)+
+
+log4j.rootLogger=${zookeeper.root.logger}
+
+# Example: console appender only
+# log4j.rootLogger=INFO, CONSOLE
+
+# Example with rolling log file
+#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE
+
+# Example with rolling log file and tracing
+#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE
+
+#
+# Log INFO level and above messages to the console
+#
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.Threshold=INFO
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
+
+#
+# Add ROLLINGFILE to rootLogger to get log file output
+#    Log DEBUG level and above messages to a log file
+log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
+log4j.appender.ROLLINGFILE.Threshold=DEBUG
+log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/zookeeper.log
+
+# Max log file size of 10MB
+log4j.appender.ROLLINGFILE.MaxFileSize=10MB
+# uncomment the next line to limit number of backup files
+log4j.appender.ROLLINGFILE.MaxBackupIndex=10
+
+log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
+log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
+
+
+#
+# Add TRACEFILE to rootLogger to get log file output
+#    Log DEBUG level and above messages to a log file
+log4j.appender.TRACEFILE=org.apache.log4j.FileAppender
+log4j.appender.TRACEFILE.Threshold=TRACE
+log4j.appender.TRACEFILE.File=${zookeeper.log.dir}/zookeeper_trace.log
+
+log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout
+### Notice we are including log4j's NDC here (%x)
+log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n
diff --git a/opencontrail/files/4.0/database/logback.xml b/opencontrail/files/4.0/database/logback.xml
new file mode 100644
index 0000000..47b357f
--- /dev/null
+++ b/opencontrail/files/4.0/database/logback.xml
@@ -0,0 +1,53 @@
+    <!--
+     Licensed to the Apache Software Foundation (ASF) under one
+     or more contributor license agreements.  See the NOTICE file
+     distributed with this work for additional information
+     regarding copyright ownership.  The ASF licenses this file
+     to you under the Apache License, Version 2.0 (the
+     "License"); you may not use this file except in compliance
+     with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing,
+     software distributed under the License is distributed on an
+     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     KIND, either express or implied.  See the License for the
+     specific language governing permissions and limitations
+     under the License.
+    -->
+
+    <configuration scan="true">
+      <jmxConfigurator />
+      <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${cassandra.logdir}/system.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+          <fileNamePattern>${cassandra.logdir}/system.log.%i.zip</fileNamePattern>
+          <minIndex>1</minIndex>
+          <maxIndex>20</maxIndex>
+        </rollingPolicy>
+
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+          <maxFileSize>20MB</maxFileSize>
+        </triggeringPolicy>
+        <encoder>
+          <pattern>%date{ISO8601} - %-5level - [%thread] %F:%L - %msg%n</pattern>
+          <!-- old-style log format
+          <pattern>%5level [%thread] %date{ISO8601} %F (line %L) %msg%n</pattern>
+          -->
+        </encoder>
+      </appender>
+
+      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+          <pattern>%-5level %date{HH:mm:ss,SSS} %msg%n</pattern>
+        </encoder>
+      </appender>
+
+      <root level="INFO">
+        <appender-ref ref="FILE" />
+        <appender-ref ref="STDOUT" />
+      </root>
+
+      <logger name="com.thinkaurelius.thrift" level="ERROR"/>
+    </configuration>
diff --git a/opencontrail/files/4.0/keystonerc b/opencontrail/files/4.0/keystonerc
new file mode 100644
index 0000000..b665fac
--- /dev/null
+++ b/opencontrail/files/4.0/keystonerc
@@ -0,0 +1,4 @@
+{%- from "opencontrail/map.jinja" import common with context %}
+export OS_USERNAME=admin
+export SERVICE_TOKEN={{ common.identity.token }}
+export OS_SERVICE_ENDPOINT=http://{{ common.identity.host }}:{{ common.identity.port }}/v2.0
diff --git a/opencontrail/files/4.0/openstackrc b/opencontrail/files/4.0/openstackrc
new file mode 100644
index 0000000..7c8ef03
--- /dev/null
+++ b/opencontrail/files/4.0/openstackrc
@@ -0,0 +1,6 @@
+{%- from "opencontrail/map.jinja" import common with context %}
+export OS_USERNAME=admin
+export OS_PASSWORD={{ common.identity.password }}
+export OS_TENANT_NAME=admin
+export OS_AUTH_URL=http://{{ common.identity.host }}:5000/v2.0/
+export OS_NO_CACHE=1
diff --git a/opencontrail/files/4.0/server.properties b/opencontrail/files/4.0/server.properties
new file mode 100644
index 0000000..5cdaee6
--- /dev/null
+++ b/opencontrail/files/4.0/server.properties
@@ -0,0 +1,122 @@
+{%- from "opencontrail/map.jinja" import database with context %}
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# see kafka.server.KafkaConfig for additional details and defaults
+
+############################# Server Basics #############################
+
+# The id of the broker. This must be set to a unique integer for each broker.
+broker.id={{ database.id }}
+
+############################# Socket Server Settings #############################
+
+#listeners=PLAINTEXT://:9092
+
+# The port the socket server listens on
+port=9092
+
+# Hostname the broker will bind to. If not set, the server will bind to all interfaces
+#host.name=localhost
+
+# Hostname the broker will advertise to producers and consumers. If not set, it uses the
+# value for "host.name" if configured.  Otherwise, it will use the value returned from
+# java.net.InetAddress.getCanonicalHostName().
+advertised.host.name={{ database.bind.host }}
+
+# The port to publish to ZooKeeper for clients to use. If this is not set,
+# it will publish the same port that the broker binds to.
+#advertised.port=<port accessible by clients>
+
+# The number of threads handling network requests
+num.network.threads=3
+
+# The number of threads doing disk I/O
+num.io.threads=8
+
+# The send buffer (SO_SNDBUF) used by the socket server
+socket.send.buffer.bytes=102400
+
+# The receive buffer (SO_RCVBUF) used by the socket server
+socket.receive.buffer.bytes=102400
+
+# The maximum size of a request that the socket server will accept (protection against OOM)
+socket.request.max.bytes=104857600
+
+
+############################# Log Basics #############################
+
+# A comma seperated list of directories under which to store log files
+log.dirs=/tmp/kafka-logs
+
+# The default number of log partitions per topic. More partitions allow greater
+# parallelism for consumption, but this will also result in more files across
+# the brokers.
+num.partitions=1
+
+# The number of threads per data directory to be used for log recovery at startup and flushing at shutdown.
+# This value is recommended to be increased for installations with data dirs located in RAID array.
+num.recovery.threads.per.data.dir=1
+
+############################# Log Flush Policy #############################
+
+# Messages are immediately written to the filesystem but by default we only fsync() to sync
+# the OS cache lazily. The following configurations control the flush of data to disk.
+# There are a few important trade-offs here:
+#    1. Durability: Unflushed data may be lost if you are not using replication.
+#    2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush.
+#    3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks.
+# The settings below allow one to configure the flush policy to flush data after a period of time or
+# every N messages (or both). This can be done globally and overridden on a per-topic basis.
+
+# The number of messages to accept before forcing a flush of data to disk
+#log.flush.interval.messages=10000
+
+# The maximum amount of time a message can sit in a log before we force a flush
+#log.flush.interval.ms=1000
+
+############################# Log Retention Policy #############################
+
+# The following configurations control the disposal of log segments. The policy can
+# be set to delete segments after a period of time, or after a given size has accumulated.
+# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens
+# from the end of the log.
+
+# The minimum age of a log file to be eligible for deletion
+log.retention.hours=168
+
+# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining
+# segments don't drop below log.retention.bytes.
+#log.retention.bytes=1073741824
+
+# The maximum size of a log segment file. When this size is reached a new log segment will be created.
+log.segment.bytes=1073741824
+
+# The interval at which log segments are checked to see if they can be deleted according
+# to the retention policies
+log.retention.check.interval.ms=300000
+
+############################# Zookeeper #############################
+
+# Zookeeper connection string (see zookeeper docs for details).
+# This is a comma separated host:port pairs, each corresponding to a zk
+# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
+# You can also append an optional chroot string to the urls to specify the
+# root directory for all kafka znodes.
+#zookeeper.connect=10.0.102.211:2181
+zookeeper.connect={% for member in database.members %}{{ member.host }}:2181{% if not loop.last %},{% endif %}{% endfor %}
+
+# Timeout in ms for connecting to zookeeper
+log.cleanup.policy=compact
+delete.topic.enable=true
diff --git a/opencontrail/files/4.0/tor/contrail-tor-agent.ini b/opencontrail/files/4.0/tor/contrail-tor-agent.ini
new file mode 100644
index 0000000..3443c3a
--- /dev/null
+++ b/opencontrail/files/4.0/tor/contrail-tor-agent.ini
@@ -0,0 +1,14 @@
+{%- from "opencontrail/map.jinja" import tor with context %}
+
+[program:contrail-tor-agent-{{ number }}]
+command=/usr/bin/contrail-tor-agent --config_file /etc/contrail/contrail-tor-agent-{{ number }}.conf
+priority=420
+autostart=true
+killasgroup=true
+stopsignal=KILL
+stdout_capture_maxbytes=1MB
+redirect_stderr=true
+stdout_logfile=/var/log/contrail/contrail-tor-agent-{{ number }}-stdout.log
+stderr_logfile=/dev/null
+startsecs=5
+exitcodes=0                   ; 'expected' exit codes for process (default 0,2)
\ No newline at end of file
diff --git a/opencontrail/files/4.0/vnc_api_lib.ini b/opencontrail/files/4.0/vnc_api_lib.ini
new file mode 100644
index 0000000..f131ab2
--- /dev/null
+++ b/opencontrail/files/4.0/vnc_api_lib.ini
@@ -0,0 +1,24 @@
+{%- from "opencontrail/map.jinja" import config with context %}
+[global]
+;WEB_SERVER = 127.0.0.1
+;WEB_PORT = 9696  ; connection through quantum plugin
+
+WEB_SERVER = 127.0.0.1
+WEB_PORT = 8082 ; connection to api-server directly
+BASE_URL = /
+;BASE_URL = /tenants/infra ; common-prefix for all URLs
+
+; Authentication settings (optional)
+{%- if config.identity.engine == "keystone" %}
+[auth]
+AUTHN_TYPE = keystone
+AUTHN_PROTOCOL = http
+AUTHN_SERVER= {{ config.identity.host }}
+AUTHN_PORT = {{ config.identity.port }}
+{%- if config.identity.version == "3" %}
+AUTHN_URL = /v3/auth/tokens
+{%- else %}
+AUTHN_URL = /v2.0/tokens
+{%- endif %}
+
+{%- endif %}
\ No newline at end of file
diff --git a/opencontrail/files/4.0/zoo.cfg b/opencontrail/files/4.0/zoo.cfg
new file mode 100644
index 0000000..c2e245e
--- /dev/null
+++ b/opencontrail/files/4.0/zoo.cfg
@@ -0,0 +1,61 @@
+{%- from "opencontrail/map.jinja" import database with context %}
+# http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html
+
+# The number of milliseconds of each tick
+tickTime=2000
+# The number of ticks that the initial 
+# synchronization phase can take
+initLimit=10
+# The number of ticks that can pass between 
+# sending a request and getting an acknowledgement
+syncLimit=5
+# the directory where the snapshot is stored.
+dataDir=/var/lib/zookeeper
+# Place the dataLogDir to a separate physical disc for better performance
+# dataLogDir=/disk2/zookeeper
+
+# the port at which the clients will connect
+clientPort=2181
+
+# specify all zookeeper servers
+# The fist port is used by followers to connect to the leader
+# The second one is used for leader election
+#server.1=zookeeper1:2888:3888
+#server.2=zookeeper2:2888:3888
+#server.3=zookeeper3:2888:3888
+
+
+# To avoid seeks ZooKeeper allocates space in the transaction log file in
+# blocks of preAllocSize kilobytes. The default block size is 64M. One reason
+# for changing the size of the blocks is to reduce the block size if snapshots
+# are taken more often. (Also, see snapCount).
+#preAllocSize=65536
+
+# Clients can submit requests faster than ZooKeeper can process them,
+# especially if there are a lot of clients. To prevent ZooKeeper from running
+# out of memory due to queued requests, ZooKeeper will throttle clients so that
+# there is no more than globalOutstandingLimit outstanding requests in the
+# system. The default limit is 1,000.ZooKeeper logs transactions to a
+# transaction log. After snapCount transactions are written to a log file a
+# snapshot is started and a new transaction log file is started. The default
+# snapCount is 10,000.
+#snapCount=1000
+
+# If this option is defined, requests will be will logged to a trace file named
+# traceFile.year.month.day. 
+#traceFile=
+
+# Leader accepts client connections. Default value is "yes". The leader machine
+# coordinates updates. For higher update throughput at thes slight expense of
+# read throughput the leader can be configured to not accept clients and focus
+# on coordination.
+#leaderServes=yes
+
+maxSessionTimeout=120000
+autopurge.purgeInterval=3
+{%- for member in database.members %}
+server.{{ member.id }}={{ member.host }}:2888:3888
+{%- endfor %}
+#server.1=10.0.222.2:2888:3888
+#server.2=10.0.222.3:2888:3888
+#server.3=10.0.222.4:2888:3888
diff --git a/opencontrail/files/4.0/zookeeper b/opencontrail/files/4.0/zookeeper
new file mode 100644
index 0000000..a7dc0e7
--- /dev/null
+++ b/opencontrail/files/4.0/zookeeper
@@ -0,0 +1,11 @@
+# See the following page for extensive details on setting
+# up the JVM to accept JMX remote management:
+# http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
+# by default we allow local JMX connections
+#JMXLOCALONLY=false
+
+JAVA_OPTS="-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.host=127.0.0.1 -Dcom.sun.management.jmxremote.port=7188 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dzookeeper.jmx.log4j.disable=false"
+
+# Make sure to include the original classpath since it contains the zookeeper
+# jars
+#CLASSPATH="$CLASSPATH:YOURCLASSPATH"
diff --git a/opencontrail/map.jinja b/opencontrail/map.jinja
index 750fb51..4329ed7 100644
--- a/opencontrail/map.jinja
+++ b/opencontrail/map.jinja
@@ -84,7 +84,7 @@
 web:
   Debian:
     pkgs:
-         ['contrail-web-controller', 'gettext-base']
+         ['contrail-web-controller', 'gettext-base', 'nodejs-legacy']
     services:
          ['contrail-webui-webserver', 'contrail-webui-jobserver']
     database:
diff --git a/opencontrail/meta/sphinx.yml b/opencontrail/meta/sphinx.yml
index 50cc1f0..d245cd1 100644
--- a/opencontrail/meta/sphinx.yml
+++ b/opencontrail/meta/sphinx.yml
@@ -9,9 +9,11 @@
       param:
         bind:
           value: {{ config.bind.address }}
+        {%- if config.version <= 3.0 %}
         discovery:
           name: "Discovery host"
           value: {{ config.discovery.host }}
+        {%- endif %}
         analytics:
           name: "Analytics host"
           value: {{ config.analytics.host }}
@@ -44,9 +46,11 @@
       param:
         bind:
           value: {{ control.bind.address }}
+        {% if- control.version <= 3.0 %}
         discovery:
           name: "Discovery host"
           value: {{ control.discovery.host }}
+        {%- endif %}
         master:
           name: "Master host"
           value: {{ control.master.host }}
@@ -70,9 +74,11 @@
       param:
         bind:
           value: {{ database.bind.host }}{{ database.bind.port }}
+        {%- if database.version <= 3.0 %}
         discovery:
           name: "Discovery host"
           value: {{ database.discovery.host }}
+        {%- endif %}
         version:
           name: "Contrail version"
           value: {{ database.version }}
@@ -125,9 +131,11 @@
       param:
         bind:
           value: {{ collector.bind.address }}
+        {%- if collector.version <= 3.0 %}
         discovery:
           name: "Discovery host"
           value: {{ collector.discovery.host }}
+        {%- endif %}
         data_ttl:
           name: "Data TTL hours"
           value: {{ collector.data_ttl }}
@@ -136,7 +144,7 @@
           value: {{ collector.version }}
         database_host:
           name: "Database members"
-          value: {% for member in collector.database.members %}{{ member.host }}:{{ member.port }} {% endfor %}
+          value: {% for member in collector.database.members %}{{ member.host }} {% endfor %}
         packages:
           value: |
             {%- for pkg in collector.pkgs %}
@@ -149,9 +157,11 @@
     vrouter:
       name: vrouter
       param:
+        {%- if compute.version <= 3.0 %}
         discovery:
           name: "Discovery host"
           value: {{ compute.discovery.host }}
+        {%- endif %}
         disable_flow_collection:
           name: "Disable flow collection"
           value: {{ compute.disable_flow_collection }}
diff --git a/tests/pillar/analytics4_0.sls b/tests/pillar/analytics4_0.sls
new file mode 100644
index 0000000..9ab5628
--- /dev/null
+++ b/tests/pillar/analytics4_0.sls
@@ -0,0 +1,72 @@
+opencontrail:
+  common:
+    version: 4.0
+    identity:
+      engine: keystone
+      host: 127.0.0.1
+      port: 35357
+      token: token
+      password: password
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+  collector:
+    version: 4.0
+    enabled: true
+    bind:
+      address: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    data_ttl: 1
+    database:
+      members:
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    message_queue:
+      host: 127.0.0.1
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    config:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+  database:
+    version: 4.0
+    cassandra:
+      version: 2
+    enabled: true
+    name: 'Contrail'
+    minimum_disk: 10
+    original_token: 0
+    data_dirs:
+    - /var/lib/cassandra
+    id: 1
+    bind:
+      host: 127.0.0.1
+      port: 9042
+      rpc_port: 9160
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
diff --git a/tests/pillar/cluster.sls b/tests/pillar/cluster.sls
index ada4df8..7d89d10 100644
--- a/tests/pillar/cluster.sls
+++ b/tests/pillar/cluster.sls
@@ -1,9 +1,6 @@
 opencontrail:
   common:
     version: 3.0
-    source:
-      engine: pkg
-      address: http://mirror.robotice.cz/contrail-havana/
     identity:
       engine: keystone
       host: 127.0.0.1
diff --git a/tests/pillar/cluster4_0.sls b/tests/pillar/cluster4_0.sls
new file mode 100644
index 0000000..387b934
--- /dev/null
+++ b/tests/pillar/cluster4_0.sls
@@ -0,0 +1,186 @@
+opencontrail:
+  common:
+    version: 4.0
+    identity:
+      engine: keystone
+      host: 127.0.0.1
+      port: 35357
+      token: token
+      password: password
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+  config:
+    version: 4.0
+    enabled: true
+    api:
+      host: 127.0.0.1
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+    bind:
+      address: 127.0.0.1
+    message_queue:
+      engine: rabbitmq
+      host: 127.0.0.1
+      port: 5672
+    database:
+      members:
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+    cache:
+      members:
+      - host: 127.0.0.1
+        port: 11211
+      - host: 127.0.0.1
+        port: 11211
+      - host: 127.0.0.1
+        port: 11211
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    identity:
+      engine: keystone
+      version: '2.0'
+      region: RegionOne
+      host: 127.0.0.1
+      port: 35357
+      user: admin
+      password: password
+      token: token
+      tenant: admin
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+  control:
+    version: 4.0
+    enabled: true
+    name: ntw-01
+    bind:
+      address: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    message_queue:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    database:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+  collector:
+    version: 4.0
+    enabled: true
+    bind:
+      address: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    data_ttl: 1
+    database:
+      members:
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    message_queue:
+      host: 127.0.0.1
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    config:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+  database:
+    version: 4.0
+    cassandra:
+      version: 2
+    enabled: true
+    name: 'Contrail'
+    minimum_disk: 10
+    original_token: 0
+    data_dirs:
+    - /var/lib/cassandra
+    id: 1
+    bind:
+      host: 127.0.0.1
+      port: 9042
+      rpc_port: 9160
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+  web:
+    version: 4.0
+    enabled: True
+    network:
+      host: 127.0.0.1
+    bind:
+      address: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    analytics:
+      host: 127.0.0.1
+    cache:
+      engine: redis
+      host: 127.0.0.1
+      port: 6379
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+    identity:
+      engine: keystone
+      version: '2.0'
+      host: 127.0.0.1
+      port: 35357
+      user: admin
+      password: password
+      token: token
+      tenant: admin
diff --git a/tests/pillar/control4_0.sls b/tests/pillar/control4_0.sls
new file mode 100644
index 0000000..4177979
--- /dev/null
+++ b/tests/pillar/control4_0.sls
@@ -0,0 +1,154 @@
+opencontrail:
+  common:
+    version: 4.0
+    identity:
+      engine: keystone
+      host: 127.0.0.1
+      port: 35357
+      token: token
+      password: password
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+  config:
+    version: 4.0
+    enabled: true
+    api:
+      host: 127.0.0.1
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    bind:
+      address: 127.0.0.1
+    message_queue:
+      engine: rabbitmq
+      host: 127.0.0.1
+      port: 5672
+    database:
+      members:
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+      - host: 127.0.0.1
+        port: 9160
+    cache:
+      members:
+      - host: 127.0.0.1
+        port: 11211
+      - host: 127.0.0.1
+        port: 11211
+      - host: 127.0.0.1
+        port: 11211
+    identity:
+      engine: keystone
+      version: '2.0'
+      region: RegionOne
+      host: 127.0.0.1
+      port: 35357
+      user: admin
+      password: password
+      token: token
+      tenant: admin
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+  control:
+    version: 4.0
+    enabled: true
+    name: ntw-01
+    bind:
+      address: 127.0.0.1
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    message_queue:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    database:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+  database:
+    version: 4.0
+    cassandra:
+      version: 2
+    enabled: true
+    name: 'Contrail'
+    minimum_disk: 10
+    original_token: 0
+    data_dirs:
+    - /var/lib/cassandra
+    id: 1
+    bind:
+      host: 127.0.0.1
+      port: 9042
+      rpc_port: 9160
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+    analytics:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+  web:
+    version: 4.0
+    enabled: True
+    network:
+      host: 127.0.0.1
+    bind:
+      address: 127.0.0.1
+    analytics:
+      host: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    cache:
+      engine: redis
+      host: 127.0.0.1
+      port: 6379
+    members:
+    - host: 127.0.0.1
+      id: 1
+    - host: 127.0.0.1
+      id: 2
+    - host: 127.0.0.1
+      id: 3
+    identity:
+      engine: keystone
+      version: '2.0'
+      host: 127.0.0.1
+      port: 35357
+      user: admin
+      password: password
+      token: token
+      tenant: admin
diff --git a/tests/pillar/repo_mos8.sls b/tests/pillar/repo_mos8.sls
deleted file mode 100644
index 1033cb4..0000000
--- a/tests/pillar/repo_mos8.sls
+++ /dev/null
@@ -1,24 +0,0 @@
-linux:
-  system:
-    enabled: true
-    repo:
-      mirantis_openstack_mos8:
-        source: "deb [arch=amd64] http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/ mos8.0 main restricted"
-        architectures: amd64
-        key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
-      #mirantis_openstack_hotfix:
-        #source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/ mos8.0-hotfix main restricted"
-        #architectures: amd64
-        #key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
-      #mirantis_openstack_proposed:
-        #source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/ mos8.0-proposed main restricted"
-        #architectures: amd64
-        #key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
-      #mirantis_openstack_security:
-        #source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/ mos8.0-security main restricted"
-        #architectures: amd64
-        #key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
-      #mirantis_openstack_updates:
-        #source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/ mos8.0-updates main restricted"
-        #architectures: amd64
-        #key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/8.0-mu-3/archive-mos8.0.key"
diff --git a/tests/pillar/repo_mos9.sls b/tests/pillar/repo_mos9.sls
deleted file mode 100644
index 8316770..0000000
--- a/tests/pillar/repo_mos9.sls
+++ /dev/null
@@ -1,19 +0,0 @@
-linux:
-  system:
-    repo:
-      mirantis_openstack_mos9:
-        source: "deb [arch=amd64] http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/ mos9.0 main restricted"
-        architectures: amd64
-        key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
-      #mirantis_openstack_hotfix:
-        #source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/ mos9.0-hotfix main restricted"
-        #architectures: amd64
-        #key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
-      #mirantis_openstack_security:
-        #source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/ mos9.0-security main restricted"
-        #architectures: amd64
-        #key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
-      #mirantis_openstack_updates:
-        #source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/ mos9.0-updates main restricted"
-        #architectures: amd64
-        #key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/archive-mos9.0.key"
diff --git a/tests/pillar/repo_opencontrail.sls b/tests/pillar/repo_opencontrail.sls
deleted file mode 100644
index 79cf4d0..0000000
--- a/tests/pillar/repo_opencontrail.sls
+++ /dev/null
@@ -1,20 +0,0 @@
-linux:
-  system:
-    enabled: true
-    repo:
-      mcp_opencontrail_repo:
-        source: "deb [arch=amd64] http://apt-mk.mirantis.com/{{ grains.get('oscodename') }}/ stable oc311 extra"
-        architectures: amd64
-        key_url: "http://apt-mk.mirantis.com/public.gpg"
-        pin:
-        - pin: 'release a=stable'
-          priority: 1100
-          package: '*'
-      opencontrail_team:
-        source: "deb http://ppa.launchpad.net/opencontrail/ppa/ubuntu {{ grains.get('oscodename') }} main"
-      opencontrail_extra:
-        source: "deb http://ppa.launchpad.net/mirantis-opencontrail/extra/ubuntu trusty main"
-      openjdk-r_repo:
-        source: "deb http://ppa.launchpad.net/openjdk-r/ppa/ubuntu {{ grains.get('oscodename') }} main"
-      opencontrail_311:
-        source: "deb http://ppa.launchpad.net/mirantis-opencontrail/opencontrail-3.1.1/ubuntu {{ grains.get('oscodename') }} main "
diff --git a/tests/pillar/repo_opencontrail_oc311.sls b/tests/pillar/repo_opencontrail_oc311.sls
new file mode 100644
index 0000000..a33a3b4
--- /dev/null
+++ b/tests/pillar/repo_opencontrail_oc311.sls
@@ -0,0 +1,19 @@
+linux:
+  system:
+    enabled: true
+    repo:
+      mcp_opencontrail_repo:
+        source: "deb [arch=amd64] http://apt-mk.mirantis.com/{{ grains.get('oscodename') }}/ nightly oc311 extra"
+        architectures: amd64
+        key_url: "http://apt-mk.mirantis.com/public.gpg"
+        pin:
+        - pin: 'release a=nightly'
+          priority: 1100
+          package: '*'
+    package:
+      librdkafka1:
+        version: 0.9.0-0contrail0
+        hold: true
+      python-kafka:
+        version: 1.0.1-0contrail1
+        hold: true
diff --git a/tests/pillar/repo_opencontrail_oc323.sls b/tests/pillar/repo_opencontrail_oc323.sls
new file mode 100644
index 0000000..a586671
--- /dev/null
+++ b/tests/pillar/repo_opencontrail_oc323.sls
@@ -0,0 +1,19 @@
+linux:
+  system:
+    enabled: true
+    repo:
+      mcp_opencontrail_repo:
+        source: "deb [arch=amd64] http://apt-mk.mirantis.com/{{ grains.get('oscodename') }}/ nightly oc323 extra"
+        architectures: amd64
+        key_url: "http://apt-mk.mirantis.com/public.gpg"
+        pin:
+        - pin: 'release a=nightly'
+          priority: 1100
+          package: '*'
+    package:
+      librdkafka1:
+        version: 0.9.0-0contrail0
+        hold: true
+      python-kafka:
+        version: 1.0.1-0contrail1
+        hold: true
diff --git a/tests/pillar/repo_opencontrail_oc40.sls b/tests/pillar/repo_opencontrail_oc40.sls
new file mode 100644
index 0000000..d63bb1f
--- /dev/null
+++ b/tests/pillar/repo_opencontrail_oc40.sls
@@ -0,0 +1,19 @@
+linux:
+  system:
+    enabled: true
+    repo:
+      mcp_opencontrail_repo:
+        source: "deb [arch=amd64] http://apt-mk.mirantis.com/{{ grains.get('oscodename') }}/ nightly oc40 extra"
+        architectures: amd64
+        key_url: "http://apt-mk.mirantis.com/public.gpg"
+        pin:
+        - pin: 'release a=nightly'
+          priority: 1100
+          package: '*'
+    package:
+      librdkafka1:
+        version: 0.9.0-0contrail0
+        hold: true
+      python-kafka:
+        version: 1.0.1-0contrail1
+        hold: true
diff --git a/tests/pillar/repo_openstack.sls b/tests/pillar/repo_openstack.sls
index c3d858d..deae684 100644
--- a/tests/pillar/repo_openstack.sls
+++ b/tests/pillar/repo_openstack.sls
@@ -1,44 +1,54 @@
-linux:
-  system:
-    enabled: true
-    repo:
-      mirantis_openstack:
-        source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }} mitaka main"
-        architectures: amd64
-        key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }}/archive-mcp1.0.key"
-        pin:
-        - pin: 'release a=mitaka'
-          priority: 1050
-          package: '*'
-      mirantis_openstack_hotfix:
-        source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }} mitaka-hotfix main"
-        architectures: amd64
-        key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }}/archive-mcp1.0.key"
-        pin:
-        - pin: 'release a=mitaka-hotfix'
-          priority: 1050
-          package: '*'
-      mirantis_openstack_security:
-        source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }} mitaka-security main"
-        architectures: amd64
-        key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }}/archive-mcp1.0.key"
-        pin:
-        - pin: 'release a=mitaka-security'
-          priority: 1050
-          package: '*'
-      mirantis_openstack_updates:
-        source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }} mitaka-updates main"
-        architectures: amd64
-        key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }}/archive-mcp1.0.key"
-        pin:
-        - pin: 'release a=mitaka-uptades'
-          priority: 1050
-          package: '*'
-      mirantis_openstack_holdback:
-        source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }} mitaka-holdback main"
-        architectures: amd64
-        key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/{{ grains.get('oscodename') }}/archive-mcp1.0.key"
-        pin:
-        - pin: 'release a=mitaka-holdback'
-          priority: 1050
-          package: '*'
+parameters:
+  _param:
+    apt_mk_version: stable
+  linux:
+    system:
+      repo:
+        mirantis_openstack:
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }} mitaka main"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }}/archive-mcpmitaka.key"
+          pin:
+          - pin: 'release a=mitaka'
+            priority: 1100
+            package: '*'
+        mirantis_openstack_hotfix:
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }} mitaka-hotfix main"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }}/archive-mcpmitaka.key"
+          pin:
+          - pin: 'release a=mitaka-hotfix'
+            priority: 1100
+            package: '*'
+        mirantis_openstack_security:
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }} mitaka-security main"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }}/archive-mcpmitaka.key"
+          pin:
+          - pin: 'release a=mitaka-security'
+            priority: 1100
+            package: '*'
+        mirantis_openstack_updates:
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }} mitaka-updates main"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }}/archive-mcpmitaka.key"
+          pin:
+          - pin: 'release a=mitaka-uptades'
+            priority: 1100
+            package: '*'
+        mirantis_openstack_holdback:
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }} mitaka-holdback main"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/mitaka/{{ grains.get('oscodename') }}/archive-mcpmitaka.key"
+          pin:
+          - pin: 'release a=mitaka-holdback'
+            priority: 1100
+            package: '*'
+        mk_openstack:
+          source: "deb [arch=amd64] http://apt-mk.mirantis.com/{{ grains.get('oscodename') }}/ ${_param:apt_mk_version} mitaka"
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          pin:
+          - pin: 'release a=${_param:apt_mk_version}'
+            priority: 1100
+            package: '*'
diff --git a/tests/pillar/single.sls b/tests/pillar/single.sls
index e04824e..97fed12 100644
--- a/tests/pillar/single.sls
+++ b/tests/pillar/single.sls
@@ -1,9 +1,6 @@
 opencontrail:
   common:
     version: 3.0
-    source:
-      engine: pkg
-      address: http://mirror.robotice.cz/contrail-havana/
     identity:
       engine: keystone
       host: 127.0.0.1
diff --git a/tests/pillar/single4_0.sls b/tests/pillar/single4_0.sls
new file mode 100644
index 0000000..5edb3dd
--- /dev/null
+++ b/tests/pillar/single4_0.sls
@@ -0,0 +1,144 @@
+opencontrail:
+  common:
+    version: 4.0
+    identity:
+      engine: keystone
+      host: 127.0.0.1
+      port: 35357
+      token: token
+      password: password
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+  config:
+    version: 4.0
+    api:
+      host: 127.0.0.1
+    enabled: true
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+    discovery:
+      host: 127.0.0.1
+    analytics:
+      members:
+      - host: 127.0.0.1
+    bind:
+      address: 127.0.0.1
+    message_queue:
+      engine: rabbitmq
+      host: 127.0.0.1
+      port: 5672
+    database:
+      members:
+      - host: 127.0.0.1
+        port: 9160
+    cache:
+      members:
+      - host: 127.0.0.1
+        port: 11211
+    identity:
+      engine: keystone
+      version: '2.0'
+      region: RegionOne
+      host: 127.0.0.1
+      port: 35357
+      user: admin
+      password: password
+      token: token
+      tenant: admin
+    members:
+    - host: 127.0.0.1
+      id: 1
+  control:
+    name: ntw-01
+    version: 4.0
+    enabled: true
+    bind:
+      address: 127.0.0.1
+    analytics:
+      members:
+      - host: 127.0.0.1
+    message_queue:
+      members:
+      - host: 127.0.0.1
+    database:
+      members:
+      - host: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    members:
+    - host: 127.0.0.1
+      id: 1
+  collector:
+    version: 4.0
+    enabled: true
+    bind:
+      address: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    data_ttl: 2
+    database:
+      members:
+      - host: 127.0.0.1
+        port: 9160
+    analytics:
+      members:
+      - host: 127.0.0.1
+    message_queue:
+      host: 127.0.0.1
+      members:
+      - host: 127.0.0.1
+    config:
+      members:
+      - host: 127.0.0.1
+  database:
+    version: 4.0
+    cassandra:
+      version: 2
+    enabled: true
+    minimum_disk: 10
+    name: 'Contrail'
+    original_token: 0
+    data_dirs:
+    - /var/lib/cassandra
+    id: 1
+    analytics:
+      members:
+      - host: 127.0.0.1
+    bind:
+      host: 127.0.0.1
+      port: 9042
+      rpc_port: 9160
+    members:
+    - host: 127.0.0.1
+      id: 1
+  web:
+    version: 4.0
+    enabled: True
+    network:
+      host: 127.0.0.1
+    bind:
+      address: 127.0.0.1
+    analytics:
+      host: 127.0.0.1
+    master:
+      host: 127.0.0.1
+    cache:
+      engine: redis
+      host: 127.0.0.1
+      port: 6379
+    members:
+    - host: 127.0.0.1
+      id: 1
+    identity:
+      engine: keystone
+      version: '2.0'
+      host: 127.0.0.1
+      port: 35357
+      user: admin
+      password: password
+      token: token
+      tenant: admin
diff --git a/tests/pillar/tor.sls b/tests/pillar/tor.sls
index 39009ce..04ecba0 100644
--- a/tests/pillar/tor.sls
+++ b/tests/pillar/tor.sls
@@ -33,11 +33,3 @@
       mask: /24
       dns: 127.0.0.1
       mtu: 9000
-linux:
-  network:
-    enabled: true
-    hostname: opencontrail
-    interface:
-      vhost0:
-        enabled: True
-        type: eth
diff --git a/tests/pillar/tor4_0.sls b/tests/pillar/tor4_0.sls
new file mode 100644
index 0000000..16b59fc
--- /dev/null
+++ b/tests/pillar/tor4_0.sls
@@ -0,0 +1,43 @@
+opencontrail:
+  common:
+    version: 4.0
+    identity:
+      engine: keystone
+      host: 127.0.0.1
+      port: 35357
+      token: token
+      password: password
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+  tor:
+    enabled: true
+    version: 4.0
+    agents: 1
+    control:
+      address: 127.0.0.1
+    interface:
+      address: 127.0.0.1
+    device:
+      host: 127.0.0.1
+  compute:
+    enabled: true
+    version: 4.0
+    collector:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    control:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    interface:
+      address: 127.0.0.1
+      dev: eth0
+      gateway: 127.0.0.1
+      mask: /24
+      dns: 127.0.0.1
+      mtu: 9000
diff --git a/tests/pillar/vrouter-dpdk.sls b/tests/pillar/vrouter-dpdk.sls
index 8004bac..283abab 100644
--- a/tests/pillar/vrouter-dpdk.sls
+++ b/tests/pillar/vrouter-dpdk.sls
@@ -31,11 +31,3 @@
       mask: /24
       dns: 127.0.0.1
       mtu: 9000
-linux:
-  network:
-    enabled: true
-    hostname: opencontrail
-    interface:
-      vhost0:
-        enabled: True
-        type: eth
diff --git a/tests/pillar/vrouter.sls b/tests/pillar/vrouter.sls
index 8ddbdc6..45418a0 100644
--- a/tests/pillar/vrouter.sls
+++ b/tests/pillar/vrouter.sls
@@ -25,11 +25,3 @@
       mask: /24
       dns: 127.0.0.1
       mtu: 9000
-linux:
-  network:
-    enabled: true
-    hostname: opencontrail
-    interface:
-      vhost0:
-        enabled: True
-        type: eth
diff --git a/tests/pillar/vrouter4_0.sls b/tests/pillar/vrouter4_0.sls
new file mode 100644
index 0000000..c875642
--- /dev/null
+++ b/tests/pillar/vrouter4_0.sls
@@ -0,0 +1,35 @@
+opencontrail:
+  common:
+    version: 4.0
+    identity:
+      engine: keystone
+      host: 127.0.0.1
+      port: 35357
+      token: token
+      password: password
+    network:
+      engine: neutron
+      host: 127.0.0.1
+      port: 9696
+  compute:
+    version: 4.0
+    enabled: True
+    collector:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    control:
+      members:
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+      - host: 127.0.0.1
+    bind:
+      address: 127.0.0.1
+    interface:
+      address: 127.0.0.1
+      dev: eth0
+      gateway: 127.0.0.1
+      mask: /24
+      dns: 127.0.0.1
+      mtu: 9000
