Procházet zdrojové kódy

Merge pull request #670 from msabramo/expose_more_info_from_getAllConfigInfo

Expose more info from getAllConfigInfo
Mike Naberezny před 9 roky
rodič
revize
e5fe3fff3f

+ 29 - 6
supervisor/rpcinterface.py

@@ -546,12 +546,35 @@ class SupervisorNamespaceRPCInterface:
             inuse = gconfig.name in self.supervisord.process_groups
             for pconfig in gconfig.process_configs:
                 configinfo.append(
-                    { 'name': pconfig.name,
-                      'group': gconfig.name,
-                      'inuse': inuse,
-                      'autostart': pconfig.autostart,
-                      'group_prio': gconfig.priority,
-                      'process_prio': pconfig.priority })
+                    {
+                        'autostart': pconfig.autostart,
+                        'command': pconfig.command,
+                        'exitcodes': pconfig.exitcodes,
+                        'group': gconfig.name,
+                        'group_prio': gconfig.priority,
+                        'inuse': inuse,
+                        'killasgroup': pconfig.killasgroup,
+                        'name': pconfig.name,
+                        'process_prio': pconfig.priority,
+                        'redirect_stderr': pconfig.redirect_stderr,
+                        'startretries': pconfig.startretries,
+                        'startsecs': pconfig.startsecs,
+                        'stdout_capture_maxbytes': pconfig.stdout_capture_maxbytes,
+                        'stdout_events_enabled': pconfig.stdout_events_enabled,
+                        'stdout_logfile': pconfig.stdout_logfile,
+                        'stdout_logfile_backups': pconfig.stdout_logfile_backups,
+                        'stdout_logfile_maxbytes': pconfig.stdout_logfile_maxbytes,
+                        'stdout_syslog': pconfig.stdout_syslog,
+                        'stopsignal': pconfig.stopsignal,
+                        'stopwaitsecs': pconfig.stopwaitsecs,
+                        'stderr_capture_maxbytes': pconfig.stderr_capture_maxbytes,
+                        'stderr_events_enabled': pconfig.stderr_events_enabled,
+                        'stderr_logfile': pconfig.stderr_logfile,
+                        'stderr_logfile_backups': pconfig.stderr_logfile_backups,
+                        'stderr_logfile_maxbytes': pconfig.stderr_logfile_maxbytes,
+                        'stderr_syslog': pconfig.stderr_syslog,
+                    }
+                )
 
         configinfo.sort(key=lambda r: r['name'])
         return configinfo

+ 4 - 0
supervisor/tests/base.py

@@ -511,9 +511,11 @@ class DummyPConfig:
                  uid=None, stdout_logfile=None, stdout_capture_maxbytes=0,
                  stdout_events_enabled=False,
                  stdout_logfile_backups=0, stdout_logfile_maxbytes=0,
+                 stdout_syslog=False,
                  stderr_logfile=None, stderr_capture_maxbytes=0,
                  stderr_events_enabled=False,
                  stderr_logfile_backups=0, stderr_logfile_maxbytes=0,
+                 stderr_syslog=False,
                  redirect_stderr=False,
                  stopsignal=None, stopwaitsecs=10, stopasgroup=False, killasgroup=False,
                  exitcodes=(0,2), environment=None, serverurl=None):
@@ -531,11 +533,13 @@ class DummyPConfig:
         self.stdout_events_enabled = stdout_events_enabled
         self.stdout_logfile_backups = stdout_logfile_backups
         self.stdout_logfile_maxbytes = stdout_logfile_maxbytes
+        self.stdout_syslog = stdout_syslog
         self.stderr_logfile = stderr_logfile
         self.stderr_capture_maxbytes = stderr_capture_maxbytes
         self.stderr_events_enabled = stderr_events_enabled
         self.stderr_logfile_backups = stderr_logfile_backups
         self.stderr_logfile_maxbytes = stderr_logfile_maxbytes
+        self.stderr_syslog = stderr_syslog
         self.redirect_stderr = redirect_stderr
         if stopsignal is None:
             import signal

+ 52 - 12
supervisor/tests/test_rpcinterfaces.py

@@ -1109,18 +1109,58 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
 
         interface = self._makeOne(supervisord)
         configs = interface.getAllConfigInfo()
