Use dictsort instead of iteritems for docs generation
diff --git a/sphinx/files/salt/source/nodes/index.rst b/sphinx/files/salt/source/nodes/index.rst
index bdb0e8f..7c90160 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
@@ -32,7 +32,7 @@
 .. toctree::
    :maxdepth: 2
 
-{% 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 8b622b1..98b1537 100644
--- a/sphinx/files/salt/source/nodes/node.rst
+++ b/sphinx/files/salt/source/nodes/node.rst
@@ -10,7 +10,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 +23,13 @@
       - **Parameter**
       - **Value**
 {%- if service.role is mapping %}
-{%- for role_name, role in service.role.iteritems() %}
+{%- for role_name, role in service.role|dictsort %}
 {%- if role.get('param', {}) %}
-{%- for param_name, param in role.get('param', {}).iteritems() %}
+{%- 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 %}
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 5612318..0d50dee 100644
--- a/sphinx/files/salt/source/services/endpoints.rst
+++ b/sphinx/files/salt/source/services/endpoints.rst
@@ -8,19 +8,21 @@
 .. 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|default('n/a') }}
+{%- 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 }}
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', []) %}