Bläddra i källkod

Use booleans instead of 0/1 to clarify process flags

Mike Naberezny 10 år sedan
förälder
incheckning
a6ff185ce8

+ 11 - 11
supervisor/process.py

@@ -45,9 +45,9 @@ class Subprocess(object):
     laststop = 0  # Last time the subprocess was stopped; 0 if never
     laststopreport = 0 # Last time "waiting for x to stop" logged, to throttle
     delay = 0 # If nonzero, delay starting or killing until this time
-    administrative_stop = 0 # true if the process has been stopped by an admin
-    system_stop = 0 # true if the process has been stopped by the system
-    killing = 0 # flag determining whether we are trying to kill this proc
+    administrative_stop = False # true if process has been stopped by an admin
+    system_stop = False # true if process has been stopped by the system
+    killing = False # true if are trying to kill this process
     backoff = 0 # backoff counter (to startretries)
     dispatchers = None # asyncore output dispatchers (keyed by fd)
     pipes = None # map of channel name to file descriptor #
@@ -199,11 +199,11 @@ class Subprocess(object):
             options.logger.warn(msg)
             return
 
-        self.killing = 0
+        self.killing = False
         self.spawnerr = None
         self.exitstatus = None
-        self.system_stop = 0
-        self.administrative_stop = 0
+        self.system_stop = False
+        self.administrative_stop = False
 
         self.laststart = time.time()
 
@@ -354,7 +354,7 @@ class Subprocess(object):
 
     def stop(self):
         """ Administrative stop """
-        self.administrative_stop = 1
+        self.administrative_stop = True
         self.laststopreport = 0
         return self.kill(self.config.stopsignal)
 
@@ -370,7 +370,7 @@ class Subprocess(object):
     def give_up(self):
         self.delay = 0
         self.backoff = 0
-        self.system_stop = 1
+        self.system_stop = True
         self._assertInState(ProcessStates.BACKOFF)
         self.change_state(ProcessStates.FATAL)
 
@@ -416,7 +416,7 @@ class Subprocess(object):
                              )
 
         # RUNNING/STARTING/STOPPING -> STOPPING
-        self.killing = 1
+        self.killing = True
         self.delay = now + self.config.stopwaitsecs
         # we will already be in the STOPPING state if we're doing a
         # SIGKILL as a result of overrunning stopwaitsecs
@@ -440,7 +440,7 @@ class Subprocess(object):
             options.logger.critical(msg)
             self.change_state(ProcessStates.UNKNOWN)
             self.pid = 0
-            self.killing = 0
+            self.killing = False
             self.delay = 0
             return msg
 
@@ -508,7 +508,7 @@ class Subprocess(object):
         if self.killing:
             # likely the result of a stop request
             # implies STOPPING -> STOPPED
-            self.killing = 0
+            self.killing = False
             self.delay = 0
             self.exitstatus = es
 

+ 3 - 3
supervisor/tests/base.py

@@ -375,9 +375,9 @@ class DummyProcess(object):
     laststart = 0 # Last time the subprocess was started; 0 if never
     laststop = 0  # Last time the subprocess was stopped; 0 if never
     delay = 0 # If nonzero, delay starting or killing until this time
-    administrative_stop = 0 # true if the process has been stopped by an admin
-    system_stop = 0 # true if the process has been stopped by the system
-    killing = 0 # flag determining whether we are trying to kill this proc
+    administrative_stop = False # true if the process stopped by an admin
+    system_stop = False # true if the process has been stopped by the system
+    killing = False # flag determining whether we are trying to kill this proc
     backoff = 0 # backoff counter (to backofflimit)
     waitstatus = None
     exitstatus = None

+ 28 - 28
supervisor/tests/test_process.py

@@ -54,8 +54,8 @@ class SubprocessTests(unittest.TestCase):
         self.assertEqual(instance.laststart, 0)
         self.assertEqual(instance.laststop, 0)
         self.assertEqual(instance.delay, 0)
