Prechádzať zdrojové kódy

Change default mask

Conflicts:
	celery/platforms.py
Ask Solem 10 rokov pred
rodič
commit
fbfa5dc2e9

+ 1 - 1
celery/app/base.py

@@ -30,7 +30,7 @@ from celery._state import (
     _announce_app_finalized,
 )
 from celery.exceptions import AlwaysEagerIgnored, ImproperlyConfigured
-from celery.five import items, values
+from celery.five import values
 from celery.loaders import get_loader_cls
 from celery.local import PromiseProxy, maybe_evaluate
 from celery.utils.functional import first, maybe_list

+ 3 - 2
celery/bin/base.py

@@ -56,7 +56,8 @@ in any command that also has a `--detach` option.
 
 .. cmdoption:: --umask
 
-    Effective umask of the process after detaching. Default is 0.
+    Effective umask (in octal) of the process after detaching.  Inherits
+    the umask of the parent process by default.
 
 .. cmdoption:: --workdir
 
@@ -648,5 +649,5 @@ def daemon_options(default_pidfile=None, default_logfile=None):
         Option('--pidfile', default=default_pidfile),
         Option('--uid', default=None),
         Option('--gid', default=None),
-        Option('--umask', default=0, type='int'),
+        Option('--umask', default=None),
     )

+ 1 - 1
celery/bin/celeryd_detach.py

@@ -38,7 +38,7 @@ OPTION_LIST = daemon_options(default_pidfile='celeryd.pid') + (
 
 
 def detach(path, argv, logfile=None, pidfile=None, uid=None,
-           gid=None, umask=0, working_directory=None, fake=False, app=None):
+           gid=None, umask=None, working_directory=None, fake=False, app=None):
     fake = 1 if C_FAKEFORK else fake
     with detached(logfile, pidfile, uid, gid, umask, working_directory, fake):
         try:

+ 5 - 3
celery/platforms.py

@@ -56,7 +56,6 @@ SYSTEM = _platform.system()
 IS_OSX = SYSTEM == 'Darwin'
 IS_WINDOWS = SYSTEM == 'Windows'
 
-DAEMON_UMASK = 0
 DAEMON_WORKDIR = '/'
 
 PIDFILE_FLAGS = os.O_CREAT | os.O_EXCL | os.O_WRONLY
@@ -295,8 +294,10 @@ class DaemonContext(object):
 
     def __init__(self, pidfile=None, workdir=None, umask=None,
                  fake=False, after_chdir=None, **kwargs):
+        if isinstance(umask, string_t):
+            umask = int(umask, 8)  # convert str -> octal
         self.workdir = workdir or DAEMON_WORKDIR
-        self.umask = DAEMON_UMASK if umask is None else umask
+        self.umask = umask
         self.fake = fake
         self.after_chdir = after_chdir
         self.stdfds = (sys.stdin, sys.stdout, sys.stderr)
@@ -312,7 +313,8 @@ class DaemonContext(object):
                 self._detach()
 
             os.chdir(self.workdir)
-            os.umask(self.umask)
+            if self.umask is not None:
+                os.umask(self.umask)
 
             if self.after_chdir:
                 self.after_chdir()