Пример #1
0
    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"],
                )
Пример #2
0
    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],
            [],
        )
Пример #3
0
    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"],
        )
Пример #4
0
 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)
Пример #5
0
    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)
Пример #6
0
    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)
Пример #7
0
 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],
         [],
     )
Пример #8
0
 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"],
             )
Пример #9
0
    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"],
        )