diff --git a/keystone/client/server.sls b/keystone/client/server.sls
index 13cff88..87ef7eb 100644
--- a/keystone/client/server.sls
+++ b/keystone/client/server.sls
@@ -45,6 +45,7 @@
 {%- endif %}
 
 {% for service_name, service in server.get('service', {}).items() %}
+  {%- if service.get('status', 'present') == 'present' %}
 
 keystone_{{ server_name }}_service_{{ service_name }}:
   keystoneng.service_present:
@@ -61,18 +62,12 @@
   - connection_auth_url: {{ connection_args.auth_url }}
   {%- endif %}
 
-{%- for endpoint in service.get('endpoints', ()) %}
-  {%- if endpoint.get('status', 'present') == 'present' %}
+  {%- elif service.get('status', 'present') == 'absent' %}
+  {#- In case service is removed related endpoints will be removed automatically. #}
 
-keystone_{{ server_name }}_service_{{ service_name }}_endpoint_{{ endpoint.region }}:
-  keystoneng.endpoint_present:
+keystone_service_{{ service_name }}_{{ service.type }}_absent:
+  keystoneng.service_absent:
   - name: {{ service_name }}
-  - publicurl: '{{ endpoint.get('public_protocol', 'http') }}://{{ endpoint.public_address }}{% if not ((endpoint.get('public_protocol') == 'https' and endpoint.public_port|int == 443) or (endpoint.get('public_protocol') == 'http' and endpoint.public_port|int == 80)) %}:{{ endpoint.public_port }}{% endif %}{{ endpoint.public_path }}'
-  - internalurl: '{{ endpoint.get('internal_protocol', 'http') }}://{{ endpoint.internal_address }}{% if not (endpoint.get('internal_protocol', 'http') == 'https' and endpoint.internal_port|int == 443) %}:{{ endpoint.internal_port }}{% endif %}{{ endpoint.internal_path }}'
-  - adminurl: '{{ endpoint.get('admin_protocol', 'http') }}://{{ endpoint.admin_address }}{% if not (endpoint.get('admin_protocol', 'http') == 'https' and endpoint.admin_port|int == 443) %}:{{ endpoint.admin_port }}{% endif %}{{ endpoint.admin_path }}'
-  - region: {{ endpoint.region }}
-  - require:
-    - keystoneng: keystone_{{ server_name }}_service_{{ service_name }}
     {%- if server.admin.token is defined %}
   - connection_token: {{ connection_args.token }}
   - connection_endpoint: {{ connection_args.endpoint }}
@@ -83,7 +78,32 @@
   - connection_auth_url: {{ connection_args.auth_url }}
     {%- endif %}
 
-  {%- elif endpoint.get('status', 'present') == 'absent' %}
+  {%- endif %}
+
+{%- if service.get('status', 'present') == 'present' %}
+  {%- for endpoint in service.get('endpoints', ()) %}
+    {%- if endpoint.get('status', 'present') == 'present' %}
+
+keystone_{{ server_name }}_service_{{ service_name }}_endpoint_{{ endpoint.region }}:
+  keystoneng.endpoint_present:
+  - name: {{ service_name }}
+  - publicurl: '{{ endpoint.get('public_protocol', 'http') }}://{{ endpoint.public_address }}{% if not ((endpoint.get('public_protocol') == 'https' and endpoint.public_port|int == 443) or (endpoint.get('public_protocol') == 'http' and endpoint.public_port|int == 80)) %}:{{ endpoint.public_port }}{% endif %}{{ endpoint.public_path }}'
+  - internalurl: '{{ endpoint.get('internal_protocol', 'http') }}://{{ endpoint.internal_address }}{% if not (endpoint.get('internal_protocol', 'http') == 'https' and endpoint.internal_port|int == 443) %}:{{ endpoint.internal_port }}{% endif %}{{ endpoint.internal_path }}'
+  - adminurl: '{{ endpoint.get('admin_protocol', 'http') }}://{{ endpoint.admin_address }}{% if not (endpoint.get('admin_protocol', 'http') == 'https' and endpoint.admin_port|int == 443) %}:{{ endpoint.admin_port }}{% endif %}{{ endpoint.admin_path }}'
+  - region: {{ endpoint.region }}
+  - require:
+    - keystoneng: keystone_{{ server_name }}_service_{{ service_name }}
+      {%- if server.admin.token is defined %}
+  - connection_token: {{ connection_args.token }}
+  - connection_endpoint: {{ connection_args.endpoint }}
+      {%- else %}
+  - connection_user: {{ connection_args.user }}
+  - connection_password: {{ connection_args.password }}
+  - connection_tenant: {{ connection_args.tenant }}
+  - connection_auth_url: {{ connection_args.auth_url }}
+      {%- endif %}
+
+    {%- elif endpoint.get('status', 'present') == 'absent' %}
 
 keystone_{{ server_name }}_service_{{ service_name }}_endpoint_{{ endpoint.region }}_absent:
   keystoneng.endpoint_absent:
@@ -91,19 +111,20 @@
     - region: {{ endpoint.region }}
     - require:
       - keystoneng: keystone_{{ server_name }}_service_{{ service_name }}
-    {%- if server.admin.token is defined %}
+      {%- if server.admin.token is defined %}
     - connection_token: {{ connection_args.token }}
     - connection_endpoint: {{ connection_args.endpoint }}
-    {%- else %}
+      {%- else %}
     - connection_user: {{ connection_args.user }}
     - connection_password: {{ connection_args.password }}
     - connection_tenant: {{ connection_args.tenant }}
     - connection_auth_url: {{ connection_args.auth_url }}
+      {%- endif %}
+
     {%- endif %}
 
-  {%- endif %}
-
-{%- endfor %}
+  {%- endfor %}
+{%- endif %}
 
 {%- endfor %}
 
