From 18a9a7e8ae979c7e9b6593e0b54a6dc6a26cf7cf Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Fri, 7 Feb 2025 20:16:16 -0600 Subject: [PATCH] fixup! fixup! wip: dynamic inventory --- plugins/inventory/pyrocufflink.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/inventory/pyrocufflink.py b/plugins/inventory/pyrocufflink.py index 2960c2c..26b778a 100644 --- a/plugins/inventory/pyrocufflink.py +++ b/plugins/inventory/pyrocufflink.py @@ -1,7 +1,7 @@ import enum import functools import logging -from typing import cast, Any, Optional +from typing import cast, Any, Iterator, Optional from xml.etree import ElementTree as etree import libvirt @@ -152,13 +152,7 @@ class Host: @functools.cached_property def groups(self) -> list[str]: - grouplist = [] - if self.metadata: - if groups := self.metadata.find('groups'): - for elem in groups.iter('group'): - if group_name := elem.get('name'): - grouplist.append(group_name) - return grouplist + return list(self._groups()) @functools.cached_property def libosinfo(self) -> Optional[etree.Element]: @@ -244,3 +238,11 @@ class Host: values['guest_info'] = guest_info return values + + def _groups(self) -> Iterator[str]: + if self.metadata is None: + return + if groups := self.metadata.find('groups'): + for elem in groups.iter('group'): + if group_name := elem.get('name'): + yield group_name