From 40ce56201c08c2853bfcf8c54f32b88f12b888db Mon Sep 17 00:00:00 2001
From: Stephen Finucane <stephenfin@redhat.com>
Date: Tue, 25 Jun 2024 18:38:19 +0100
Subject: [PATCH] compute: Remove unnecessary try-except

We don't need to transform one HTTP Forbidden-related error to another:
just use the original one. This also fixes an issue where we would end
up with an undefined variable (server_id) if a non-HTTP 403 exception
was raised, since that would be blindly ignored.

Change-Id: Icdd1764b6f2df4a635e3264ed8f93a115cc52ef2
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-Bug: #2062010
---
 openstackclient/compute/v2/server.py | 35 ++++++++++------------------
 1 file changed, 12 insertions(+), 23 deletions(-)

diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 62785cd0b4..a88a79fe6e 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -4844,17 +4844,12 @@ class StartServer(command.Command):
     def take_action(self, parsed_args):
         compute_client = self.app.client_manager.sdk_connection.compute
         for server in parsed_args.server:
-            try:
-                server_id = compute_client.find_server(
-                    server,
-                    ignore_missing=False,
-                    details=False,
-                    all_projects=parsed_args.all_projects,
-                ).id
-            except sdk_exceptions.HttpException as exc:
-                if exc.status_code == 403:
-                    msg = _("Policy doesn't allow passing all-projects")
-                    raise exceptions.Forbidden(msg)
+            server_id = compute_client.find_server(
+                server,
+                ignore_missing=False,
+                details=False,
+                all_projects=parsed_args.all_projects,
+            ).id
 
             compute_client.start_server(server_id)
 
@@ -4884,18 +4879,12 @@ class StopServer(command.Command):
     def take_action(self, parsed_args):
         compute_client = self.app.client_manager.sdk_connection.compute
         for server in parsed_args.server:
-            try:
-                server_id = compute_client.find_server(
-                    server,
-                    ignore_missing=False,
-                    details=False,
-                    all_projects=parsed_args.all_projects,
-                ).id
-            except sdk_exceptions.HttpException as exc:
-                if exc.status_code == 403:
-                    msg = _("Policy doesn't allow passing all-projects")
-                    raise exceptions.Forbidden(msg)
-
+            server_id = compute_client.find_server(
+                server,
+                ignore_missing=False,
+                details=False,
+                all_projects=parsed_args.all_projects,
+            ).id
             compute_client.stop_server(server_id)