diff --git a/ceph/setup/keyring.sls b/ceph/setup/keyring.sls
index d51a109..fe88880 100644
--- a/ceph/setup/keyring.sls
+++ b/ceph/setup/keyring.sls
@@ -11,94 +11,50 @@
 
         {% for keyring_name, keyring in common.get('keyring', {}).iteritems() %}
 
-          {%- if keyring.name is defined %}
+          {%- set keyring_client_name = keyring.get('name', keyring_name) %}
+          {%- set ceph_cluster = common.get('cluster_name', 'ceph') %}
+          {%- set keyring_path = keyring.get('path', common.prefix_dir + '/etc/ceph/' + ceph_cluster + '.client.' + keyring_client_name + '.keyring') %}
 
-            {%- if keyring.name != 'admin' and keyring.key is defined and common.get("manage_keyring", False) %}
+          {%- if keyring_client_name != 'admin' %}
 
-{{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring.name }}.keyring:
+            {%- if keyring.key is defined and common.get("manage_keyring", False) %}
+
+{{ keyring_path }}:
   file.managed:
   - source: salt://ceph/files/keyring
   - template: jinja
   - defaults:
       keyring: {{ keyring|yaml }}
-      name: {{ keyring.name }}
+      name: {{ keyring_client_name }}
 
-ceph_import_keyring_{{ keyring.name }}:
+ceph_import_keyring_{{ keyring_client_name }}:
   cmd.run:
-  - name: ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth import -i {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring.name }}.keyring
+  - name: "ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth import -i {{ keyring_path }}"
   - onchanges:
-    - file: {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring.name }}.keyring
+    - file: {{ keyring_path }}
 
-ceph_update_caps_for_{{ keyring.name }}:
+ceph_update_caps_for_{{ keyring_client_name }}:
   cmd.run:
-  - name: ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth caps client.{{ keyring.name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
+  - name: ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth caps client.{{ keyring_client_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
   - onchanges:
-    - file: {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring.name }}.keyring
+    - file: {{ keyring_path }}
 
-            {%- elif keyring.name != 'admin' %}
+            {%- else %}
 
-ceph_create_keyring_{{ keyring.name }}:
+ceph_create_keyring_{{ keyring_client_name }}:
   cmd.run:
-  - name: ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth get-or-create client.{{ keyring.name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %} > {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring.name }}.keyring
-  - unless: "test -f {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring.name }}.keyring"
+  - name: ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth get-or-create client.{{ keyring_client_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %} > {{ keyring_path }}
+  - unless: "test -f {{ keyring_path }}"
 
               {%- if salt['file.file_exists']('/usr/bin/ceph') %}
                 {%- set caps = salt['cmd.shell']('ceph auth list --format json') | load_json %}
                 {%- for client in caps['auth_dump'] %}
-                  {%- if client['entity'] == "client." + keyring.name %}
+                  {%- if client['entity'] == "client." + keyring_client_name %}
                     {%- for cap_name, cap in  client.caps.iteritems() %}
                       {%- if cap != keyring.caps[cap_name] %}
-ceph_update_caps_for_{{ keyring.name }}:
+ceph_update_caps_for_{{ keyring_client_name }}:
   cmd.run:
-  - name: ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth caps client.{{ keyring.name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
-                      {%- endif %}
-                    {%- endfor %}
-                  {%- endif %}
-                {%- endfor %}
-              {%- endif %}
-
-            {%- endif %}
-
-          {%- else %}
-
-            {%- if keyring_name != 'admin' and keyring.key is defined and common.get("manage_keyring", False) %}
-
-{{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring_name }}.keyring:
-  file.managed:
-  - source: salt://ceph/files/keyring
-  - template: jinja
-  - defaults:
-      keyring: {{ keyring|yaml }}
-      name: {{ keyring_name }}
-
-ceph_import_keyring_{{ keyring_name }}:
-  cmd.run:
-  - name: "ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth import -i {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring_name }}.keyring"
-  - onchanges:
-    - file: {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring_name }}.keyring
-
-ceph_update_caps_for_{{ keyring_name }}:
-  cmd.run:
-  - name: ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth caps client.{{ keyring_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
-  - onchanges:
-    - file: {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring_name }}.keyring
-
-            {%- elif keyring_name != 'admin' %}
-
-ceph_create_keyring_{{ keyring_name }}:
-  cmd.run:
-  - name: ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth get-or-create client.{{ keyring_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %} > {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring_name }}.keyring
-  - unless: "test -f {{ common.prefix_dir }}/etc/ceph/{{ common.get('cluster_name', 'ceph') }}.client.{{ keyring_name }}.keyring"
-
-              {%- if salt['file.file_exists']('/usr/bin/ceph') %}
-                {%- set caps = salt['cmd.shell']('ceph auth list --format json') | load_json %}
-                {%- for client in caps['auth_dump'] %}
-                  {%- if client['entity'] == "client." + keyring_name %}
-                    {%- for cap_name, cap in  client.caps.iteritems() %}
-                      {%- if cap != keyring.caps[cap_name] %}
-ceph_update_caps_for_{{ keyring_name }}:
-  cmd.run:
-  - name: ceph -c /etc/ceph/{{ common.get('cluster_name', 'ceph') }}.conf auth caps client.{{ keyring_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
+  - name: ceph -c /etc/ceph/{{ ceph_cluster }}.conf auth caps client.{{ keyring_client_name }} {%- for cap_name, cap in  keyring.caps.iteritems() %} {{ cap_name }} '{{ cap }}' {%- endfor %}
                       {%- endif %}
                     {%- endfor %}
                   {%- endif %}
diff --git a/tests/test-requirements.txt b/tests/test-requirements.txt
new file mode 100644
index 0000000..bc7dc7f
--- /dev/null
+++ b/tests/test-requirements.txt
@@ -0,0 +1,4 @@
+jsonschema
+reno
+setuptools<45.0.0
+msgpack<1.0.0
