From de16785b8ce961c5eb152854032c8a9306131e87 Mon Sep 17 00:00:00 2001 From: Will Thames Date: Tue, 5 Aug 2014 10:41:26 +1000 Subject: [PATCH] Unarchive should work when parent directory is not writable Correct unarchive so that the checks for writeability are sensible. Added a test for when parent directory is not writable --- files/unarchive | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/files/unarchive b/files/unarchive index 460353a63b8..096f0355120 100644 --- a/files/unarchive +++ b/files/unarchive @@ -115,8 +115,6 @@ class TgzFile(object): self.zipflag = 'z' def is_unarchived(self): - dirof = os.path.dirname(self.dest) - destbase = os.path.basename(self.dest) cmd = '%s -v -C "%s" --diff -%sf "%s"' % (self.cmd_path, self.dest, self.zipflag, self.src) rc, out, err = self.module.run_command(cmd) unarchived = (rc == 0) @@ -220,10 +218,10 @@ def main(): ) # is dest OK to receive tar file? - if not os.path.exists(os.path.dirname(dest)): - module.fail_json(msg="Destination directory '%s' does not exist" % (os.path.dirname(dest))) - if not os.access(os.path.dirname(dest), os.W_OK): - module.fail_json(msg="Destination '%s' not writable" % (os.path.dirname(dest))) + if not os.path.isdir(dest): + module.fail_json(msg="Destination '%s' is not a directory" % dest) + if not os.access(dest, os.W_OK): + module.fail_json(msg="Destination '%s' not writable" % dest) handler = pick_handler(src, dest, module)