Skip to content

Commit 8bd29f4

Browse files
author
Bernd Verst
committed
Address copilot core review
1 parent f260067 commit 8bd29f4

2 files changed

Lines changed: 42 additions & 23 deletions

File tree

src/durabletask/azext_durabletask/_format.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,21 @@
66
from collections import OrderedDict
77

88

9+
def _get_resource_group(result):
10+
"""Derive the resource group name from the resource id."""
11+
resource_id = result.get('id', '')
12+
if resource_id:
13+
from azure.mgmt.core.tools import parse_resource_id
14+
parsed = parse_resource_id(resource_id)
15+
return parsed.get('resource_group', '')
16+
return ''
17+
18+
919
def scheduler_table_format(result):
1020
"""Format a single scheduler for table output."""
1121
return OrderedDict([
1222
('Name', result.get('name', '')),
13-
('ResourceGroup', result.get('resourceGroup', '')),
23+
('ResourceGroup', _get_resource_group(result)),
1424
('Location', result.get('location', '')),
1525
('State', result.get('properties', {}).get('provisioningState', '')),
1626
('SKU', result.get('properties', {}).get('sku', {}).get('name', '')),
@@ -27,7 +37,7 @@ def taskhub_table_format(result):
2737
"""Format a single task hub for table output."""
2838
return OrderedDict([
2939
('Name', result.get('name', '')),
30-
('ResourceGroup', result.get('resourceGroup', '')),
40+
('ResourceGroup', _get_resource_group(result)),
3141
('State', result.get('properties', {}).get('provisioningState', '')),
3242
])
3343

src/durabletask/azext_durabletask/_scheduler.py

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from .aaz.latest.durabletask.scheduler import Show as _SchedulerShow
99
from .aaz.latest.durabletask.taskhub import Show as _TaskHubShow
1010
from azure.cli.core.azclierror import ValidationError, ResourceNotFoundError
11+
from azure.core.exceptions import HttpResponseError
1112

1213
import logging
1314
logger = logging.getLogger(__name__)
@@ -155,11 +156,13 @@ def _resolve_user_assigned_identity(cli_ctx, identity_resource_id):
155156
subscription_id=sub)
156157
try:
157158
identity = msi_client.user_assigned_identities.get(rg, name)
158-
except Exception as ex:
159-
raise ResourceNotFoundError(
160-
f"User-assigned identity '{identity_resource_id}' not found. "
161-
"Please verify the resource ID."
162-
) from ex
159+
except HttpResponseError as ex:
160+
if ex.status_code == 404:
161+
raise ResourceNotFoundError(
162+
f"User-assigned identity '{identity_resource_id}' not found. "
163+
"Please verify the resource ID."
164+
) from ex
165+
raise
163166

164167
if identity is None or identity.principal_id is None:
165168
raise ResourceNotFoundError(
@@ -243,11 +246,13 @@ def _get_functionapp_identity(cli_ctx, target_name, target_resource_group, targe
243246
subscription_id=target_subscription)
244247
try:
245248
app = web_client.web_apps.get(target_resource_group, target_name)
246-
except Exception as ex:
247-
raise ResourceNotFoundError(
248-
f"Function app '{target_name}' not found in resource group "
249-
f"'{target_resource_group}'. Please verify the name and resource group."
250-
) from ex
249+
except HttpResponseError as ex:
250+
if ex.status_code == 404:
251+
raise ResourceNotFoundError(
252+
f"Function app '{target_name}' not found in resource group "
253+
f"'{target_resource_group}'. Please verify the name and resource group."
254+
) from ex
255+
raise
251256

252257
if app is None or app.name is None:
253258
raise ResourceNotFoundError(
@@ -275,11 +280,13 @@ def _get_containerapp_identity(cli_ctx, target_name, target_resource_group, targ
275280
api_version='2024-03-01')
276281
try:
277282
app = ca_client.container_apps.get(target_resource_group, target_name)
278-
except Exception as ex:
279-
raise ResourceNotFoundError(
280-
f"Container app '{target_name}' not found in resource group "
281-
f"'{target_resource_group}'. Please verify the name and resource group."
282-
) from ex
283+
except HttpResponseError as ex:
284+
if ex.status_code == 404:
285+
raise ResourceNotFoundError(
286+
f"Container app '{target_name}' not found in resource group "
287+
f"'{target_resource_group}'. Please verify the name and resource group."
288+
) from ex
289+
raise
283290

284291
if app is None or app.name is None:
285292
raise ResourceNotFoundError(
@@ -433,12 +440,14 @@ def attach_scheduler(cmd, resource_group_name, scheduler_name, task_hub_name, #
433440
"scheduler_name": scheduler_name,
434441
"name": task_hub_name,
435442
})
436-
except Exception as ex:
437-
raise ResourceNotFoundError(
438-
f"Task hub '{task_hub_name}' not found under scheduler '{scheduler_name}' "
439-
f"in resource group '{resource_group_name}'. "
440-
"Please verify the task hub name."
441-
) from ex
443+
except HttpResponseError as ex:
444+
if ex.status_code == 404:
445+
raise ResourceNotFoundError(
446+
f"Task hub '{task_hub_name}' not found under scheduler '{scheduler_name}' "
447+
f"in resource group '{resource_group_name}'. "
448+
"Please verify the task hub name."
449+
) from ex
450+
raise
442451

443452
# Step 2: Resolve the identity to use for role assignment
444453
if identity:

0 commit comments

Comments
 (0)