-        self.assertEqual(configs, [{ 'group': 'group1',
-                                     'name': 'process1',
-                                     'inuse': True,
-                                     'autostart': True,
-                                     'process_prio': 999,
-                                     'group_prio': 999 },
-                                   { 'group': 'group1',
-                                     'name': 'process2',
-                                     'inuse': True,
-                                     'autostart': True,
-                                     'process_prio': 999,
-                                     'group_prio': 999 }])
+        self.assertEqual(configs[0]['autostart'], True)
+        self.assertEqual(configs[0]['stopwaitsecs'], 10)
+        self.assertEqual(configs[0]['stdout_events_enabled'], False)
+        self.assertEqual(configs[0]['stderr_events_enabled'], False)
+        self.assertEqual(configs[0]['group'], 'group1')
+        self.assertEqual(configs[0]['stdout_capture_maxbytes'], 0)
+        self.assertEqual(configs[0]['name'], 'process1')
+        self.assertEqual(configs[0]['stopsignal'], 15)
+        self.assertEqual(configs[0]['stderr_syslog'], False)
+        self.assertEqual(configs[0]['stdout_logfile_maxbytes'], 0)
+        self.assertEqual(configs[0]['group_prio'], 999)
+        self.assertEqual(configs[0]['killasgroup'], False)
+        self.assertEqual(configs[0]['process_prio'], 999)
+        self.assertEqual(configs[0]['stdout_syslog'], False)
+        self.assertEqual(configs[0]['stderr_logfile_maxbytes'], 0)
+        self.assertEqual(configs[0]['startsecs'], 10)
+        self.assertEqual(configs[0]['redirect_stderr'], False)
+        self.assertEqual(configs[0]['stdout_logfile'], None)
+        self.assertEqual(configs[0]['exitcodes'], (0, 2))
+        self.assertEqual(configs[0]['stderr_capture_maxbytes'], 0)
+        self.assertEqual(configs[0]['startretries'], 999)
+        self.assertEqual(configs[0]['stderr_logfile_maxbytes'], 0)
+        self.assertEqual(configs[0]['inuse'], True)
+        self.assertEqual(configs[0]['stderr_logfile'], None)
+        self.assertEqual(configs[0]['stdout_logfile_backups'], 0)
+        assert 'test_rpcinterfaces.py' in configs[0]['command']
+        self.assertEqual(configs[1]['autostart'], True)
+        self.assertEqual(configs[1]['stopwaitsecs'], 10)
+        self.assertEqual(configs[1]['stdout_events_enabled'], False)
+        self.assertEqual(configs[1]['stderr_events_enabled'], False)
+        self.assertEqual(configs[1]['group'], 'group1')
+        self.assertEqual(configs[1]['stdout_capture_maxbytes'], 0)
+        self.assertEqual(configs[1]['name'], 'process2')
+        self.assertEqual(configs[1]['stopsignal'], 15)
+        self.assertEqual(configs[1]['stderr_syslog'], False)
+        self.assertEqual(configs[1]['stdout_logfile_maxbytes'], 0)
+        self.assertEqual(configs[1]['group_prio'], 999)
+        self.assertEqual(configs[1]['killasgroup'], False)
+        self.assertEqual(configs[1]['process_prio'], 999)
+        self.assertEqual(configs[1]['stdout_syslog'], False)
+        self.assertEqual(configs[1]['stderr_logfile_maxbytes'], 0)
+        self.assertEqual(configs[1]['startsecs'], 10)
+        self.assertEqual(configs[1]['redirect_stderr'], False)
+        self.assertEqual(configs[1]['stdout_logfile'], None)
+        self.assertEqual(configs[1]['exitcodes'], (0, 2))
+        self.assertEqual(configs[1]['stderr_capture_maxbytes'], 0)
+        self.assertEqual(configs[1]['startretries'], 999)
+        self.assertEqual(configs[1]['stderr_logfile_maxbytes'], 0)
+        self.assertEqual(configs[1]['inuse'], True)
+        self.assertEqual(configs[1]['stderr_logfile'], None)
+        self.assertEqual(configs[1]['stdout_logfile_backups'], 0)
+        assert 'test_rpcinterfaces.py' in configs[0]['command']
 
     def test__interpretProcessInfo(self):
         supervisord = DummySupervisor()