Fix lvg module idempotency
In [1] changes were made to ensure that the physical
devices were appropriately filtered, but the dev_list
which is used to prepare the filter is modified from
the original arguments to resolve any symlinks. This
results in the existing devices given in the module
args to be left out of the filter, resulting
in the module trying to add the same device again
every time the task is executed.
In this PR we change dev_list to be a copy of the
module arguments so that we're able to add the given
pv list from the module arguments into the filter
as well, ensuring that there is idempotence when
running the task again.
[1] https://github.com/ansible/ansible/pull/38446
(cherry picked from commit 1bae00b5d2
)
This commit is contained in:
parent
02b63c4732
commit
14a35eb002
1 changed files with 2 additions and 2 deletions
|
@ -150,7 +150,7 @@ def main():
|
|||
|
||||
dev_list = []
|
||||
if module.params['pvs']:
|
||||
dev_list = module.params['pvs']
|
||||
dev_list = list(module.params['pvs'])
|
||||
elif state == 'present':
|
||||
module.fail_json(msg="No physical volumes given.")
|
||||
|
||||
|
@ -167,7 +167,7 @@ def main():
|
|||
# get pv list
|
||||
pvs_cmd = module.get_bin_path('pvs', True)
|
||||
if dev_list:
|
||||
pvs_filter = ' || '. join(['pv_name = {0}'.format(x) for x in dev_list])
|
||||
pvs_filter = ' || '. join(['pv_name = {0}'.format(x) for x in dev_list + module.params['pvs']])
|
||||
pvs_filter = "--select '%s'" % pvs_filter
|
||||
else:
|
||||
pvs_filter = ''
|
||||
|
|
Loading…
Reference in a new issue