Skip to content

Commit b4c71f7

Browse files
committed
Resolve models output breaking change with azure core new function
1 parent 8d16ab3 commit b4c71f7

File tree

8 files changed

+21
-46
lines changed

8 files changed

+21
-46
lines changed

src/azure-cli-core/azure/cli/core/util.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ def todict(obj, post_processor=None):
644644
"""
645645
from datetime import date, time, datetime, timedelta
646646
from enum import Enum
647-
from azure.core.serialization import attribute_list
647+
from azure.core.serialization import attribute_list, get_backcompat_attr_name
648648
if isinstance(obj, dict):
649649
result = {k: todict(v, post_processor) for (k, v) in obj.items()}
650650
return post_processor(obj, result) if post_processor else result
@@ -662,7 +662,7 @@ def todict(obj, post_processor=None):
662662
# azure-core provided new function `attribute_list` to list all attribute names
663663
# so that we don't need to use raw __dict__ directly
664664
if getattr(obj, "_is_model", False):
665-
result = {to_camel_case(attr): todict(getattr(obj, attr), post_processor)
665+
result = {to_camel_case(get_backcompat_attr_name(obj, attr)): todict(getattr(obj, attr), post_processor)
666666
for attr in attribute_list(obj) if hasattr(obj, attr)}
667667
return post_processor(obj, result) if post_processor else result
668668
if hasattr(obj, '_asdict'):

src/azure-cli-core/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
DEPENDENCIES = [
4747
'argcomplete~=3.5.2',
4848
'azure-cli-telemetry==1.1.0.*',
49-
'azure-core~=1.35.0',
49+
'azure-core~=1.37.0',
5050
'azure-mgmt-core>=1.2.0,<2',
5151
'cryptography',
5252
# On Linux, the distribution (Ubuntu, Debian, etc) and version are logged in telemetry

src/azure-cli/azure/cli/command_modules/keyvault/_transformers.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -485,28 +485,3 @@ def transform_certificate_issuer_admin_list(result, **command_args):
485485
return ret
486486
return result
487487

488-
489-
def transform_vault_output(result, **command_args): # pylint: disable=unused-argument
490-
from azure.mgmt.keyvault.models import Vault
491-
if not result or not isinstance(result, Vault):
492-
return result
493-
494-
from azure.cli.core.util import todict
495-
output = todict(result)
496-
if output.get('properties', None) and output['properties'].get('accessPolicies', None):
497-
for policy in output['properties']['accessPolicies']:
498-
if policy.get('permissions') and 'keysProperty' in policy['permissions']:
499-
keys = policy['permissions']['keysProperty']
500-
policy['permissions']['keys'] = keys
501-
del policy['permissions']['keysProperty']
502-
return output
503-
504-
505-
def transform_vault_list(result, **command_args): # pylint: disable=unused-argument
506-
if not result:
507-
return result
508-
output = []
509-
for item in result:
510-
new_item = transform_vault_output(item)
511-
output.append(new_item)
512-
return output

src/azure-cli/azure/cli/command_modules/keyvault/commands.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
get_client, get_client_factory, Clients)
1313

1414
from azure.cli.command_modules.keyvault._transformers import (
15-
filter_out_managed_resources, transform_vault_output, transform_vault_list,
15+
filter_out_managed_resources,
1616
multi_transformers, transform_key_decryption_output, keep_max_results, transform_key_list_output,
1717
transform_key_output, transform_key_encryption_output, transform_key_random_output,
1818
transform_secret_list, transform_deleted_secret_list, transform_secret_set,
@@ -70,14 +70,14 @@ def load_command_table(self, _):
7070
# Management Plane Commands
7171
with self.command_group('keyvault', mgmt_vaults_entity.command_type,
7272
client_factory=mgmt_vaults_entity.client_factory) as g:
73-
g.custom_command('create', 'create_vault_or_hsm', supports_no_wait=True, transform=transform_vault_output)
74-
g.custom_command('recover', 'recover_vault_or_hsm', supports_no_wait=True, transform=transform_vault_output)
75-
g.custom_command('list', 'list_vault_or_hsm', transform=transform_vault_list)
76-
g.custom_show_command('show', 'get_vault_or_hsm', transform=transform_vault_output)
73+
g.custom_command('create', 'create_vault_or_hsm', supports_no_wait=True)
74+
g.custom_command('recover', 'recover_vault_or_hsm', supports_no_wait=True)
75+
g.custom_command('list', 'list_vault_or_hsm')
76+
g.custom_show_command('show', 'get_vault_or_hsm')
7777
g.custom_command('delete', 'delete_vault_or_hsm', supports_no_wait=True)
7878
g.custom_command('purge', 'purge_vault_or_hsm', supports_no_wait=True)
79-
g.custom_command('set-policy', 'set_policy', supports_no_wait=True, transform=transform_vault_output)
80-
g.custom_command('delete-policy', 'delete_policy', supports_no_wait=True, transform=transform_vault_output)
79+
g.custom_command('set-policy', 'set_policy', supports_no_wait=True)
80+
g.custom_command('delete-policy', 'delete_policy', supports_no_wait=True)
8181
g.custom_command('list-deleted', 'list_deleted_vault_or_hsm')
8282
g.custom_command('show-deleted', 'get_deleted_vault_or_hsm')
8383
g.generic_update_command(

src/azure-cli/azure/cli/command_modules/keyvault/custom.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
def _default_certificate_profile(cmd):
4545
def get_model(x):
46-
return cmd.loader.get_models(x, resource_type=ResourceType.DATA_KEYVAULT_CERTIFICATES, mod='_generated_models')
46+
return cmd.loader.get_sdk(x, resource_type=ResourceType.DATA_KEYVAULT_CERTIFICATES, mod='_generated_models')
4747

4848
Action = get_model('Action')
4949
ActionType = get_model('ActionType')
@@ -354,7 +354,7 @@ def recover_vault(cmd, client, vault_name, resource_group_name, location, no_wai
354354
return sdk_no_wait(no_wait, client.begin_create_or_update,
355355
resource_group_name=resource_group_name,
356356
vault_name=vault_name,
357-
parameters=params).result()
357+
parameters=params)
358358

359359

360360
def _parse_network_acls(cmd, resource_group_name, network_acls_json, network_acls_ips, network_acls_vnets,
@@ -661,7 +661,7 @@ def create_vault(cmd, client, # pylint: disable=too-many-locals, too-many-state
661661
return sdk_no_wait(no_wait, client.begin_create_or_update,
662662
resource_group_name=resource_group_name,
663663
vault_name=vault_name,
664-
parameters=parameters).result()
664+
parameters=parameters)
665665

666666

667667
def update_vault_setter(cmd, client, parameters, resource_group_name, vault_name, no_wait=False):
@@ -673,7 +673,7 @@ def update_vault_setter(cmd, client, parameters, resource_group_name, vault_name
673673
parameters=VaultCreateOrUpdateParameters(
674674
location=parameters.location,
675675
tags=parameters.tags,
676-
properties=parameters.properties)).result()
676+
properties=parameters.properties))
677677

678678

679679
def update_hsm_setter(cmd, client, parameters, resource_group_name, name, no_wait=False):
@@ -840,7 +840,7 @@ def set_policy(cmd, client, resource_group_name, vault_name,
840840
parameters=VaultCreateOrUpdateParameters(
841841
location=vault.location,
842842
tags=vault.tags,
843-
properties=vault.properties)).result()
843+
properties=vault.properties))
844844

845845

846846
def add_network_rule_for_vault_or_hsm(cmd, client, resource_group_name, vault_name=None, hsm_name=None,
@@ -909,7 +909,7 @@ def add_vault_network_rule(cmd, client, resource_group_name, vault_name, ip_addr
909909
parameters=VaultCreateOrUpdateParameters(
910910
location=vault.location,
911911
tags=vault.tags,
912-
properties=vault.properties)).result()
912+
properties=vault.properties))
913913

914914

915915
def add_hsm_network_rule(cmd, client, resource_group_name, hsm_name,
@@ -1001,7 +1001,7 @@ def remove_vault_network_rule(cmd, client, resource_group_name, vault_name, ip_a
10011001
parameters=VaultCreateOrUpdateParameters(
10021002
location=vault.location,
10031003
tags=vault.tags,
1004-
properties=vault.properties)).result()
1004+
properties=vault.properties))
10051005

10061006

10071007
def remove_hsm_network_rule(client, resource_group_name, hsm_name,
@@ -1079,7 +1079,7 @@ def delete_policy(cmd, client, resource_group_name, vault_name,
10791079
parameters=VaultCreateOrUpdateParameters(
10801080
location=vault.location,
10811081
tags=vault.tags,
1082-
properties=vault.properties)).result()
1082+
properties=vault.properties))
10831083
# endregion
10841084

10851085

src/azure-cli/requirements.py3.Darwin.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ azure-cli-core==2.78.0
88
azure-cli-telemetry==1.1.0
99
azure-cli==2.78.0
1010
azure-common==1.1.22
11-
azure-core==1.35.0
11+
azure-core==1.37.0
1212
azure-cosmos==3.2.0
1313
azure-data-tables==12.4.0
1414
azure-datalake-store==1.0.1

src/azure-cli/requirements.py3.Linux.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ azure-cli-core==2.78.0
88
azure-cli-telemetry==1.1.0
99
azure-cli==2.78.0
1010
azure-common==1.1.22
11-
azure-core==1.35.0
11+
azure-core==1.37.0
1212
azure-cosmos==3.2.0
1313
azure-data-tables==12.4.0
1414
azure-datalake-store==1.0.1

src/azure-cli/requirements.py3.windows.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ azure-cli-core==2.78.0
88
azure-cli-telemetry==1.1.0
99
azure-cli==2.78.0
1010
azure-common==1.1.22
11-
azure-core==1.35.0
11+
azure-core==1.37.0
1212
azure-cosmos==3.2.0
1313
azure-data-tables==12.4.0
1414
azure-datalake-store==1.0.1

0 commit comments

Comments
 (0)