Skip to content

Commit

Permalink
Raise clear error message on invalid Windows minion WinRM creds.
Browse files Browse the repository at this point in the history
Signed-off-by: Nashwan Azhari <nazhari@cloudbasesolutions.com>
  • Loading branch information
aznashwan committed Mar 4, 2024
1 parent f32c251 commit 1a7922c
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions coriolis/wsman.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,9 @@ def set_timeout(self, timeout):
def _exec_command(self, cmd, args=[], timeout=None):
timeout = int(timeout or self._conn_timeout)
self.set_timeout(timeout)
shell_id = self._protocol.open_shell(codepage=CODEPAGE_UTF8)
shell_id = None
try:
shell_id = self._protocol.open_shell(codepage=CODEPAGE_UTF8)
command_id = self._protocol.run_command(shell_id, cmd, args)
try:
(std_out,
Expand All @@ -115,8 +116,21 @@ 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:
self._protocol.close_shell(shell_id)
if shell_id:
self._protocol.close_shell(shell_id)

def exec_command(self, cmd, args=[], timeout=None):
LOG.debug("Executing WSMAN command: %s", str([cmd] + args))
Expand Down

0 comments on commit 1a7922c

Please sign in to comment.