Skip to content

Commit ce27d1f

Browse files
Fred-sunUbuntu
andauthored
Replacement will send raw.githubusercontent.com request method (#2039)
* Replacement will send raw.githubusercontent.com request method * Use AZ obtain active cloud * Fix spell error * When auth_source=cli, ignore to get az login credentials fail * Delete unnecessary parameters * Define CLIError exception * Use CLIError Exception --------- Co-authored-by: Ubuntu <azureuser@fredVm.vhy1gkxcwjeupabp5bzcpks1re.bx.internal.cloudapp.net>
1 parent 9d14cd8 commit ce27d1f

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

plugins/module_utils/azure_rm_common.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,6 @@ def default_api_version(self):
240240
try:
241241
from enum import Enum
242242
from azure.mgmt.core.tools import parse_resource_id, resource_id, is_valid_resource_id
243-
from azure.cli.core import cloud as azure_cloud
244243
from azure.mgmt.network import NetworkManagementClient
245244
from azure.mgmt.network import models as NetworkModels
246245
from azure.mgmt.resource.resources import ResourceManagementClient
@@ -304,6 +303,7 @@ def default_api_version(self):
304303
from hashlib import sha256
305304
from hmac import HMAC
306305
from time import time
306+
import subprocess
307307

308308
try:
309309
from urllib import (urlencode, quote_plus)
@@ -312,8 +312,7 @@ def default_api_version(self):
312312

313313
try:
314314
from azure.cli.core.util import CLIError
315-
from azure.cli.core._profile import Profile
316-
from azure.common.cloud import get_cli_active_cloud
315+
from azure.cli.core import cloud as azure_cloud
317316
except ImportError:
318317
HAS_AZURE_CLI_CORE = False
319318
HAS_AZURE_CLI_CORE_EXC = None
@@ -1808,13 +1807,26 @@ def _get_azure_cli_credentials(self, subscription_id=None):
18081807
subscription_id = subscription_id or self._get_env('subscription_id')
18091808
if not subscription_id:
18101809
try:
1811-
subscription_id = Profile().get_subscription_id()
1810+
cmd = ["az", "account", "show", "--query", "id"]
1811+
subscription_id = subprocess.run(cmd, capture_output=True, text=True, check=True).stdout.strip().strip('"')
18121812
except Exception as ec:
1813-
self.fail("Obtain the az login's subscription occurred exception, exception information {0}".format(ec))
1813+
raise CLIError("Obtain the az login's subscription occurred exception as {0}".format(ec))
1814+
1815+
try:
1816+
cmd = ["az", "cloud", "show", "--query", "name"]
1817+
cloud_name = subprocess.run(cmd, capture_output=True, text=True, check=True).stdout.strip().strip('"')
1818+
all_clouds = [x[1] for x in inspect.getmembers(azure_cloud) if isinstance(x[1], azure_cloud.Cloud)]
1819+
matched_clouds = [x for x in all_clouds if x.name == cloud_name]
1820+
except Exception as ec:
1821+
raise CLIError("Obtain the az login's active cloud occurred exception as {0}".format(ec))
1822+
1823+
if len(matched_clouds) != 1:
1824+
raise CLIError("Obtain the active cloud failed, There is no or multiple matching clouds")
1825+
18141826
cli_credentials = {
18151827
'credentials': AzureCliCredential(),
18161828
'subscription_id': subscription_id,
1817-
'cloud_environment': get_cli_active_cloud(),
1829+
'cloud_environment': matched_clouds[0],
18181830
}
18191831
return cli_credentials
18201832

0 commit comments

Comments
 (0)