-        self.assertEqual(instance.administrative_stop, 0)
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.administrative_stop)
+        self.assertFalse(instance.killing)
         self.assertEqual(instance.backoff, 0)
         self.assertEqual(instance.pipes, {})
         self.assertEqual(instance.dispatchers, {})
@@ -688,12 +688,12 @@ class SubprocessTests(unittest.TestCase):
         instance.state = ProcessStates.RUNNING
         instance.laststopreport = time.time()
         instance.stop()
-        self.assertEqual(instance.administrative_stop, 1)
+        self.assertTrue(instance.administrative_stop)
         self.assertEqual(instance.laststopreport, 0)
         self.assertTrue(instance.delay)
         self.assertEqual(options.logger.data[0], 'killing test (pid 11) with '
                          'signal SIGTERM')
-        self.assertEqual(instance.killing, 1)
+        self.assertTrue(instance.killing)
         self.assertEqual(options.kills[11], signal.SIGTERM)
 
     def test_stop_not_in_stoppable_state_error(self):
@@ -751,7 +751,7 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         instance.state = ProcessStates.BACKOFF
         instance.give_up()
-        self.assertEqual(instance.system_stop, 1)
+        self.assertTrue(instance.system_stop)
         self.assertFalse(instance.delay)
         self.assertFalse(instance.backoff)
         self.assertEqual(instance.state, ProcessStates.FATAL)
@@ -766,7 +766,7 @@ class SubprocessTests(unittest.TestCase):
         instance.kill(signal.SIGTERM)
         self.assertEqual(options.logger.data[0],
               'attempted to kill test with sig SIGTERM but it wasn\'t running')
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
 
     def test_kill_error(self):
         options = DummyOptions()
@@ -784,7 +784,7 @@ class SubprocessTests(unittest.TestCase):
                          'signal SIGTERM')
         self.assertTrue(options.logger.data[1].startswith(
             'unknown problem killing test'))
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         self.assertEqual(len(L), 2)
         event1 = L[0]
         event2 = L[1]
@@ -804,7 +804,7 @@ class SubprocessTests(unittest.TestCase):
         instance.kill(signal.SIGTERM)
         self.assertEqual(options.logger.data[0], 'killing test (pid 11) with '
                          'signal SIGTERM')
-        self.assertEqual(instance.killing, 1)
+        self.assertTrue(instance.killing)
         self.assertEqual(options.kills[11], signal.SIGTERM)
         self.assertEqual(len(L), 1)
         event = L[0]
@@ -823,7 +823,7 @@ class SubprocessTests(unittest.TestCase):
         instance.kill(signal.SIGTERM)
         self.assertEqual(options.logger.data[0], 'killing test (pid 11) with '
                          'signal SIGTERM')
-        self.assertEqual(instance.killing, 1)
+        self.assertTrue(instance.killing)
         self.assertEqual(options.kills[11], signal.SIGTERM)
         self.assertEqual(len(L), 1)
         event = L[0]
@@ -842,7 +842,7 @@ class SubprocessTests(unittest.TestCase):
         instance.kill(signal.SIGKILL)
         self.assertEqual(options.logger.data[0], 'killing test (pid 11) with '
                          'signal SIGKILL')
-        self.assertEqual(instance.killing, 1)
+        self.assertTrue(instance.killing)
         self.assertEqual(options.kills[11], signal.SIGKILL)
         self.assertEqual(L, []) # no event because we didn't change state
 
@@ -858,7 +858,7 @@ class SubprocessTests(unittest.TestCase):
         instance.kill(signal.SIGKILL)
         self.assertEqual(options.logger.data[0],
                          'Attempted to kill test, which is in BACKOFF state.')
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         event = L[0]
         self.assertEqual(event.__class__, events.ProcessStateStoppedEvent)
 
@@ -875,7 +875,7 @@ class SubprocessTests(unittest.TestCase):
         instance.kill(signal.SIGKILL)
         self.assertEqual(options.logger.data[0], 'killing test (pid 11) '
                          'process group with signal SIGKILL')
