def test_list_all(self): self.assertEqual(lib.list_agents(self.lib_env, False, None), [ { "name": "ocf:test:Delay", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], }, { "name": "ocf:test:Stateful", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], }, { "name": "service:corosync", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], }, { "name": "service:pacemaker_remote", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], }, ])
def test_search(self): self.assertEqual( lib.list_agents(self.lib_env, False, "te"), [ { "name": "ocf:test:Delay", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], }, { "name": "ocf:test:Stateful", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], }, { "name": "service:pacemaker_remote", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], }, ] )
def test_search(self): self.assertEqual( lib.list_agents(self.lib_env, False, "te"), [ { "name": "ocf:test:Delay", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], "default_actions": [], }, { "name": "ocf:test:Stateful", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], "default_actions": [], }, { "name": "service:pacemaker_remote", "shortdesc": "", "longdesc": "", "parameters": [], "actions": [], "default_actions": [], }, ], )
def test_search(self): self.assertEqual( lib.list_agents(self.env_assist.get_env(), False, "te"), [ self._fixture_agent_struct( ResourceAgentName("ocf", "test", "Delay")), self._fixture_agent_struct( ResourceAgentName("ocf", "test", "Stateful")), self._fixture_agent_struct( ResourceAgentName("service", None, "pacemaker_remote")), ], )
def test_describe(self, mock_metadata): 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": "ocf:test:Delay", "shortdesc": "short ocf:test:Delay", "longdesc": "long ocf:test:Delay", "parameters": [], "actions": [], }, { "name": "service:corosync", "shortdesc": "short service:corosync", "longdesc": "long service:corosync", "parameters": [], "actions": [], }, { "name": "service:pacemaker_remote", "shortdesc": "short service:pacemaker_remote", "longdesc": "long service:pacemaker_remote", "parameters": [], "actions": [], }, ] )
def test_describe(self, mock_metadata): def mock_metadata_func(self): if self._full_agent_name == "ocf:test:Stateful": raise lib_ra.UnableToGetAgentMetadata( self._full_agent_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._full_agent_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": "ocf:test:Delay", "shortdesc": "short ocf:test:Delay", "longdesc": "long ocf:test:Delay", "parameters": [], "actions": [], }, { "name": "service:corosync", "shortdesc": "short service:corosync", "longdesc": "long service:corosync", "parameters": [], "actions": [], }, { "name": "service:pacemaker_remote", "shortdesc": "short service:pacemaker_remote", "longdesc": "long service:pacemaker_remote", "parameters": [], "actions": [], }, ] )
def test_describe(self): self.config.runner.pcmk.load_agent( agent_name="ocf:test:Delay", stdout=self._fixture_agent_metadata("ocf:test:Delay"), env={"PATH": "/usr/sbin:/bin:/usr/bin"}, name="runner.pcmk.load_agent.delay", ) self.config.runner.pcmk.load_agent( agent_name="ocf:test:Stateful", agent_is_missing=True, env={"PATH": "/usr/sbin:/bin:/usr/bin"}, name="runner.pcmk.load_agent.stateful", ) self.config.runner.pcmk.load_agent( agent_name="service:corosync", stdout=self._fixture_agent_metadata("service:corosync"), env={"PATH": "/usr/sbin:/bin:/usr/bin"}, name="runner.pcmk.load_agent.corosync", ) self.config.runner.pcmk.load_agent( agent_name="service:pacemaker_remote", stdout=self._fixture_agent_metadata("service:pacemaker_remote"), env={"PATH": "/usr/sbin:/bin:/usr/bin"}, name="runner.pcmk.load_agent.pacemaker_remote", ) agent_stub = { "parameters": [], "actions": [], "default_actions": [ { "interval": "60s", "name": "monitor", "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="ocf:test:Delay", standard="ocf", provider="test", type="Delay", shortdesc="short ocf:test:Delay", longdesc="long ocf:test:Delay", **agent_stub, ), dict( name="service:corosync", standard="service", provider=None, type="corosync", shortdesc="short service:corosync", longdesc="long service:corosync", **agent_stub, ), dict( name="service:pacemaker_remote", standard="service", provider=None, type="pacemaker_remote", shortdesc="short service:pacemaker_remote", longdesc="long service:pacemaker_remote", **agent_stub, ), ], ) self.env_assist.assert_reports( [ fixture.warn( report_codes.UNABLE_TO_GET_AGENT_METADATA, agent="ocf:test:Stateful", reason=( "Agent ocf:test:Stateful not found or does not support " "meta-data: Invalid argument (22)\nMetadata query for " "ocf:test:Stateful 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": "ocf:test:Delay", "shortdesc": "short ocf:test:Delay", "longdesc": "long ocf:test:Delay", "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": "service:corosync", "shortdesc": "short service:corosync", "longdesc": "long service:corosync", "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": "service:pacemaker_remote", "shortdesc": "short service:pacemaker_remote", "longdesc": "long service:pacemaker_remote", "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, } ], }, ], )