|
@@ -837,6 +837,77 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
|
|
|
]
|
|
|
)
|
|
|
|
|
|
+ def test_sendProcessSignal(self):
|
|
|
+ options = DummyOptions()
|
|
|
+ pconfig = DummyPConfig(options, 'foo', '/bin/foo')
|
|
|
+ from supervisor.process import ProcessStates
|
|
|
+ supervisord = PopulatedDummySupervisor(options, 'foo', pconfig)
|
|
|
+ supervisord.set_procattr('foo', 'state', ProcessStates.RUNNING)
|
|
|
+ interface = self._makeOne(supervisord)
|
|
|
+
|
|
|
+ result = interface.sendProcessSignal('foo', 10)()
|
|
|
+
|
|
|
+ self.assertEqual(interface.update_text, 'sendProcessSignal')
|
|
|
+ self.assertEqual(result, True)
|
|
|
+ p = supervisord.process_groups[supervisord.group_name].processes['foo']
|
|
|
+ self.assertEqual(p.sent_signal, 10 )
|
|
|
+
|
|
|
+ def test_sendGroupSignal(self):
|
|
|
+ options = DummyOptions()
|
|
|
+ pconfig1 = DummyPConfig(options, 'process1', '/bin/foo')
|
|
|
+ pconfig2 = DummyPConfig(options, 'process2', '/bin/foo2')
|
|
|
+ from supervisor.process import ProcessStates
|
|
|
+ supervisord = PopulatedDummySupervisor(options, 'foo', pconfig1,
|
|
|
+ pconfig2)
|
|
|
+ supervisord.set_procattr('process1', 'state', ProcessStates.RUNNING)
|
|
|
+ supervisord.set_procattr('process2', 'state', ProcessStates.RUNNING)
|
|
|
+ interface = self._makeOne(supervisord)
|
|
|
+ callback = interface.sendGroupSignal('foo', 10)
|
|
|
+ self.assertEqual(interface.update_text, 'sendGroupSignal')
|
|
|
+ from supervisor import http
|
|
|
+
|
|
|
+ result = http.NOT_DONE_YET
|
|
|
+ while result is http.NOT_DONE_YET:
|
|
|
+ result = callback()
|
|
|
+
|
|
|
+ self.assertEqual(result, [
|
|
|
+ {'status':80,'group':'foo','name': 'process1','description': 'OK'},
|
|
|
+ {'status':80,'group':'foo','name': 'process2','description': 'OK'},
|
|
|
+ ] )
|
|
|
+ process1 = supervisord.process_groups['foo'].processes['process1']
|
|
|
+ self.assertEqual(process1.sent_signal, 10)
|
|
|
+ process2 = supervisord.process_groups['foo'].processes['process2']
|
|
|
+ self.assertEqual(process2.sent_signal, 10)
|
|
|
+
|
|
|
+ def test_sendProcessGroupSignal(self):
|
|
|
+ """ Test that sending foo:* works """
|
|
|
+ options = DummyOptions()
|
|
|
+ pconfig1 = DummyPConfig(options, 'process1', '/bin/foo')
|
|
|
+ pconfig2 = DummyPConfig(options, 'process2', '/bin/foo2')
|
|
|
+ from supervisor.process import ProcessStates
|
|
|
+ supervisord = PopulatedDummySupervisor(options, 'foo', pconfig1,
|
|
|
+ pconfig2)
|
|
|
+ supervisord.set_procattr('process1', 'state', ProcessStates.RUNNING)
|
|
|
+ supervisord.set_procattr('process2', 'state', ProcessStates.RUNNING)
|
|
|
+ interface = self._makeOne(supervisord)
|
|
|
+ callback = interface.sendProcessSignal('foo:*', 10)
|
|
|
+ self.assertEqual(interface.update_text, 'sendGroupSignal')
|
|
|
+ from supervisor import http
|
|
|
+
|
|
|
+ result = http.NOT_DONE_YET
|
|
|
+ while result is http.NOT_DONE_YET:
|
|
|
+ result = callback()
|
|
|
+
|
|
|
+ self.assertEqual(result, [
|
|
|
+ {'status':80,'group':'foo','name': 'process1','description': 'OK'},
|
|
|
+ {'status':80,'group':'foo','name': 'process2','description': 'OK'},
|
|
|
+ ] )
|
|
|
+ process1 = supervisord.process_groups['foo'].processes['process1']
|
|
|
+ self.assertEqual(process1.sent_signal, 10)
|
|
|
+ process2 = supervisord.process_groups['foo'].processes['process2']
|
|
|
+ self.assertEqual(process2.sent_signal, 10)
|
|
|
+
|
|
|
+
|
|
|
def test_getAllConfigInfo(self):
|
|
|
options = DummyOptions()
|
|
|
supervisord = DummySupervisor(options, 'foo')
|