-        self.assertEqual(instance.killing, 1)
+        self.assertTrue(instance.killing)
         self.assertEqual(options.kills[-11], signal.SIGKILL)
         self.assertEqual(L, []) # no event because we didn't change state
 
@@ -892,7 +892,7 @@ class SubprocessTests(unittest.TestCase):
         instance.kill(signal.SIGTERM)
         self.assertEqual(options.logger.data[0], 'killing test (pid 11) '
                          'process group with signal SIGTERM')
-        self.assertEqual(instance.killing, 1)
+        self.assertTrue(instance.killing)
         self.assertEqual(options.kills[-11], signal.SIGTERM)
         self.assertEqual(len(L), 1)
         event = L[0]
@@ -968,7 +968,7 @@ class SubprocessTests(unittest.TestCase):
             'sending test (pid 11) sig SIGWINCH')
         self.assertTrue(options.logger.data[1].startswith(
             'unknown problem sending sig test (11)'))
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         self.assertEqual(len(L), 1)
         event = L[0]
         self.assertEqual(event.__class__, events.ProcessStateUnknownEvent)
@@ -980,7 +980,7 @@ class SubprocessTests(unittest.TestCase):
         instance = self._makeOne(config)
         instance.waitstatus = (123, 1) # pid, waitstatus
         instance.config.options.pidhistory[123] = instance
-        instance.killing = 1
+        instance.killing = True
         pipes = {'stdout':'','stderr':''}
         instance.pipes = pipes
         from supervisor.states import ProcessStates
@@ -990,7 +990,7 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         instance.pid = 123
         instance.finish(123, 1)
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         self.assertEqual(instance.pid, 0)
         self.assertEqual(options.parent_pipes_closed, pipes)
         self.assertEqual(instance.pipes, {})
@@ -1020,7 +1020,7 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         instance.pid = 123
         instance.finish(123, 1)
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         self.assertEqual(instance.pid, 0)
         self.assertEqual(options.parent_pipes_closed, pipes)
         self.assertEqual(instance.pipes, {})
@@ -1053,7 +1053,7 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         instance.pid = 123
         instance.finish(123, 1)
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         self.assertEqual(instance.pid, 0)
         self.assertEqual(options.parent_pipes_closed, pipes)
         self.assertEqual(instance.pipes, {})
@@ -1094,7 +1094,7 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         instance.pid = 123
         instance.finish(123, 1)
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         self.assertEqual(instance.pid, 0)
         self.assertEqual(options.parent_pipes_closed, pipes)
         self.assertEqual(instance.pipes, {})
@@ -1124,7 +1124,7 @@ class SubprocessTests(unittest.TestCase):
         events.subscribe(events.ProcessStateEvent, lambda x: L.append(x))
         instance.pid = 123
         instance.finish(123, 1)
-        self.assertEqual(instance.killing, 0)
+        self.assertFalse(instance.killing)
         self.assertEqual(instance.pid, 0)
         self.assertEqual(options.parent_pipes_closed, pipes)
         self.assertEqual(instance.pipes, {})
@@ -1253,11 +1253,11 @@ class SubprocessTests(unittest.TestCase):
         pconfig.autorestart = RestartUnconditionally
         process = self._makeOne(pconfig)
         process.laststart = 1
-        process.system_stop = 1
+        process.system_stop = True
         process.state = ProcessStates.EXITED
         process.transition()
         self.assertEqual(process.state, ProcessStates.EXITED)
-        self.assertEqual(process.system_stop, 1)
+        self.assertTrue(process.system_stop)
         self.assertEqual(L, [])
 
     def test_transition_exited_to_starting_uncond_supervisor_running(self):
@@ -1385,7 +1385,7 @@ class SubprocessTests(unittest.TestCase):
         process = self._makeOne(pconfig)
         process.backoff = 1
         process.delay = 1
