Pārlūkot izejas kodu

handle non-existed group name caused error in supervisorctl

George Ang 12 gadi atpakaļ
vecāks
revīzija
9d7216027e
1 mainītis faili ar 13 papildinājumiem un 7 dzēšanām
  1. 13 7
      supervisor/supervisorctl.py

+ 13 - 7
supervisor/supervisorctl.py

@@ -680,17 +680,23 @@ class DefaultControllerPlugin(ControllerPluginBase):
             for name in names:
             for name in names:
                 group_name, process_name = split_namespec(name)
                 group_name, process_name = split_namespec(name)
                 if process_name is None:
                 if process_name is None:
-                    results = supervisor.startProcessGroup(group_name)
-                    for result in results:
-                        result = self._startresult(result)
-                        self.ctl.output(result)
+                    try:
+                        results = supervisor.startProcessGroup(group_name)
+                        for result in results:
+                            result = self._startresult(result)
+                            self.ctl.output(result)
+                    except xmlrpclib.Fault, e:
+                        error = self._startresult({'status': e.faultCode,
+                                                   'name': name,
+                                                   'description': e.faultString})
+                        self.ctl.output(error)
                 else:
                 else:
                     try:
                     try:
                         result = supervisor.startProcess(name)
                         result = supervisor.startProcess(name)
                     except xmlrpclib.Fault, e:
                     except xmlrpclib.Fault, e:
-                        error = self._startresult({'status':e.faultCode,
-                                                   'name':name,
-                                                   'description':e.faultString})
+                        error = self._startresult({'status': e.faultCode,
+                                                   'name': name,
+                                                   'description': e.faultString})
                         self.ctl.output(error)
                         self.ctl.output(error)
                     else:
                     else:
                         self.ctl.output('%s: started' % name)
                         self.ctl.output('%s: started' % name)