From 01895c78c3cbc6c33b430b8657a7eec8b5e96185 Mon Sep 17 00:00:00 2001 From: Jose Date: Thu, 25 Dec 2025 21:57:40 +0100 Subject: [PATCH] =?UTF-8?q?refactor=20=E2=99=BB=EF=B8=8F:=20Refactor=20WOL?= =?UTF-8?q?=20parsing=20task=20for=20better=20readability=20and=20efficien?= =?UTF-8?q?cy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This refactoring improves the structure and performance of the Wake-On-LAN (WOL) packet parsing task, enhancing both its readability and execution speed. --- tasks/main.yml | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 2456f3a..234f5cb 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -44,7 +44,34 @@ msg: > {{ wol_check.results | map(attribute='stdout_lines') | list }} -- name: Parse WOL support and state (guaranteed match) +# - name: Parse WOL support and state (guaranteed match) +# ansible.builtin.set_fact: +# wol_info: >- +# {{ +# wol_info | default({}) | +# combine({ +# item.item: { +# 'supports_magic': +# ( +# item.stdout_lines +# | select('search', 'Supports Wake-on:') +# | join('') +# ).find('g') != -1, +# 'current_state': +# ( +# item.stdout_lines +# | map('trim') +# | select('match', '^Wake-on:') +# | map('regex_replace', 'Wake-on:\\s*', '') +# | first +# | default('unknown') +# ) +# } +# }) +# }} +# loop: "{{ wol_check.results }}" + +- name: Parse WOL support and state (final) ansible.builtin.set_fact: wol_info: >- {{ @@ -53,16 +80,15 @@ item.item: { 'supports_magic': ( - item.stdout_lines - | select('search', 'Supports Wake-on:') - | join('') + item.stdout + | regex_findall('Supports Wake-on:\\s*([a-z]+)') + | first + | default('') ).find('g') != -1, 'current_state': ( - item.stdout_lines - | map('trim') - | select('match', '^Wake-on:') - | map('regex_replace', 'Wake-on:\\s*', '') + item.stdout + | regex_findall('\\n\\s*Wake-on:\\s*([a-z]+)') | first | default('unknown') )