fix: ensure than all item of a list of excluded files aren't checked (#45122)

* fix: ensure than list of excluded files aren't checked
* test: exclude a list of files
This commit is contained in:
lrrb 2018-12-06 19:13:31 +01:00 committed by Toshio Kuratomi
parent 6e43f9fe8f
commit 4f9f1754b4
2 changed files with 16 additions and 8 deletions

View file

@ -261,11 +261,13 @@ class ZipArchive(object):
else: else:
try: try:
for member in archive.namelist(): for member in archive.namelist():
exclude_flag = False
if self.excludes: if self.excludes:
for exclude in self.excludes: for exclude in self.excludes:
if not fnmatch.fnmatch(member, exclude): if fnmatch.fnmatch(member, exclude):
self._files_in_archive.append(to_native(member)) exclude_flag = True
else: break
if not exclude_flag:
self._files_in_archive.append(to_native(member)) self._files_in_archive.append(to_native(member))
except: except:
archive.close() archive.close()
@ -661,11 +663,14 @@ class TgzArchive(object):
if filename.startswith('/'): if filename.startswith('/'):
filename = filename[1:] filename = filename[1:]
exclude_flag = False
if self.excludes: if self.excludes:
for exclude in self.excludes: for exclude in self.excludes:
if not fnmatch.fnmatch(filename, exclude): if fnmatch.fnmatch(filename, exclude):
self._files_in_archive.append(to_native(filename)) exclude_flag = True
else: break
if not exclude_flag:
self._files_in_archive.append(to_native(filename)) self._files_in_archive.append(to_native(filename))
return self._files_in_archive return self._files_in_archive

View file

@ -225,11 +225,13 @@
- zip - zip
- tar - tar
- name: Unpack archive file excluding glob files. - name: Unpack archive file excluding regular and glob files.
unarchive: unarchive:
src: "{{ output_dir }}/unarchive-00.{{item}}" src: "{{ output_dir }}/unarchive-00.{{item}}"
dest: "{{ output_dir }}/exclude-{{item}}" dest: "{{ output_dir }}/exclude-{{item}}"
exclude: "exclude/exclude-*.txt" exclude:
- "exclude/exclude-*.txt"
- "other/exclude-1.ext"
with_items: with_items:
- zip - zip
- tar - tar
@ -245,6 +247,7 @@
assert: assert:
that: that:
- "'exclude/exclude-1.txt' not in item.stdout" - "'exclude/exclude-1.txt' not in item.stdout"
- "'other/exclude-1.ext' not in item.stdout"
with_items: with_items:
- "{{ unarchive00.results }}" - "{{ unarchive00.results }}"