Tenho uma lista de dicionários como esta:
myvar:
- host: host1
version: 2
- host: host2
version: 5
- host: host3
version: 4
Estou tentando escrever uma tarefa assert que falha quando qualquer um dos hosts tem uma versão > 3 e também quero que a mensagem de falha inclua todos esses hosts. Por exemplo:
The following hosts have a version greater than 3: host2, host3
A última parte é essencial. Quero exibir todos os hosts que falharam na verificação, não apenas o primeiro. Obrigado.
Seria mais fácil definir uma variável intermediária como
hosts_with_version_above_threshold
porque ela será reutilizada tanto para a validação quanto para a mensagem de erro. Para filtrar os hosts com uma versão acima do limiteselectattr
, podemos usar o filtro Jinja2 e mostrar apenas os hosts na mensagem -map
(veja Loops e compreensões de lista para detalhes):