diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/_flexible_server_util.py b/src/azure-cli/azure/cli/command_modules/rdbms/_flexible_server_util.py index 2be0ad8a70f..863f36df5f0 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/_flexible_server_util.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/_flexible_server_util.py @@ -17,7 +17,7 @@ from knack.prompting import prompt_y_n, NoTTYException from msrestazure.tools import parse_resource_id from msrestazure.azure_exceptions import CloudError -from azure.cli.core.util import CLIError +from azure.cli.core.util import CLIError, run_cmd from azure.cli.core.azclierror import AuthenticationError from azure.core.exceptions import HttpResponseError from azure.core.paging import ItemPaged @@ -326,13 +326,6 @@ def run_subprocess(command, stdout_show=None): logger.warning(process.stderr.read().strip().decode('UTF-8')) -def run_subprocess_get_output(command): - commands = command.split() - process = subprocess.Popen(commands, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - process.wait() - return process - - def register_credential_secrets(cmd, database_engine, server, repository): logger.warning('Adding secret "AZURE_CREDENTIALS" to github repository') resource_group = parse_resource_id(server.id)["resource_group"] @@ -376,8 +369,8 @@ def fill_action_template(cmd, database_engine, server, database_name, administra if not os.path.exists(action_dir): os.makedirs(action_dir) - process = run_subprocess_get_output("gh secret list --repo {}".format(repository)) - github_secrets = process.stdout.read().strip().decode('UTF-8') + process = run_cmd(["gh", "secret", "list", "--repo", repository], capture_output=True) + github_secrets = process.stdout.strip().decode('UTF-8') # connection_string = AZURE_POSTGRESQL_CONNECTION_STRING if database_engine == 'postgresql' else AZURE_MYSQL_CONNECTION_STRING if AZURE_CREDENTIALS not in github_secrets: @@ -418,8 +411,8 @@ def fill_action_template(cmd, database_engine, server, database_name, administra def get_git_root_dir(): - process = run_subprocess_get_output("git rev-parse --show-toplevel") - return process.stdout.read().strip().decode('UTF-8') + process = run_cmd(["git", "rev-parse", "--show-toplevel"], capture_output=True) + return process.stdout.strip().decode('UTF-8') def get_user_confirmation(message, yes=False): diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/flexible_server_custom_common.py b/src/azure-cli/azure/cli/command_modules/rdbms/flexible_server_custom_common.py index 06620bd1afc..5ec3b12ece3 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/flexible_server_custom_common.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/flexible_server_custom_common.py @@ -11,11 +11,10 @@ from knack.log import get_logger from knack.util import CLIError from urllib.request import urlretrieve -from azure.cli.core.util import sdk_no_wait -from azure.cli.core.util import user_confirmation +from azure.cli.core.util import sdk_no_wait, user_confirmation, run_cmd from azure.cli.core.azclierror import ClientRequestError, RequiredArgumentMissingError from ._client_factory import cf_postgres_flexible_replica -from ._flexible_server_util import run_subprocess, run_subprocess_get_output, \ +from ._flexible_server_util import run_subprocess, \ fill_action_template, get_git_root_dir, resolve_poller, GITHUB_ACTION_PATH from .validators import validate_public_access_server @@ -206,11 +205,11 @@ def github_actions_run(action_name, branch): def gitcli_check_and_login(): - output = run_subprocess_get_output("gh") + output = run_cmd(["gh"], capture_output=True) if output.returncode: raise ClientRequestError('Please install "Github CLI" to run this command.') - output = run_subprocess_get_output("gh auth status") + output = run_cmd(["gh", "auth", "status"], capture_output=True) if output.returncode: run_subprocess("gh auth login", stdout_show=True)