Merge "Refactor mirror state"
diff --git a/README.rst b/README.rst
index d08ec42..0903a6e 100644
--- a/README.rst
+++ b/README.rst
@@ -225,6 +225,7 @@
 
 
 .. code-block:: yaml
+
   maas:
     region:
       machines:
@@ -405,7 +406,7 @@
 
 
 
-Setup image mirror
+Setup image mirror (Maas boot resources,)
 
 .. code-block:: yaml
 
@@ -413,16 +414,23 @@
     mirror:
       enabled: true
       image:
-        release:
+        sections:
+          bootloaders:
+            keyring: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
+            upstream: http://images.maas.io/ephemeral-v3/daily/
+            local_dir: /var/www/html/maas/images/ephemeral-v3/daily
+            count: 1
+            # i386 need for pxe
+            filters: ['arch~(i386|amd64)', 'os~(grub*|pxelinux)']
           xenial:
-          keyring: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
-          upstream: http://images.maas.io/ephemeral-v3/daily/
-          local_dir: /var/www/html/maas/images/ephemeral-v3/daily
-          arch: amd64
-          subarch: 'generic|hwe-t'
+            keyring: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
+            upstream: http://images.maas.io/ephemeral-v3/daily/
+            local_dir: /var/www/html/maas/images/ephemeral-v3/daily
+            count: 1
+            filters: ['release~(xenial)', 'arch~(amd64)', 'subarch~(generic|hwe-16.04$|ga-16.04)']
           count: 1
 
-Usage of local repos
+Usage of local deb repos
 
 .. code-block:: yaml
 
@@ -464,6 +472,7 @@
 MAAS region service with backup data
 
 .. code-block:: yaml
+
     maas:
       region:
         database:
diff --git a/maas/mirror.sls b/maas/mirror.sls
index f7c586d..0772e1c 100644
--- a/maas/mirror.sls
+++ b/maas/mirror.sls
@@ -8,11 +8,20 @@
   pkg.installed:
     - names: {{ mirror.pkgs }}
 
-{%- for release_name, release in mirror.image.release.iteritems() %}
+{%- for section_name, section in mirror.image.sections.iteritems() %}
 
-mirror_image_{{ release_name }}:
+mirror_image_{{ section_name }}:
   cmd.run:
-  - name: "sstream-mirror --keyring={{ release.keyring }} {{ release.upstream }} {{ release.local_dir }} {%- if release.get('arch') %} 'arch={{ release.arch }}'{%- endif %} {%- if release.get('subarch') %} 'subarch~({{ release.subarch }})'{%- endif %} 'release~({{ release_name }})' {%- if release.get('count') %} --max={{ release.count }}{%- endif %}"
+  - name: "sstream-mirror --keyring={{ section.keyring }} {{ section.upstream }} {{ section.local_dir }}
+    {%- if section.get('arch') %}
+      'arch={{ section.arch }}'
+    {%- endif %}
+    {%- if section.get('filters') %}
+     {% for item in section.filters %} '{{ item }}' {%- endfor %}
+    {%- endif %}
+    {%- if section.get('count') %}
+      --max={{ section.count }}
+    {%- endif %}"
   - require:
     - pkg: maas_mirror_packages
 
@@ -21,3 +30,4 @@
 {%- endif %}
 
 {%- endif %}
+
diff --git a/tests/pillar/maas_mirror.sls b/tests/pillar/maas_mirror.sls
index 090c794..dbdcc25 100644
--- a/tests/pillar/maas_mirror.sls
+++ b/tests/pillar/maas_mirror.sls
@@ -2,11 +2,11 @@
   mirror:
     enabled: true
     image:
-      release:
-        xenial:
-          keyring: '/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg'
-          upstream: 'http://images.maas.io/ephemeral-v3/daily/'
-          local_dir: '/var/www/html/maas/images/ephemeral-v3/daily'
-          arch: amd64
-          subarch: 'generic|hwe-t'
-          count: '1'
+      sections:
+        bootloaders:
+          keyring: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
+          upstream: http://images.maas.io/ephemeral-v3/daily/
+          local_dir: /var/www/html/maas/images/ephemeral-v3/daily
+          count: 1
+          # i386 need for pxe
+          filters: ['arch~(i386|amd64)', 'os~(grub*|pxelinux)']
diff --git a/tests/pillar/disk_layout.sls b/tests/pillar/maas_storage.sls
similarity index 100%
rename from tests/pillar/disk_layout.sls
rename to tests/pillar/maas_storage.sls