Merge "Add log_collector support" into stacklight
diff --git a/metadata/service/compute/cluster.yml b/metadata/service/compute/cluster.yml
new file mode 100644
index 0000000..05ca1bc
--- /dev/null
+++ b/metadata/service/compute/cluster.yml
@@ -0,0 +1,17 @@
+applications:
+- opencontrail
+classes:
+- service.opencontrail.support
+parameters:
+  _param:
+    opencontrail_version: 2.2
+  opencontrail:
+    compute:
+      version: ${_param:opencontrail_version}
+      enabled: true
+  nova:
+    compute:
+      networking: contrail
+  neutron:
+    switch:
+      enabled: false
diff --git a/metadata/service/compute/single.yml b/metadata/service/compute/single.yml
new file mode 100644
index 0000000..05ca1bc
--- /dev/null
+++ b/metadata/service/compute/single.yml
@@ -0,0 +1,17 @@
+applications:
+- opencontrail
+classes:
+- service.opencontrail.support
+parameters:
+  _param:
+    opencontrail_version: 2.2
+  opencontrail:
+    compute:
+      version: ${_param:opencontrail_version}
+      enabled: true
+  nova:
+    compute:
+      networking: contrail
+  neutron:
+    switch:
+      enabled: false
diff --git a/opencontrail/client.sls b/opencontrail/client.sls
index af6e339..bece6f1 100644
--- a/opencontrail/client.sls
+++ b/opencontrail/client.sls
@@ -1,5 +1,5 @@
 {%- from "opencontrail/map.jinja" import client with context %}
-{%- if client.enabled %}
+{%- if client.get('enabled', False) %}
 
 opencontrail_client_packages:
   pkg.installed:
diff --git a/opencontrail/common.sls b/opencontrail/common.sls
index 648db93..1ff96cc 100644
--- a/opencontrail/common.sls
+++ b/opencontrail/common.sls
@@ -75,7 +75,7 @@
 security_limits_conf:
   cmd.run:
   - names:
-    - sed -i '/^root\s*soft\s*nproc\s*.*/d' /etc/security/limits.conf && printf printf "root soft nofile 65535\n" >> /etc/security/limits.conf
+    - sed -i '/^root\s*soft\s*nofile\s*.*/d' /etc/security/limits.conf && printf "root soft nofile 65535\n" >> /etc/security/limits.conf
     - sed -i '/^*\s*hard\s*nofile\s*.*/d' /etc/security/limits.conf && printf "* hard nofile 65535\n" >> /etc/security/limits.conf
     - sed -i '/^*\s*soft\s*nofile\s*.*/d' /etc/security/limits.conf && printf "* soft nofile 65535\n" >> /etc/security/limits.conf
     - sed -i '/^*\s*hard\s*nproc\s*.*/d' /etc/security/limits.conf && printf "* hard nproc 65535\n" >> /etc/security/limits.conf
diff --git a/opencontrail/meta/collectd.yml b/opencontrail/meta/collectd.yml
new file mode 100644
index 0000000..35d6c51
--- /dev/null
+++ b/opencontrail/meta/collectd.yml
@@ -0,0 +1,92 @@
+{%- if pillar.opencontrail is defined %}
+{%- if pillar.opencontrail.control is defined %}
+{%- from "opencontrail/map.jinja" import collector, config with context %}
+local_plugin:
+  collectd_check_local_endpoint:
+    endpoint:
+{%- if config.get('enabled', False) %}
+      contrail-api:
+        expected_code: 401
+        url: "http://{{ config.bind.address|replace('0.0.0.0', '127.0.0.1') }}:{{ config.bind.api_port }}/"
+      contrail-discovery:
+        expected_code: 200
+        url: "http://{{ config.bind.address|replace('0.0.0.0', '127.0.0.1') }}:{{ config.bind.discovery_port }}/"
+{%- endif %}
+{%- if collector.get('enabled', False) %}
+      contrail-collector:
+        expected_code: 200
+        url: "http://{{ collector.bind.address|replace('0.0.0.0', '127.0.0.1') }}:{{ collector.bind.port }}/"
+{%- endif %}
+  collectd_processes:
+    process:
+      contrail-alarm-gen:
+        match: 'python.*contrail-alarm-gen'
+      contrail-analytics-api:
+        match: 'python.*contrail-analytics-api'
+      contrail-api:
+        match: 'python.*contrail-api'
+      contrail-collector:
+        match: 'contrail-collector'
+      contrail-control:
+        match: 'contrail-control'
+      contrail-device-manager:
+        match: 'python.*contrail-device-manager'
+      contrail-discovery:
+        match: 'python.*contrail-discovery'
+      contrail-dns:
+        match: 'contrail-dns'
+      contrail-ifmap-server:
+        match: 'sh.*ifmap-server'
+      contrail-irond:
+        match: 'java.*irond'
+      contrail-job-server:
+        match: 'node.*jobServerStart'
+      contrail-named:
+        match: 'contrail-named'
+      contrail-nodemgr:
+        match: 'python.*contrail-nodemgr'
+      contrail-query-engine:
+        match: 'contrail-query-engine'
+      contrail-schema:
+        match: 'python.*contrail-schema'
+      contrail-snmp-collector:
+        match: 'python.*contrail-snmp-collector'
+      contrail-supervisord:
+        match: 'python.*supervisord'
+      contrail-svc-monitor:
+        match: 'python.*contrail-svc-monitor'
+      contrail-topology:
+        match: 'python.*contrail-topology'
+      contrail-web-server:
+        match: 'node.*webServerStart'
+      zookeeper:
+        match: 'java.*zookeeper.server'
+      kafka-zookeeper:
+        match: 'java.*kafka.Kafka'
+      redis-server:
+        match: 'redis-server'
+      cassandra-server:
+        match: 'java.*service.CassandraDaemon'
+{%- elif pillar.opencontrail.compute is defined %}
+{%- from "opencontrail/map.jinja" import compute with context %}
+{%- if compute.get('enabled', False) %}
+local_plugin:
+  collectd_check_local_endpoint:
+    endpoint:
+      contrail-node-manager:
+        expected_code: 200
+        url: "http://127.0.0.1:8102/"
+      contrail-vrouter:
+        expected_code: 200
+        url: "http://127.0.0.1:8085/"
+  collectd_processes:
+    process:
+      contrail-nodemgr:
+        match: 'python.*contrail-nodemgr'
+      contrail-supervisord:
+        match: 'python.*supervisord'
+      contrail-vrouter-agent:
+        match: 'contrail-vrouter-agent'
+{%- endif %}
+{%- endif %}
+{%- endif %}