Skip to content

Commit e8ac5ca

Browse files
authored
Merge pull request #126 from CiscoTestAutomation/release_26.5
Releasing v26.5
2 parents 3138375 + 18dc514 commit e8ac5ca

38 files changed

Lines changed: 2312 additions & 1869 deletions

docs/changelog/2026/may.rst

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
May 2026
2+
==========
3+
4+
May 26 - Unicon v26.5
5+
------------------------
6+
7+
8+
9+
.. csv-table:: Module Versions
10+
:header: "Modules", "Versions"
11+
12+
``unicon.plugins``, v26.5
13+
``unicon``, v26.5
14+
15+
16+
17+
18+
Changelogs
19+
^^^^^^^^^^
20+
--------------------------------------------------------------------------------
21+
Fix
22+
--------------------------------------------------------------------------------
23+
24+
* iosxe/cat9k
25+
* Updated `HARommon`
26+
* Ensures HA rommon breaks boot on all consoles via active reload plus parallel standby interrupts with improved state validation.
27+
28+
* iosxe/stack
29+
* Updated `StackStateMachine`
30+
* Refactored rommon path to include entire shelf reload and breakboot on all members.
31+
* update `StackRommon` to inherit from `IosXESingleRpStateMachine` to leverage existing rommon logic and ensure consistency with single RP devices.
32+
33+

docs/changelog/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Changelog
44
.. toctree::
55
:maxdepth: 2
66

7+
2026/may
78
2026/april
89
2026/march
910
2026/february
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
May 2026
2+
==========
3+
4+
May 26 - Unicon v26.5
5+
------------------------
6+
7+
8+
9+
.. csv-table:: Module Versions
10+
:header: "Modules", "Versions"
11+
12+
``unicon.plugins``, v26.5
13+
``unicon``, v26.5
14+
15+
16+
17+
18+
Changelogs
19+
^^^^^^^^^^
20+
--------------------------------------------------------------------------------
21+
Fix
22+
--------------------------------------------------------------------------------
23+
24+
* nxos/n9k
25+
* AttachModuleConsoleN9k
26+
* Updated to use 'run bash sudo rlogin lc<N>' command for CTC collection support
27+
28+
* nxos
29+
* AttachModuleConsole
30+
* Updated escape character detection to match 'press ~, to exit' message
31+
32+
* iosxe
33+
* Added self-signed secure server certificate warning messages to syslog
34+
* Updated fast_reload_confirm in pattern to match Proceed with fast reload? [confirm].
35+
* Modified c8kv statemachine
36+
* Updated rommon handling and state transitions
37+
* Cleaned up unused code and improved state management
38+
* Modified c8kv statements
39+
* Updated statements for better rommon support
40+
* Modified patterns
41+
* Updated patterns to support c8kv rommon handling
42+
* Modified statements
43+
* Updated general statements for improved rommon compatibility
44+
* Modified patterns
45+
* Updated are_you_sure pattern to make [y] optional, fixing TimeoutError
46+
* Connection provider
47+
* Updated enable invocation to use the connection-level
48+
49+
* iosxr
50+
* Modified execute service
51+
* Fixed state detection overrides so commands that disable detection do not affect later execute calls.
52+
* Passed the per-command detect_state value through service kwargs instead of storing it on the service instance.
53+
54+
* cheetah/ap
55+
* Updated the AP shell prompt pattern to match both ``~`` and ``/`` shell prompts, and added a regression test for the home-directory prompt case.
56+
57+
* unicon.plugins
58+
* Updated the pid_tokens.csv file to include additional pids.
59+
60+
* generic
61+
* Enable
62+
* Added support for passing `prompt_recovery` to the state machine when
63+
64+
65+
--------------------------------------------------------------------------------
66+
Prompt.
67+
--------------------------------------------------------------------------------
68+
69+

docs/changelog_plugins/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Plugins Changelog
44
.. toctree::
55
:maxdepth: 2
66

7+
2026/may
78
2026/april
89
2026/march
910
2026/february

src/unicon/plugins/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "26.4"
1+
__version__ = "26.5"
22

