dnf - fix conf_file loading (#50515)
This commit is contained in:
parent
d21ed42f4b
commit
63e454a4b2
3 changed files with 44 additions and 43 deletions
2
changelogs/fragments/dnf-conf-file.yaml
Normal file
2
changelogs/fragments/dnf-conf-file.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- dnf - fix issue where ``conf_file`` was not being loaded properly
|
|
@ -497,6 +497,17 @@ class DnfModule(YumDnf):
|
||||||
|
|
||||||
conf = base.conf
|
conf = base.conf
|
||||||
|
|
||||||
|
# Change the configuration file path if provided, this must be done before conf.read() is called
|
||||||
|
if conf_file:
|
||||||
|
# Fail if we can't read the configuration file.
|
||||||
|
if not os.access(conf_file, os.R_OK):
|
||||||
|
self.module.fail_json(
|
||||||
|
msg="cannot read configuration file", conf_file=conf_file,
|
||||||
|
results=[],
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
conf.config_file_path = conf_file
|
||||||
|
|
||||||
# Read the configuration file
|
# Read the configuration file
|
||||||
conf.read()
|
conf.read()
|
||||||
|
|
||||||
|
@ -545,17 +556,6 @@ class DnfModule(YumDnf):
|
||||||
if self.download_only:
|
if self.download_only:
|
||||||
conf.downloadonly = True
|
conf.downloadonly = True
|
||||||
|
|
||||||
# Change the configuration file path if provided
|
|
||||||
if conf_file:
|
|
||||||
# Fail if we can't read the configuration file.
|
|
||||||
if not os.access(conf_file, os.R_OK):
|
|
||||||
self.module.fail_json(
|
|
||||||
msg="cannot read configuration file", conf_file=conf_file,
|
|
||||||
results=[],
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
conf.config_file_path = conf_file
|
|
||||||
|
|
||||||
# Default in dnf upstream is true
|
# Default in dnf upstream is true
|
||||||
conf.clean_requirements_on_remove = self.autoremove
|
conf.clean_requirements_on_remove = self.autoremove
|
||||||
|
|
||||||
|
|
|
@ -627,41 +627,40 @@
|
||||||
that:
|
that:
|
||||||
- "rpm_lsof_result is failed"
|
- "rpm_lsof_result is failed"
|
||||||
|
|
||||||
- name: exclude lsof
|
- name: create conf file that excludes lsof
|
||||||
lineinfile:
|
copy:
|
||||||
dest: /etc/dnf/dnf.conf
|
content: |
|
||||||
regexp: (^exclude=)(.)*
|
[main]
|
||||||
line: "exclude=lsof*"
|
exclude=lsof*
|
||||||
state: present
|
dest: '{{ output_dir }}/test-dnf.conf'
|
||||||
|
register: test_dnf_copy
|
||||||
|
|
||||||
# begin test case where disable_excludes is supported
|
- block:
|
||||||
- name: Try install lsof without disable_excludes
|
# begin test case where disable_excludes is supported
|
||||||
dnf: name=lsof state=latest
|
- name: Try install lsof without disable_excludes
|
||||||
register: dnf_lsof_result
|
dnf: name=lsof state=latest conf_file={{ test_dnf_copy.dest }}
|
||||||
ignore_errors: True
|
register: dnf_lsof_result
|
||||||
|
ignore_errors: True
|
||||||
|
|
||||||
- name: verify lsof did not install because it is in exclude list
|
- name: verify lsof did not install because it is in exclude list
|
||||||
assert:
|
assert:
|
||||||
that:
|
that:
|
||||||
- "dnf_lsof_result is failed"
|
- "dnf_lsof_result is failed"
|
||||||
|
|
||||||
- name: install lsof with disable_excludes
|
- name: install lsof with disable_excludes
|
||||||
dnf: name=lsof state=latest disable_excludes=all
|
dnf: name=lsof state=latest disable_excludes=all conf_file={{ test_dnf_copy.dest }}
|
||||||
register: dnf_lsof_result_using_excludes
|
register: dnf_lsof_result_using_excludes
|
||||||
|
|
||||||
- name: verify lsof did install using disable_excludes=all
|
|
||||||
assert:
|
|
||||||
that:
|
|
||||||
- "dnf_lsof_result_using_excludes is success"
|
|
||||||
- "dnf_lsof_result_using_excludes is changed"
|
|
||||||
- "dnf_lsof_result_using_excludes is not failed"
|
|
||||||
|
|
||||||
- name: remove exclude lsof (cleanup dnf.conf)
|
|
||||||
lineinfile:
|
|
||||||
dest: /etc/dnf/dnf.conf
|
|
||||||
regexp: (^exclude=lsof*)
|
|
||||||
line: "exclude="
|
|
||||||
state: present
|
|
||||||
|
|
||||||
|
- name: verify lsof did install using disable_excludes=all
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "dnf_lsof_result_using_excludes is success"
|
||||||
|
- "dnf_lsof_result_using_excludes is changed"
|
||||||
|
- "dnf_lsof_result_using_excludes is not failed"
|
||||||
|
always:
|
||||||
|
- name: remove exclude lsof conf file
|
||||||
|
file:
|
||||||
|
path: '{{ output_dir }}/test-dnf.conf'
|
||||||
|
state: absent
|
||||||
|
|
||||||
# end test case where disable_excludes is supported
|
# end test case where disable_excludes is supported
|
||||||
|
|
Loading…
Reference in a new issue