-        process.system_stop = 0
+        process.system_stop = False
         process.laststart = 1
         process.pid = 1
         process.stdout_buffer = 'abc'
@@ -1396,7 +1396,7 @@ class SubprocessTests(unittest.TestCase):
         # this implies RUNNING
         self.assertEqual(process.backoff, 0)
         self.assertEqual(process.delay, 0)
-        self.assertEqual(process.system_stop, 0)
+        self.assertFalse(process.system_stop)
         self.assertEqual(options.logger.data[0],
                          'success: process entered RUNNING state, process has '
                          'stayed up for > than 10 seconds (startsecs)')
@@ -1417,7 +1417,7 @@ class SubprocessTests(unittest.TestCase):
         process.laststart = 1
         process.backoff = 10000
         process.delay = 1
-        process.system_stop = 0
+        process.system_stop = False
         process.stdout_buffer = 'abc'
         process.stderr_buffer = 'def'
         process.state = ProcessStates.BACKOFF
@@ -1427,7 +1427,7 @@ class SubprocessTests(unittest.TestCase):
         # this implies FATAL
         self.assertEqual(process.backoff, 0)
         self.assertEqual(process.delay, 0)
-        self.assertEqual(process.system_stop, 1)
+        self.assertTrue(process.system_stop)
         self.assertEqual(options.logger.data[0],
                          'gave up: process entered FATAL state, too many start'
                          ' retries too quickly')
@@ -1462,11 +1462,11 @@ class SubprocessTests(unittest.TestCase):
         process = self._makeOne(pconfig)
         process.delay = 0
         process.pid = 1
-        process.killing = 0
+        process.killing = False
         process.state = ProcessStates.STOPPING
 
         process.transition()
-        self.assertEqual(process.killing, 1)
+        self.assertTrue(process.killing)
         self.assertNotEqual(process.delay, 0)
         self.assertEqual(process.state, ProcessStates.STOPPING)
         self.assertEqual(options.logger.data[0],

+ 2 - 2
supervisor/tests/test_rpcinterfaces.py

@@ -627,7 +627,7 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
         process = supervisord.process_groups['foo'].processes['foo']
         self.assertEqual(process.backoff, 0)
         self.assertEqual(process.delay, 0)
-        self.assertEqual(process.killing, 0)
+        self.assertFalse(process.killing)
         self.assertEqual(process.state, ProcessStates.STOPPED)
         self.assertTrue(process.stop_report_called)
         self.assertEqual(len(supervisord.process_groups['foo'].processes), 1)
@@ -1867,7 +1867,7 @@ class SupervisorNamespaceXMLRPCInterfaceTests(TestBase):
         pconfig1 = DummyPConfig(options, 'process1', 'foo')
         supervisord = PopulatedDummySupervisor(options, 'process1', pconfig1)
         supervisord.set_procattr('process1', 'pid', 42)
-        supervisord.set_procattr('process1', 'killing',True)
+        supervisord.set_procattr('process1', 'killing', True)
         interface   = self._makeOne(supervisord)
         from supervisor import xmlrpc
         self._assertRPCError(xmlrpc.Faults.NOT_RUNNING,

+ 2 - 2
supervisor/tests/test_supervisord.py

@@ -135,7 +135,7 @@ class SupervisordTests(unittest.TestCase):
         pconfig = DummyPConfig(options, 'process', 'process', '/bin/process1')
         process = DummyProcess(pconfig)
         process.drained = False
-        process.killing = 1
+        process.killing = True
         process.laststop = None
         process.waitstatus = None, None
         options.pidhistory = {1:process}
@@ -156,7 +156,7 @@ class SupervisordTests(unittest.TestCase):
         pconfig = DummyPConfig(options, 'process', 'process', '/bin/process1')
         process = DummyProcess(pconfig)
         process.drained = False
-        process.killing = 1
+        process.killing = True
         process.laststop = None
         process.waitstatus = None, None
         options.pidhistory = {1:process}