Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -148,18 +148,6 @@ def get_client(cli_ctx, resource_type, client_name=''):
return ClientEntity(client_factory, command_type, operations_docs_tmpl, models_docs_tmpl)


def is_azure_stack_profile(cmd=None, cli_ctx=None):
cli_ctx = cmd.cli_ctx if cmd else cli_ctx
if not cli_ctx:
raise CLIError("Can't judge profile without cli_ctx!")
return cli_ctx.cloud.profile in [
'2020-09-01-hybrid',
'2019-03-01-hybrid',
'2018-03-01-hybrid',
'2017-03-09-profile'
]


def keyvault_mgmt_client_factory(resource_type, client_name):
def _keyvault_mgmt_client_factory(cli_ctx, _):
from azure.cli.core.commands.client_factory import get_mgmt_service_client
Expand Down Expand Up @@ -210,48 +198,45 @@ def data_plane_azure_keyvault_administration_setting_client(cli_ctx, command_arg
def data_plane_azure_keyvault_certificate_client(cli_ctx, command_args):
from azure.keyvault.certificates import CertificateClient

vault_url, credential, version = _prepare_data_plane_azure_keyvault_client(
vault_url, credential, _ = _prepare_data_plane_azure_keyvault_client(
cli_ctx, command_args, ResourceType.DATA_KEYVAULT_CERTIFICATES)
command_args.pop('hsm_name', None)
command_args.pop('vault_base_url', None)
command_args.pop('identifier', None)
api_version = '7.4' if not is_azure_stack_profile(cmd=None, cli_ctx=cli_ctx) else '2016-10-01'
client_kwargs = prepare_client_kwargs_track2(cli_ctx)
client_kwargs.pop('http_logging_policy')
return CertificateClient(
vault_url=vault_url, credential=credential, api_version=api_version or version,
vault_url=vault_url, credential=credential, api_version='7.4',
verify_challenge_resource=False, **client_kwargs)


def data_plane_azure_keyvault_key_client(cli_ctx, command_args):
from azure.keyvault.keys import KeyClient

vault_url, credential, version = _prepare_data_plane_azure_keyvault_client(
vault_url, credential, _ = _prepare_data_plane_azure_keyvault_client(
cli_ctx, command_args, ResourceType.DATA_KEYVAULT_KEYS)
command_args.pop('hsm_name', None)
command_args.pop('vault_base_url', None)
command_args.pop('identifier', None)
api_version = '7.6-preview.2' if not is_azure_stack_profile(cmd=None, cli_ctx=cli_ctx) else '2016-10-01'
client_kwargs = prepare_client_kwargs_track2(cli_ctx)
client_kwargs.pop('http_logging_policy')
return KeyClient(
vault_url=vault_url, credential=credential, api_version=api_version or version,
vault_url=vault_url, credential=credential, api_version='7.6-preview.2',
verify_challenge_resource=False, **client_kwargs)


def data_plane_azure_keyvault_secret_client(cli_ctx, command_args):
from azure.keyvault.secrets import SecretClient

vault_url, credential, version = _prepare_data_plane_azure_keyvault_client(
vault_url, credential, _ = _prepare_data_plane_azure_keyvault_client(
cli_ctx, command_args, ResourceType.DATA_KEYVAULT_SECRETS)
command_args.pop('hsm_name', None)
command_args.pop('vault_base_url', None)
command_args.pop('identifier', None)
api_version = '7.4' if not is_azure_stack_profile(cmd=None, cli_ctx=cli_ctx) else '2016-10-01'
client_kwargs = prepare_client_kwargs_track2(cli_ctx)
client_kwargs.pop('http_logging_policy')
return SecretClient(
vault_url=vault_url, credential=credential, api_version=api_version or version,
vault_url=vault_url, credential=credential, api_version='7.4',
verify_challenge_resource=False, **client_kwargs)


Expand Down
24 changes: 6 additions & 18 deletions src/azure-cli/azure/cli/command_modules/keyvault/_completers.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,15 @@ def completer(cmd, prefix, namespace, **kwargs): # pylint: disable=unused-argum
credential, _, _ = profile.get_login_credentials(subscription_id=cmd.cli_ctx.data.get('subscription_id'))
if resource_name == 'key':
from azure.keyvault.keys import KeyClient
from azure.cli.command_modules.keyvault._client_factory import is_azure_stack_profile
version = '7.6-preview.2' if not is_azure_stack_profile(cmd=cmd) else '2016-10-01'
client = KeyClient(vault_url=vault, credential=credential, api_version=version,
client = KeyClient(vault_url=vault, credential=credential, api_version='7.6-preview.2',
verify_challenge_resource=False)
elif resource_name == 'secret':
from azure.keyvault.secrets import SecretClient
from azure.cli.command_modules.keyvault._client_factory import is_azure_stack_profile
version = '7.4' if not is_azure_stack_profile(cmd=cmd) else '2016-10-01'
client = SecretClient(vault_url=vault, credential=credential, api_version=version,
client = SecretClient(vault_url=vault, credential=credential, api_version='7.4',
verify_challenge_resource=False)
else:
from azure.keyvault.certificates import CertificateClient
from azure.cli.command_modules.keyvault._client_factory import is_azure_stack_profile
version = '7.4' if not is_azure_stack_profile(cmd=cmd) else '2016-10-01'
client = CertificateClient(vault_url=vault, credential=credential, api_version=version,
client = CertificateClient(vault_url=vault, credential=credential, api_version='7.4',
verify_challenge_resource=False)
items = []
for y in list(getattr(client, func_name)()):
Expand All @@ -51,21 +45,15 @@ def completer(cmd, prefix, namespace, **kwargs): # pylint: disable=unused-argum
credential, _, _ = profile.get_login_credentials(subscription_id=cmd.cli_ctx.data.get('subscription_id'))
if resource_name == 'key':
from azure.keyvault.keys import KeyClient
from azure.cli.command_modules.keyvault._client_factory import is_azure_stack_profile
version = '7.6-preview.2' if not is_azure_stack_profile(cmd=cmd) else '2016-10-01'
client = KeyClient(vault_url=vault, credential=credential, api_version=version,
client = KeyClient(vault_url=vault, credential=credential, api_version='7.6-preview.2',
verify_challenge_resource=False)
elif resource_name == 'secret':
from azure.keyvault.secrets import SecretClient
from azure.cli.command_modules.keyvault._client_factory import is_azure_stack_profile
version = '7.4' if not is_azure_stack_profile(cmd=cmd) else '2016-10-01'
client = SecretClient(vault_url=vault, credential=credential, api_version=version,
client = SecretClient(vault_url=vault, credential=credential, api_version='7.4',
verify_challenge_resource=False)
else:
from azure.keyvault.certificates import CertificateClient
from azure.cli.command_modules.keyvault._client_factory import is_azure_stack_profile
version = '7.4' if not is_azure_stack_profile(cmd=cmd) else '2016-10-01'
client = CertificateClient(vault_url=vault, credential=credential, api_version=version,
client = CertificateClient(vault_url=vault, credential=credential, api_version='7.4',
verify_challenge_resource=False)
items = []
for y in list(getattr(client, func_name)()):
Expand Down
10 changes: 4 additions & 6 deletions src/azure-cli/azure/cli/command_modules/keyvault/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
validate_vault_name_and_hsm_name, set_vault_base_url, validate_keyvault_resource_id,
process_hsm_name, KeyEncryptionDataType, process_key_release_policy, process_certificate_policy,
process_certificate_import)
from azure.cli.command_modules.keyvault._client_factory import is_azure_stack_profile

# CUSTOM CHOICE LISTS

Expand Down Expand Up @@ -684,11 +683,10 @@ class CLISecurityDomainOperation(str, Enum):
type=get_json_object, validator=process_certificate_policy)
c.extra('tags', tags_type)

if not is_azure_stack_profile(self):
for cmd in ['list', 'list-deleted']:
with self.argument_context('keyvault certificate {}'.format(cmd)) as c:
c.extra('include_pending', arg_type=get_three_state_flag(),
help='Specifies whether to include certificates which are not completely provisioned.')
for cmd in ['list', 'list-deleted']:
with self.argument_context('keyvault certificate {}'.format(cmd)) as c:
c.extra('include_pending', arg_type=get_three_state_flag(),
help='Specifies whether to include certificates which are not completely provisioned.')

with self.argument_context('keyvault certificate import') as c:
c.argument('certificate_name', options_list=['--name', '-n'], required=True, arg_group='Id',
Expand Down
Loading