|
@@ -142,16 +142,34 @@ class SupervisorNamespaceRPCInterface:
|
|
self.supervisord.mood = 0
|
|
self.supervisord.mood = 0
|
|
return True
|
|
return True
|
|
|
|
|
|
- def startProcess(self, name, wait=True):
|
|
|
|
- """ Start a process
|
|
|
|
|
|
+ def _getAllProcesses(self, lexical=False):
|
|
|
|
+ # if lexical is true, return processes sorted in lexical order,
|
|
|
|
+ # otherwise, sort in priority order
|
|
|
|
+ all_processes = []
|
|
|
|
|
|
- @param string name Process name (or 'group:name')
|
|
|
|
- @param boolean wait Wait for process to be fully started
|
|
|
|
- @return boolean result Always true unless error
|
|
|
|
|
|
+ if lexical:
|
|
|
|
+ group_names = self.supervisord.process_groups.keys()
|
|
|
|
+ group_names.sort()
|
|
|
|
+ for group_name in group_names:
|
|
|
|
+ group = self.supervisord.process_groups[group_name]
|
|
|
|
+ process_names = group.processes.keys()
|
|
|
|
+ process_names.sort()
|
|
|
|
+ for process_name in process_names:
|
|
|
|
+ process = group.processes[process_name]
|
|
|
|
+ all_processes.append((group, process))
|
|
|
|
+ else:
|
|
|
|
+ groups = self.supervisord.process_groups.values()
|
|
|
|
+ groups.sort() # asc by priority
|
|
|
|
|
|
- """
|
|
|
|
- self._update('startProcess')
|
|
|
|
|
|
+ for group in groups:
|
|
|
|
+ processes = group.processes.values()
|
|
|
|
+ processes.sort() # asc by priority
|
|
|
|
+ for process in processes:
|
|
|
|
+ all_processes.append((group, process))
|
|
|
|
|
|
|
|
+ return all_processes
|
|
|
|
+
|
|
|
|
+ def _getGroupAndProcess(self, name):
|
|
# get process to start from name
|
|
# get process to start from name
|
|
group_name, process_name = split_namespec(name)
|
|
group_name, process_name = split_namespec(name)
|
|
|
|
|
|
@@ -163,6 +181,20 @@ class SupervisorNamespaceRPCInterface:
|
|
if process is None:
|
|
if process is None:
|
|
raise RPCError(Faults.BAD_NAME, name)
|
|
raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
|
|
|
|
+ return group, process
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ def startProcess(self, name, wait=True):
|
|
|
|
+ """ Start a process
|
|
|
|
+
|
|
|
|
+ @param string name Process name (or 'group:name')
|
|
|
|
+ @param boolean wait Wait for process to be fully started
|
|
|
|
+ @return boolean result Always true unless error
|
|
|
|
+
|
|
|
|
+ """
|
|
|
|
+ self._update('startProcess')
|
|
|
|
+ group, process = self._getGroupAndProcess(name)
|
|
|
|
+
|
|
# test filespec, don't bother trying to spawn if we know it will
|
|
# test filespec, don't bother trying to spawn if we know it will
|
|
# eventually fail
|
|
# eventually fail
|
|
try:
|
|
try:
|
|
@@ -220,33 +252,6 @@ class SupervisorNamespaceRPCInterface:
|
|
startit.rpcinterface = self
|
|
startit.rpcinterface = self
|
|
return startit # deferred
|
|
return startit # deferred
|
|
|
|
|
|
- def _getAllProcesses(self, lexical=False):
|
|
|
|
- # if lexical is true, return processes sorted in lexical order,
|
|
|
|
- # otherwise, sort in priority order
|
|
|
|
- all_processes = []
|
|
|
|
-
|
|
|
|
- if lexical:
|
|
|
|
- group_names = self.supervisord.process_groups.keys()
|
|
|
|
- group_names.sort()
|
|
|
|
- for group_name in group_names:
|
|
|
|
- group = self.supervisord.process_groups[group_name]
|
|
|
|
- process_names = group.processes.keys()
|
|
|
|
- process_names.sort()
|
|
|
|
- for process_name in process_names:
|
|
|
|
- process = group.processes[process_name]
|
|
|
|
- all_processes.append((group, process))
|
|
|
|
- else:
|
|
|
|
- groups = self.supervisord.process_groups.values()
|
|
|
|
- groups.sort() # asc by priority
|
|
|
|
-
|
|
|
|
- for group in groups:
|
|
|
|
- processes = group.processes.values()
|
|
|
|
- processes.sort() # asc by priority
|
|
|
|
- for process in processes:
|
|
|
|
- all_processes.append((group, process))
|
|
|
|
-
|
|
|
|
- return all_processes
|
|
|
|
-
|
|
|
|
def startAllProcesses(self, wait=True):
|
|
def startAllProcesses(self, wait=True):
|
|
""" Start all processes listed in the configuration file
|
|
""" Start all processes listed in the configuration file
|
|
|
|
|
|
@@ -327,17 +332,8 @@ class SupervisorNamespaceRPCInterface:
|
|
"""
|
|
"""
|
|
self._update('stopProcess')
|
|
self._update('stopProcess')
|
|
|
|
|
|
- # get process to start from name
|
|
|
|
- group_name, process_name = split_namespec(name)
|
|
|
|
-
|
|
|
|
- group = self.supervisord.process_groups.get(group_name)
|
|
|
|
- if group is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
|
|
+ group, process = self._getGroupAndProcess(name)
|
|
|
|
|
|
- process = group.processes.get(process_name)
|
|
|
|
- if process is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
-
|
|
|
|
stopped = []
|
|
stopped = []
|
|
called = []
|
|
called = []
|
|
|
|
|
|
@@ -493,15 +489,7 @@ class SupervisorNamespaceRPCInterface:
|
|
"""
|
|
"""
|
|
self._update('getProcessInfo')
|
|
self._update('getProcessInfo')
|
|
|
|
|
|
- group_name, process_name = split_namespec(name)
|
|
|
|
-
|
|
|
|
- group = self.supervisord.process_groups.get(group_name)
|
|
|
|
- if group is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
-
|
|
|
|
- process = group.processes.get(process_name)
|
|
|
|
- if process is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
|
|
+ group, process = self._getGroupAndProcess(name)
|
|
|
|
|
|
start = int(process.laststart)
|
|
start = int(process.laststart)
|
|
stop = int(process.laststop)
|
|
stop = int(process.laststop)
|
|
@@ -554,14 +542,7 @@ class SupervisorNamespaceRPCInterface:
|
|
"""
|
|
"""
|
|
self._update('readProcessLog')
|
|
self._update('readProcessLog')
|
|
|
|
|
|
- group_name, process_name = split_namespec(name)
|
|
|
|
- group = self.supervisord.process_groups.get(group_name)
|
|
|
|
- if group is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
-
|
|
|
|
- process = group.processes.get(process_name)
|
|
|
|
- if process is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
|
|
+ group, process = self._getGroupAndProcess(name)
|
|
|
|
|
|
logfile = process.config.stdout_logfile
|
|
logfile = process.config.stdout_logfile
|
|
|
|
|
|
@@ -593,15 +574,7 @@ class SupervisorNamespaceRPCInterface:
|
|
"""
|
|
"""
|
|
self._update('tailProcessLog')
|
|
self._update('tailProcessLog')
|
|
|
|
|
|
- group_name, process_name = split_namespec(name)
|
|
|
|
-
|
|
|
|
- group = self.supervisord.process_groups.get(group_name)
|
|
|
|
- if group is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
-
|
|
|
|
- process = group.processes.get(process_name)
|
|
|
|
- if process is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
|
|
+ group, process = self._getGroupAndProcess(name)
|
|
|
|
|
|
logfile = process.config.stdout_logfile
|
|
logfile = process.config.stdout_logfile
|
|
|
|
|
|
@@ -617,15 +590,8 @@ class SupervisorNamespaceRPCInterface:
|
|
@return boolean result Always True unless error
|
|
@return boolean result Always True unless error
|
|
"""
|
|
"""
|
|
self._update('clearProcessLog')
|
|
self._update('clearProcessLog')
|
|
- group_name, process_name = split_namespec(name)
|
|
|
|
- group = self.supervisord.process_groups.get(group_name)
|
|
|
|
-
|
|
|
|
- if group is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, group_name)
|
|
|
|
|
|
|
|
- process = group.processes.get(process_name)
|
|
|
|
- if process is None:
|
|
|
|
- raise RPCError(Faults.BAD_NAME, name)
|
|
|
|
|
|
+ group, process = self._getGroupAndProcess(name)
|
|
|
|
|
|
try:
|
|
try:
|
|
# implies a reopen
|
|
# implies a reopen
|