From 9242203b7e95ce72739ae91965a454e998bcd972 Mon Sep 17 00:00:00 2001 From: Nashwan Azhari Date: Tue, 5 Mar 2024 17:43:24 +0200 Subject: [PATCH] Move winrm_exception.InvalidCredentials handling back to wsman.py. Signed-off-by: Nashwan Azhari --- coriolis/osmorphing/osmount/windows.py | 17 ++++------------- coriolis/wsman.py | 12 ++++++++++++ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/coriolis/osmorphing/osmount/windows.py b/coriolis/osmorphing/osmount/windows.py index 8bcc6de09..0a533d0aa 100644 --- a/coriolis/osmorphing/osmount/windows.py +++ b/coriolis/osmorphing/osmount/windows.py @@ -5,7 +5,6 @@ import uuid from oslo_log import log as logging -from winrm import exceptions as winrm_exceptions from coriolis import exception from coriolis.osmorphing.osmount import base @@ -37,23 +36,15 @@ def check_os(self): "(get-ciminstance Win32_OperatingSystem).Caption") LOG.debug("Windows version: %s", version_info) return True - except winrm_exceptions.InvalidCredentialsError as ex: - raise exception.NotAuthorized( - message="The WinRM connection credentials are invalid. " - "If you are using a template with a default " - "pre-baked username/password, please ensure " - "that you have passed the credentials to the " - "destination Coriolis plugin you have selected," - " either via the Target Environment parameters " - "set when creating the Migration/Replica, or " - "by setting it in the destination plugin's " - "dedicated section of the coriolis.conf " - "static configuration file.") from ex + except exception.NotAuthorized: + # NOTE: Unauthorized exceptions should be propagated. + raise except exception.CoriolisException: LOG.debug( "Failed Windows OSMount OS check: %s", utils.get_exception_details()) pass + return False def _run_diskpart_script(self, script): """Executes the given script with diskpart.exe. diff --git a/coriolis/wsman.py b/coriolis/wsman.py index 196aa2c46..adb69cc27 100644 --- a/coriolis/wsman.py +++ b/coriolis/wsman.py @@ -116,6 +116,18 @@ def _exec_command(self, cmd, args=[], timeout=None): self._protocol.cleanup_command(shell_id, command_id) return (std_out, std_err, exit_code) + except winrm_exceptions.InvalidCredentialsError as ex: + raise exception.NotAuthorized( + message="The WinRM connection credentials are invalid. " + "If you are using a template with a default " + "pre-baked username/password, please ensure " + "that you have passed the credentials to the " + "destination Coriolis plugin you have selected," + " either via the Target Environment parameters " + "set when creating the Migration/Replica, or " + "by setting it in the destination plugin's " + "dedicated section of the coriolis.conf " + "static configuration file.") from ex finally: if shell_id: self._protocol.close_shell(shell_id)