From fea8995df162373cb9875aeceb94861b52636c08 Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 14 Oct 2015 12:13:57 +0100 Subject: [PATCH] Fix bug #1105 - incorrect use of lstrip() Remove only the literal prefix '/dev/mapper/' - not any of the characters in '/dev/mapper/' - from the name param of the crypttab module. --- lib/ansible/modules/extras/system/crypttab.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) mode change 100644 => 100755 lib/ansible/modules/extras/system/crypttab.py diff --git a/lib/ansible/modules/extras/system/crypttab.py b/lib/ansible/modules/extras/system/crypttab.py old mode 100644 new mode 100755 index 44d9f859791..2a8cdc9d36c --- a/lib/ansible/modules/extras/system/crypttab.py +++ b/lib/ansible/modules/extras/system/crypttab.py @@ -29,7 +29,7 @@ options: name: description: - Name of the encrypted block device as it appears in the C(/etc/crypttab) file, or - optionaly prefixed with C(/dev/mapper), as it appears in the filesystem. I(/dev/mapper) + optionaly prefixed with C(/dev/mapper/), as it appears in the filesystem. I(/dev/mapper/) will be stripped from I(name). required: true default: null @@ -96,12 +96,15 @@ def main(): supports_check_mode = True ) - name = module.params['name'].lstrip('/dev/mapper') backing_device = module.params['backing_device'] password = module.params['password'] opts = module.params['opts'] state = module.params['state'] path = module.params['path'] + name = module.params['name'] + if name.startswith('/dev/mapper/'): + name = name[len('/dev/mapper/'):] + if state != 'absent' and backing_device is None and password is None and opts is None: module.fail_json(msg="expected one or more of 'backing_device', 'password' or 'opts'",