Source engine Archive
diff --git a/reclass/storage/data.sls b/reclass/storage/data.sls
index 1574e97..cc977c3 100644
--- a/reclass/storage/data.sls
+++ b/reclass/storage/data.sls
@@ -14,6 +14,22 @@
{%- endif %}
- force_reset: {{ storage.data_source.force_reset|default(False) }}
+{%- elif storage.data_source.engine == "archive" %}
+
+reclass_archive_data_dir:
+ archive.extracted:
+ - name: {{ storage.base_dir }}
+ - source: {{ storage.data_source.address }}
+ {%- if storage.data_source.hash is string %}
+ - source_hash: {{ storage.data_source.hash }}
+ {%- endif %}
+ {%- if storage.data_source.options is string %}
+ - options: {{ storage.data_source.options }}
+ {%- endif %}
+ - user: root
+ - group: root
+ - if_missing: {{ storage.base_dir }}/classes
+
{%- endif %}
reclass_data_dir:
@@ -23,6 +39,9 @@
{%- if storage.data_source.engine == "git" %}
- require:
- git: reclass_git_data_dir
+{%- elif storage.data_source.engine == "archive" %}
+ - require:
+ - archive: reclass_archive_data_dir
{%- endif %}
{%- endif %}
diff --git a/tests/pillar/storage_archive.sls b/tests/pillar/storage_archive.sls
new file mode 100644
index 0000000..32197ce
--- /dev/null
+++ b/tests/pillar/storage_archive.sls
@@ -0,0 +1,7 @@
+reclass:
+ storage:
+ enabled: true
+ base_dir: /srv/reclass
+ data_source:
+ engine: archive
+ address: salt://path/reclass-project.tar
diff --git a/tests/pillar/storage_archive_public.sls b/tests/pillar/storage_archive_public.sls
new file mode 100644
index 0000000..8ec56ba
--- /dev/null
+++ b/tests/pillar/storage_archive_public.sls
@@ -0,0 +1,8 @@
+reclass:
+ storage:
+ enabled: true
+ base_dir: /srv/reclass
+ data_source:
+ engine: archive
+ address: https://mydomain.tld/bar.tar.gz
+ hash: sha1=5edb7d584b82ddcbf76e311601f5d4442974aaa5