def pattern_matching_domains_in_libvirt(pattern, conn):
"""
Parse the host pattern as written in the config and find matching hosts
:param pattern: pattern to match on one or several domain names
:param conn: connection with libvirt
"""
exclude, pattern = _handle_possible_exclusion_host_pattern(pattern)
if pattern.startswith("r:"):
pattern = pattern[2:]
domains = search_domains_regex(pattern, conn)
elif pattern.startswith("g:"):
domains = _include_group_domains(pattern)
else:
try:
# will raise libvirt.libvirtError if the domain is not found
conn.lookupByName(pattern)
domains = (pattern,)
except libvirt.libvirtError as e:
logger.error(e)
domains = tuple()
return {"domains": domains, "exclude": exclude}
评论列表
文章目录