コード例 #1
0
    def test_success_standard(self):
        mock_runner = mock.MagicMock(spec_set=CommandRunner)
        mock_runner.run.return_value = (
            "\n".join([
                "docker",
                "Dummy",
                "dhcpd",
                "Dummy",
                "ethmonitor",
                "",
            ]),
            "",
            0
        )

        self.assertEqual(
            lib_ra.list_resource_agents(mock_runner, "ocf"),
            [
                "dhcpd",
                "docker",
                "Dummy",
                "Dummy",
                "ethmonitor",
            ]
        )

        mock_runner.run.assert_called_once_with([
            "/usr/sbin/crm_resource", "--list-agents", "ocf"
        ])
コード例 #2
0
    def test_success_standard_provider(self):
        mock_runner = mock.MagicMock(spec_set=CommandRunner)
        mock_runner.run.return_value = (
            "\n".join([
                "ping",
                "SystemHealth",
                "SysInfo",
                "HealthCPU",
                "Dummy",
                "",
            ]),
            "",
            0
        )

        self.assertEqual(
            lib_ra.list_resource_agents(mock_runner, "ocf:pacemaker"),
            [
                "Dummy",
                "HealthCPU",
                "ping",
                "SysInfo",
                "SystemHealth",
            ]
        )

        mock_runner.run.assert_called_once_with([
            "/usr/sbin/crm_resource", "--list-agents", "ocf:pacemaker"
        ])
コード例 #3
0
ファイル: resource_agent.py プロジェクト: tomjelinek/pcs
def list_agents(lib_env, describe=True, search=None):
    """
    List all resource agents on the local host, optionally filtered and
        described
    bool describe load and return agents' description as well
    string search return only agents which name contains this string
    """
    runner = lib_env.cmd_runner()

    # list agents for all standards and providers
    agent_names = []
    for std in resource_agent.list_resource_agents_standards_and_providers(
        runner
    ):
        agent_names += [
            "{0}:{1}".format(std, agent)
            for agent in resource_agent.list_resource_agents(runner, std)
        ]
    agent_names.sort(
        # works with both str and unicode in both python 2 and 3
        key=lambda x: x.lower()
    )
    return _complete_agent_list(
        runner,
        agent_names,
        describe,
        search,
        resource_agent.ResourceAgent
    )
コード例 #4
0
ファイル: resource_agent.py プロジェクト: CtrlZmaster/pcs
def _get_agent_names(
        runner: CommandRunner,
        standard_provider: StandardProviderTuple) -> List[ResourceAgentName]:
    return [
        ResourceAgentName(standard_provider.standard,
                          standard_provider.provider, agent)
        for agent in list_resource_agents(runner, standard_provider)
    ]
コード例 #5
0
ファイル: test_resource_agent.py プロジェクト: jmartign/pcs
    def test_bad_standard(self):
        mock_runner = mock.MagicMock(spec_set=CommandRunner)
        mock_runner.run.return_value = (
            "", "No agents found for standard=nonsense, provider=*", 1)

        self.assertEqual(lib_ra.list_resource_agents(mock_runner, "nonsense"),
                         [])

        mock_runner.run.assert_called_once_with(
            ["/usr/sbin/crm_resource", "--list-agents", "nonsense"])
コード例 #6
0
    def test_bad_standard(self):
        mock_runner = mock.MagicMock(spec_set=CommandRunner)
        mock_runner.run.return_value = (
            "",
            "No agents found for standard=nonsense, provider=*",
            1
        )

        self.assertEqual(
            lib_ra.list_resource_agents(mock_runner, "nonsense"),
            []
        )

        mock_runner.run.assert_called_once_with([
            "/usr/sbin/crm_resource", "--list-agents", "nonsense"
        ])
コード例 #7
0
def list_agents_for_standard_and_provider(lib_env, standard_provider=None):
    """
    List resource agents for specified standard on the local host
    string standard_provider standard[:provider], e.g. None, ocf, ocf:pacemaker
    """
    if standard_provider:
        standards = [standard_provider]
    else:
        standards = resource_agent.list_resource_agents_standards(lib_env.cmd_runner())
    agents = []
    for std in standards:
        agents += resource_agent.list_resource_agents(lib_env.cmd_runner(), std)
    return sorted(
        agents,
        # works with both str and unicode in both python 2 and 3
        key=lambda x: x.lower(),
    )
コード例 #8
0
ファイル: resource_agent.py プロジェクト: miz-take/pcs
def list_agents_for_standard_and_provider(lib_env, standard_provider=None):
    """
    List resource agents for specified standard on the local host
    string standard_provider standard[:provider], e.g. None, ocf, ocf:pacemaker
    """
    if standard_provider:
        standards = [standard_provider]
    else:
        standards = resource_agent.list_resource_agents_standards(
            lib_env.cmd_runner())
    agents = []
    for std in standards:
        agents += resource_agent.list_resource_agents(lib_env.cmd_runner(),
                                                      std)
    return sorted(
        agents,
        # works with both str and unicode in both python 2 and 3
        key=lambda x: x.lower())
コード例 #9
0
ファイル: resource_agent.py プロジェクト: miz-take/pcs
def list_agents(lib_env, describe=True, search=None):
    """
    List all resource agents on the local host, optionally filtered and
        described
    bool describe load and return agents' description as well
    string search return only agents which name contains this string
    """
    runner = lib_env.cmd_runner()

    # list agents for all standards and providers
    agent_names = []
    for std in resource_agent.list_resource_agents_standards_and_providers(
            runner):
        agent_names += [
            "{0}:{1}".format(std, agent)
            for agent in resource_agent.list_resource_agents(runner, std)
        ]
    agent_names.sort(
        # works with both str and unicode in both python 2 and 3
        key=lambda x: x.lower())
    return _complete_agent_list(runner, agent_names, describe, search,
                                resource_agent.ResourceAgent)
コード例 #10
0
ファイル: resource_agent.py プロジェクト: CtrlZmaster/pcs
def list_agents_for_standard_and_provider(
        lib_env: LibraryEnvironment,
        standard_provider: Optional[str] = None) -> List[str]:
    """
    List resource agents for specified standard on the local host

    standard_provider -- standard[:provider], e.g. None, ocf, ocf:pacemaker
    """
    if standard_provider:
        if standard_provider[-1] == ":":
            standard_provider = standard_provider[:-1]
        std_prov_list = [
            StandardProviderTuple(*standard_provider.split(":", 1))
        ]
    else:
        std_prov_list = list_resource_agents_standards_and_providers(
            lib_env.cmd_runner())
    agents = []
    for std_prov in std_prov_list:
        if std_prov.is_stonith:
            continue
        agents += list_resource_agents(lib_env.cmd_runner(), std_prov)
    return sorted(agents, key=str.lower)