Update stuff related to cache dirs for debmirror
* Fix state names to allow to have different cache dirs for different repos;
* Extend cache logic to not rely on cache and re-sync even after cache init;
Change-Id: I70d8b2c062a36c3bbaf04f76ee8e3d7630ff521b
Related-Prod: PROD-32735
diff --git a/_states/debmirror.py b/_states/debmirror.py
index 2c0bb8a..36e666d 100644
--- a/_states/debmirror.py
+++ b/_states/debmirror.py
@@ -173,6 +173,8 @@
target_dir = _get_target_path(name, tgt)['target_dir']
cpline = "find . -name *.deb -exec cp -rlf --parent {} %s \\;" % (
target_dir)
+ # if cache exists - copy and run sync over cache
+ # if cache does not exist - create cache, copy and run sync again over it
if _check_mirror_cache(cache_dir):
result = __salt__['cmd.run_all'](cpline, redirect_stderr=True,
cwd=cache_dir, env=env_vars)
@@ -187,6 +189,12 @@
log2file.debug(result['stdout'])
result = __salt__['cmd.run_all'](cpline, redirect_stderr=True,
cwd=cache_dir, env=env_vars)
+ if result['retcode'] == 0:
+ log2file.debug(result['stdout'])
+ cmdline = _get_cmdline(name, tgt)
+ result = __salt__['cmd.run_all'](cmdline, redirect_stderr=True,
+ env=env_vars)
+
else:
result = __salt__['cmd.run_all'](cmdline, redirect_stderr=True,
env=env_vars)
diff --git a/debmirror/client/init.sls b/debmirror/client/init.sls
index 0230923..cdc9699 100644
--- a/debmirror/client/init.sls
+++ b/debmirror/client/init.sls
@@ -14,8 +14,8 @@
- require:
- debmirror_client_packages
{%- if opts.get('cache_dir', '') != '' %}
- - debmirror_cache_dir
- - debmirror_target_dir
+ - debmirror_cache_dir_{{ mirror_name }}
+ - debmirror_target_dir_{{ mirror_name }}
{%- endif %}
{%- if grains['saltversioninfo'][0] >= 2017 and grains['saltversioninfo'][1] >= 7 %}
- retry:
@@ -26,21 +26,21 @@
{%- endif %}
{%- if opts.get('cache_dir', '') != '' %}
-debmirror_cache_dir:
+debmirror_cache_dir_{{ mirror_name }}:
file.directory:
- name: '{{ opts.get('cache_dir') }}'
- user: root
- group: root
- dir_mode: 755
- makedirs: True
-debmirror_target_dir:
+debmirror_target_dir_{{ mirror_name }}:
file.directory:
- name: '{{ opts.get('target_dir') }}'
- user: root
- group: root
- dir_mode: 755
- makedirs: True
-debmirror_cache_readiness:
+debmirror_cache_readiness_{{ mirror_name }}:
file.managed:
- name: '{{ opts.get('cache_dir') }}/.ready'
- replace: False