Merge grains with pillars for static targets

Change-Id: I2f85fe2f9cc67d2d03d5e8dad5ac0b74e82b0fcc
diff --git a/prometheus/files/prometheus.yml b/prometheus/files/prometheus.yml
index 69bc0f6..c8dd17b 100644
--- a/prometheus/files/prometheus.yml
+++ b/prometheus/files/prometheus.yml
@@ -37,24 +37,26 @@
 rule_files:
 - alerts.yml
 
-{%- set static_target = {} %}
+{%- set static_target = server.target.static %}
 {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
   {%- set static_grain = node_grains.get('prometheus', {}).get('server', {}).get('target', {}).get('static', {}) %}
   {%- for job_name, job in static_grain.iteritems() %}
     {%- if static_target[job_name] is not defined %}
-      {%- do static_target.update({job_name: []}) %}
+      {%- do static_target.update({job_name: {}}) %}
     {%- endif %}
-    {%- for target in job.get('endpoint') %}
-      {%- do static_target[job_name].append(target) %}
+    {%- if static_target[job_name]['endpoint'] is not defined %}
+      {%- do static_target[job_name].update({'endpoint': []}) %}
+    {%- endif %}
+    {%- for target in job.get('endpoint', []) %}
+      {%- do static_target[job_name]['endpoint'].append(target) %}
     {%- endfor %}
   {%- endfor %}
 {%- endfor %}
 
 scrape_configs:
-{%- for job_name, targets in static_target.iteritems() %}
-  {%- set job = server.get('target', {}).get('static', {}).get(job_name, {}) %}
+{%- for job_name, job in static_target.iteritems() %}
   {%- set nodes = [] %}
-  {%- for target in targets + job.get('endpoint', []) %}
+  {%- for target in job.get('endpoint', []) %}
     {%- set address = "'%s:%d'" | format(target.address, target.port) %}
     {%- do nodes.append(address) %}
   {%- endfor %}
diff --git a/prometheus/map.jinja b/prometheus/map.jinja
index 6d62276..7b6887a 100644
--- a/prometheus/map.jinja
+++ b/prometheus/map.jinja
@@ -1,5 +1,9 @@
 {% set server = salt['grains.filter_by']({
   'default': {
+    'target': {
+      'static': {
+      },
+    },
   },
 }, merge=salt['pillar.get']('prometheus:server')) %}