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
4 changes: 3 additions & 1 deletion src/azure-cli/azure/cli/command_modules/acs/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -1223,7 +1223,7 @@ def merge_kubernetes_configurations(existing_file, addition_file, replace, conte
current_context = addition.get('current-context', 'UNKNOWN')
msg = 'Merged "{}" as current context in {}'.format(
current_context, existing_file)
print(msg)
logger.warning(msg)


def _get_host_name(acs_info):
Expand Down Expand Up @@ -1632,6 +1632,8 @@ def aks_check_acr(cmd, client, resource_group_name, name, acr):
raise CLIError("Failed to check the ACR: {}".format(err))
if output:
print(output)
if os.getenv("PYTEST_CURRENT_TEST", None):
return output
else:
raise CLIError("Failed to check the ACR.")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@
from azure.cli.testsdk.preparers import (
ResourceGroupPreparer,
VirtualNetworkPreparer,
RoleBasedServicePrincipalPreparer,
KEY_RESOURCE_GROUP,
KEY_VIRTUAL_NETWORK,
)
from azure.cli.testsdk.utilities import GraphClientPasswordReplacer


class AKSCustomResourceGroupPreparer(ResourceGroupPreparer):
Expand Down Expand Up @@ -135,3 +137,65 @@ def _update_address_prefixes(self, **kwargs):
self.address_prefixes = kwargs.get(
self.address_prefixes_parameter_name
)


class AKSCustomRoleBasedServicePrincipalPreparer(
RoleBasedServicePrincipalPreparer
):
def __init__(
self,
name_prefix="clitest",
skip_assignment=True,
parameter_name="sp_name",
parameter_password="sp_password",
dev_setting_sp_name="AZURE_CLI_TEST_DEV_SP_NAME",
dev_setting_sp_password="AZURE_CLI_TEST_DEV_SP_PASSWORD",
key="sp",
):
super(AKSCustomRoleBasedServicePrincipalPreparer, self).__init__(
name_prefix,
skip_assignment,
parameter_name,
parameter_password,
dev_setting_sp_name,
dev_setting_sp_password,
key,
)

def create_resource(self, name, **kwargs):
if not self.dev_setting_sp_name:
command = "az ad sp create-for-rbac -n {}{}".format(
name, " --skip-assignment" if self.skip_assignment else ""
)

try:
self.result = self.live_only_execute(
self.cli_ctx, command
).get_output_in_json()
except AttributeError: # live only execute returns None if playing from record
pass

self.test_class_instance.kwargs[self.key] = name
self.test_class_instance.kwargs[
"{}_pass".format(self.key)
] = self.parameter_password
return {
self.parameter_name: name,
self.parameter_password: self.result.get("password")
or GraphClientPasswordReplacer.PWD_REPLACEMENT,
}
else:
# call AbstractPreparer.moniker to make resource counts and self.resource_moniker consistent between live and
# play-back. see SingleValueReplacer.process_request, AbstractPreparer.__call__._preparer_wrapper
# and ScenarioTest.create_random_name. This is so that when self.create_random_name is called for the
# first time during live or playback, it would have the same value.
# In short, the default sp preparer in live mode does not call moniker, which leads to inconsistent counts.
_ = self.moniker
self.test_class_instance.kwargs[self.key] = self.dev_setting_sp_name
self.test_class_instance.kwargs[
"{}_pass".format(self.key)
] = self.dev_setting_sp_password
return {
self.parameter_name: self.dev_setting_sp_name,
self.parameter_password: self.dev_setting_sp_password,
}
Loading