Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package azure-cli-core for openSUSE:Factory checked in at 2024-12-04 15:27:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/azure-cli-core (Old) and /work/SRC/openSUSE:Factory/.azure-cli-core.new.28523 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "azure-cli-core" Wed Dec 4 15:27:31 2024 rev:75 rq:1226364 version:2.67.0 Changes: -------- --- /work/SRC/openSUSE:Factory/azure-cli-core/azure-cli-core.changes 2024-11-13 15:28:39.778218836 +0100 +++ /work/SRC/openSUSE:Factory/.azure-cli-core.new.28523/azure-cli-core.changes 2024-12-04 15:27:38.886545781 +0100 @@ -1,0 +2,8 @@ +Mon Nov 25 19:56:18 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- New upstream release + + Version 2.67.0 + + For detailed information about changes see the + HISTORY.rst file provided with this package + +------------------------------------------------------------------- Old: ---- azure_cli_core-2.66.0.tar.gz New: ---- azure_cli_core-2.67.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ azure-cli-core.spec ++++++ --- /var/tmp/diff_new_pack.mt5LxW/_old 2024-12-04 15:27:39.502571612 +0100 +++ /var/tmp/diff_new_pack.mt5LxW/_new 2024-12-04 15:27:39.506571780 +0100 @@ -24,7 +24,7 @@ %global _sitelibdir %{%{pythons}_sitelib} Name: azure-cli-core -Version: 2.66.0 +Version: 2.67.0 Release: 0 Summary: Microsoft Azure CLI Core Module License: MIT ++++++ azure_cli_core-2.66.0.tar.gz -> azure_cli_core-2.67.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/HISTORY.rst new/azure_cli_core-2.67.0/HISTORY.rst --- old/azure_cli_core-2.66.0/HISTORY.rst 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/HISTORY.rst 2024-11-13 04:50:22.000000000 +0100 @@ -3,6 +3,10 @@ Release History =============== +2.67.0 +++++++ +* PREVIEW: Support managed identity on Azure Arc-enabled Windows server (#29187) + 2.66.0 ++++++ * `aaz`: Support managed identity (#29953) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/PKG-INFO new/azure_cli_core-2.67.0/PKG-INFO --- old/azure_cli_core-2.66.0/PKG-INFO 2024-10-30 04:54:06.209841500 +0100 +++ new/azure_cli_core-2.67.0/PKG-INFO 2024-11-13 04:50:57.010004800 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: azure-cli-core -Version: 2.66.0 +Version: 2.67.0 Summary: Microsoft Azure Command-Line Tools Core Module Home-page: https://github.com/Azure/azure-cli Author: Microsoft Corporation @@ -11,13 +11,12 @@ Classifier: Intended Audience :: System Administrators Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: License :: OSI Approved :: MIT License -Requires-Python: >=3.8.0 +Requires-Python: >=3.9.0 License-File: LICENSE.txt Requires-Dist: argcomplete~=3.3.0 Requires-Dist: azure-cli-telemetry==1.1.0.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/__init__.py new/azure_cli_core-2.67.0/azure/cli/core/__init__.py --- old/azure_cli_core-2.66.0/azure/cli/core/__init__.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/__init__.py 2024-11-13 04:50:22.000000000 +0100 @@ -4,7 +4,7 @@ # -------------------------------------------------------------------------------------------- # pylint: disable=line-too-long -__version__ = "2.66.0" +__version__ = "2.67.0" import os import sys diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/_profile.py new/azure_cli_core-2.67.0/azure/cli/core/_profile.py --- old/azure_cli_core-2.66.0/azure/cli/core/_profile.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/_profile.py 2024-11-13 04:50:22.000000000 +0100 @@ -220,6 +220,10 @@ return deepcopy(consolidated) def login_with_managed_identity(self, identity_id=None, allow_no_subscriptions=None): + if _on_azure_arc_windows(): + return self.login_with_managed_identity_azure_arc_windows( + identity_id=identity_id, allow_no_subscriptions=allow_no_subscriptions) + import jwt from azure.mgmt.core.tools import is_valid_resource_id from azure.cli.core.auth.adal_authentication import MSIAuthenticationWrapper @@ -282,6 +286,33 @@ self._set_subscriptions(consolidated) return deepcopy(consolidated) + def login_with_managed_identity_azure_arc_windows(self, identity_id=None, allow_no_subscriptions=None): + import jwt + identity_type = MsiAccountTypes.system_assigned + from .auth.msal_credentials import ManagedIdentityCredential + + cred = ManagedIdentityCredential() + token = cred.get_token(*self._arm_scope).token + logger.info('Managed identity: token was retrieved. Now trying to initialize local accounts...') + decode = jwt.decode(token, algorithms=['RS256'], options={"verify_signature": False}) + tenant = decode['tid'] + + subscription_finder = SubscriptionFinder(self.cli_ctx) + subscriptions = subscription_finder.find_using_specific_tenant(tenant, cred) + base_name = ('{}-{}'.format(identity_type, identity_id) if identity_id else identity_type) + user = _USER_ASSIGNED_IDENTITY if identity_id else _SYSTEM_ASSIGNED_IDENTITY + if not subscriptions: + if allow_no_subscriptions: + subscriptions = self._build_tenant_level_accounts([tenant]) + else: + raise CLIError('No access was configured for the managed identity, hence no subscriptions were found. ' + "If this is expected, use '--allow-no-subscriptions' to have tenant level access.") + + consolidated = self._normalize_properties(user, subscriptions, is_service_principal=True, + user_assigned_identity_id=base_name) + self._set_subscriptions(consolidated) + return deepcopy(consolidated) + def login_in_cloud_shell(self): import jwt from .auth.msal_credentials import CloudShellCredential @@ -354,13 +385,18 @@ # Cloud Shell from .auth.msal_credentials import CloudShellCredential from azure.cli.core.auth.credential_adaptor import CredentialAdaptor - cs_cred = CloudShellCredential() - # The cloud shell credential must be wrapped by CredentialAdaptor so that it can work with Track 1 SDKs. - cred = CredentialAdaptor(cs_cred, resource=resource) + # The credential must be wrapped by CredentialAdaptor so that it can work with Track 1 SDKs. + cred = CredentialAdaptor(CloudShellCredential(), resource=resource) elif managed_identity_type: # managed identity - cred = MsiAccountTypes.msi_auth_factory(managed_identity_type, managed_identity_id, resource) + if _on_azure_arc_windows(): + from .auth.msal_credentials import ManagedIdentityCredential + from azure.cli.core.auth.credential_adaptor import CredentialAdaptor + # The credential must be wrapped by CredentialAdaptor so that it can work with Track 1 SDKs. + cred = CredentialAdaptor(ManagedIdentityCredential(), resource=resource) + else: + cred = MsiAccountTypes.msi_auth_factory(managed_identity_type, managed_identity_id, resource) else: # user and service principal @@ -415,9 +451,13 @@ # managed identity if tenant: raise CLIError("Tenant shouldn't be specified for managed identity account") - from .auth.util import scopes_to_resource - cred = MsiAccountTypes.msi_auth_factory(managed_identity_type, managed_identity_id, - scopes_to_resource(scopes)) + if _on_azure_arc_windows(): + from .auth.msal_credentials import ManagedIdentityCredential + cred = ManagedIdentityCredential() + else: + from .auth.util import scopes_to_resource + cred = MsiAccountTypes.msi_auth_factory(managed_identity_type, managed_identity_id, + scopes_to_resource(scopes)) else: cred = self._create_credential(account, tenant) @@ -918,3 +958,8 @@ return Identity(*args, encrypt=encrypt, use_msal_http_cache=use_msal_http_cache, enable_broker_on_windows=enable_broker_on_windows, instance_discovery=instance_discovery, **kwargs) + + +def _on_azure_arc_windows(): + # This indicates an Azure Arc-enabled Windows server + return "IDENTITY_ENDPOINT" in os.environ and "IMDS_ENDPOINT" in os.environ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/aaz/_field_value.py new/azure_cli_core-2.67.0/azure/cli/core/aaz/_field_value.py --- old/azure_cli_core-2.66.0/azure/cli/core/aaz/_field_value.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/aaz/_field_value.py 2024-11-13 04:50:22.000000000 +0100 @@ -478,7 +478,7 @@ result = self._build_identity(calculate_data, result) - if not result: + if not result and calculate_data.get("action", None) == "remove": result = {"type": "None"} # empty identity if not result and self._is_patch: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/auth/identity.py new/azure_cli_core-2.67.0/azure/cli/core/auth/identity.py --- old/azure_cli_core-2.66.0/azure/cli/core/auth/identity.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/auth/identity.py 2024-11-13 04:50:22.000000000 +0100 @@ -37,10 +37,6 @@ "Select the account you want to log in with. " "For more information on login with Azure CLI, see https://go.microsoft.com/fwlink/?linkid=2271136") -PASSWORD_CERTIFICATE_WARNING = ( - "Passing the service principal certificate with `--password` is deprecated and will be removed " - "by version 2.74. Please use `--certificate` instead.") - logger = get_logger(__name__) @@ -196,7 +192,7 @@ """ sp_auth = ServicePrincipalAuth.build_from_credential(self.tenant_id, client_id, credential) client_credential = sp_auth.get_msal_client_credential() - cca = ConfidentialClientApplication(client_id, client_credential, **self._msal_app_kwargs) + cca = ConfidentialClientApplication(client_id, client_credential=client_credential, **self._msal_app_kwargs) result = cca.acquire_token_for_client(scopes) check_result(result) @@ -307,7 +303,7 @@ return ServicePrincipalAuth(entry) @classmethod - def build_credential(cls, secret_or_certificate=None, + def build_credential(cls, client_secret=None, certificate=None, use_cert_sn_issuer=None, client_assertion=None): """Build credential from user input. The credential looks like below, but only one key can exist. @@ -318,20 +314,12 @@ } """ entry = {} - if certificate: + if client_secret: + entry[_CLIENT_SECRET] = client_secret + elif certificate: entry[_CERTIFICATE] = os.path.expanduser(certificate) if use_cert_sn_issuer: entry[_USE_CERT_SN_ISSUER] = use_cert_sn_issuer - elif secret_or_certificate: - # TODO: Make secret_or_certificate secret only - user_expanded = os.path.expanduser(secret_or_certificate) - if os.path.isfile(user_expanded): - logger.warning(PASSWORD_CERTIFICATE_WARNING) - entry[_CERTIFICATE] = user_expanded - if use_cert_sn_issuer: - entry[_USE_CERT_SN_ISSUER] = use_cert_sn_issuer - else: - entry[_CLIENT_SECRET] = secret_or_certificate elif client_assertion: entry[_CLIENT_ASSERTION] = client_assertion return entry diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/auth/msal_credentials.py new/azure_cli_core-2.67.0/azure/cli/core/auth/msal_credentials.py --- old/azure_cli_core-2.66.0/azure/cli/core/auth/msal_credentials.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/auth/msal_credentials.py 2024-11-13 04:50:22.000000000 +0100 @@ -18,7 +18,8 @@ from knack.log import get_logger from knack.util import CLIError -from msal import PublicClientApplication, ConfidentialClientApplication +from msal import (PublicClientApplication, ConfidentialClientApplication, + ManagedIdentityClient, SystemAssignedManagedIdentity) from .constants import AZURE_CLI_CLIENT_ID from .util import check_result, build_sdk_access_token @@ -131,3 +132,21 @@ result = self._msal_app.acquire_token_interactive(list(scopes), prompt="none", **kwargs) check_result(result, scopes=scopes) return build_sdk_access_token(result) + + +class ManagedIdentityCredential: # pylint: disable=too-few-public-methods + """Managed identity credential implementing get_token interface. + Currently, only Azure Arc's system-assigned managed identity is supported. + """ + + def __init__(self): + import requests + self._msal_client = ManagedIdentityClient(SystemAssignedManagedIdentity(), http_client=requests.Session()) + + def get_token(self, *scopes, **kwargs): + logger.debug("ManagedIdentityCredential.get_token: scopes=%r, kwargs=%r", scopes, kwargs) + + from .util import scopes_to_resource + result = self._msal_client.acquire_token_for_client(resource=scopes_to_resource(scopes)) + check_result(result) + return build_sdk_access_token(result) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/auth/util.py new/azure_cli_core-2.67.0/azure/cli/core/auth/util.py --- old/azure_cli_core-2.66.0/azure/cli/core/auth/util.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/auth/util.py 2024-11-13 04:50:22.000000000 +0100 @@ -14,6 +14,12 @@ AccessToken = namedtuple("AccessToken", ["token", "expires_on"]) +PASSWORD_CERTIFICATE_WARNING = ( + "The error may be caused by passing a service principal certificate with --password. " + "Please note that --password no longer accepts a service principal certificate. " + "To pass a service principal certificate, use --certificate instead.") + + def aad_error_handler(error, **kwargs): """ Handle the error from AAD server returned by ADAL or MSAL. """ @@ -30,17 +36,21 @@ "below, please mention the hostname '%s'", socket.gethostname()) error_description = error.get('error_description') + error_codes = error.get('error_codes') # Build recommendation message - login_command = _generate_login_command(**kwargs) - login_message = ( - # Cloud Shell uses IMDS-like interface for implicit login. If getting token/cert failed, - # we let the user explicitly log in to AAD with MSAL. - "Please explicitly log in with:\n{}" if error.get('error') == 'broker_error' - else "Interactive authentication is needed. Please run:\n{}").format(login_command) + if error_codes and 7000215 in error_codes: + recommendation = PASSWORD_CERTIFICATE_WARNING + else: + login_command = _generate_login_command(**kwargs) + recommendation = ( + # Cloud Shell uses IMDS-like interface for implicit login. If getting token/cert failed, + # we let the user explicitly log in to AAD with MSAL. + "Please explicitly log in with:\n{}" if error.get('error') == 'broker_error' + else "Interactive authentication is needed. Please run:\n{}").format(login_command) from azure.cli.core.azclierror import AuthenticationError - raise AuthenticationError(error_description, msal_error=error, recommendation=login_message) + raise AuthenticationError(error_description, msal_error=error, recommendation=recommendation) def _generate_login_command(scopes=None, claims=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/breaking_change.py new/azure_cli_core-2.67.0/azure/cli/core/breaking_change.py --- old/azure_cli_core-2.66.0/azure/cli/core/breaking_change.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/breaking_change.py 2024-11-13 04:50:22.000000000 +0100 @@ -13,7 +13,7 @@ logger = get_logger() -NEXT_BREAKING_CHANGE_RELEASE = '2.67.0' +NEXT_BREAKING_CHANGE_RELEASE = '2.73.0' DEFAULT_BREAKING_CHANGE_TAG = '[Breaking Change]' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/extension/__init__.py new/azure_cli_core-2.67.0/azure/cli/core/extension/__init__.py --- old/azure_cli_core-2.66.0/azure/cli/core/extension/__init__.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/extension/__init__.py 2024-11-13 04:50:22.000000000 +0100 @@ -380,3 +380,9 @@ return not (item["metadata"].get(EXT_METADATA_ISPREVIEW, False) or item["metadata"].get(EXT_METADATA_ISEXPERIMENTAL, False) or is_preview_from_semantic_version(item["metadata"]['version'])) + + +def is_preview_from_metadata(item): + return bool(item["metadata"].get(EXT_METADATA_ISPREVIEW, False) or + item["metadata"].get(EXT_METADATA_ISEXPERIMENTAL, False) or + is_preview_from_semantic_version(item["metadata"]['version'])) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/extension/_resolve.py new/azure_cli_core-2.67.0/azure/cli/core/extension/_resolve.py --- old/azure_cli_core-2.66.0/azure/cli/core/extension/_resolve.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/extension/_resolve.py 2024-11-13 04:50:22.000000000 +0100 @@ -5,7 +5,8 @@ from packaging.version import parse from typing import Callable, List, NamedTuple, Union -from azure.cli.core.extension import ext_compat_with_cli, WHEEL_INFO_RE, is_stable_from_metadata +from azure.cli.core.extension import (ext_compat_with_cli, WHEEL_INFO_RE, + is_stable_from_metadata, is_preview_from_metadata) from azure.cli.core.extension._index import get_index_extensions from knack.log import get_logger @@ -104,6 +105,28 @@ if not candidates: raise NoExtensionCandidatesError(f"No extension found with name '{extension_name}'") + if allow_preview is None: + # default value of allow-preview changed from true to false + # and the following part deals with two influenced scenariors if user does not specify allow-preview + # 1. if extension module does not have any stable version, set allow-preview=True and display warning message to + # unblock those extension module user + # 2. if extension module has a later preview version than stable one, dispaly a warning message to user + # indicating how to try the newer preview one, but allow-preview is still set to be False by default + allow_preview = False + stable_candidates = list(filter(is_stable_from_metadata, candidates)) + preview_candidates = list(filter(is_preview_from_metadata, candidates)) + if len(stable_candidates) == 0: + logger.warning("No stable version of '%s' to install. Preview versions allowed.", extension_name) + allow_preview = True + elif len(preview_candidates) != 0: + max_preview_item = max(preview_candidates, key=lambda x: parse(x['metadata']['version'])) + max_stable_item = max(stable_candidates, key=lambda x: parse(x['metadata']['version'])) + if parse(max_preview_item['metadata']['version']) > parse(max_stable_item['metadata']['version']): + logger.warning("Extension '%s' has a later preview version to install, add `--allow-preview True` " + "to try preview version.", extension_name) + else: + logger.info("No preview versions need to be tried.") + # Helper to curry predicate functions def list_filter(f): return lambda cs: list(filter(f, cs)) @@ -120,7 +143,7 @@ _ExtensionFilter( filter=list_filter(is_stable_from_metadata), on_empty_results_message=f"No suitable stable version of '{extension_name}' to install. " - f"Add `--allow-preview` to try preview versions" + f"Add `--allow-preview True` to try preview versions" )] if target_version: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/extension/dynamic_install.py new/azure_cli_core-2.67.0/azure/cli/core/extension/dynamic_install.py --- old/azure_cli_core-2.66.0/azure/cli/core/extension/dynamic_install.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/extension/dynamic_install.py 2024-11-13 04:50:22.000000000 +0100 @@ -110,15 +110,15 @@ def _get_extension_allow_preview_install_config(cli_ctx): - default_value = True - if cli_ctx and cli_ctx.config.get('extension', 'dynamic_install_allow_preview', None) is None: - logger.warning("Preview version of extension is enabled by default for extension installation now. " - "Will be disabled in future release. ") - logger.warning("Please run 'az config set extension.dynamic_install_allow_preview=true or false' " - "to config it specifically. ") - dynamic_install_allow_preview = cli_ctx.config.getboolean('extension', - 'dynamic_install_allow_preview', - default_value) if cli_ctx else default_value + dynamic_install_allow_preview = None + if cli_ctx: + if cli_ctx.config.get('extension', 'dynamic_install_allow_preview', None) is None: + logger.warning("Preview version of extension is disabled by default for extension installation, " + "enabled for modules without stable versions. ") + logger.warning("Please run 'az config set extension.dynamic_install_allow_preview=true or false' " + "to config it specifically. ") + else: + dynamic_install_allow_preview = cli_ctx.config.getboolean('extension', 'dynamic_install_allow_preview') return dynamic_install_allow_preview diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/extension/operations.py new/azure_cli_core-2.67.0/azure/cli/core/extension/operations.py --- old/azure_cli_core-2.66.0/azure/cli/core/extension/operations.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/extension/operations.py 2024-11-13 04:50:22.000000000 +0100 @@ -306,12 +306,6 @@ def add_extension(cmd=None, source=None, extension_name=None, index_url=None, yes=None, # pylint: disable=unused-argument, too-many-statements pip_extra_index_urls=None, pip_proxy=None, system=None, version=None, cli_ctx=None, upgrade=None, allow_preview=None): - if allow_preview is None: - logger.warning("Default enabled including preview versions for extension installation now. " - "Disabled in future release. " - "Use '--allow-preview true' to enable it specifically if needed. " - "Use '--allow-preview false' to install stable version only. ") - allow_preview = True ext_sha256 = None update_to_latest = version == 'latest' and not source @@ -405,12 +399,6 @@ def update_extension(cmd=None, extension_name=None, index_url=None, pip_extra_index_urls=None, pip_proxy=None, allow_preview=None, cli_ctx=None, version=None, download_url=None, ext_sha256=None): - if allow_preview is None: - logger.warning("Default enabled including preview versions for extension installation now. " - "Disabled in future release. " - "Use '--allow-preview true' to enable it specifically if needed. " - "Use '--allow-preview false' to install stable version only. ") - allow_preview = True try: cmd_cli_ctx = cli_ctx or cmd.cli_ctx ext = get_extension(extension_name, ext_type=WheelExtension) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure/cli/core/profiles/_shared.py new/azure_cli_core-2.67.0/azure/cli/core/profiles/_shared.py --- old/azure_cli_core-2.66.0/azure/cli/core/profiles/_shared.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure/cli/core/profiles/_shared.py 2024-11-13 04:50:22.000000000 +0100 @@ -68,7 +68,8 @@ DATA_KEYVAULT_CERTIFICATES = ('azure.keyvault.certificates', 'CertificateClient') DATA_KEYVAULT_KEYS = ('azure.keyvault.keys', 'KeyClient') DATA_KEYVAULT_SECRETS = ('azure.keyvault.secrets', 'SecretClient') - DATA_KEYVAULT = ('azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1', 'KeyVaultClient') + DATA_KEYVAULT_SECURITY_DOMAIN = ('azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_securitydomain', + 'SecurityDomainClient') DATA_KEYVAULT_ADMINISTRATION_BACKUP = ('azure.keyvault.administration', 'KeyVaultBackupClient') DATA_KEYVAULT_ADMINISTRATION_ACCESS_CONTROL = ('azure.keyvault.administration', 'KeyVaultAccessControlClient') DATA_KEYVAULT_ADMINISTRATION_SETTING = ('azure.keyvault.administration', 'KeyVaultSettingsClient') @@ -101,7 +102,7 @@ MGMT_CONTAINERINSTANCE = ('azure.mgmt.containerinstance', None) MGMT_COSMOSDB = ('azure.mgmt.cosmosdb', None) MGMT_DATALAKE_ANALYTICS = ('azure.cli.command_modules.dla.vendored_sdks.azure_mgmt_datalake_analytics', None) - MGMT_DATALAKE_STORE = ('azure.cli.command_modules.dls.vendored_sdks.azure_mgmt_datalake_store', None) + MGMT_DATALAKE_STORE = ('azure.mgmt.datalake.store', None) MGMT_DATAMIGRATION = ('azure.mgmt.datamigration', None) MGMT_EVENTGRID = ('azure.mgmt.eventgrid', None) MGMT_MAPS = ('azure.mgmt.maps', None) @@ -207,8 +208,8 @@ ResourceType.DATA_KEYVAULT_CERTIFICATES: None, ResourceType.DATA_KEYVAULT_KEYS: None, ResourceType.DATA_KEYVAULT_SECRETS: None, + ResourceType.DATA_KEYVAULT_SECURITY_DOMAIN: None, ResourceType.DATA_KEYVAULT_ADMINISTRATION_SETTING: None, - ResourceType.DATA_KEYVAULT: '7.0', ResourceType.DATA_KEYVAULT_ADMINISTRATION_BACKUP: '7.5-preview.1', ResourceType.DATA_KEYVAULT_ADMINISTRATION_ACCESS_CONTROL: '7.4', ResourceType.DATA_STORAGE: '2018-11-09', @@ -260,7 +261,7 @@ ResourceType.MGMT_ARO: '2023-11-22', ResourceType.MGMT_DATABOXEDGE: '2021-02-01-preview', ResourceType.MGMT_CUSTOMLOCATION: '2021-03-15-preview', - ResourceType.MGMT_CONTAINERSERVICE: SDKProfile('2024-08-01'), + ResourceType.MGMT_CONTAINERSERVICE: SDKProfile('2024-09-01'), ResourceType.MGMT_APPCONTAINERS: '2022-10-01', }, '2020-09-01-hybrid': { @@ -299,7 +300,6 @@ ResourceType.DATA_KEYVAULT_CERTIFICATES: None, ResourceType.DATA_KEYVAULT_KEYS: None, ResourceType.DATA_KEYVAULT_SECRETS: None, - ResourceType.DATA_KEYVAULT: '2016-10-01', ResourceType.DATA_STORAGE: '2018-11-09', ResourceType.DATA_STORAGE_BLOB: '2019-07-07', ResourceType.DATA_STORAGE_FILEDATALAKE: '2019-07-07', @@ -346,7 +346,6 @@ ResourceType.DATA_KEYVAULT_CERTIFICATES: None, ResourceType.DATA_KEYVAULT_KEYS: None, ResourceType.DATA_KEYVAULT_SECRETS: None, - ResourceType.DATA_KEYVAULT: '2016-10-01', ResourceType.DATA_STORAGE: '2017-11-09', ResourceType.DATA_STORAGE_BLOB: '2017-11-09', ResourceType.DATA_STORAGE_FILEDATALAKE: '2017-11-09', @@ -385,7 +384,6 @@ ResourceType.DATA_KEYVAULT_CERTIFICATES: None, ResourceType.DATA_KEYVAULT_KEYS: None, ResourceType.DATA_KEYVAULT_SECRETS: None, - ResourceType.DATA_KEYVAULT: '2016-10-01', ResourceType.DATA_STORAGE: '2017-04-17', ResourceType.DATA_STORAGE_BLOB: '2017-04-17', ResourceType.DATA_STORAGE_FILEDATALAKE: '2017-04-17', @@ -416,7 +414,6 @@ ResourceType.DATA_KEYVAULT_CERTIFICATES: None, ResourceType.DATA_KEYVAULT_KEYS: None, ResourceType.DATA_KEYVAULT_SECRETS: None, - ResourceType.DATA_KEYVAULT: '2016-10-01', ResourceType.DATA_STORAGE: '2015-04-05', ResourceType.DATA_STORAGE_BLOB: '2015-04-05', ResourceType.DATA_STORAGE_FILEDATALAKE: '2015-04-05', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/azure_cli_core.egg-info/PKG-INFO new/azure_cli_core-2.67.0/azure_cli_core.egg-info/PKG-INFO --- old/azure_cli_core-2.66.0/azure_cli_core.egg-info/PKG-INFO 2024-10-30 04:54:06.000000000 +0100 +++ new/azure_cli_core-2.67.0/azure_cli_core.egg-info/PKG-INFO 2024-11-13 04:50:56.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: azure-cli-core -Version: 2.66.0 +Version: 2.67.0 Summary: Microsoft Azure Command-Line Tools Core Module Home-page: https://github.com/Azure/azure-cli Author: Microsoft Corporation @@ -11,13 +11,12 @@ Classifier: Intended Audience :: System Administrators Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: License :: OSI Approved :: MIT License -Requires-Python: >=3.8.0 +Requires-Python: >=3.9.0 License-File: LICENSE.txt Requires-Dist: argcomplete~=3.3.0 Requires-Dist: azure-cli-telemetry==1.1.0.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_cli_core-2.66.0/setup.py new/azure_cli_core-2.67.0/setup.py --- old/azure_cli_core-2.66.0/setup.py 2024-10-30 04:53:35.000000000 +0100 +++ new/azure_cli_core-2.67.0/setup.py 2024-11-13 04:50:22.000000000 +0100 @@ -8,7 +8,7 @@ from codecs import open from setuptools import setup, find_packages -VERSION = "2.66.0" +VERSION = "2.67.0" # If we have source, validate that our version numbers match # This should prevent uploading releases with mismatched versions. @@ -35,7 +35,6 @@ 'Intended Audience :: System Administrators', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', @@ -82,6 +81,6 @@ classifiers=CLASSIFIERS, packages=find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests", "azure", "azure.cli"]), install_requires=DEPENDENCIES, - python_requires='>=3.8.0', + python_requires='>=3.9.0', package_data={'azure.cli.core': ['auth/landing_pages/*.html']} )