Hello community, here is the log from the commit of package azure-cli-core for openSUSE:Factory checked in at 2020-02-28 15:20:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/azure-cli-core (Old) and /work/SRC/openSUSE:Factory/.azure-cli-core.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "azure-cli-core" Fri Feb 28 15:20:12 2020 rev:11 rq:778819 version:2.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/azure-cli-core/azure-cli-core.changes 2020-01-17 16:07:34.852502312 +0100 +++ /work/SRC/openSUSE:Factory/.azure-cli-core.new.26092/azure-cli-core.changes 2020-02-28 15:20:20.229770465 +0100 @@ -1,0 +2,10 @@ +Mon Feb 24 15:13:14 UTC 2020 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- New upstream release + + Version 2.1.0 + + For detailed information about changes see the + HISTORY.txt file provided with this package +- Relax version dependency for python-humanfriendly in Requires +- Update Requires from setup.py + +------------------------------------------------------------------- Old: ---- azure-cli-core-2.0.80.tar.gz New: ---- azure-cli-core-2.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ azure-cli-core.spec ++++++ --- /var/tmp/diff_new_pack.9hVkpn/_old 2020-02-28 15:20:20.765771556 +0100 +++ /var/tmp/diff_new_pack.9hVkpn/_new 2020-02-28 15:20:20.769771564 +0100 @@ -17,7 +17,7 @@ Name: azure-cli-core -Version: 2.0.80 +Version: 2.1.0 Release: 0 Summary: Microsoft Azure CLI Core Module License: MIT @@ -38,11 +38,11 @@ Requires: python3-adal >= 1.2 Requires: python3-argcomplete < 2.0 Requires: python3-argcomplete >= 1.8 -Requires: python3-azure-mgmt-resource < 8.0 -Requires: python3-azure-mgmt-resource >= 7.0 +Requires: python3-azure-mgmt-resource < 9.0.0 +Requires: python3-azure-mgmt-resource >= 8.0.1 Requires: python3-azure-nspkg >= 3.0.0 Requires: python3-colorama >= 0.3.9 -Requires: python3-humanfriendly < 5.0 +Requires: python3-humanfriendly < 7.0 Requires: python3-humanfriendly >= 4.7 Requires: python3-jmespath Requires: python3-knack < 1.0.0 ++++++ azure-cli-core-2.0.80.tar.gz -> azure-cli-core-2.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/HISTORY.rst new/azure-cli-core-2.1.0/HISTORY.rst --- old/azure-cli-core-2.0.80/HISTORY.rst 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/HISTORY.rst 2020-02-14 06:19:06.000000000 +0100 @@ -3,6 +3,14 @@ Release History =============== +2.1.0 +++++++ +* Support `--output yamlc` for colorized YAML + +2.0.81 +++++++ +* `get_raw_token`: Add `tenant` parameter to acquire token for the tenant directly, needless to specify a subscription + 2.0.80 ++++++ * No changes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/PKG-INFO new/azure-cli-core-2.1.0/PKG-INFO --- old/azure-cli-core-2.0.80/PKG-INFO 2020-01-13 06:00:13.000000000 +0100 +++ new/azure-cli-core-2.1.0/PKG-INFO 2020-02-14 06:19:19.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: azure-cli-core -Version: 2.0.80 +Version: 2.1.0 Summary: Microsoft Azure Command-Line Tools Core Module Home-page: https://github.com/Azure/azure-cli Author: Microsoft Corporation @@ -15,6 +15,14 @@ Release History =============== + 2.1.0 + ++++++ + * Support `--output yamlc` for colorized YAML + + 2.0.81 + ++++++ + * `get_raw_token`: Add `tenant` parameter to acquire token for the tenant directly, needless to specify a subscription + 2.0.80 ++++++ * No changes @@ -490,8 +498,6 @@ Classifier: Intended Audience :: Developers Classifier: Intended Audience :: System Administrators Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/__init__.py new/azure-cli-core-2.1.0/azure/cli/core/__init__.py --- old/azure-cli-core-2.0.80/azure/cli/core/__init__.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/__init__.py 2020-02-14 06:19:06.000000000 +0100 @@ -4,7 +4,7 @@ # -------------------------------------------------------------------------------------------- from __future__ import print_function -__version__ = "2.0.80" +__version__ = "2.1.0" import os import sys diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/_help.py new/azure-cli-core-2.1.0/azure/cli/core/_help.py --- old/azure-cli-core-2.0.80/azure/cli/core/_help.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/_help.py 2020-02-14 06:19:06.000000000 +0100 @@ -78,7 +78,7 @@ from colorama import Style indent = 0 _print_indent('Examples', indent) - for e in help_file.examples: + for e in AzCliHelp.example_provider(help_file): indent = 1 _print_indent(u'{0}'.format(e.short_summary), indent) indent = 2 @@ -190,6 +190,11 @@ file_contents[name] = self._name_to_content[name] self.versioned_loaders[ldr_cls_name].update_file_contents(file_contents) + # This method is meant to be a hook that can be overridden by an extension or module. + @staticmethod + def example_provider(help_file): + return help_file.examples + class CliHelpFile(KnackHelpFile): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/_output.py new/azure-cli-core-2.1.0/azure/cli/core/_output.py --- old/azure-cli-core-2.0.80/azure/cli/core/_output.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/_output.py 2020-02-14 06:19:06.000000000 +0100 @@ -11,6 +11,7 @@ super(AzOutputProducer, self).__init__(cli_ctx) additional_formats = { 'yaml': self.format_yaml, + 'yamlc': self.format_yaml_color, 'none': self.format_none } super(AzOutputProducer, self)._FORMAT_DICT.update(additional_formats) @@ -27,6 +28,11 @@ return safe_dump(json.loads(json.dumps(obj.result)), default_flow_style=False) @staticmethod + def format_yaml_color(obj): + from pygments import highlight, lexers, formatters + return highlight(AzOutputProducer.format_yaml(obj), lexers.YamlLexer(), formatters.TerminalFormatter()) # pylint: disable=no-member + + @staticmethod def format_none(_): return "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/_profile.py new/azure-cli-core-2.1.0/azure/cli/core/_profile.py --- old/azure-cli-core-2.0.80/azure/cli/core/_profile.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/_profile.py 2020-02-14 06:19:06.000000000 +0100 @@ -34,7 +34,12 @@ _IS_DEFAULT_SUBSCRIPTION = 'isDefault' _SUBSCRIPTION_ID = 'id' _SUBSCRIPTION_NAME = 'name' +# Tenant of the token which is used to list the subscription _TENANT_ID = 'tenantId' +# Home tenant of the subscription, which maps to tenantId in 'Subscriptions - List REST API' +# https://docs.microsoft.com/en-us/rest/api/resources/subscriptions/list +_HOME_TENANT_ID = 'homeTenantId' +_MANAGED_BY_TENANTS = 'managedByTenants' _USER_ENTITY = 'user' _USER_NAME = 'name' _CLOUD_SHELL_ID = 'cloudShellID' @@ -248,7 +253,7 @@ except (UnicodeEncodeError, UnicodeDecodeError): # mainly for Python 2.7 with ascii as the default encoding display_name = re.sub(r'[^\x00-\x7f]', lambda x: '?', display_name) - consolidated.append({ + subscription_dict = { _SUBSCRIPTION_ID: s.id.rpartition('/')[2], _SUBSCRIPTION_NAME: display_name, _STATE: s.state.value, @@ -259,7 +264,15 @@ _IS_DEFAULT_SUBSCRIPTION: False, _TENANT_ID: s.tenant_id, _ENVIRONMENT_NAME: self.cli_ctx.cloud.name - }) + } + # for Subscriptions - List REST API 2019-06-01's subscription account + if subscription_dict[_SUBSCRIPTION_NAME] != _TENANT_LEVEL_ACCOUNT_NAME: + if hasattr(s, 'home_tenant_id'): + subscription_dict[_HOME_TENANT_ID] = s.home_tenant_id + if hasattr(s, 'managed_by_tenants'): + subscription_dict[_MANAGED_BY_TENANTS] = [{_TENANT_ID: t.tenant_id} for t in s.managed_by_tenants] + + consolidated.append(subscription_dict) if cert_sn_issuer_auth: consolidated[-1][_USER_ENTITY][_SERVICE_PRINCIPAL_CERT_SN_ISSUER_AUTH] = True @@ -587,7 +600,9 @@ sp_secret = self._creds_cache.retrieve_secret_of_service_principal(username_or_sp_id) return username_or_sp_id, sp_secret, None, str(account[_TENANT_ID]) - def get_raw_token(self, resource=None, subscription=None): + def get_raw_token(self, resource=None, subscription=None, tenant=None): + if subscription and tenant: + raise CLIError("Please specify only one of subscription and tenant, not both") account = self.get_subscription(subscription) user_type = account[_USER_ENTITY][_USER_TYPE] username_or_sp_id = account[_USER_ENTITY][_USER_NAME] @@ -595,23 +610,32 @@ identity_type, identity_id = Profile._try_parse_msi_account_name(account) if identity_type: + # MSI + if tenant: + raise CLIError("Tenant shouldn't be specified for MSI account") msi_creds = MsiAccountTypes.msi_auth_factory(identity_type, identity_id, resource) msi_creds.set_token() token_entry = msi_creds.token creds = (token_entry['token_type'], token_entry['access_token'], token_entry) elif in_cloud_console() and account[_USER_ENTITY].get(_CLOUD_SHELL_ID): + # Cloud Shell + if tenant: + raise CLIError("Tenant shouldn't be specified for Cloud Shell account") creds = self._get_token_from_cloud_shell(resource) - - elif user_type == _USER: - creds = self._creds_cache.retrieve_token_for_user(username_or_sp_id, - account[_TENANT_ID], resource) else: - creds = self._creds_cache.retrieve_token_for_service_principal(username_or_sp_id, - resource, - account[_TENANT_ID]) + tenant_dest = tenant if tenant else account[_TENANT_ID] + if user_type == _USER: + # User + creds = self._creds_cache.retrieve_token_for_user(username_or_sp_id, + tenant_dest, resource) + else: + # Service Principal + creds = self._creds_cache.retrieve_token_for_service_principal(username_or_sp_id, + resource, + tenant_dest) return (creds, - str(account[_SUBSCRIPTION_ID]), - str(account[_TENANT_ID])) + None if tenant else str(account[_SUBSCRIPTION_ID]), + str(tenant if tenant else account[_TENANT_ID])) def refresh_accounts(self, subscription_finder=None): subscriptions = self.load_cached_subscriptions() @@ -855,7 +879,21 @@ subscriptions = self._find_using_specific_tenant( tenant_id, temp_credentials[_ACCESS_TOKEN]) - all_subscriptions.extend(subscriptions) + + # When a subscription can be listed by multiple tenants, only the first appearance is retained + for sub_to_add in subscriptions: + add_sub = True + for sub_to_compare in all_subscriptions: + if sub_to_add.subscription_id == sub_to_compare.subscription_id: + logger.warning("Subscription %s '%s' can be accessed from tenants %s(default) and %s. " + "To select a specific tenant when accessing this subscription, " + "please include --tenant in 'az login'.", + sub_to_add.subscription_id, sub_to_add.display_name, + sub_to_compare.tenant_id, sub_to_add.tenant_id) + add_sub = False + break + if add_sub: + all_subscriptions.append(sub_to_add) return all_subscriptions @@ -867,6 +905,9 @@ subscriptions = client.subscriptions.list() all_subscriptions = [] for s in subscriptions: + # map tenantId from REST API to homeTenantId + if hasattr(s, "tenant_id"): + setattr(s, 'home_tenant_id', s.tenant_id) setattr(s, 'tenant_id', tenant) all_subscriptions.append(s) self.tenants.append(tenant) @@ -926,12 +967,21 @@ def retrieve_token_for_service_principal(self, sp_id, resource, tenant, use_cert_sn_issuer=False): self.load_adal_token_cache() - matched = [x for x in self._service_principal_creds if sp_id == x[_SERVICE_PRINCIPAL_ID] and - tenant == x[_SERVICE_PRINCIPAL_TENANT]] + matched = [x for x in self._service_principal_creds if sp_id == x[_SERVICE_PRINCIPAL_ID]] if not matched: - raise CLIError("Please run 'az account set' to select active account.") - cred = matched[0] - context = self._auth_ctx_factory(self._ctx, cred[_SERVICE_PRINCIPAL_TENANT], None) + raise CLIError("Could not retrieve credential from local cache for service principal {}. " + "Please run 'az login' for this service principal." + .format(sp_id)) + matched_with_tenant = [x for x in matched if tenant == x[_SERVICE_PRINCIPAL_TENANT]] + if matched_with_tenant: + cred = matched_with_tenant[0] + else: + logger.warning("Could not retrieve credential from local cache for service principal %s under tenant %s. " + "Trying credential under tenant %s, assuming that is an app credential.", + sp_id, tenant, matched[0][_SERVICE_PRINCIPAL_TENANT]) + cred = matched[0] + + context = self._auth_ctx_factory(self._ctx, tenant, None) sp_auth = ServicePrincipalAuth(cred.get(_ACCESS_TOKEN, None) or cred.get(_SERVICE_PRINCIPAL_CERT_FILE, None), use_cert_sn_issuer) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/commands/arm.py new/azure-cli-core-2.1.0/azure/cli/core/commands/arm.py --- old/azure-cli-core-2.0.80/azure/cli/core/commands/arm.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/commands/arm.py 2020-02-14 06:19:06.000000000 +0100 @@ -681,10 +681,10 @@ return None provisioning_state = get_provisioning_state(instance) # until we have any needs to wait for 'Failed', let us bail out on this - if provisioning_state == 'Failed': + if provisioning_state.casefold() == 'failed': progress_indicator.stop() raise CLIError('The operation failed') - if ((wait_for_created or wait_for_updated) and provisioning_state == 'Succeeded') or \ + if ((wait_for_created or wait_for_updated) and provisioning_state.casefold() == 'succeeded') or \ custom_condition and bool(verify_property(instance, custom_condition)): progress_indicator.end() return None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/commands/parameters.py new/azure-cli-core-2.1.0/azure/cli/core/commands/parameters.py --- old/azure-cli-core-2.0.80/azure/cli/core/commands/parameters.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/commands/parameters.py 2020-02-14 06:19:06.000000000 +0100 @@ -266,7 +266,7 @@ tags_type = CLIArgumentType( validator=validate_tags, - help="space-separated tags in 'key[=value]' format. {}".format(quote_text), + help="space-separated tags: key[=value] [key[=value] ...]. {}".format(quote_text), nargs='*' ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/extension/operations.py new/azure-cli-core-2.1.0/azure/cli/core/extension/operations.py --- old/azure-cli-core-2.0.80/azure/cli/core/extension/operations.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/extension/operations.py 2020-02-14 06:19:06.000000000 +0100 @@ -193,6 +193,7 @@ min_max_msg_fmt += 'a min of {}.'.format(min_required) elif max_required: min_max_msg_fmt += 'a max of {}.'.format(max_required) + min_max_msg_fmt += '\nPlease install a compatible extension version or remove it.' raise CLIError(min_max_msg_fmt) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/profiles/_shared.py new/azure-cli-core-2.1.0/azure/cli/core/profiles/_shared.py --- old/azure-cli-core-2.0.80/azure/cli/core/profiles/_shared.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/profiles/_shared.py 2020-02-14 06:19:06.000000000 +0100 @@ -50,6 +50,7 @@ MGMT_MONITOR = ('azure.mgmt.monitor', 'MonitorManagementClient') DATA_KEYVAULT = ('azure.keyvault', 'KeyVaultClient') MGMT_EVENTHUB = ('azure.mgmt.eventhub', 'EventHubManagementClient') + MGMT_APPSERVICE = ('azure.mgmt.web', 'WebSiteManagementClient') # the "None" below will stay till a command module fills in the type so "get_mgmt_service_client" # can be provided with "ResourceType.XXX" to initialize the client object. This usually happens # when related commands start to support Multi-API @@ -90,7 +91,6 @@ MGMT_SQLVM = ('azure.mgmt.sqlvirtualmachine', None) MGMT_MANAGEDSERVICES = ('azure.mgmt.managedservices', None) MGMT_NETAPPFILES = ('azure.mgmt.netappfiles', None) - MGMT_APPSERVICE = ('azure.mgmt.web', None) def __init__(self, import_prefix, client_name): """Constructor. @@ -124,7 +124,7 @@ AZURE_API_PROFILES = { 'latest': { ResourceType.MGMT_STORAGE: '2019-06-01', - ResourceType.MGMT_NETWORK: '2019-09-01', + ResourceType.MGMT_NETWORK: '2019-11-01', ResourceType.MGMT_COMPUTE: SDKProfile('2019-07-01', { 'resource_skus': '2019-04-01', 'disks': '2019-07-01', @@ -136,7 +136,7 @@ ResourceType.MGMT_RESOURCE_LOCKS: '2016-09-01', ResourceType.MGMT_RESOURCE_POLICY: '2019-09-01', ResourceType.MGMT_RESOURCE_RESOURCES: '2019-07-01', - ResourceType.MGMT_RESOURCE_SUBSCRIPTIONS: '2016-06-01', + ResourceType.MGMT_RESOURCE_SUBSCRIPTIONS: '2019-06-01', ResourceType.MGMT_NETWORK_DNS: '2018-05-01', ResourceType.MGMT_KEYVAULT: '2018-02-14', ResourceType.MGMT_AUTHORIZATION: SDKProfile('2018-09-01-preview', { @@ -174,7 +174,8 @@ 'service_diagnostic_settings': '2016-09-01', 'tenant_activity_logs': '2015-04-01', 'vm_insights': '2018-11-27-preview' - }) + }), + ResourceType.MGMT_APPSERVICE: '2019-08-01' }, '2019-03-01-hybrid': { ResourceType.MGMT_STORAGE: '2017-10-01', @@ -198,7 +199,12 @@ }), ResourceType.DATA_KEYVAULT: '2016-10-01', ResourceType.DATA_STORAGE: '2017-11-09', - ResourceType.DATA_COSMOS_TABLE: '2017-04-17' + ResourceType.DATA_COSMOS_TABLE: '2017-04-17', + # Full MultiAPI support is not done in AppService, the line below is merely + # to have commands show up in the hybrid profile which happens to have the latest + # API versions + ResourceType.MGMT_APPSERVICE: '2018-02-01', + ResourceType.MGMT_EVENTHUB: '2017-04-01' }, '2018-03-01-hybrid': { ResourceType.MGMT_STORAGE: '2016-01-01', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure/cli/core/util.py new/azure-cli-core-2.1.0/azure/cli/core/util.py --- old/azure-cli-core-2.0.80/azure/cli/core/util.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure/cli/core/util.py 2020-02-14 06:19:06.000000000 +0100 @@ -608,6 +608,7 @@ try: r = requests.request(method, uri, params=uri_parameters, data=body, headers=headers, verify=not should_disable_connection_verify()) + logger.debug("Response Header : %s", r.headers if r else '') except Exception as ex: # pylint: disable=broad-except raise CLIError(ex) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure_cli_core.egg-info/PKG-INFO new/azure-cli-core-2.1.0/azure_cli_core.egg-info/PKG-INFO --- old/azure-cli-core-2.0.80/azure_cli_core.egg-info/PKG-INFO 2020-01-13 06:00:13.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure_cli_core.egg-info/PKG-INFO 2020-02-14 06:19:19.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: azure-cli-core -Version: 2.0.80 +Version: 2.1.0 Summary: Microsoft Azure Command-Line Tools Core Module Home-page: https://github.com/Azure/azure-cli Author: Microsoft Corporation @@ -15,6 +15,14 @@ Release History =============== + 2.1.0 + ++++++ + * Support `--output yamlc` for colorized YAML + + 2.0.81 + ++++++ + * `get_raw_token`: Add `tenant` parameter to acquire token for the tenant directly, needless to specify a subscription + 2.0.80 ++++++ * No changes @@ -490,8 +498,6 @@ Classifier: Intended Audience :: Developers Classifier: Intended Audience :: System Administrators Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/azure_cli_core.egg-info/requires.txt new/azure-cli-core-2.1.0/azure_cli_core.egg-info/requires.txt --- old/azure-cli-core-2.0.80/azure_cli_core.egg-info/requires.txt 2020-01-13 06:00:13.000000000 +0100 +++ new/azure-cli-core-2.1.0/azure_cli_core.egg-info/requires.txt 2020-02-14 06:19:19.000000000 +0100 @@ -14,7 +14,7 @@ requests~=2.20 six~=1.12 wheel==0.30.0 -azure-mgmt-resource~=6.0 +azure-mgmt-resource~=8.0.1 [:python_version<"3.0"] futures diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure-cli-core-2.0.80/setup.py new/azure-cli-core-2.1.0/setup.py --- old/azure-cli-core-2.0.80/setup.py 2020-01-13 06:00:08.000000000 +0100 +++ new/azure-cli-core-2.1.0/setup.py 2020-02-14 06:19:06.000000000 +0100 @@ -17,7 +17,7 @@ logger.warn("Wheel is not available, disabling bdist_wheel hook") cmdclass = {} -VERSION = "2.0.80" +VERSION = "2.1.0" # If we have source, validate that our version numbers match # This should prevent uploading releases with mismatched versions. try: @@ -42,8 +42,6 @@ 'Intended Audience :: Developers', 'Intended Audience :: System Administrators', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', @@ -69,7 +67,7 @@ 'requests~=2.20', 'six~=1.12', 'wheel==0.30.0', - 'azure-mgmt-resource~=6.0', + 'azure-mgmt-resource~=8.0.1', ] TESTS_REQUIRE = [