Skip to content

Commit

Permalink
{Containerapp} Make test more stable for network resource requests (A…
Browse files Browse the repository at this point in the history
  • Loading branch information
Greedygre committed Aug 28, 2024
1 parent 7ea4ecd commit 18907bf
Show file tree
Hide file tree
Showing 5 changed files with 2,064 additions and 3,212 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,52 @@ def _get_resource_group(self, **kwargs):
'decorator @{} in front of this preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))


class SubnetPreparer(NoTrafficRecordingPreparer, SingleValueReplacer):
def __init__(self, name_prefix='vnet', location='eastus2euap', resource_group_parameter_name='resource_group', vnet_name=None, vnet_address_prefixes='14.0.0.0/23', subnet_address_prefixes='14.0.0.0/23',
delegations=None, subnet_name="default", service_endpoints=None, skip_delete=False):
super(SubnetPreparer, self).__init__(name_prefix, 15)
self.cli_ctx = get_dummy_cli()
self.location = location
self.resource_group_parameter_name = resource_group_parameter_name
self.vnet_name = vnet_name
if vnet_name is None:
self.vnet_name = self.create_random_name()
self.vnet_address_prefixes = vnet_address_prefixes
self.subnet_address_prefixes = subnet_address_prefixes
self.delegations = delegations
self.subnet_name = subnet_name
self.service_endpoints = service_endpoints
self.skip_delete = skip_delete

def create_resource(self, name, **kwargs):
resource_group = self._get_resource_group(**kwargs)
subnet_id = None
try:
self.live_only_execute(self.cli_ctx, f"az network vnet create --address-prefixes {self.vnet_address_prefixes} -g {resource_group} -n {self.vnet_name} --subnet-name {self.subnet_name} --location {self.location}")
subnet_command = f"az network vnet subnet update --address-prefixes {self.subnet_address_prefixes} " \
f"-n {self.subnet_name} " \
f"-g {resource_group} " \
f"--vnet-name {self.vnet_name} "
if self.service_endpoints is not None:
subnet_command += f'--service-endpoints {self.service_endpoints} '

if self.delegations is not None:
subnet_command += f'--delegations {self.delegations} '

subnet_id = self.live_only_execute(self.cli_ctx, subnet_command).get_output_in_json()["id"]
except AttributeError: # live only execute returns None if playing from record
pass
return {'subnet_id': subnet_id,
'vnet_name': self.vnet_name,
'subnet_name': self.subnet_name}

def _get_resource_group(self, **kwargs):
try:
return kwargs.get(self.resource_group_parameter_name)
except KeyError:
template = 'Resource group is required. Please add ' \
'decorator @{} in front of this preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))
Loading

0 comments on commit 18907bf

Please sign in to comment.