From 6d6acffcc986e4d5750fa3528ff7315b9311d209 Mon Sep 17 00:00:00 2001 From: Raphael Lima Date: Thu, 2 May 2024 16:47:54 -0300 Subject: [PATCH] Fix dcmanager complete execution The implementation [1] to deprecate commands in dcmanager's client raised an exception when dcmanager help was executed which happened to break the dcmanager complete command used during bootstrap. This fix solves the issue and adds the deprecation message as a notice in the relevant commands. [1]: https://review.opendev.org/c/starlingx/distcloud-client/+/917493 Test plan: 1. PASS: Run dcmanager help displays the relevant deprecation message 2. PASS: Run dcmanager displays the relevant deprecation message and does not execute 3. PASS: Run dcmanager complete command Closes-Bug: 2064677 Change-Id: Icbe6e6f5e8145bb786d4b6aebb804416959cbb67 Signed-off-by: Raphael Lima --- .../commands/v1/subcloud_deploy_manager.py | 36 +++++------ .../commands/v1/subcloud_manager.py | 60 +++++++++---------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_deploy_manager.py b/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_deploy_manager.py index ccc68ab0..f4ed85da 100644 --- a/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_deploy_manager.py +++ b/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_deploy_manager.py @@ -164,33 +164,33 @@ class SubcloudDeployShow(base.DCManagerShowOne): class DeprecatedSubcloudDeployShow(SubcloudDeployShow): - def _raise_deprecation_message(self): - deprecation_msg = ( - "This command has been deprecated. Please use " - "subcloud deploy show instead." - ) - raise exceptions.DCManagerClientException(deprecation_msg) + DEPRECATION_MESSAGE = ("This command has been deprecated. Please use " + "subcloud deploy show instead.") - def get_parser(self, _): - self._raise_deprecation_message() + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument_group( + title="Notice", description=self.DEPRECATION_MESSAGE + ) + return parser def _get_resources(self, _): - self._raise_deprecation_message() + raise exceptions.DCManagerClientException(self.DEPRECATION_MESSAGE) class DeprecatedSubcloudDeployUpload(SubcloudDeployUpload): - def _raise_deprecation_message(self): - deprecation_msg = ( - "This command has been deprecated. Please use " - "subcloud deploy upload instead." - ) - raise exceptions.DCManagerClientException(deprecation_msg) + DEPRECATION_MESSAGE = ("This command has been deprecated. Please use " + "subcloud deploy upload instead.") - def get_parser(self, _): - self._raise_deprecation_message() + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument_group( + title="Notice", description=self.DEPRECATION_MESSAGE + ) + return parser def _get_resources(self, _): - self._raise_deprecation_message() + raise exceptions.DCManagerClientException(self.DEPRECATION_MESSAGE) class SubcloudDeployDelete(command.Command): diff --git a/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_manager.py b/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_manager.py index 55fa25cb..a1f70e55 100644 --- a/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_manager.py +++ b/distributedcloud-client/dcmanagerclient/commands/v1/subcloud_manager.py @@ -750,41 +750,41 @@ class UpdateSubcloud(base.DCManagerShowOne): class ReconfigSubcloud(base.DCManagerShowOne): """Reconfigure a subcloud.""" - def _raise_deprecation_message(self): - deprecation_msg = ( - "This command has been deprecated. Please use " - "'subcloud deploy config' instead." - ) - raise exceptions.DCManagerClientException(deprecation_msg) + DEPRECATION_MESSAGE = ("This command has been deprecated. Please use " + "'subcloud deploy config' instead.") def _get_format_function(self): return detail_format - def get_parser(self, _): - self._raise_deprecation_message() + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument_group( + title="Notice", description=self.DEPRECATION_MESSAGE + ) + return parser - def _get_resources(self, _): - self._raise_deprecation_message() + def _get_resources(self, parsed_args): + raise exceptions.DCManagerClientException(self.DEPRECATION_MESSAGE) class ReinstallSubcloud(base.DCManagerShowOne): """Reinstall a subcloud.""" - def _raise_deprecation_message(self): - deprecation_msg = ( - "This command has been deprecated. Please use " - "'subcloud redeploy' instead." - ) - raise exceptions.DCManagerClientException(deprecation_msg) + DEPRECATION_MESSAGE = ("This command has been deprecated. Please use " + "'subcloud redeploy' instead.") def _get_format_function(self): return detail_format - def get_parser(self, _): - self._raise_deprecation_message() + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument_group( + title="Notice", description=self.DEPRECATION_MESSAGE + ) + return parser - def _get_resources(self, _): - self._raise_deprecation_message() + def _get_resources(self, parsed_args): + raise exceptions.DCManagerClientException(self.DEPRECATION_MESSAGE) class RedeploySubcloud(base.DCManagerShowOne): @@ -925,21 +925,21 @@ class RedeploySubcloud(base.DCManagerShowOne): class RestoreSubcloud(base.DCManagerShowOne): """Restore a subcloud.""" - def _raise_deprecation_message(self): - deprecation_msg = ( - "This command has been deprecated. Please use " - "subcloud-backup restore instead." - ) - raise exceptions.DCManagerClientException(deprecation_msg) + DEPRECATION_MESSAGE = ("This command has been deprecated. Please use " + "subcloud-backup restore instead.") def _get_format_function(self): return detail_format - def get_parser(self, _): - self._raise_deprecation_message() + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument_group( + title="Notice", description=self.DEPRECATION_MESSAGE + ) + return parser - def _get_resources(self, _): - self._raise_deprecation_message() + def _get_resources(self, parsed_args): + raise exceptions.DCManagerClientException(self.DEPRECATION_MESSAGE) class PrestageSubcloud(base.DCManagerShowOne):