When putting a file in accelerated mode, make sure it's chowned correctly
This commit is contained in:
parent
7db7be192b
commit
a05eec87b2
1 changed files with 6 additions and 0 deletions
|
@ -274,11 +274,13 @@ class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
|
||||||
return dict(failed=True, msg='internal error: out_path is required')
|
return dict(failed=True, msg='internal error: out_path is required')
|
||||||
|
|
||||||
final_path = None
|
final_path = None
|
||||||
|
final_user = None
|
||||||
if 'user' in data and data.get('user') != getpass.getuser():
|
if 'user' in data and data.get('user') != getpass.getuser():
|
||||||
log("the target user doesn't match this user, we'll move the file into place via sudo")
|
log("the target user doesn't match this user, we'll move the file into place via sudo")
|
||||||
(fd,out_path) = tempfile.mkstemp(prefix='ansible.', dir=os.path.expanduser('~/.ansible/tmp/'))
|
(fd,out_path) = tempfile.mkstemp(prefix='ansible.', dir=os.path.expanduser('~/.ansible/tmp/'))
|
||||||
out_fd = os.fdopen(fd, 'w', 0)
|
out_fd = os.fdopen(fd, 'w', 0)
|
||||||
final_path = data['out_path']
|
final_path = data['out_path']
|
||||||
|
final_user = data['user']
|
||||||
else:
|
else:
|
||||||
out_path = data['out_path']
|
out_path = data['out_path']
|
||||||
out_fd = open(out_path, 'w')
|
out_fd = open(out_path, 'w')
|
||||||
|
@ -313,6 +315,10 @@ class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
|
||||||
rc, stdout, stderr = self.server.module.run_command(args, close_fds=True)
|
rc, stdout, stderr = self.server.module.run_command(args, close_fds=True)
|
||||||
if rc != 0:
|
if rc != 0:
|
||||||
return dict(failed=True, stdout="failed to copy the file into position with sudo")
|
return dict(failed=True, stdout="failed to copy the file into position with sudo")
|
||||||
|
args = ['sudo','chown',final_user,out_path,final_path]
|
||||||
|
rc, stdout, stderr = self.server.module.run_command(args, close_fds=True)
|
||||||
|
if rc != 0:
|
||||||
|
return dict(failed=True, stdout="failed to chown the file via sudo")
|
||||||
return dict()
|
return dict()
|
||||||
|
|
||||||
def daemonize(module, password, port, minutes):
|
def daemonize(module, password, port, minutes):
|
||||||
|
|
Loading…
Reference in a new issue