def node_services(approot, scan_dir): """Setup a node services monitor enforcing restart policies. """ tm_env = appenv.AppEnvironment(root=approot) mon = monitor.Monitor(scan_dirs=scan_dir, service_dirs=None, policy_impl=monitor.MonitorRestartPolicy, down_action=monitor.MonitorNodeDown(tm_env)) mon.run()
def cleaning(approot, scan_dir): """Setup a monitor for the running containers. """ tm_env = appenv.AppEnvironment(root=approot) def _policy_factory(): return monitor.CleanupMonitorRestartPolicy(tm_env) mon = monitor.Monitor(scan_dirs=scan_dir, service_dirs=None, policy_impl=_policy_factory, down_action=monitor.MonitorNodeDown( tm_env, prefix='cleanup-')) mon.run()
def test_execute(self): """Test shutting down of the node. """ mock_tm_env_class = namedtuple('MockTMEnv', ['watchdog_dir']) mock_tm_env = mock_tm_env_class(self.root) mock_down_action = monitor.MonitorNodeDown(mock_tm_env) res = mock_down_action.execute({ 'service': 'mock_service', 'return_code': 42, 'signal': 9, }) # This MonitorDownAction stops the monitor. self.assertEqual(res, True) self.assertTrue( os.path.exists(os.path.join(self.root, 'Monitor-mock_service')))