Skip to content

Commit

Permalink
When putting a file in accelerated mode, make sure it's chowned corre…
Browse files Browse the repository at this point in the history
…ctly
  • Loading branch information
jimi-c committed Sep 5, 2013
1 parent 68bffb1 commit f04af91
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions library/utilities/accelerate
Original file line number Diff line number Diff line change
Expand Up @@ -274,11 +274,13 @@ class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
return dict(failed=True, msg='internal error: out_path is required')

final_path = None
final_user = None
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")
(fd,out_path) = tempfile.mkstemp(prefix='ansible.', dir=os.path.expanduser('~/.ansible/tmp/'))
out_fd = os.fdopen(fd, 'w', 0)
final_path = data['out_path']
final_user = data['user']
else:
out_path = data['out_path']
out_fd = open(out_path, 'w')
Expand Down Expand Up @@ -313,6 +315,10 @@ class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
rc, stdout, stderr = self.server.module.run_command(args, close_fds=True)
if rc != 0:
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()

def daemonize(module, password, port, minutes):
Expand Down

0 comments on commit f04af91

Please sign in to comment.