copy module: cleanup and if directory_mode not set default to umask
This commit is contained in:
parent
cf4a6b39cc
commit
890202e4c0
1 changed files with 14 additions and 1 deletions
|
@ -103,7 +103,12 @@ EXAMPLES = '''
|
||||||
- copy: src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf %s'
|
- copy: src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf %s'
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
def split_pre_existing_dir(dirname):
|
def split_pre_existing_dir(dirname):
|
||||||
|
'''
|
||||||
|
Return the first pre-existing directory and a list of the new directories that will be created.
|
||||||
|
'''
|
||||||
|
|
||||||
head, tail = os.path.split(dirname)
|
head, tail = os.path.split(dirname)
|
||||||
if not os.path.exists(head):
|
if not os.path.exists(head):
|
||||||
(pre_existing_dir, new_directory_list) = split_pre_existing_dir(head)
|
(pre_existing_dir, new_directory_list) = split_pre_existing_dir(head)
|
||||||
|
@ -112,7 +117,12 @@ def split_pre_existing_dir(dirname):
|
||||||
new_directory_list.insert(0, tail)
|
new_directory_list.insert(0, tail)
|
||||||
return (pre_existing_dir, new_directory_list)
|
return (pre_existing_dir, new_directory_list)
|
||||||
|
|
||||||
|
|
||||||
def adjust_recursive_directory_permissions(pre_existing_dir, new_directory_list, module, directory_args, changed):
|
def adjust_recursive_directory_permissions(pre_existing_dir, new_directory_list, module, directory_args, changed):
|
||||||
|
'''
|
||||||
|
Walk the new directories list and make sure that permissions are as we would expect
|
||||||
|
'''
|
||||||
|
|
||||||
if len(new_directory_list) > 0:
|
if len(new_directory_list) > 0:
|
||||||
working_dir = os.path.join(pre_existing_dir, new_directory_list.pop(0))
|
working_dir = os.path.join(pre_existing_dir, new_directory_list.pop(0))
|
||||||
directory_args['path'] = working_dir
|
directory_args['path'] = working_dir
|
||||||
|
@ -120,6 +130,7 @@ def adjust_recursive_directory_permissions(pre_existing_dir, new_directory_list,
|
||||||
changed = adjust_recursive_directory_permissions(working_dir, new_directory_list, module, directory_args, changed)
|
changed = adjust_recursive_directory_permissions(working_dir, new_directory_list, module, directory_args, changed)
|
||||||
return changed
|
return changed
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
module = AnsibleModule(
|
module = AnsibleModule(
|
||||||
|
@ -165,6 +176,8 @@ def main():
|
||||||
directory_mode = module.params["directory_mode"]
|
directory_mode = module.params["directory_mode"]
|
||||||
if directory_mode is not None:
|
if directory_mode is not None:
|
||||||
directory_args['mode'] = directory_mode
|
directory_args['mode'] = directory_mode
|
||||||
|
else:
|
||||||
|
directory_args['mode'] = None
|
||||||
adjust_recursive_directory_permissions(pre_existing_dir, new_directory_list, module, directory_args, changed)
|
adjust_recursive_directory_permissions(pre_existing_dir, new_directory_list, module, directory_args, changed)
|
||||||
|
|
||||||
if os.path.exists(dest):
|
if os.path.exists(dest):
|
||||||
|
|
Loading…
Reference in a new issue