Chris McDonough преди 19 години
родител
ревизия
93dd1b28f7
променени са 6 файла, в които са добавени 54 реда и са изтрити 56 реда
  1. 0 2
      TODO.txt
  2. 9 9
      sample.conf
  3. 6 6
      src/supervisor/http.py
  4. 24 24
      src/supervisor/options.py
  5. 4 4
      src/supervisor/supervisord.py
  6. 11 11
      src/supervisor/tests.py

+ 0 - 2
TODO.txt

@@ -18,8 +18,6 @@
 
 - Create named process log files after we setuid.
 
-- Change xmlrpc_user/xmlrpc_password to http_X.
-
 - Usage messages when we invoke supervisord/supervisorctl -h
 
 - Tail main log.

+ 9 - 9
sample.conf

@@ -1,10 +1,10 @@
 [supervisord]
-;xmlrpc_port=supervisor.sock ; (default is to run a UNIX domain socket server)
-xmlrpc_port=127.0.0.1:9001  ; (alternately, ip_address:port specifies AF_INET)
+;http_port=supervisor.sock ; (default is to run a UNIX domain socket server)
+http_port=127.0.0.1:9001  ; (alternately, ip_address:port specifies AF_INET)
 ;sockchmod=0700              ; AF_UNIX socketmode (AF_INET ignore, default 0700)
 ;sockchown=nobody.nogroup     ; AF_UNIX socket uid.gid owner (AF_INET ignores)
 ;umask=022                   ; (process file creation umask;default 022)
-logfile=/tmp/supervisord.log     ; (main log file;default $CWD/supervisord.log)
+logfile=supervisord.log     ; (main log file;default $CWD/supervisord.log)
 logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
 logfile_backups=10          ; (num of main logfile rotation backups;default 10)
 loglevel=info               ; (logging level;default info; others: debug,warn)
