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": [], }, ] )
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"), ], )
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": [], }, ] )
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": [], }, ], )
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"), ) ])
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, }], }, ], )