divide setup to crush, keyring and pool, fix tests

Change-Id: I91caa01fef79e003396620ffc04382ba17063b4a
diff --git a/README.rst b/README.rst
index 8dbcc77..df8bf25 100644
--- a/README.rst
+++ b/README.rst
@@ -259,42 +259,44 @@
 
 .. code-block:: yaml
 
-  crush:
-    enabled: True
-    tunables:
-      choose_total_tries: 50
-    type:
-      - root
-      - region
-      - rack
-      - host
-    root:
-      - name: root1
-      - name: root2
-    region:
-      - name: eu-1
-        parent: root1
-      - name: eu-2
-        parent: root1
-      - name: us-1
-        parent: root2
-    rack:
-      - name: rack01
-        parent: eu-1
-      - name: rack02
-        parent: eu-2
-      - name: rack03
-        parent: us-1
-    rule:
-      sata:
-        ruleset: 0
-        type: replicated
-        min_size: 1
-        max_size: 10
-        steps:
-          - take crushroot.performanceblock.satahss.1
-          - choseleaf firstn 0 type failure_domain
-          - emit
+  ceph:
+    setup:
+      crush:
+        enabled: True
+        tunables:
+          choose_total_tries: 50
+        type:
+          - root
+          - region
+          - rack
+          - host
+        root:
+          - name: root1
+          - name: root2
+        region:
+          - name: eu-1
+            parent: root1
+          - name: eu-2
+            parent: root1
+          - name: us-1
+            parent: root2
+        rack:
+          - name: rack01
+            parent: eu-1
+          - name: rack02
+            parent: eu-2
+          - name: rack03
+            parent: us-1
+        rule:
+          sata:
+            ruleset: 0
+            type: replicated
+            min_size: 1
+            max_size: 10
+            steps:
+              - take crushroot.performanceblock.satahss.1
+              - choseleaf firstn 0 type failure_domain
+              - emit
 
 Ceph monitoring
 ---------------
diff --git a/ceph/mon.sls b/ceph/mon.sls
index 0cdd7dc..53dab96 100644
--- a/ceph/mon.sls
+++ b/ceph/mon.sls
@@ -62,9 +62,12 @@
 
 mon_services:
   service.running:
-  - enable: true
-  - names: [ceph-mon@{{ grains.host }}]
-  - watch:
-    - file: /etc/ceph/ceph.conf
-  - require:
-    - pkg: mon_packages
+    - enable: true
+    - names: [ceph-mon@{{ grains.host }}]
+    - watch:
+      - file: /etc/ceph/ceph.conf
+    - require:
+      - pkg: mon_packages
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
diff --git a/ceph/osd.sls b/ceph/osd.sls
index 4d7be7b..5895830 100644
--- a/ceph/osd.sls
+++ b/ceph/osd.sls
@@ -30,6 +30,9 @@
   - name: xfs.mkfs 
   - device: {{ disk.dev }}
   - unless: "ceph-disk list | grep {{ disk.dev }} | grep {{ osd.fs_type }}"
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
 
 /var/lib/ceph/osd/ceph-{{ id }}:
   mount.mounted:
@@ -37,6 +40,9 @@
   - fstype: {{ osd.fs_type }}
   - opts: {{ disk.get('opts', 'rw,noatime,inode64,logbufs=8,logbsize=256k') }} 
   - mkmnt: True
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
 
 permission_/var/lib/ceph/osd/ceph-{{ id }}:
   file.directory:
@@ -44,9 +50,13 @@
     - user: ceph
     - group: ceph
     - mode: 755
-    - makedirs: false
+    - makedirs: False
     - require:
       - mount: /var/lib/ceph/osd/ceph-{{ id }}
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
+
   
 {{ disk.journal }}:
   file.managed:
@@ -61,6 +71,9 @@
   - require:
     - file: /var/lib/ceph/osd/ceph-{{ id }}
     - mount: /var/lib/ceph/osd/ceph-{{ id }}
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
 
 add_keyring_{{ id }}:
   cmd.run:
@@ -68,12 +81,19 @@
   - unless: "ceph auth list | grep '^osd.{{ id }}'"
   - require:
     - cmd: create_disk_{{ id }}
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
 
 /var/lib/ceph/osd/ceph-{{ id }}/done:
   file.managed:
   - content: {}
   - require:
     - cmd: add_keyring_{{ id }}
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
+
 
 osd_services_{{ id }}_osd:
   service.running:
@@ -84,6 +104,9 @@
   - require:
     - file: /var/lib/ceph/osd/ceph-{{ id }}/done
     - service: osd_services_perms
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
 
 {% endfor %}
 
