From 67f21bb03225b5596b23d41b1fed92b264080502 Mon Sep 17 00:00:00 2001 From: "Kanangot Balakrishnan, Bindhiya" Date: Fri, 1 Aug 2025 08:22:22 -0500 Subject: [PATCH] [SWDEV-537852] Update compute-partition set error messages (#505) [SWDEV-537852] Update compute-partition set error messages Setting compute partition needs sudo privileges. Added AmdSmiPermissionDeniedException to display CLI elevated permission errors. Signed-off-by: Bindhiya Kanangot Balakrishnan Signed-off-by: Maisam Arif Co-authored-by: Maisam Arif [ROCm/amdsmi commit: 27a1705d962c574dd7165970692c0b5ac8b58269] --- projects/amdsmi/amdsmi_cli/amdsmi_cli.py | 2 +- .../amdsmi/amdsmi_cli/amdsmi_cli_exceptions.py | 17 ++++++++++++++++- projects/amdsmi/amdsmi_cli/amdsmi_parser.py | 3 ++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/projects/amdsmi/amdsmi_cli/amdsmi_cli.py b/projects/amdsmi/amdsmi_cli/amdsmi_cli.py index 5d4e71cb1d..e9b2e7566e 100755 --- a/projects/amdsmi/amdsmi_cli/amdsmi_cli.py +++ b/projects/amdsmi/amdsmi_cli/amdsmi_cli.py @@ -155,5 +155,5 @@ if __name__ == "__main__": except amdsmi_cli_exceptions.AmdSmiException as e: _print_error(str(e), amd_smi_commands.logger.destination) except amdsmi_exception.AmdSmiLibraryException as e: - exc = amdsmi_cli_exceptions.AmdSmiAMDSMIErrorException(amd_smi_commands.logger.format, e.get_error_code()) + exc = amdsmi_cli_exceptions.AmdSmiLibraryErrorException(amd_smi_commands.logger.format, e.get_error_code()) _print_error(str(exc), amd_smi_commands.logger.destination) diff --git a/projects/amdsmi/amdsmi_cli/amdsmi_cli_exceptions.py b/projects/amdsmi/amdsmi_cli/amdsmi_cli_exceptions.py index 27dd3aecc3..a6f4aebaf4 100644 --- a/projects/amdsmi/amdsmi_cli/amdsmi_cli_exceptions.py +++ b/projects/amdsmi/amdsmi_cli/amdsmi_cli_exceptions.py @@ -264,6 +264,21 @@ class AmdSmiInvalidSubcommandException(AmdSmiException): self.stdout_message = f"{common_message} Error code: {self.value}" +class AmdSmiPermissionDeniedException(AmdSmiException): + def __init__(self, command, outputformat: str): + super().__init__() + self.value = -11 + self.command = command + self.output_format = outputformat + + common_message = f"AMD-SMI Command '{self.command}' requires elevation (sudo privileges required)" + + self.json_message["error"] = common_message + self.json_message["code"] = self.value + self.csv_message = f"error,code\n{common_message}, {self.value}" + self.stdout_message = f"{common_message} Error code: {self.value}" + + class AmdSmiUnknownErrorException(AmdSmiException): def __init__(self, command, outputformat: str): super().__init__() @@ -279,7 +294,7 @@ class AmdSmiUnknownErrorException(AmdSmiException): self.stdout_message = f"{common_message} Error code: {self.value}" -class AmdSmiAMDSMIErrorException(AmdSmiException): +class AmdSmiLibraryErrorException(AmdSmiException): def __init__(self, outputformat: str, error_code): super().__init__() self.value = -1000 - abs(error_code) diff --git a/projects/amdsmi/amdsmi_cli/amdsmi_parser.py b/projects/amdsmi/amdsmi_cli/amdsmi_parser.py index d1bf84d622..df3bac4ab0 100644 --- a/projects/amdsmi/amdsmi_cli/amdsmi_parser.py +++ b/projects/amdsmi/amdsmi_cli/amdsmi_parser.py @@ -217,7 +217,8 @@ class AMDSMIParser(argparse.ArgumentParser): def _is_command_supported(self, user_input, acceptable_values, command_name): if acceptable_values == "N/A": - raise amdsmi_cli_exceptions.AmdSmiCommandNotSupportedException(command_name, self.helpers.get_output_format()) + outputformat = self.helpers.get_output_format() + raise amdsmi_cli_exceptions.AmdSmiPermissionDeniedException(command_name, outputformat) elif str(user_input).upper() not in acceptable_values: print(f"Valid inputs are {acceptable_values}") raise amdsmi_cli_exceptions.AmdSmiInvalidParameterValueException(sys.argv[1], str(user_input).upper(), self.helpers.get_output_format())