You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by Eric Yang <er...@gmail.com> on 2011/11/30 05:50:46 UTC
Fwd: svn commit: r1208264 - in /incubator/ambari/trunk:
agent/src/main/python/ambari_agent/ controller/src/main/java/org/apache/ambari/controller/
controller/src/main/java/org/apache/ambari/resource/statemachine/
It looks like the latest change to FileUtil is changing ambari agent
process umask after file has been created. The umask should be
restored to existing umask after the process is done creating the
files. This prevents untracked umask changes lingering in the system.
What is the reason to preserve umask change?
regards,
Eric
---------- Forwarded message ----------
From: <dd...@apache.org>
Date: Tue, Nov 29, 2011 at 8:22 PM
Subject: svn commit: r1208264 - in /incubator/ambari/trunk:
agent/src/main/python/ambari_agent/
controller/src/main/java/org/apache/ambari/controller/
controller/src/main/java/org/apache/ambari/resource/statemachine/
To: ambari-commits@incubator.apache.org
Author: ddas
Date: Wed Nov 30 04:22:15 2011
New Revision: 1208264
URL: http://svn.apache.org/viewvc?rev=1208264&view=rev
Log:
Follow-up commit to AMBARI-140
Modified: incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py?rev=1208264&r1=1208263&r2=1208264&view=diff
==============================================================================
--- incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
(original)
+++ incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
Wed Nov 30 04:22:15 2011
@@ -36,11 +36,18 @@ def writeFile(action, result):
oldCwd = os.getcwd()
fileInfo = action['file']
try:
- path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
+ if fileInfo['path'].startswith('/'):
+ path = fileInfo['path']
+ else:
+ path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
logger.info("path: %s" % path)
os.chdir(path)
user=fileInfo['owner']
+ if user is None:
+ user=getpass.getuser()
group=fileInfo['group']
+ if group is None:
+ group=getpass.getgroup()
filename=fileInfo['path']
content=fileInfo['data']
try:
@@ -50,9 +57,15 @@ def writeFile(action, result):
group=getgrnam(group)[2]
except Exception:
logger.warn("can not find user uid/gid: (%s/%s) for writing %s"
% (user, group, filename))
- permission=int(fileInfo['permission'])
- umask=int(fileInfo['umask'])
+ if fileInfo['permission'] is not None:
+ permission=int(fileInfo['permission'],8)
+ else:
+ permission=0750
oldMask = os.umask(0)
+ if fileInfo['umask'] is not None:
+ umask=int(fileInfo['umask'])
+ else:
+ umask=oldMask
os.umask(int(umask))
prefix = os.path.dirname(filename)
try:
Re: svn commit: r1208264 - in /incubator/ambari/trunk:
agent/src/main/python/ambari_agent/ controller/src/main/java/org/apache/ambari/controller/
controller/src/main/java/org/apache/ambari/resource/statemachine/
Posted by Devaraj Das <dd...@hortonworks.com>.
Thanks for pointing it out, Eric. I'll take a look and fix it.
Sent from my iPhone
On Nov 29, 2011, at 8:51 PM, Eric Yang <er...@gmail.com> wrote:
> It looks like the latest change to FileUtil is changing ambari agent
> process umask after file has been created. The umask should be
> restored to existing umask after the process is done creating the
> files. This prevents untracked umask changes lingering in the system.
> What is the reason to preserve umask change?
>
> regards,
> Eric
>
> ---------- Forwarded message ----------
> From: <dd...@apache.org>
> Date: Tue, Nov 29, 2011 at 8:22 PM
> Subject: svn commit: r1208264 - in /incubator/ambari/trunk:
> agent/src/main/python/ambari_agent/
> controller/src/main/java/org/apache/ambari/controller/
> controller/src/main/java/org/apache/ambari/resource/statemachine/
> To: ambari-commits@incubator.apache.org
>
>
> Author: ddas
> Date: Wed Nov 30 04:22:15 2011
> New Revision: 1208264
>
> URL: http://svn.apache.org/viewvc?rev=1208264&view=rev
> Log:
> Follow-up commit to AMBARI-140
>
> Modified: incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
> URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py?rev=1208264&r1=1208263&r2=1208264&view=diff
> ==============================================================================
> --- incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
> (original)
> +++ incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
> Wed Nov 30 04:22:15 2011
> @@ -36,11 +36,18 @@ def writeFile(action, result):
> oldCwd = os.getcwd()
> fileInfo = action['file']
> try:
> - path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
> + if fileInfo['path'].startswith('/'):
> + path = fileInfo['path']
> + else:
> + path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
> logger.info("path: %s" % path)
> os.chdir(path)
> user=fileInfo['owner']
> + if user is None:
> + user=getpass.getuser()
> group=fileInfo['group']
> + if group is None:
> + group=getpass.getgroup()
> filename=fileInfo['path']
> content=fileInfo['data']
> try:
> @@ -50,9 +57,15 @@ def writeFile(action, result):
> group=getgrnam(group)[2]
> except Exception:
> logger.warn("can not find user uid/gid: (%s/%s) for writing %s"
> % (user, group, filename))
> - permission=int(fileInfo['permission'])
> - umask=int(fileInfo['umask'])
> + if fileInfo['permission'] is not None:
> + permission=int(fileInfo['permission'],8)
> + else:
> + permission=0750
> oldMask = os.umask(0)
> + if fileInfo['umask'] is not None:
> + umask=int(fileInfo['umask'])
> + else:
> + umask=oldMask
> os.umask(int(umask))
> prefix = os.path.dirname(filename)
> try:
Re: svn commit: r1208264 - in /incubator/ambari/trunk:
agent/src/main/python/ambari_agent/ controller/src/main/java/org/apache/ambari/controller/
controller/src/main/java/org/apache/ambari/resource/statemachine/
Posted by Eric Yang <er...@gmail.com>.
My mistake. I read the patch incorrectly. Thanks
regards,
Eric
On Wed, Nov 30, 2011 at 10:51 AM, Devaraj Das <dd...@hortonworks.com> wrote:
> Eric, I was looking at what I did, and I am not clear on what I missed.. The umask is restored to the old value at some point after the file creation (and this was already done; i didn't change that part).
>
> Could you please clarify?
>
> On Nov 29, 2011, at 8:50 PM, Eric Yang wrote:
>
>> It looks like the latest change to FileUtil is changing ambari agent
>> process umask after file has been created. The umask should be
>> restored to existing umask after the process is done creating the
>> files. This prevents untracked umask changes lingering in the system.
>> What is the reason to preserve umask change?
>>
>> regards,
>> Eric
>>
>> ---------- Forwarded message ----------
>> From: <dd...@apache.org>
>> Date: Tue, Nov 29, 2011 at 8:22 PM
>> Subject: svn commit: r1208264 - in /incubator/ambari/trunk:
>> agent/src/main/python/ambari_agent/
>> controller/src/main/java/org/apache/ambari/controller/
>> controller/src/main/java/org/apache/ambari/resource/statemachine/
>> To: ambari-commits@incubator.apache.org
>>
>>
>> Author: ddas
>> Date: Wed Nov 30 04:22:15 2011
>> New Revision: 1208264
>>
>> URL: http://svn.apache.org/viewvc?rev=1208264&view=rev
>> Log:
>> Follow-up commit to AMBARI-140
>>
>> Modified: incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
>> URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py?rev=1208264&r1=1208263&r2=1208264&view=diff
>> ==============================================================================
>> --- incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
>> (original)
>> +++ incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
>> Wed Nov 30 04:22:15 2011
>> @@ -36,11 +36,18 @@ def writeFile(action, result):
>> oldCwd = os.getcwd()
>> fileInfo = action['file']
>> try:
>> - path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
>> + if fileInfo['path'].startswith('/'):
>> + path = fileInfo['path']
>> + else:
>> + path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
>> logger.info("path: %s" % path)
>> os.chdir(path)
>> user=fileInfo['owner']
>> + if user is None:
>> + user=getpass.getuser()
>> group=fileInfo['group']
>> + if group is None:
>> + group=getpass.getgroup()
>> filename=fileInfo['path']
>> content=fileInfo['data']
>> try:
>> @@ -50,9 +57,15 @@ def writeFile(action, result):
>> group=getgrnam(group)[2]
>> except Exception:
>> logger.warn("can not find user uid/gid: (%s/%s) for writing %s"
>> % (user, group, filename))
>> - permission=int(fileInfo['permission'])
>> - umask=int(fileInfo['umask'])
>> + if fileInfo['permission'] is not None:
>> + permission=int(fileInfo['permission'],8)
>> + else:
>> + permission=0750
>> oldMask = os.umask(0)
>> + if fileInfo['umask'] is not None:
>> + umask=int(fileInfo['umask'])
>> + else:
>> + umask=oldMask
>> os.umask(int(umask))
>> prefix = os.path.dirname(filename)
>> try:
>
Re: svn commit: r1208264 - in /incubator/ambari/trunk: agent/src/main/python/ambari_agent/ controller/src/main/java/org/apache/ambari/controller/ controller/src/main/java/org/apache/ambari/resource/statemachine/
Posted by Devaraj Das <dd...@hortonworks.com>.
Eric, I was looking at what I did, and I am not clear on what I missed.. The umask is restored to the old value at some point after the file creation (and this was already done; i didn't change that part).
Could you please clarify?
On Nov 29, 2011, at 8:50 PM, Eric Yang wrote:
> It looks like the latest change to FileUtil is changing ambari agent
> process umask after file has been created. The umask should be
> restored to existing umask after the process is done creating the
> files. This prevents untracked umask changes lingering in the system.
> What is the reason to preserve umask change?
>
> regards,
> Eric
>
> ---------- Forwarded message ----------
> From: <dd...@apache.org>
> Date: Tue, Nov 29, 2011 at 8:22 PM
> Subject: svn commit: r1208264 - in /incubator/ambari/trunk:
> agent/src/main/python/ambari_agent/
> controller/src/main/java/org/apache/ambari/controller/
> controller/src/main/java/org/apache/ambari/resource/statemachine/
> To: ambari-commits@incubator.apache.org
>
>
> Author: ddas
> Date: Wed Nov 30 04:22:15 2011
> New Revision: 1208264
>
> URL: http://svn.apache.org/viewvc?rev=1208264&view=rev
> Log:
> Follow-up commit to AMBARI-140
>
> Modified: incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
> URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py?rev=1208264&r1=1208263&r2=1208264&view=diff
> ==============================================================================
> --- incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
> (original)
> +++ incubator/ambari/trunk/agent/src/main/python/ambari_agent/FileUtil.py
> Wed Nov 30 04:22:15 2011
> @@ -36,11 +36,18 @@ def writeFile(action, result):
> oldCwd = os.getcwd()
> fileInfo = action['file']
> try:
> - path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
> + if fileInfo['path'].startswith('/'):
> + path = fileInfo['path']
> + else:
> + path = AmbariConfig.config.get('agent','prefix')+"/clusters/"+action['clusterId']+"-"+action['role']
> logger.info("path: %s" % path)
> os.chdir(path)
> user=fileInfo['owner']
> + if user is None:
> + user=getpass.getuser()
> group=fileInfo['group']
> + if group is None:
> + group=getpass.getgroup()
> filename=fileInfo['path']
> content=fileInfo['data']
> try:
> @@ -50,9 +57,15 @@ def writeFile(action, result):
> group=getgrnam(group)[2]
> except Exception:
> logger.warn("can not find user uid/gid: (%s/%s) for writing %s"
> % (user, group, filename))
> - permission=int(fileInfo['permission'])
> - umask=int(fileInfo['umask'])
> + if fileInfo['permission'] is not None:
> + permission=int(fileInfo['permission'],8)
> + else:
> + permission=0750
> oldMask = os.umask(0)
> + if fileInfo['umask'] is not None:
> + umask=int(fileInfo['umask'])
> + else:
> + umask=oldMask
> os.umask(int(umask))
> prefix = os.path.dirname(filename)
> try: