From 59ac969d2b36067f621ca30d2f8ef4d3e56c57d7 Mon Sep 17 00:00:00 2001 From: Aaron Lindsay Date: Wed, 29 Jan 2014 00:35:21 -0500 Subject: [PATCH] Add move_home option to user module --- library/system/user | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/library/system/user b/library/system/user index 0e29e443bf8..bf7af530b86 100644 --- a/library/system/user +++ b/library/system/user @@ -94,6 +94,14 @@ options: - Unless set to C(no), a home directory will be made for the user when the account is created or if the home directory does not exist. + move_home: + required: false + default: "no" + choices: [ "yes", "no" ] + description: + - If set to C(yes) when used with C(home=), attempt to move the + user's home directory to the specified directory if it isn't there + already. system: required: false default: "no" @@ -231,6 +239,7 @@ class User(object): self.force = module.params['force'] self.remove = module.params['remove'] self.createhome = module.params['createhome'] + self.move_home = module.params['move_home'] self.system = module.params['system'] self.login_class = module.params['login_class'] self.append = module.params['append'] @@ -389,7 +398,8 @@ class User(object): cmd.append(self.comment) if self.home is not None and info[5] != self.home: - cmd.append('-m') + if self.move_home: + cmd.append('-m') cmd.append('-d') cmd.append(self.home) @@ -705,7 +715,8 @@ class FreeBsdUser(User): cmd.append(self.comment) if self.home is not None and info[5] != self.home: - cmd.append('-m') + if self.move_home: + cmd.append('-m') cmd.append('-d') cmd.append(self.home) @@ -892,7 +903,8 @@ class OpenBSDUser(User): cmd.append(self.comment) if self.home is not None and info[5] != self.home: - cmd.append('-m') + if self.move_home: + cmd.append('-m') cmd.append('-d') cmd.append(self.home) @@ -1059,7 +1071,8 @@ class NetBSDUser(User): cmd.append(self.comment) if self.home is not None and info[5] != self.home: - cmd.append('-m') + if self.move_home: + cmd.append('-m') cmd.append('-d') cmd.append(self.home) @@ -1222,7 +1235,8 @@ class SunOS(User): cmd.append(self.comment) if self.home is not None and info[5] != self.home: - cmd.append('-m') + if self.move_home: + cmd.append('-m') cmd.append('-d') cmd.append(self.home) @@ -1378,7 +1392,8 @@ class AIX(User): cmd.append(self.comment) if self.home is not None and info[5] != self.home: - cmd.append('-m') + if self.move_home: + cmd.append('-m') cmd.append('-d') cmd.append(self.home) @@ -1441,6 +1456,7 @@ def main(): createhome=dict(default='yes', type='bool'), system=dict(default='no', type='bool'), # following options are specific to usermod + move_home=dict(default='no', type='bool'), append=dict(default='no', type='bool'), # following are specific to ssh key generation generate_ssh_key=dict(type='bool'), @@ -1488,6 +1504,7 @@ def main(): # modify user (note: this function is check mode aware) (rc, out, err) = user.modify_user() result['append'] = user.append + result['move_home'] = user.move_home if rc is not None and rc != 0: module.fail_json(name=user.name, msg=err, rc=rc) if user.password is not None: