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']}
 )

Reply via email to