<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos.vyos.git, branch fix/icmp-parse-attr-bug</title>
<subtitle>Ansible Network Collection for VyOS (mirror of https://github.com/vyos/vyos.vyos.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos.vyos.git/atom?h=fix%2Ficmp-parse-attr-bug</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos.vyos.git/atom?h=fix%2Ficmp-parse-attr-bug'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/'/>
<updated>2026-06-25T20:05:34+00:00</updated>
<entry>
<title>Merge branch 'main' into fix/icmp-parse-attr-bug</title>
<updated>2026-06-25T20:05:34+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2026-06-25T20:05:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=921636e10fd8a4c765aa16049a4e45c2faca08e7'/>
<id>urn:sha1:921636e10fd8a4c765aa16049a4e45c2faca08e7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T2295: vyos_user: quote plaintext-password in generated set commands (#480)</title>
<updated>2026-06-25T19:30:57+00:00</updated>
<author>
<name>Stavros Kroustouris</name>
<email>kroustou@users.noreply.github.com</email>
</author>
<published>2026-06-25T19:30:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=6d7a2184e970624f74f333931f7f70a1f900f7b5'/>
<id>urn:sha1:6d7a2184e970624f74f333931f7f70a1f900f7b5</id>
<content type='text'>
* vyos_user: quote plaintext-password in generated set commands

VyOS requires quoted values for passwords with special characters.
Align with encrypted-password and integration test conventions.

Co-authored-by: Cursor &lt;cursoragent@cursor.com&gt;

* T2295: escape plaintext-password values in vyos_user set commands

Quote passwords for VyOS special-character handling and escape embedded
single quotes. Update RETURN sample, add unit tests, refresh changelog.

Co-authored-by: Cursor &lt;cursoragent@cursor.com&gt;

* T2295: shorten changelog fragment for ansible-lint line-length

Co-authored-by: Cursor &lt;cursoragent@cursor.com&gt;

* T2295: use shlex.quote() for plaintext-password values

Replace custom _quote_config_value() with stdlib shlex.quote() per
review feedback; update unit tests and RETURN sample accordingly.

Co-authored-by: Cursor &lt;cursoragent@cursor.com&gt;

* T2295: add complex plaintext-password quoting unit test

Cover spaces, shell metacharacters, embedded quotes, and backslashes in
one password; assert command output matches shlex.quote().

Co-authored-by: Cursor &lt;cursoragent@cursor.com&gt;

* T2295: assert explicit quoting in complex password unit test

Replace shlex.quote()-derived expectation with a fixed command string,
matching the other password quoting tests.

Co-authored-by: Cursor &lt;cursoragent@cursor.com&gt;

* Fix RETURN doc sample, add docstrings and workflow permissions

- RETURN sample was missing the username token in the example command
- Add docstrings to all undocumented module-level functions to bring
  docstring coverage above the 80% threshold
- Add explicit permissions: contents: read to codecoverage.yml

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

* Revert "Fix RETURN doc sample, add docstrings and workflow permissions"

This reverts commit 827809ee49cf472a8bf30ec0b24d347a75fcb083.

---------

Co-authored-by: Cursor &lt;cursoragent@cursor.com&gt;
Co-authored-by: omnom62 &lt;75066712+omnom62@users.noreply.github.com&gt;
Co-authored-by: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;</content>
</entry>
<entry>
<title>rm_templates: T8609: fix slow parse() from group-quantifier patterns (#470)</title>
<updated>2026-06-19T13:02:27+00:00</updated>
<author>
<name>Robert Navarro</name>
<email>crshman@gmail.com</email>
</author>
<published>2026-06-19T13:02:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=5b80cd0cbddd014e54b01e7fa1cd0c0777d94724'/>
<id>urn:sha1:5b80cd0cbddd014e54b01e7fa1cd0c0777d94724</id>
<content type='text'>
* rm_templates: T8609: fix slow parse() from group-quantifier patterns

Running an Ansible playbook that manages BGP route-maps on my VyOS 1.4
edge routers, the vyos.vyos.vyos_route_maps task (state=gathered or
state=merged) takes ~50 seconds per host, sometimes 100s+, against
devices with only a handful of route-maps configured.  The persistent
connection times out before the module finishes and the failure
surfaces as a misleading "socket path does not exist".

Three related quantifier shapes in nine rm_templates files cause O(2^n)
regex backtracking on inputs that share a parser's prefix but don't
match overall.  parse() time on a representative 12-line route-map
config drops from ~50s to &lt;1ms post-fix.

* Trailing form (188 sites): `(?P&lt;X&gt;\S+)\n  *$"""` -&gt; `(?P&lt;X&gt;\S+)\s*$"""`.
  Under re.VERBOSE the literal newline+indent between `\S+` and `*$`
  is stripped at compile time, so the source compiled to `(\S+)*$`
  with the `*` quantifying the named group.

* Mid-pattern `(group containing \S+)*` (22 sites in snmp_server.py
  with a couple in bgp_global*.py): e.g.
  `(?P&lt;protocol&gt;protocol\s\S+)*` -&gt; `(?P&lt;protocol&gt;protocol\s\S+)?`.
  Different position from the trailing form, but the same shape
  underneath (a group whose content includes \S+, quantified with
  `*`), so the same O(2^n) backtracking on prefix-sharing inputs.

* Mid-pattern `(literal-only group)*` (14 sites in snmp_server.py,
  bgp_address_family*.py, bgp_global*.py): e.g.
  `(?P&lt;as_set&gt;as-set)*` -&gt; `(?P&lt;as_set&gt;as-set)?`.  No \S+ inside the
  quantified group, so the backtracking exposure is much smaller.
  On the inputs these patterns actually receive (no device line
  carries duplicate flags) `*` and `?` accept identical input sets,
  so changing to `?` is behavior-preserving.

The first draft of this fix made set_comm_list_delete's
`(?P&lt;delete&gt;\S+)` group required.  The parser's setval emits `set
comm-list delete` with no token after `delete`, so the parser stopped
matching its own output (no existing fixture covered this case, which
is why the regression initially shipped).  CodeRabbit caught it
during review.  Replaced `delete(?P&lt;delete&gt;\S+)\s*$` with
`\s(?P&lt;delete&gt;delete)\s*$` so the named group captures the literal
word `delete`; the result template `{{True if delete is defined}}`
continues to evaluate True.

Affects: route_maps[/_14], bgp_global[/_14], bgp_address_family[/_14],
snmp_server, ospf_interfaces[/_14].

Adds tests/unit/modules/network/vyos/test_rm_templates_perf.py with
a 1-second budget against fixture inputs that have realistic-length
identifiers, plus a round-trip test asserting set_comm_list_delete
matches its own setval-generated line, plus a Bgp_address_familyTemplate14
budget test for symmetry with the other "hot" template families.

* Fix regex backtracking issues in parse() method

Fix slow parse() to prevent regex backtracking on prefix-sharing inputs across multiple files. Add unit test for the bugfixes.

* Refactor bug fixes for regex backtracking improvements

Updated bug fixes to include details on regex backtracking issues in multiple files.

* Fix typo in bugfixes section of changelog

* Update bugfixes for regex backtracking issues

* rm_templates: T8609: route_maps.py: fix remaining trailing `*$` patterns

Five sites in route_maps.py still had the `(?P&lt;name&gt;...)\n  *$` shape that collapses to `(?P&lt;name&gt;...)*$` under `re.VERBOSE`, parsers `sequence`, `on_match_next`, `set_atomic_aggregate`, `set_extcommunity_bandwidth_non_transitive`, and `match_community_exact_match`.  Collapsed each to `\s*$` on the same line as the named group, matching the rest of the PR.

* rm_templates: T8609: route_maps.py: split overlong getval to satisfy E501

Line 517 was 161 chars (`set_extcommunity_bandwidth_non_transitive` parser) and tripped pycodestyle's E501 sanity test in CI.  Split the regex source across two lines at the `\d+)` boundary; under `re.VERBOSE` the literal newline and indent between regex tokens are stripped at compile time, so the engine sees the same pattern.  `\s*$` stays on the same line as the closing capture group, so the group-quantifier shape this PR fixes elsewhere isn't reintroduced.

---------

Co-authored-by: omnom62 &lt;75066712+omnom62@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Merge branch 'main' into fix/icmp-parse-attr-bug</title>
<updated>2026-06-11T20:10:35+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2026-06-11T20:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=53e672f4103ef3e9fa5067ce9dd072bfc5b78bba'/>
<id>urn:sha1:53e672f4103ef3e9fa5067ce9dd072bfc5b78bba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #484 from vyos/dependabot/github_actions/codecov/codecov-action-7</title>
<updated>2026-06-11T02:08:16+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2026-06-11T02:08:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=05a852be0687eee5264c190942da66c7139465bd'/>
<id>urn:sha1:05a852be0687eee5264c190942da66c7139465bd</id>
<content type='text'>
Bump codecov/codecov-action from 6 to 7</content>
</entry>
<entry>
<title>Bump codecov/codecov-action from 6 to 7</title>
<updated>2026-06-08T19:03:15+00:00</updated>
<author>
<name>dependabot[bot]</name>
<email>49699333+dependabot[bot]@users.noreply.github.com</email>
</author>
<published>2026-06-08T19:03:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=6e53f1eaaab328d38a5c5fd82a29b77b34d5143b'/>
<id>urn:sha1:6e53f1eaaab328d38a5c5fd82a29b77b34d5143b</id>
<content type='text'>
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;</content>
</entry>
<entry>
<title>T8966: add legacy-label escape to invalid-task-id rule (commit check exempt) (#483)</title>
<updated>2026-06-07T22:34:47+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-06-07T22:34:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=95d335540ff8dd9c7d2ad618c8d9b569f15c6252'/>
<id>urn:sha1:95d335540ff8dd9c7d2ad618c8d9b569f15c6252</id>
<content type='text'>
The per-repo T-ID rule flagged every commit's first line, but on repos that
squash-merge AND block force-push (vyos.vyos enforces non_fast_forward on ~ALL
branches, zero bypass) authors cannot rewrite history to make existing commits
conform. The label became unclearable. Keep the title check (always fixable),
and exempt the per-commit check when a maintainer applies the new `legacy`
label. New PRs are still nudged toward the convention.

🤖 Generated by [robots](https://vyos.io)</content>
</entry>
<entry>
<title>ci: T8966: exempt bots from product T-ID (invalid-task-id) gate (#482)</title>
<updated>2026-06-06T16:02:37+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-06-06T16:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=69fccf7db6857106e13fa29fee63176c3b52248d'/>
<id>urn:sha1:69fccf7db6857106e13fa29fee63176c3b52248d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ci: T8966: add product T-ID title/commit check (opt-in relocation) (#481)</title>
<updated>2026-06-05T21:00:34+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-06-05T21:00:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=55758ebb3578d01db3e54a052eb6c2ab775162ca'/>
<id>urn:sha1:55758ebb3578d01db3e54a052eb6c2ab775162ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'main' into fix/icmp-parse-attr-bug</title>
<updated>2026-06-02T06:46:46+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2026-06-02T06:46:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=25a5e9ac257c811aeb6875c58f1ac7f901978f56'/>
<id>urn:sha1:25a5e9ac257c811aeb6875c58f1ac7f901978f56</id>
<content type='text'>
</content>
</entry>
</feed>