33
supported_chassis = [
44
'single_rp',

src/unicon/plugins/cheetah/ap/patterns.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ class CheetahAPPatterns(GenericPatterns):
99

1010
def __init__(self):
1111
super().__init__()
12-
self.ap_shell_prompt = r'^(.*?)\w+:\/(.*?)#\s?$'
12+
self.ap_shell_prompt = r'^(.*?)\w+:(~|\/)(.*?)#\s?$'

src/unicon/plugins/generic/patterns.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ def __init__(self):
8181
r"%Error opening tftp:\/\/255\.255\.255\.255|Autoinstall trying|"
8282
r"audit: kauditd hold queue overflow|SECURITY WARNING|%RSA key|INSECURE DYNAMIC WARNING|"
8383
r"key config-key password-encrypt|"
84+
r"Failed to generate persistent self-signed certificate\.|"
85+
r"Secure server will use temporary self-signed certificate\.|"
8486
r"(LC|RP)/\d+/\d+/CPU\d+:\w+\s+\d+\s+\d{2}:\d{2}:\d{2}|"
8587
r"\[OK\]"
8688
r").*\s*$"

src/unicon/plugins/generic/service_implementation.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,8 @@ def call_service(self, target=None, command='', *args, **kwargs):
513513
sm.go_to(self.start_state,
514514
spawn,
515515
context=handle.context,
516-
timeout=timeout)
516+
timeout=timeout,
517+
prompt_recovery=self.prompt_recovery)
517518
except (UniconAuthenticationError, CredentialsExhaustedError):
518519
# Don't wrap auth errors - re-raise them directly
519520
raise
@@ -611,7 +612,6 @@ def __init__(self, connection, context, **kwargs):
611612
self.matched_retry_sleep = connection.settings.EXECUTE_MATCHED_RETRY_SLEEP
612613
self.state_change_matched_retries = connection.settings.EXECUTE_STATE_CHANGE_MATCH_RETRIES
613614
self.state_change_matched_retry_sleep = connection.settings.EXECUTE_STATE_CHANGE_MATCH_RETRY_SLEEP
614-
self.detect_state = True
615615

616616
def log_service_call(self):
617617
pass
@@ -635,7 +635,7 @@ def call_service(self, command=[], # noqa: C901
635635
if allow_state_change is None:
636636
allow_state_change = con.settings.EXEC_ALLOW_STATE_CHANGE
637637

638-
self.detect_state = detect_state if detect_state is not None else self.detect_state
638+
detect_state = True if detect_state is None else detect_state
639639

640640
timeout = timeout or self.timeout
641641

@@ -693,7 +693,7 @@ def call_service(self, command=[], # noqa: C901
693693
if custom_auth_stmt:
694694
dialog += Dialog(custom_auth_stmt)
695695

696-
if self.detect_state:
696+
if detect_state:
697697
# Add all known states to detect state changes.
698698
for state in sm.states:
699699
# The current state is already added by the service_dialog method
@@ -3130,4 +3130,3 @@ def __getattr__(self, attr):
31303130
else:
31313131
raise AttributeError('Device %s and/or connection %s has no attribute %s'
31323132
% (self.conn.device, self.conn, attr))
3133-

src/unicon/plugins/generic/service_patterns.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def __init__(self):
3131
self.connection_closed = r'^(.*?)Connection.*? closed|disconnect: Broken pipe'
3232
self.press_return = r'Press RETURN to get started.*'
3333
self.config_session_locked = r'^.*Config session is locked.*user will be pushed back to exec mode'
34-
34+
self.fast_reload_confirm = r'^.*Proceed( with( (quick|fast))? reload)?\?\s*\[confirm\]'
3535

3636
# Traceroute patterns
3737
class TraceroutePatterns(object):

src/unicon/plugins/iosxe/c8kv/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22
from unicon.plugins.iosxe import IosXEServiceList, IosXESingleRpConnection
33
from unicon.plugins.iosxe.c8kv.statemachine import IosXEC8kvSingleRpStateMachine
44

5+
from . import service_implementation as svc
6+
57
class IosXEC8kvServiceList(IosXEServiceList):
68
def __init__(self):
79
super().__init__()
10+
self.reload = svc.Reload
11+
812

913
class IosXEC8kvSingleRpConnection(IosXESingleRpConnection):
1014
platform = 'c8kv'

0 commit comments

Comments
 (0)