소스 검색

Broker option (-b URL) now works with celeryctl, camqadm and celeryev

Ask Solem 13 년 전
부모
커밋
9497342cfa
3개의 변경된 파일19개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 1
      celery/app/base.py
  2. 1 1
      celery/app/defaults.py
  3. 13 0
      celery/bin/celeryctl.py

+ 5 - 1
celery/app/base.py

@@ -11,6 +11,7 @@ Application Base Class.
 from __future__ import absolute_import
 from __future__ import with_statement
 
+import os
 import platform as _platform
 import sys
 
@@ -122,7 +123,10 @@ class Settings(datastructures.ConfigurationView):
 
     @property
     def BROKER_HOST(self):
-        return self.get("BROKER_URL") or self.get("BROKER_HOST")
+
+        return (os.environ.get("CELERY_BROKER_URL") or
+                self.get("BROKER_URL") or
+                self.get("BROKER_HOST"))
 
 
 class BaseApp(object):

+ 1 - 1
celery/app/defaults.py

@@ -46,7 +46,7 @@ class Option(object):
 
 NAMESPACES = {
     "BROKER": {
-        "URL": Option(os.environ.get("CELERY_BROKER_URL"), type="string"),
+        "URL": Option(None, type="string"),
         "HOST": Option(None, type="string"),
         "PORT": Option(type="int"),
         "USER": Option(None, type="string"),

+ 13 - 0
celery/bin/celeryctl.py

@@ -331,8 +331,21 @@ class celeryctl(CeleryCommand):
         except Error:
             return self.execute("help", argv)
 
+    def remove_options_at_beginning(self, argv, index=0):
+        while index <= len(argv):
+            value = argv[index]
+            if value.startswith("--"):
+                pass
+            elif value.startswith("-"):
+                index += 1
+            else:
+                return argv[index:]
+            index += 1
+        return []
+
     def handle_argv(self, prog_name, argv):
         self.prog_name = prog_name
+        argv = self.remove_options_at_beginning(argv)
         try:
             command = argv[0]
         except IndexError: