Merge pull request #2 from tcpcloud/fixes
Fixes for docs generation
diff --git a/sphinx/files/salt/source/index.rst b/sphinx/files/salt/source/index.rst
index 7c0b984..1d6e69e 100644
--- a/sphinx/files/salt/source/index.rst
+++ b/sphinx/files/salt/source/index.rst
@@ -11,7 +11,7 @@
{%- endif %}
.. toctree::
- :maxdepth: 2
+ :maxdepth: 3
services/index
nodes/index
diff --git a/sphinx/files/salt/source/nodes/index.rst b/sphinx/files/salt/source/nodes/index.rst
index bdb0e8f..c483b30 100644
--- a/sphinx/files/salt/source/nodes/index.rst
+++ b/sphinx/files/salt/source/nodes/index.rst
@@ -14,7 +14,7 @@
* - **Node FQDN**
- **IP Addresses**
- **Assigned Services**
-{%- for node_name, node_grains in mine_nodes.iteritems() %}
+{%- for node_name, node_grains in mine_nodes|dictsort %}
* - :ref:`{{ node_name }}`
{%- if node_grains.sphinx is defined %}
- {% for ip in node_grains.ipv4 %}
@@ -22,7 +22,7 @@
* {{ ip }}
{%- endif %}
{%- endfor %}
- - {% for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}{% if service.role is mapping %}{% for role_name, role in service.role.iteritems() %}{{ service_name }}-{{ role_name }} {% endfor %}{% endif %}{% endfor %}
+ - {% for service_name, service in node_grains.get('sphinx', {}).get('doc', {})|dictsort %}{% if service.role is mapping %}{% for role_name, role in service.role|dictsort %}{{ service_name }}-{{ role_name }} {% endfor %}{% endif %}{% endfor %}
{%- else %}
- N/A
- N/A
@@ -30,9 +30,9 @@
{%- endfor %}
.. toctree::
- :maxdepth: 2
+ :maxdepth: 3
-{% for node_name, node_grains in mine_nodes.iteritems() %}
+{% for node_name, node_grains in mine_nodes|dictsort %}
{%- if node_grains.get('sphinx_doc', {}) != None %}
{{ node_name }}
{%- endif %}
diff --git a/sphinx/files/salt/source/nodes/node.rst b/sphinx/files/salt/source/nodes/node.rst
index e08358b..c3b37bd 100644
--- a/sphinx/files/salt/source/nodes/node.rst
+++ b/sphinx/files/salt/source/nodes/node.rst
@@ -1,5 +1,15 @@
{% macro render_list(param) %}
-{{ param }}
+{%- if param is mapping %}
+{%- for key, value in param.iteritems() %}
+- {{ key }}: {{ value }}
+{%- endfor %}
+{%- elif param is string or param is number %}
+{{ param }}
+{%- else %}
+{%- for p in param %}
+- {{ p }}
+{%- endfor %}
+{%- endif %}
{% endmacro %}
.. _{{ node_name }}:
@@ -10,7 +20,7 @@
{%- if node_grains.get('sphinx_doc', {}) is not none %}
-{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}
+{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {})|dictsort %}
Service {{ service_name }}
===============================================
@@ -23,13 +33,15 @@
- **Parameter**
- **Value**
{%- if service.role is mapping %}
-{%- for role_name, role in service.role.iteritems() %}
-{%- for param_name, param in role.get('param', {}).iteritems() %}
+{%- for role_name, role in service.role|dictsort %}
+{%- if role.get('param', {}) %}
+{%- for param_name, param in role.get('param', {})|dictsort %}
* - {{ service_name }}-{{ role_name }}
- {{ param.get('name', param_name) }}
-
-{{ render_list(param.value)|indent(8, True) }}
+{{ render_list(param.value)|indent(8, True) }}
{%- endfor %}
+{%- endif %}
{%- endfor %}
{%- endif %}
diff --git a/sphinx/files/salt/source/services/catalog.rst b/sphinx/files/salt/source/services/catalog.rst
index 1424996..f633a83 100644
--- a/sphinx/files/salt/source/services/catalog.rst
+++ b/sphinx/files/salt/source/services/catalog.rst
@@ -6,7 +6,7 @@
All used services within configured infrastructure.
{%- set services = {} %}
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items')|dictsort %}
{%- if node_grains.get('sphinx_doc', {}) != None %}
{%- set _dummy = services.update(node_grains.get('sphinx', {}).get('doc', {})) %}
{%- endif %}
@@ -18,7 +18,7 @@
* - **Service**
- **Description**
-{%- for service_name, service in services.iteritems() %}
+{%- for service_name, service in services|dictsort %}
* - {{ service.name }}
- {{ service.get('description', '') }}
{%- endfor %}
diff --git a/sphinx/files/salt/source/services/endpoints.rst b/sphinx/files/salt/source/services/endpoints.rst
index 871432c..0d50dee 100644
--- a/sphinx/files/salt/source/services/endpoints.rst
+++ b/sphinx/files/salt/source/services/endpoints.rst
@@ -8,21 +8,23 @@
.. list-table::
:header-rows: 1
- * - **Type**
+ * - **Name**
+ - **Type**
- **Address**
- **Protocol**
- **Service**
- **Server**
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items')|dictsort %}
{%- if node_grains.get('sphinx_doc', {}) != None %}
-{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}
+{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {})|dictsort %}
{%- if service.get('role', {}) != None %}
-{%- for role_name, role in service.get('role', {}).iteritems() %}
+{%- for role_name, role in service.get('role', {})|dictsort %}
{%- if role.get('endpoint', {}) != None %}
-{%- for endpoint_name, endpoint in role.get('endpoint', {}).iteritems() %}
- * - {{ endpoint.type }}
- - {{ endpoint.address }}
- - {{ endpoint.protocol }}
+{%- for endpoint_name, endpoint in role.get('endpoint', {})|dictsort %}
+ * - {{ endpoint.name|default('n/a') }}
+ - {{ endpoint.type|default('n/a') }}
+ - {{ endpoint.address|default('n/a') }}
+ - {{ endpoint.protocol|default('n/a') }}
- {{ service_name }}
- :ref:`{{ node_name }}`
{%- endfor %}
diff --git a/sphinx/files/salt/source/services/index.rst b/sphinx/files/salt/source/services/index.rst
index 47435c8..0fea8fc 100644
--- a/sphinx/files/salt/source/services/index.rst
+++ b/sphinx/files/salt/source/services/index.rst
@@ -6,8 +6,8 @@
Definition of all services used within defined infrastructure.
.. toctree::
- :maxdepth: 2
+ :maxdepth: 3
endpoints
catalog
- monitoring
\ No newline at end of file
+ monitoring
diff --git a/sphinx/files/salt/source/services/monitoring.rst b/sphinx/files/salt/source/services/monitoring.rst
index 8187e6c..f52a974 100644
--- a/sphinx/files/salt/source/services/monitoring.rst
+++ b/sphinx/files/salt/source/services/monitoring.rst
@@ -29,9 +29,9 @@
- **Threshold**
- **Function**
- **Window**
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items')|dictsort %}
{%- if node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {}) is mapping %}
-{%- for alarm_name, alarm in node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {}).iteritems() %}
+{%- for alarm_name, alarm in node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {})|dictsort %}
{%- for trigger_name in alarm.triggers %}
{%- set trigger = node_grains.get('heka', {}).get('metric_collector', {}).get('trigger', {}).get(trigger_name, { }) %}
{%- for rule in trigger.get('rules', []) %}
diff --git a/sphinx/orch/generate_doc.sls b/sphinx/orch/generate_doc.sls
index 7bad6f1..0dd4f79 100644
--- a/sphinx/orch/generate_doc.sls
+++ b/sphinx/orch/generate_doc.sls
@@ -8,19 +8,23 @@
salt.state:
- tgt: '*'
- sls: salt.minion.grains
+ - require:
+ - salt: linux_system_doc_state
-mine_flush:
- salt.function:
- - name: mine.flush
- - tgt: '*'
-
+{# Mine flush/update works only when executed via salt-call #}
mine_update:
salt.function:
- - name: mine.update
+ - name: cmd.run
- tgt: '*'
+ - arg:
+ - salt-call mine.flush; salt-call mine.update
+ - require:
+ - salt: salt_minion_grains
sphinx_state:
salt.state:
- tgt: 'I@sphinx:server'
- tgt_type: compound
- sls: sphinx
+ - require:
+ - salt: mine_update