예제 #1
0
def _complete_agent_list(
    runner: CommandRunner,
    report_processor: ReportProcessor,
    agent_names: Iterable[ResourceAgentName],
    describe: bool,
    search: Optional[str],
) -> List[Dict[str, Any]]:
    agent_factory = ResourceAgentFacadeFactory(runner, report_processor)
    search_lower = search.lower() if search else None
    agent_list = []
    for name in agent_names:
        if search_lower and search_lower not in name.full_name.lower():
            continue
        try:
            metadata = (
                agent_factory.facade_from_parsed_name(name).metadata
                if describe
                else name_to_void_metadata(name)
            )
            agent_list.append(_agent_metadata_to_dict(metadata, describe))
        except ResourceAgentError as e:
            report_processor.report(
                resource_agent_error_to_report_item(
                    e, ReportItemSeverity.warning()
                )
            )
    return agent_list
예제 #2
0
 def test_success(self):
     name = ResourceAgentName("ocf", "pacemaker", "Dummy")
     self.assertEqual(
         name_to_void_metadata(name),
         ResourceAgentMetadata(
             name,
             False,
             const.OCF_1_0,
             shortdesc=None,
             longdesc=None,
             parameters=[],
             actions=[],
         ),
     )