@@ -17,8 +17,8 @@ backofflimit=3              ; (child process restart seconds;default 3)
 
 ;nocleanup=true              ; (don't clean up tempfiles at start;default false)
 ;forever=false               ; (keep restarting processes forever;default false)
-;xmlrpc_username=user        ; (default is no username (open system))
-;xmlrpc_password=123         ; (default is no password (open system))
+;http_username=user        ; (default is no username (open system))
+;http_password=123         ; (default is no password (open system))
 ;childlogdir=/tmp            ; ('AUTO' child log dir, default $TEMP)
 ;user=nobody                 ; (default is current user, required if root)
 ;directory=/tmp              ; (default is not to cd during start)
@@ -26,21 +26,21 @@ backofflimit=3              ; (child process restart seconds;default 3)
 [supervisorctl]
 ;serverurl=unix://supervisor.sock ; use a unix:// URL to specify a domain socket
 serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
-;username=chris              ; should be same as xmlrpc_username if set
-;password=123                ; should be same as xmlrpc_password if set
+;username=chris              ; should be same as http_username if set
+;password=123                ; should be same as http_password if set
 ;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
 
 ;[program:theprogramname]
 ;command=/bin/cat            ; the program (relative uses PATH, can take args)
 ;autostart=true              ; start at supervisord start (default: true)
 ;autorestart=true            ; retstart at unexpected quit (default: true)
-;user=chrism                 ; setuid to this user account to run the program
+;user=chrism                 ; setuid to this UNIX account to run the program
 ;logfile=/var/log/cat.log    ; child log path, use NONE for none; default AUTO
 ;logfile_backups=2           ; # of logfile backups if autorotating (default 1)
 ;logfile_maxbytes=1MB        ; max # logfile bytes before rotation (default 5MB)
 ;stopsignal=QUIT             ; signal used to kill process (default TERM)
 ;exitcodes=0,2               ; 'expected' exit codes for process (default 0,2)
-;log_stderr=true             ; if true, log stderr mingled in stdout (def false)
+;log_stderr=true             ; if true, stderr mingled w/ stdout log (def false)
 
 [program:cat]
 command=/bin/cat

+ 6 - 6
src/supervisor/http.py

@@ -891,11 +891,11 @@ class supervisor_ui_handler(default_handler.default_handler):
 
 def makeHTTPServer(supervisord):
     options = supervisord.options
-    if not options.xmlrpc_port:
+    if not options.http_port:
         return
 
-    username = options.xmlrpc_username
-    password = options.xmlrpc_password
+    username = options.http_username
+    password = options.http_password
 
     class LogWrapper:
         def log(self, msg):
@@ -904,13 +904,13 @@ def makeHTTPServer(supervisord):
             options.logger.info(msg)
     wrapper = LogWrapper()
 
-    family = options.xmlrpc_port.family
+    family = options.http_port.family
     
     if family == socket.AF_INET:
-        host, port = options.xmlrpc_port.address
+        host, port = options.http_port.address
         hs = supervisor_af_inet_http_server(host, port, logger_object=wrapper)
     elif family == socket.AF_UNIX:
-        socketname = options.xmlrpc_port.address
+        socketname = options.http_port.address
         sockchmod = options.sockchmod
         sockchown = options.sockchown
         hs = supervisor_af_unix_http_server(socketname, sockchmod, sockchown,

+ 24 - 24
src/supervisor/options.py

@@ -20,9 +20,9 @@ Options:
 -q/--childlogdir DIRECTORY -- the log directory for child process logs
 -k/--nocleanup --  prevent the process from performing cleanup (removal of
                    orphaned child log files, etc.) at startup.
--w/--xmlrpc_port SOCKET -- the host&port XML-RPC server should listen on
--g/--xmlrpc_username STR -- the username for XML-RPC auth
--r/--xmlrpc_password STR -- the password for XML-RPC auth
+-w/--http_port SOCKET -- the host&port XML-RPC server should listen on
+-g/--http_username STR -- the username for HTTP auth
+-r/--http_password STR -- the password for HTTP auth
 -a/--minfds NUM -- the minimum number of file descriptors for start success
 --minprocs NUM  -- the minimum number of processes available for start success
 """
@@ -488,12 +488,12 @@ class ServerOptions(Options):
                  datatypes.existing_dirpath, default="supervisor")
         self.add("childlogdir", "supervisord.childlogdir", "q:", "childlogdir=",
                  datatypes.existing_directory, default=tempfile.gettempdir())
-        self.add("xmlrpc_port", "supervisord.xmlrpc_port", "w:", "xmlrpc_port=",
+        self.add("http_port", "supervisord.http_port", "w:", "http_port=",
                  datatypes.SocketAddress, default=None)
-        self.add("xmlrpc_username", "supervisord.xmlrpc_username", "g:",
-                 "xmlrpc_username=", str, default=None)
-        self.add("xmlrpc_password", "supervisord.xmlrpc_password", "r:",
-                 "xmlrpc_password=", str, default=None)
+        self.add("http_username", "supervisord.http_username", "g:",
+                 "http_username=", str, default=None)
+        self.add("http_password", "supervisord.http_password", "r:",
+                 "http_password=", str, default=None)
         self.add("minfds", "supervisord.minfds",
                  "a:", "minfds=", int, default=1024)
         self.add("minprocs", "supervisord.minprocs",
@@ -648,23 +648,23 @@ class ServerOptions(Options):
         childlogdir = datatypes.existing_directory(childlogdir)
         section.childlogdir = childlogdir
 
-        xmlrpc_port = config.getdefault('xmlrpc_port', None)
-        if xmlrpc_port is None:
-            section.xmlrpc_port = None
+        http_port = config.getdefault('http_port', None)
+        if http_port is None:
+            section.http_port = None
         else:
-            section.xmlrpc_port = datatypes.SocketAddress(xmlrpc_port)
-
-        xmlrpc_password = config.getdefault('xmlrpc_password', None)
-        xmlrpc_username = config.getdefault('xmlrpc_username', None)
-        if xmlrpc_password or xmlrpc_username:
-            if xmlrpc_password is None:
-                raise ValueError('Must specify xmlrpc_password if '
-                                 'xmlrpc_username is specified')
-            if xmlrpc_username is None:
-                raise ValueError('Must specify xmlrpc_username if '
-                                 'xmlrpc_password is specified')
-        section.xmlrpc_password = xmlrpc_password
-        section.xmlrpc_username = xmlrpc_username
+            section.http_port = datatypes.SocketAddress(http_port)
+
+        http_password = config.getdefault('http_password', None)
+        http_username = config.getdefault('http_username', None)
+        if http_password or http_username:
+            if http_password is None:
+                raise ValueError('Must specify http_password if '
+                                 'http_username is specified')
+            if http_username is None:
+                raise ValueError('Must specify http_username if '
+                                 'http_password is specified')
+        section.http_password = http_password
+        section.http_username = http_username
 
         nocleanup = config.getdefault('nocleanup', 'false')
         section.nocleanup = datatypes.boolean(nocleanup)

+ 4 - 4
src/supervisor/supervisord.py

@@ -660,9 +660,9 @@ class Supervisor:
             self.runforever(test)
         finally:
             try:
-                if self.options.xmlrpc_port is not None:
-                    if self.options.xmlrpc_port.family == socket.AF_UNIX:
-                        os.unlink(self.options.xmlrpc_port.address)
+                if self.options.http_port is not None:
+                    if self.options.http_port.family == socket.AF_UNIX:
+                        os.unlink(self.options.http_port.address)
             except os.error:
                 pass
             try:
@@ -676,7 +676,7 @@ class Supervisor:
             self.httpserver = makeHTTPServer(self)
         except socket.error, why:
             if why[0] == errno.EADDRINUSE:
-                port = str(self.options.xmlrpc_port.address)
+                port = str(self.options.http_port.address)
                 self.options.usage('Another program is already listening on '
                                    'the port that our HTTP server is '
                                    'configured to use (%s).  Shut this program '

+ 11 - 11
src/supervisor/tests.py

@@ -35,9 +35,9 @@ import unittest
 class INIOptionTests(unittest.TestCase):
     def test_options(self):
         s = """[supervisord]
-xmlrpc_port=127.0.0.1:8999 ; (default is to run no xmlrpc server)
-xmlrpc_username=chrism     ; (default is no username (open system))
-xmlrpc_password=foo        ; (default is no password (open system))
+http_port=127.0.0.1:8999 ; (default is to run no xmlrpc server)
+http_username=chrism     ; (default is no username (open system))
+http_password=foo        ; (default is no password (open system))
 directory=%(tempdir)s     ; (default is not to cd during daemonization)
 backofflimit=10            ; (default 3)
 forever=false              ; (default false)
@@ -96,10 +96,10 @@ exitcodes=0,1,127
         self.assertEqual(options.nodaemon, True)
         self.assertEqual(options.identifier, 'fleeb')
         self.assertEqual(options.childlogdir, tempfile.gettempdir())
-        self.assertEqual(options.xmlrpc_port.family, socket.AF_INET)
-        self.assertEqual(options.xmlrpc_port.address, ('127.0.0.1', 8999))
-        self.assertEqual(options.xmlrpc_username, 'chrism')
-        self.assertEqual(options.xmlrpc_password, 'foo')
+        self.assertEqual(options.http_port.family, socket.AF_INET)
+        self.assertEqual(options.http_port.address, ('127.0.0.1', 8999))
+        self.assertEqual(options.http_username, 'chrism')
+        self.assertEqual(options.http_password, 'foo')
         self.assertEqual(options.nocleanup, True)
         self.assertEqual(options.minfds, 2048)
         self.assertEqual(options.minprocs, 300)
@@ -162,10 +162,10 @@ exitcodes=0,1,127
         self.assertEqual(instance.passwdfile, None)
         self.assertEqual(instance.identifier, 'fleeb')
         self.assertEqual(instance.childlogdir, tempfile.gettempdir())
-        self.assertEqual(instance.xmlrpc_port.family, socket.AF_INET)
-        self.assertEqual(instance.xmlrpc_port.address, ('127.0.0.1', 8999))
-        self.assertEqual(instance.xmlrpc_username, 'chrism')
-        self.assertEqual(instance.xmlrpc_password, 'foo')
+        self.assertEqual(instance.http_port.family, socket.AF_INET)
+        self.assertEqual(instance.http_port.address, ('127.0.0.1', 8999))
+        self.assertEqual(instance.http_username, 'chrism')
+        self.assertEqual(instance.http_password, 'foo')
         self.assertEqual(instance.nocleanup, True)
         self.assertEqual(instance.minfds, 2048)
         self.assertEqual(instance.minprocs, 300)