Browse Source

--workdir option now present in ALL commands. Closes #1063

Ask Solem 12 years ago
parent
commit
93d615d3e2

+ 4 - 11
celery/bin/base.py

@@ -134,6 +134,7 @@ class Command(object):
         Option('-b', '--broker', default=None),
         Option('--loader', default=None),
         Option('--config', default=None),
+        Option('--workdir', default=None, dest='working_directory'),
     )
 
     #: Enable if the application should support config from the cmdline.
@@ -266,18 +267,11 @@ class Command(object):
                     option.help = ' '.join(help) % {'default': option.default}
         return parser
 
-    def prepare_preload_options(self, options):
-        """Optional handler to do additional processing of preload options.
-
-        Configuration must not have been initialized
-        until after this is called.
-
-        """
-        pass
-
     def setup_app_from_commandline(self, argv):
         preload_options = self.parse_preload_options(argv)
-        self.prepare_preload_options(preload_options)
+        workdir = preload_options.get('working_directory')
+        if workdir:
+            os.chdir(workdir)
         app = (preload_options.get('app') or
                os.environ.get('CELERY_APP') or
                self.app)
@@ -384,5 +378,4 @@ def daemon_options(default_pidfile=None, default_logfile=None):
         Option('--uid', default=None),
         Option('--gid', default=None),
         Option('--umask', default=0, type='int'),
-        Option('--workdir', default=None, dest='working_directory'),
     )

+ 0 - 5
celery/bin/celerybeat.py

@@ -68,11 +68,6 @@ class BeatCommand(Command):
         else:
             return beat().run()
 
-    def prepare_preload_options(self, options):
-        workdir = options.get('working_directory')
-        if workdir:
-            os.chdir(workdir)
-
     def get_options(self):
         c = self.app.conf
 

+ 0 - 5
celery/bin/celeryev.py

@@ -68,11 +68,6 @@ class EvCommand(Command):
                                   detach=detach)
         return self.run_evtop()
 
-    def prepare_preload_options(self, options):
-        workdir = options.get('working_directory')
-        if workdir:
-            os.chdir(workdir)
-
     def run_evdump(self):
         from celery.events.dumper import evdump
         self.set_process_status('dump')

+ 0 - 6
celery/tests/bin/test_celerybeat.py

@@ -177,12 +177,6 @@ class test_div(AppCase):
         self.assertTrue(MockDaemonContext.opened)
         self.assertTrue(MockDaemonContext.closed)
 
-    @patch('os.chdir')
-    def test_prepare_preload_options(self, chdir):
-        cmd = celerybeat_bin.BeatCommand()
-        cmd.prepare_preload_options({'working_directory': '/opt/Project'})
-        chdir.assert_called_with('/opt/Project')
-
     def test_parse_options(self):
         cmd = celerybeat_bin.BeatCommand()
         cmd.app = app_or_default()

+ 0 - 8
celery/tests/bin/test_celeryev.py

@@ -34,14 +34,6 @@ class test_EvCommand(Case):
         self.assertEqual(self.ev.run(dump=True), 'me dumper, you?')
         self.assertIn('celeryev:dump', proctitle.last[0])
 
-    @mpatch('os.chdir')
-    def test_prepare_preload_options(self, chdir):
-        self.ev.prepare_preload_options({'working_directory': '/opt/Project'})
-        chdir.assert_called_with('/opt/Project')
-        chdir.called = False
-        self.ev.prepare_preload_options({})
-        self.assertFalse(chdir.called)
-
     def test_run_top(self):
         try:
             import curses  # noqa