Merge "Drop testing of SaltStack 2016.3"
diff --git a/_modules/contrail.py b/_modules/contrail.py
index c84b451..d8a5114 100644
--- a/_modules/contrail.py
+++ b/_modules/contrail.py
@@ -73,7 +73,7 @@
use_ssl = False
auth_host = kwargs.get('auth_host_ip')
vnc_lib = vnc_api.VncApi(user, password, tenant_name,
- api_host, api_port, api_base_url, wait_for_connect=True,
+ api_host, api_port, api_base_url, wait_for_connect=False,
api_server_use_ssl=use_ssl, auth_host=auth_host)
return vnc_lib
diff --git a/opencontrail/collector.sls b/opencontrail/collector.sls
index 63f7d86..88f1cb5 100644
--- a/opencontrail/collector.sls
+++ b/opencontrail/collector.sls
@@ -49,6 +49,11 @@
- source: salt://opencontrail/files/{{ collector.version }}/redis.conf
- template: jinja
- makedirs: True
+ - mode: 640
+{%- if collector.version < 4.0 %}
+ - user: redis
+ - group: redis
+{%- endif %}
/etc/contrail/contrail-collector.conf:
file.managed:
diff --git a/opencontrail/compute.sls b/opencontrail/compute.sls
index 752c469..1593abb 100644
--- a/opencontrail/compute.sls
+++ b/opencontrail/compute.sls
@@ -240,4 +240,13 @@
- onlyif: /bin/false
{%- endif %}
+{%- if pillar.get('telegraf', {}).get('agent', {}).get('enabled', False) %}
+/usr/local/bin/curl_detect_metadata.sh:
+ file.managed:
+ - source: salt://opencontrail/files/curl_detect_metadata_http.sh
+ - template: jinja
+ - mode: 755
+
+{%- endif %}
+
{%- endif %}
diff --git a/opencontrail/files/curl_detect_metadata_http.sh b/opencontrail/files/curl_detect_metadata_http.sh
new file mode 100644
index 0000000..39805d7
--- /dev/null
+++ b/opencontrail/files/curl_detect_metadata_http.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+{%- from "opencontrail/map.jinja" import compute with context %}
+{%- set bind_addr=compute.interface.address|replace('0.0.0.0', '127.0.0.1') %}
+
+metadata=$(curl --silent http://{{ bind_addr|default('127.0.0.1') }}:8085/Snh_LinkLocalServiceInfo | grep -c 169.254.169.254 )
+echo "{ \"contrail_instance_metadata_present\": $metadata }"
diff --git a/opencontrail/meta/prometheus.yml b/opencontrail/meta/prometheus.yml
index d4feeb9..d7cf03f 100644
--- a/opencontrail/meta/prometheus.yml
+++ b/opencontrail/meta/prometheus.yml
@@ -163,6 +163,16 @@
annotations:
summary: "OpenContrail BGP sessions are down"
description: "{{ $value }} OpenContrail BGP sessions on the {{ $labels.host }} node are down for 2 minutes."
+ ContrailMetadataCheck:
+ if: >-
+ min(exec_contrail_instance_metadata_present) by (host) == 0
+ for: 15m
+ labels:
+ severity: critical
+ service: contrail
+ annotations:
+ summary: "OpenContrail metadata is unavailable"
+ description: "The OpenContrail metadata on the {{ $labels.host }} node is unavailable for 15 minutes."
ContrailXMPPSessionsMissingEstablished:
if: >-
count(contrail_vrouter_xmpp) * 2 - sum(contrail_xmpp_session_up_count) > 0
diff --git a/opencontrail/meta/telegraf.yml b/opencontrail/meta/telegraf.yml
index f4736f6..118750e 100644
--- a/opencontrail/meta/telegraf.yml
+++ b/opencontrail/meta/telegraf.yml
@@ -4,6 +4,14 @@
input:
{%- if collector.get('enabled', False) or database.get('enabled', False) or control.get('enabled', False)
or web.get('enabled', False) or compute.get('enabled', False) %}
+ {%- if compute.get('enabled', False) %}
+ exec:
+ commands:
+ - "/usr/local/bin/curl_detect_metadata.sh"
+ interval: "30s"
+ data_format: "json"
+ timeout: "10s"
+ {%- endif %}
procstat:
process:
{%- if collector.get('enabled', False) %}