def test_facade_add_trace_for_ocf(self): self.config.runner.pcmk.load_agent( agent_name="ocf:heartbeat:Dummy", stdout=self._fixture_agent_xml, name="runner.pcmk.load_agent.heartbeat", ) self.config.runner.pcmk.load_agent( agent_name="ocf:pacemaker:Dummy", stdout=self._fixture_agent_xml, name="runner.pcmk.load_agent.pacemaker", ) env = self.env_assist.get_env() for provider in ["heartbeat", "pacemaker"]: with self.subTest(provider=provider): name = ra.ResourceAgentName("ocf", provider, "Dummy") facade = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor ).facade_from_parsed_name(name) self.assertEqual(facade.metadata.name, name) self.assertTrue(facade.metadata.agent_exists) self.assertEqual( [param.name for param in facade.metadata.parameters], ["agent-param", "trace_ra", "trace_file"], )
def test_void_load_and_cache_fenced_for_stonith_failure(self): name1 = ra.ResourceAgentName("stonith", None, "fence_xvm") name2 = ra.ResourceAgentName("stonith", None, "fence_virt") self.config.runner.pcmk.load_fenced_metadata( stdout="", stderr="fenced failure", returncode=1 ) env = self.env_assist.get_env() factory = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor ) facade1 = factory.void_facade_from_parsed_name(name1) facade2 = factory.void_facade_from_parsed_name(name2) self.env_assist.assert_reports( [ fixture.warn( reports.codes.UNABLE_TO_GET_AGENT_METADATA, agent="pacemaker-fenced", reason="fenced failure", ) ] ) self.assertEqual(facade1.metadata.name, name1) self.assertEqual(facade2.metadata.name, name2) self.assertFalse(facade1.metadata.agent_exists) self.assertFalse(facade2.metadata.agent_exists) self.assertEqual( [param.name for param in facade1.metadata.parameters], [], ) self.assertEqual( [param.name for param in facade2.metadata.parameters], [], )
def test_void_load_and_cache_fenced_for_stonith(self): name1 = ra.ResourceAgentName("stonith", None, "fence_xvm") name2 = ra.ResourceAgentName("stonith", None, "fence_virt") self.config.runner.pcmk.load_fenced_metadata( stdout=self._fixture_fenced_xml ) env = self.env_assist.get_env() factory = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor ) facade1 = factory.void_facade_from_parsed_name(name1) facade2 = factory.void_facade_from_parsed_name(name2) self.assertEqual(facade1.metadata.name, name1) self.assertEqual(facade2.metadata.name, name2) self.assertFalse(facade1.metadata.agent_exists) self.assertFalse(facade2.metadata.agent_exists) self.assertEqual( [param.name for param in facade1.metadata.parameters], ["fenced-param"], ) self.assertEqual( [param.name for param in facade2.metadata.parameters], ["fenced-param"], )
def test_void(self): name = ra.ResourceAgentName("service", None, "daemon") env = self.env_assist.get_env() facade = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor ).void_facade_from_parsed_name(name) self.assertEqual(facade.metadata.name, name) self.assertFalse(facade.metadata.agent_exists)
def test_facade_missing_agent(self): name = ra.ResourceAgentName("service", None, "daemon") self.config.runner.pcmk.load_agent(agent_name="service:daemon", agent_is_missing=True) env = self.env_assist.get_env() with self.assertRaises(ra.UnableToGetAgentMetadata) as cm: ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor).facade_from_parsed_name(name) self.assertEqual(cm.exception.agent_name, name.full_name)
def test_facade(self): name = ra.ResourceAgentName("service", None, "daemon") self.config.runner.pcmk.load_agent(agent_name="service:daemon", stdout=self._fixture_agent_xml) env = self.env_assist.get_env() facade = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor).facade_from_parsed_name(name) self.assertEqual(facade.metadata.name, name) self.assertTrue(facade.metadata.agent_exists)
def test_void_not_add_trace_for_ocf(self): name = ra.ResourceAgentName("ocf", "openstack", "Dummy") env = self.env_assist.get_env() facade = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor ).void_facade_from_parsed_name(name) self.assertEqual(facade.metadata.name, name) self.assertFalse(facade.metadata.agent_exists) self.assertEqual( [param.name for param in facade.metadata.parameters], [], )
def test_void_add_trace_for_ocf(self): env = self.env_assist.get_env() for provider in ["heartbeat", "pacemaker"]: with self.subTest(provider=provider): name = ra.ResourceAgentName("ocf", provider, "Dummy") facade = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor ).void_facade_from_parsed_name(name) self.assertEqual(facade.metadata.name, name) self.assertFalse(facade.metadata.agent_exists) self.assertEqual( [param.name for param in facade.metadata.parameters], ["trace_ra", "trace_file"], )
def test_facade_not_add_trace_for_ocf(self): name = ra.ResourceAgentName("ocf", "openstack", "Dummy") self.config.runner.pcmk.load_agent(agent_name="ocf:openstack:Dummy", stdout=self._fixture_agent_xml) env = self.env_assist.get_env() facade = ra.ResourceAgentFacadeFactory( env.cmd_runner(), env.report_processor).facade_from_parsed_name(name) self.assertEqual(facade.metadata.name, name) self.assertTrue(facade.metadata.agent_exists) self.assertEqual( [param.name for param in facade.metadata.parameters], ["agent-param"], )