Skip to content

Commit 6273ccf

Browse files
authored
mitigate az group show (#30146)
1 parent 15c9554 commit 6273ccf

File tree

2 files changed

+19
-23
lines changed

2 files changed

+19
-23
lines changed

src/azure-cli/azure/cli/command_modules/security/_utils.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,16 @@
88
)
99

1010

11-
def run_cli_cmd(cmd, retry=0):
12-
'''Run a CLI command
13-
:param cmd: The CLI command to be executed
14-
:param retry: The times to re-try
11+
def get_resource_group(cmd, resource_group_name):
12+
'''Get resource group info
13+
:param cmd: The cmd context
14+
:param resource_group_name: The resource group to be fetched
1515
'''
16-
import json
17-
import subprocess
18-
19-
output = subprocess.run(cmd, shell=True, check=False, capture_output=True)
20-
if output.returncode != 0:
21-
if retry:
22-
run_cli_cmd(cmd, retry - 1)
23-
else:
24-
raise CLIInternalError('Command execution failed, command is: '
25-
'{}, error message is: {}'.format(cmd, output.stderr))
26-
27-
return json.loads(output.stdout) if output.stdout else json.loads(None)
16+
from azure.cli.core.commands.client_factory import get_mgmt_service_client
17+
from azure.cli.core.profiles import ResourceType
18+
try:
19+
resource_client = get_mgmt_service_client(cmd.cli_ctx, ResourceType.MGMT_RESOURCE_RESOURCES)
20+
resource_group = resource_client.resource_groups.get(resource_group_name)
21+
except Exception as ex: # pylint: disable=broad-except
22+
raise CLIInternalError('Resource group fetch execution failed, error message is: {}'.format(str(ex)))
23+
return resource_group

src/azure-cli/azure/cli/command_modules/security/custom.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
from azure.core.exceptions import HttpResponseError
3636
from knack.log import get_logger
3737
from ._utils import (
38-
run_cli_cmd
38+
get_resource_group
3939
)
4040

4141
logger = get_logger(__name__)
@@ -946,20 +946,20 @@ def delete_security_automation(client, resource_group_name, resource_name):
946946
return client.delete(resource_group_name, resource_name)
947947

948948

949-
def create_or_update_security_automation(client, resource_group_name, resource_name, scopes, sources, actions, location=None, etag=None, tags=None, description=None, isEnabled=None):
949+
def create_or_update_security_automation(cmd, client, resource_group_name, resource_name, scopes, sources, actions, location=None, etag=None, tags=None, description=None, isEnabled=None):
950950

951951
if location is None:
952-
resourceGroup = run_cli_cmd('az group show --name {}'.format(resource_group_name))
953-
location = resourceGroup['location']
952+
resourceGroup = get_resource_group(cmd, resource_group_name)
953+
location = resourceGroup.location
954954
automation = create_security_automation_object(location, scopes, sources, actions, etag, tags, description, isEnabled)
955955
return client.create_or_update(resource_group_name, resource_name, automation)
956956

957957

958-
def validate_security_automation(client, resource_group_name, resource_name, scopes, sources, actions, location=None, etag=None, tags=None, description=None, isEnabled=None):
958+
def validate_security_automation(cmd, client, resource_group_name, resource_name, scopes, sources, actions, location=None, etag=None, tags=None, description=None, isEnabled=None):
959959

960960
if location is None:
961-
resourceGroup = run_cli_cmd('az group show --name {}'.format(resource_group_name))
962-
location = resourceGroup['location']
961+
resourceGroup = get_resource_group(cmd, resource_group_name)
962+
location = resourceGroup.location
963963
automation = create_security_automation_object(location, scopes, sources, actions, etag, tags, description, isEnabled)
964964
return client.validate(resource_group_name, resource_name, automation)
965965

0 commit comments

Comments
 (0)