def test_mix_errors_timeout(self): """Test the result of mixed timeout and error actions.""" action = Action(name='start', target='badname,timeout,localhost', command='/bin/true', timeout=0.9) action.errors = 1 service = Service('test_service') service.add_action(action) service.run('start') self.assertEqual(action.nodes_error(), NodeSet('badname')) self.assertEqual(action.nb_errors(), 1) self.assertEqual(action.nodes_timeout(), NodeSet('timeout')) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, ERROR) service.reset() action.errors = 2 service.run('start') self.assertEqual(action.nodes_error(), NodeSet('badname')) self.assertEqual(action.nb_errors(), 1) self.assertEqual(action.nodes_timeout(), NodeSet('timeout')) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, WARNING) service.reset() action.errors = 2 action.warnings = 2 service.run('start') self.assertEqual(action.nodes_error(), NodeSet('badname')) self.assertEqual(action.nb_errors(), 1) self.assertEqual(action.nodes_timeout(), NodeSet('timeout')) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, DONE)
def test_mix_errors_timeout(self): """Test the result of mixed timeout and error actions.""" # timeout host configuration is in setup_sshconfig (__init__.py) action = Action(name='start', target='badname,timeout,localhost', command='/bin/true', timeout=0.9) action.errors = 1 service = Service('test_service') service.add_action(action) service.run('start') self.assertEqual(action.nodes_error(), NodeSet('badname')) self.assertEqual(action.nb_errors(), 1) self.assertEqual(action.nodes_timeout(), NodeSet('timeout')) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, ERROR) service.reset() action.errors = 2 service.run('start') self.assertEqual(action.nodes_error(), NodeSet('badname')) self.assertEqual(action.nb_errors(), 1) self.assertEqual(action.nodes_timeout(), NodeSet('timeout')) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, WARNING) service.reset() action.errors = 2 action.warnings = 2 service.run('start') self.assertEqual(action.nodes_error(), NodeSet('badname')) self.assertEqual(action.nb_errors(), 1) self.assertEqual(action.nodes_timeout(), NodeSet('timeout')) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, DONE)
def test_nb_timeout_remote(self): """Test nb_timeout() method (remote mode)""" action = Action(name='start', target=HOSTNAME, command='sleep 3', timeout=0.5) service = Service('test_service') service.add_action(action) service.run('start') self.assertEqual(action.nodes_timeout(), NodeSet(HOSTNAME)) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, TIMEOUT)
def test_nb_timeout_local(self): """Test nb_timeout() method (local)""" action = Action(name='start', command='sleep 3', timeout=0.3) service = Service('test_service') service.add_action(action) service.run('start') self.assertEqual(action.nodes_error(), NodeSet()) self.assertEqual(action.nb_errors(), 0) self.assertEqual(action.nodes_timeout(), NodeSet("localhost")) self.assertEqual(action.nb_timeout(), 1) self.assertEqual(action.status, TIMEOUT)