Example #1
0
 def test_list_all(self):
     self.assertEqual(
         lib.list_agents(self.lib_env, False, None),
         [
             {
                 "name": "fence_apc",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
             {
                 "name": "fence_dummy",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
             {
                 "name": "fence_xvm",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
         ]
     )
Example #2
0
 def test_list_all(self):
     self.assertEqual(
         lib.list_agents(self.lib_env, False, None),
         [
             {
                 "name": "fence_apc",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
             {
                 "name": "fence_dummy",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
             {
                 "name": "fence_xvm",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
         ]
     )
Example #3
0
 def test_search(self):
     self.assertEqual(
         lib.list_agents(self.env_assist.get_env(), False, "M"),
         [
             self._fixture_agent_struct("fence_dummy"),
             self._fixture_agent_struct("fence_xvm"),
         ],
     )
Example #4
0
    def test_describe(self, mock_metadata):
        self.maxDiff = None
        def mock_metadata_func(self):
            if self.get_name() == "ocf:test:Stateful":
                raise lib_ra.UnableToGetAgentMetadata(
                    self.get_name(),
                    "test exception"
                )
            return etree.XML("""
                <resource-agent>
                    <shortdesc>short {name}</shortdesc>
                    <longdesc>long {name}</longdesc>
                    <parameters>
                    </parameters>
                    <actions>
                    </actions>
                </resource-agent>
            """.format(name=self.get_name()))
        mock_metadata.side_effect = mock_metadata_func

        # Stateful is missing as it does not provide valid metadata - see above
        self.assertEqual(
            lib.list_agents(self.lib_env, True, None),
            [
                {
                    "name": "fence_apc",
                    "shortdesc": "short fence_apc",
                    "longdesc": "long fence_apc",
                    "parameters": [],
                    "actions": [],
                },
                {
                    "name": "fence_dummy",
                    "shortdesc": "short fence_dummy",
                    "longdesc": "long fence_dummy",
                    "parameters": [],
                    "actions": [],
                },
                {
                    "name": "fence_xvm",
                    "shortdesc": "short fence_xvm",
                    "longdesc": "long fence_xvm",
                    "parameters": [],
                    "actions": [],
                },
            ]
        )
Example #5
0
    def test_describe(self, mock_metadata):
        self.maxDiff = None
        def mock_metadata_func(self):
            if self.get_name() == "ocf:test:Stateful":
                raise lib_ra.UnableToGetAgentMetadata(
                    self.get_name(),
                    "test exception"
                )
            return etree.XML("""
                <resource-agent>
                    <shortdesc>short {name}</shortdesc>
                    <longdesc>long {name}</longdesc>
                    <parameters>
                    </parameters>
                    <actions>
                    </actions>
                </resource-agent>
            """.format(name=self.get_name()))
        mock_metadata.side_effect = mock_metadata_func

        # Stateful is missing as it does not provide valid metadata - see above
        self.assertEqual(
            lib.list_agents(self.lib_env, True, None),
            [
                {
                    "name": "fence_apc",
                    "shortdesc": "short fence_apc",
                    "longdesc": "long fence_apc",
                    "parameters": [],
                    "actions": [],
                },
                {
                    "name": "fence_dummy",
                    "shortdesc": "short fence_dummy",
                    "longdesc": "long fence_dummy",
                    "parameters": [],
                    "actions": [],
                },
                {
                    "name": "fence_xvm",
                    "shortdesc": "short fence_xvm",
                    "longdesc": "long fence_xvm",
                    "parameters": [],
                    "actions": [],
                },
            ]
        )
Example #6
0
 def test_search(self):
     self.assertEqual(
         lib.list_agents(self.lib_env, False, "M"),
         [
             {
                 "name": "fence_dummy",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
             {
                 "name": "fence_xvm",
                 "shortdesc": "",
                 "longdesc": "",
                 "parameters": [],
                 "actions": [],
             },
         ],
     )
Example #7
0
 def test_describe(self):
     self.config.runner.pcmk.load_agent(
         agent_name="stonith:fence_apc",
         stdout=self._fixture_agent_metadata("stonith:fence_apc"),
         env={"PATH": "/usr/sbin:/bin:/usr/bin"},
         name="runner.pcmk.load_agent.fence_apc",
     )
     self.config.runner.pcmk.load_fenced_metadata(
         stdout=_fixture_fenced_xml)
     self.config.runner.pcmk.load_agent(
         agent_name="stonith:fence_dummy",
         agent_is_missing=True,
         env={"PATH": "/usr/sbin:/bin:/usr/bin"},
         name="runner.pcmk.load_agent.fence_dummy",
     )
     self.config.runner.pcmk.load_agent(
         agent_name="stonith:fence_xvm",
         stdout=self._fixture_agent_metadata("stonith:fence_xvm"),
         env={"PATH": "/usr/sbin:/bin:/usr/bin"},
         name="runner.pcmk.load_agent.fence_xvm",
     )
     agent_stub = {
         "parameters":
         [_fixture_parameter("own-param", "testing own parameter")] +
         _fixture_fenced_parsed,
         "actions": [],
         "default_actions": [{
             "name": "monitor",
             "interval": "60s",
             "OCF_CHECK_LEVEL": None,
             "automatic": False,
             "on_target": False,
             "role": None,
             "start-delay": None,
             "timeout": None,
         }],
     }
     self.assertEqual(
         lib.list_agents(self.env_assist.get_env(), True, None),
         [
             dict(
                 name="stonith:fence_apc",
                 standard="stonith",
                 provider=None,
                 type="fence_apc",
                 shortdesc="short stonith:fence_apc",
                 longdesc="long stonith:fence_apc",
                 **agent_stub,
             ),
             dict(
                 name="stonith:fence_xvm",
                 standard="stonith",
                 provider=None,
                 type="fence_xvm",
                 shortdesc="short stonith:fence_xvm",
                 longdesc="long stonith:fence_xvm",
                 **agent_stub,
             ),
         ],
     )
     self.env_assist.assert_reports([
         fixture.warn(
             report_codes.UNABLE_TO_GET_AGENT_METADATA,
             agent="stonith:fence_dummy",
             reason=(
                 "Agent stonith:fence_dummy not found or does not support "
                 "meta-data: Invalid argument (22)\nMetadata query for "
                 "stonith:fence_dummy failed: Input/output error"),
         )
     ])
Example #8
0
    def test_describe(self, mock_metadata):
        self.maxDiff = None

        def mock_metadata_func(self):
            if self._get_name() == "ocf:test:Stateful":
                raise lib_ra.UnableToGetAgentMetadata(self._get_name(),
                                                      "test exception")
            return etree.XML("""
                <resource-agent>
                    <shortdesc>short {name}</shortdesc>
                    <longdesc>long {name}</longdesc>
                    <parameters>
                    </parameters>
                    <actions>
                    </actions>
                </resource-agent>
            """.format(name=self._get_name()))

        mock_metadata.side_effect = mock_metadata_func

        # Stateful is missing as it does not provide valid metadata - see above
        self.assertEqual(
            lib.list_agents(self.lib_env, True, None),
            [
                {
                    "name":
                    "fence_apc",
                    "shortdesc":
                    "short fence_apc",
                    "longdesc":
                    "long fence_apc",
                    "parameters": [],
                    "actions": [],
                    "default_actions": [{
                        "interval": "60s",
                        "name": "monitor",
                        "OCF_CHECK_LEVEL": None,
                        "automatic": None,
                        "depth": None,
                        "on_target": None,
                        "role": None,
                        "start-delay": None,
                        "timeout": None,
                    }],
                },
                {
                    "name":
                    "fence_dummy",
                    "shortdesc":
                    "short fence_dummy",
                    "longdesc":
                    "long fence_dummy",
                    "parameters": [],
                    "actions": [],
                    "default_actions": [{
                        "interval": "60s",
                        "name": "monitor",
                        "OCF_CHECK_LEVEL": None,
                        "automatic": None,
                        "depth": None,
                        "on_target": None,
                        "role": None,
                        "start-delay": None,
                        "timeout": None,
                    }],
                },
                {
                    "name":
                    "fence_xvm",
                    "shortdesc":
                    "short fence_xvm",
                    "longdesc":
                    "long fence_xvm",
                    "parameters": [],
                    "actions": [],
                    "default_actions": [{
                        "interval": "60s",
                        "name": "monitor",
                        "OCF_CHECK_LEVEL": None,
                        "automatic": None,
                        "depth": None,
                        "on_target": None,
                        "role": None,
                        "start-delay": None,
                        "timeout": None,
                    }],
                },
            ],
        )