Skip to content

Commit 85d68d3

Browse files
authored
{Keyvault} Vendor azure-keyvault track1 SDK to make customization for supporting Python 3.11 (#27148)
* vendor keyvault data plane track1 sdk * skip linter for vendored sdk * fix usage in other modules
1 parent 53d1455 commit 85d68d3

File tree

344 files changed

+26761
-38
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

344 files changed

+26761
-38
lines changed

src/azure-cli-core/azure/cli/core/profiles/_shared.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,10 @@ class ResourceType(Enum): # pylint: disable=too-few-public-methods
6565
MGMT_RESOURCE_MANAGEDAPPLICATIONS = ('azure.mgmt.resource.managedapplications', 'ApplicationClient')
6666
MGMT_MONITOR = ('azure.mgmt.monitor', 'MonitorManagementClient')
6767
MGMT_MSI = ('azure.mgmt.msi', 'ManagedServiceIdentityClient')
68-
DATA_KEYVAULT = ('azure.keyvault', 'KeyVaultClient')
6968
DATA_KEYVAULT_CERTIFICATES = ('azure.keyvault.certificates', 'CertificateClient')
7069
DATA_KEYVAULT_KEYS = ('azure.keyvault.keys', 'KeyClient')
7170
DATA_KEYVAULT_SECRETS = ('azure.keyvault.secrets', 'SecretClient')
72-
DATA_PRIVATE_KEYVAULT = ('azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1', 'KeyVaultClient')
71+
DATA_KEYVAULT = ('azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1', 'KeyVaultClient')
7372
DATA_KEYVAULT_ADMINISTRATION_BACKUP = ('azure.keyvault.administration', 'KeyVaultBackupClient')
7473
DATA_KEYVAULT_ADMINISTRATION_ACCESS_CONTROL = ('azure.keyvault.administration', 'KeyVaultAccessControlClient')
7574
DATA_KEYVAULT_ADMINISTRATION_SETTING = ('azure.keyvault.administration', 'KeyVaultSettingsClient')
@@ -210,7 +209,6 @@ def default_api_version(self):
210209
ResourceType.DATA_KEYVAULT_SECRETS: None,
211210
ResourceType.DATA_KEYVAULT_ADMINISTRATION_SETTING: None,
212211
ResourceType.DATA_KEYVAULT: '7.0',
213-
ResourceType.DATA_PRIVATE_KEYVAULT: '7.2',
214212
ResourceType.DATA_KEYVAULT_ADMINISTRATION_BACKUP: '7.4',
215213
ResourceType.DATA_KEYVAULT_ADMINISTRATION_ACCESS_CONTROL: '7.4',
216214
ResourceType.DATA_STORAGE: '2018-11-09',

src/azure-cli-core/azure/cli/core/tests/test_api_profiles.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ def test_get_versioned_sdk_path_semver(self):
268268
with mock.patch('azure.cli.core.profiles._shared.AZURE_API_PROFILES', test_profile):
269269
self.assertEqual(
270270
get_versioned_sdk_path('latest', ResourceType.DATA_KEYVAULT),
271-
"azure.keyvault.v7_0"
271+
"azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1.v7_0"
272272
)
273273

274274

src/azure-cli/azure/cli/command_modules/appconfig/_kv_helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from knack.log import get_logger
1919
from knack.util import CLIError
2020

21-
from azure.keyvault.key_vault_id import KeyVaultIdentifier
21+
from azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1.key_vault_id import KeyVaultIdentifier
2222
from azure.appconfiguration import ResourceReadOnlyError, ConfigurationSetting
2323
from azure.core.exceptions import HttpResponseError
2424
from azure.cli.core.util import user_confirmation
@@ -829,7 +829,7 @@ def __compact_key_values(key_values):
829829

830830

831831
def __resolve_secret(keyvault_client, keyvault_reference):
832-
from azure.keyvault.key_vault_id import SecretId
832+
from azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1.key_vault_id import SecretId
833833
try:
834834
secret_id = json.loads(keyvault_reference.value)["uri"]
835835
kv_identifier = SecretId(uri=secret_id)

src/azure-cli/azure/cli/command_modules/appconfig/_validators.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ def validate_identity(namespace):
227227

228228
def validate_secret_identifier(namespace):
229229
""" Validate the format of keyvault reference secret identifier """
230-
from azure.keyvault.key_vault_id import KeyVaultIdentifier
230+
from azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1.key_vault_id import KeyVaultIdentifier
231231

232232
identifier = getattr(namespace, 'secret_identifier', None)
233233
try:

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class Clients(str, Enum):
2323
mhsm_private_endpoint_connections = 'mhsm_private_endpoint_connections'
2424
mhsm_private_link_resources = 'mhsm_private_link_resources'
2525
mhsm_regions = 'mhsm_regions'
26+
private_7_2 = 'private_7_2'
2627

2728

2829
OPERATIONS_NAME = {
@@ -39,8 +40,6 @@ class Clients(str, Enum):
3940
ResourceType.MGMT_KEYVAULT:
4041
'azure.mgmt.keyvault{api_version}.{module_name}#{class_name}{obj_name}',
4142
ResourceType.DATA_KEYVAULT:
42-
'azure.keyvault{api_version}.key_vault_client#{class_name}{obj_name}',
43-
ResourceType.DATA_PRIVATE_KEYVAULT:
4443
'azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1{api_version}.'
4544
'key_vault_client#{class_name}{obj_name}',
4645
ResourceType.DATA_KEYVAULT_ADMINISTRATION_BACKUP:
@@ -110,9 +109,9 @@ def get_client_factory(resource_type, client_name=''):
110109
if is_mgmt_plane(resource_type):
111110
return keyvault_mgmt_client_factory(resource_type, client_name)
112111
if resource_type == ResourceType.DATA_KEYVAULT:
112+
if client_name == Clients.private_7_2:
113+
return keyvault_private_data_plane_factory_v7_2_preview
113114
return keyvault_data_plane_factory
114-
if resource_type == ResourceType.DATA_PRIVATE_KEYVAULT:
115-
return keyvault_private_data_plane_factory_v7_2_preview
116115
if resource_type == ResourceType.DATA_KEYVAULT_ADMINISTRATION_BACKUP:
117116
return data_plane_azure_keyvault_administration_backup_client
118117
if resource_type == ResourceType.DATA_KEYVAULT_ADMINISTRATION_ACCESS_CONTROL:
@@ -169,7 +168,8 @@ def _keyvault_mgmt_client_factory(cli_ctx, _):
169168

170169

171170
def keyvault_data_plane_factory(cli_ctx, *_):
172-
from azure.keyvault import KeyVaultAuthentication, KeyVaultClient
171+
from azure.cli.command_modules.keyvault.vendored_sdks.azure_keyvault_t1 import (
172+
KeyVaultAuthentication, KeyVaultClient)
173173
from azure.cli.core.util import should_disable_connection_verify
174174

175175
version = str(get_api_version(cli_ctx, ResourceType.DATA_KEYVAULT))
@@ -197,13 +197,11 @@ def keyvault_private_data_plane_factory_v7_2_preview(cli_ctx, _):
197197
KeyVaultAuthentication, KeyVaultClient)
198198
from azure.cli.core.util import should_disable_connection_verify
199199

200-
version = str(get_api_version(cli_ctx, ResourceType.DATA_PRIVATE_KEYVAULT))
201-
202200
def get_token(server, resource, scope): # pylint: disable=unused-argument
203201
return Profile(cli_ctx=cli_ctx).get_raw_token(resource=resource,
204202
subscription=cli_ctx.data.get('subscription_id'))[0]
205203

206-
client = KeyVaultClient(KeyVaultAuthentication(get_token), api_version=version)
204+
client = KeyVaultClient(KeyVaultAuthentication(get_token), api_version='7.2')
207205

208206
# HACK, work around the fact that KeyVault library does't take confiuration object on constructor
209207
# which could be used to turn off the verifiaction. Remove this once we migrate to new data plane library

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def get_keyvault_name_completion_list(resource_name):
1515

1616
@Completer
1717
def completer(cmd, prefix, namespace, **kwargs): # pylint: disable=unused-argument
18-
from azure.keyvault import KeyVaultAuthentication, KeyVaultClient
18+
from .vendored_sdks.azure_keyvault_t1 import KeyVaultAuthentication, KeyVaultClient
1919
from azure.cli.core.profiles import ResourceType, get_api_version
2020
version = str(get_api_version(cmd.cli_ctx, ResourceType.DATA_KEYVAULT))
2121
client = KeyVaultClient(KeyVaultAuthentication(_get_token), api_version=version)
@@ -34,7 +34,7 @@ def get_keyvault_version_completion_list(resource_name):
3434

3535
@Completer
3636
def completer(cmd, prefix, namespace, **kwargs): # pylint: disable=unused-argument
37-
from azure.keyvault import KeyVaultAuthentication, KeyVaultClient
37+
from .vendored_sdks.azure_keyvault_t1 import KeyVaultAuthentication, KeyVaultClient
3838
from azure.cli.core.profiles import ResourceType, get_api_version
3939
version = str(get_api_version(cmd.cli_ctx, ResourceType.DATA_KEYVAULT))
4040
client = KeyVaultClient(KeyVaultAuthentication(_get_token), api_version=version)

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ def set_vault_base_url(ns):
631631

632632
def validate_key_id(entity_type):
633633
def _validate(ns):
634-
from azure.keyvault.key_vault_id import KeyVaultIdentifier
634+
from .vendored_sdks.azure_keyvault_t1.key_vault_id import KeyVaultIdentifier
635635

636636
pure_entity_type = entity_type.replace('deleted', '')
637637
name = getattr(ns, pure_entity_type + '_name', None)
@@ -662,7 +662,7 @@ def _validate(ns):
662662

663663
def validate_keyvault_resource_id(entity_type):
664664
def _validate(ns):
665-
from azure.keyvault.key_vault_id import KeyVaultIdentifier
665+
from .vendored_sdks.azure_keyvault_t1.key_vault_id import KeyVaultIdentifier
666666

667667
pure_entity_type = entity_type.replace('deleted', '')
668668
name = getattr(ns, pure_entity_type + '_name', None) or getattr(ns, 'name', None)
@@ -697,7 +697,7 @@ def _validate(ns):
697697

698698

699699
def validate_sas_definition_id(ns):
700-
from azure.keyvault import StorageSasDefinitionId
700+
from .vendored_sdks.azure_keyvault_t1 import StorageSasDefinitionId
701701
acct_name = getattr(ns, 'storage_account_name', None)
702702
sas_name = getattr(ns, 'sas_definition_name', None)
703703
vault = getattr(ns, 'vault_base_url', None)
@@ -713,7 +713,7 @@ def validate_sas_definition_id(ns):
713713

714714

715715
def validate_storage_account_id(ns):
716-
from azure.keyvault import StorageAccountId
716+
from .vendored_sdks.azure_keyvault_t1 import StorageAccountId
717717
acct_name = getattr(ns, 'storage_account_name', None)
718718
vault = getattr(ns, 'vault_base_url', None)
719719
identifier = getattr(ns, 'identifier', None)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def load_command_table(self, _):
5353
if not is_azure_stack_profile(self):
5454
mgmt_hsms_entity = get_client(self.cli_ctx, ResourceType.MGMT_KEYVAULT, Clients.managed_hsms)
5555
mgmt_hsms_regions_entity = get_client(self.cli_ctx, ResourceType.MGMT_KEYVAULT, Clients.mhsm_regions)
56-
private_data_entity = get_client(self.cli_ctx, ResourceType.DATA_PRIVATE_KEYVAULT)
56+
private_data_entity = get_client(self.cli_ctx, ResourceType.DATA_KEYVAULT, Clients.private_7_2)
5757
data_backup_entity = get_client(self.cli_ctx, ResourceType.DATA_KEYVAULT_ADMINISTRATION_BACKUP)
5858
data_access_control_entity = get_client(self.cli_ctx, ResourceType.DATA_KEYVAULT_ADMINISTRATION_ACCESS_CONTROL)
5959
data_setting_entity = get_client(self.cli_ctx, ResourceType.DATA_KEYVAULT_ADMINISTRATION_SETTING)

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2360,8 +2360,7 @@ def _security_domain_restore_blob(sd_file, sd_exchange_key, sd_wrapping_keys, pa
23602360

23612361
def _security_domain_upload_blob(cmd, client, hsm_name, restore_blob_value, identifier=None,
23622362
vault_base_url=None, no_wait=False):
2363-
SecurityDomainObject = cmd.get_models('SecurityDomainObject',
2364-
resource_type=ResourceType.DATA_PRIVATE_KEYVAULT)
2363+
from .vendored_sdks.azure_keyvault_t1.v7_2.models import SecurityDomainObject
23652364
security_domain = SecurityDomainObject(value=restore_blob_value)
23662365
retval = client.upload(vault_base_url=hsm_name or vault_base_url, security_domain=security_domain)
23672366
if no_wait:
@@ -2408,9 +2407,7 @@ def security_domain_download(cmd, client, hsm_name, sd_wrapping_keys, security_d
24082407
if os.path.exists(security_domain_file):
24092408
raise CLIError("File named '{}' already exists.".format(security_domain_file))
24102409

2411-
CertificateSet = cmd.get_models('CertificateSet', resource_type=ResourceType.DATA_PRIVATE_KEYVAULT)
2412-
SecurityDomainJsonWebKey = cmd.get_models('SecurityDomainJsonWebKey',
2413-
resource_type=ResourceType.DATA_PRIVATE_KEYVAULT)
2410+
from .vendored_sdks.azure_keyvault_t1.v7_2.models import CertificateSet, SecurityDomainJsonWebKey
24142411

24152412
for path in sd_wrapping_keys:
24162413
if os.path.isdir(path):

src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/_internal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from cryptography.hazmat.primitives.asymmetric import padding as asym_padding
1717
from cryptography.hazmat.primitives import hashes, constant_time, padding, hmac
1818

19-
from azure.keyvault.models import JsonWebKey
19+
from .models import JsonWebKey
2020

2121
def _a128cbc_hs256_encrypt(key, iv, plaintext, authdata):
2222
if not key or not len(key) >= 32:

0 commit comments

Comments
 (0)