@@ -94,6 +117,10 @@
   - names: ['ceph-osd.target']
   - watch:
     - file: /etc/ceph/ceph.conf
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
+
 
 osd_services:
   service.running:
@@ -101,6 +128,10 @@
   - names: ['ceph.target']
   - watch:
     - file: /etc/ceph/ceph.conf
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
+
 
 /etc/systemd/system/ceph-osd-perms.service:
   file.managed:
@@ -123,4 +154,7 @@
   - enable: true
   - names: ['ceph-osd-perms']
   - require:
-    - file: /etc/systemd/system/ceph-osd-perms.service
\ No newline at end of file
+    - file: /etc/systemd/system/ceph-osd-perms.service
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
diff --git a/ceph/radosgw.sls b/ceph/radosgw.sls
index 98a6707..4a8c4af 100644
--- a/ceph/radosgw.sls
+++ b/ceph/radosgw.sls
@@ -23,5 +23,8 @@
     - file: /var/lib/ceph/radosgw/ceph-radosgw.gateway/done
   - watch:
     - file: /etc/ceph/ceph.conf
+  {%- if grains.get('noservices') %}
+  - onlyif: /bin/false
+  {%- endif %}
 
 {%- endif %}
diff --git a/ceph/setup/crush.sls b/ceph/setup/crush.sls
new file mode 100644
index 0000000..cdf1bbe
--- /dev/null
+++ b/ceph/setup/crush.sls
@@ -0,0 +1,6 @@
+{%- from "ceph/map.jinja" import setup with context %}
+
+/etc/ceph/crushmap:
+  file.managed:
+  - source: salt://ceph/files/crushmap
+  - template: jinja
diff --git a/ceph/setup/init.sls b/ceph/setup/init.sls
new file mode 100644
index 0000000..e9c3e9a
--- /dev/null
+++ b/ceph/setup/init.sls
@@ -0,0 +1,14 @@
+{%- from "ceph/map.jinja" import common, setup with context %}
+{%- if setup.enabled %}
+
+include:
+- ceph.common
+{%- if setup.get('crush').enabled %}
+- ceph.setup.crush
+{%- endif %}
+{%- if setup.get('pool') %}
+- ceph.setup.pool
+{%- endif %}
+{%- if common.get('keyring') %}
+- ceph.setup.keyring
+{%- endif %}
diff --git a/ceph/setup/keyring.sls b/ceph/setup/keyring.sls
new file mode 100644
index 0000000..0a5b4c0
--- /dev/null
+++ b/ceph/setup/keyring.sls
@@ -0,0 +1,12 @@
+{%- from "ceph/map.jinja" import common with context %}
+
+{% for keyring_name, keyring in common.get('keyring', {}).iteritems() %}
+
+ceph_keyring_{{ keyring_name }}_import:
+  cmd.run:
+  - name: ceph auth import -i /etc/ceph/ceph.client.{{ keyring_name }}.keyring
+  - unless: ceph auth list | grep {{ keyring_name }}
+
+{%- endfor %}
+
+{%- endif %}
diff --git a/ceph/setup.sls b/ceph/setup/pool.sls
similarity index 65%
rename from ceph/setup.sls
rename to ceph/setup/pool.sls
index 7b7ca90..1f7a40a 100644
--- a/ceph/setup.sls
+++ b/ceph/setup/pool.sls
@@ -1,13 +1,4 @@
-{%- from "ceph/map.jinja" import common, setup with context %}
-{%- if setup.enabled %}
-
-include:
-- ceph.common
-
-/etc/ceph/crushmap:
-  file.managed:
-  - source: salt://ceph/files/crushmap
-  - template: jinja
+{%- from "ceph/map.jinja" import setup with context %}
 
 {%- for pool_name, pool in setup.pool.iteritems() %}
 
@@ -17,6 +8,7 @@
   - unless: "ceph osd pool ls | grep ^{{ pool_name }}"
 
 {%- for option_name, option_value in pool.iteritems() %}
+
 {%- if option_name != 'type' %}
 
 ceph_pool_option_{{ pool_name }}_{{ option_name }}:
@@ -28,16 +20,6 @@
 
 {%- endfor %}
 
-
 {%- endfor %}
 
-{% for keyring_name, keyring in common.get('keyring', {}).iteritems() %}
 
-ceph_keyring_{{ keyring_name }}_import:
-  cmd.run:
-  - name: ceph auth import -i /etc/ceph/ceph.client.{{ keyring_name }}.keyring
-  - unless: ceph auth list | grep {{ keyring_name }}
-
-{%- endfor %}
-
-{%- endif %}