Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding 'profile_' prefix for azure stack profile #274

Merged
merged 6 commits into from
Aug 3, 2023
Merged
Show file tree
Hide file tree
Changes from 2 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
2 changes: 1 addition & 1 deletion src/aaz_dev/cli/controller/az_module_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ def _patch_module(self, mod_name):
def _load_view_profile(self, profile_name, aaz_path):
profile = CLIViewProfile()
profile.name = profile_name
profile_folder_name = profile_name.lower().replace('-', '_')
profile_folder_name = profile.profile_folder_name
profile_path = os.path.join(aaz_path, profile_folder_name)
if not os.path.exists(profile_path):
return profile
Expand Down
8 changes: 5 additions & 3 deletions src/aaz_dev/cli/controller/az_operation_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
CMDArraySchemaBase, CMDClsSchemaBase, CMDJsonInstanceUpdateAction, CMDObjectSchemaDiscriminator, CMDSchemaEnum, \
CMDJsonInstanceCreateAction, CMDJsonInstanceDeleteAction, CMDInstanceCreateOperation, CMDInstanceDeleteOperation
from utils import exceptions
from utils.case import to_snack_case
from utils.case import to_snack_case, to_variation_name
kairu-ms marked this conversation as resolved.
Show resolved Hide resolved
from utils.error_format import AAZErrorFormatEnum


Expand Down Expand Up @@ -799,7 +799,8 @@ def _iter_request_scopes_by_schema_base(schema, name, scope_define, arg_key, cmd
for disc in discriminators:
key_name = disc.property
key_value = disc.value
disc_name = f"disc_{to_snack_case(disc.value)}"
disc_name = f"disc_{to_variation_name(disc.value)}"

kairu-ms marked this conversation as resolved.
Show resolved Hide resolved
disc_scope_define = scope_define + "{" + key_name + ":" + key_value + "}"
disc_arg_key = arg_key
for scopes in _iter_request_scopes_by_schema_base(disc, disc_name, disc_scope_define, disc_arg_key, cmd_ctx):
Expand Down Expand Up @@ -879,7 +880,8 @@ def _iter_response_scopes_by_schema_base(schema, name, scope_define, cmd_ctx):
for disc in discriminators:
key_name = to_snack_case(disc.property)
key_value = disc.value
disc_name = f"disc_{to_snack_case(disc.value)}"
disc_name = f"disc_{to_variation_name(disc.value)}"

kairu-ms marked this conversation as resolved.
Show resolved Hide resolved
disc_scope_define = f'{scope_define}.discriminate_by("{key_name}", "{key_value}")'
for scopes in _iter_response_scopes_by_schema_base(disc, disc_name, disc_scope_define, cmd_ctx):
yield scopes
Expand Down
2 changes: 1 addition & 1 deletion src/aaz_dev/cli/controller/az_profile_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class AzProfileGenerator:
def __init__(self, aaz_folder, profile):
self.aaz_folder = aaz_folder
self.profile = profile
self.profile_folder_name = profile.name.lower().replace('-', '_')
self.profile_folder_name = profile.profile_folder_name
self._removed_folders = set()
self._removed_files = set()
self._modified_files = {}
Expand Down
9 changes: 9 additions & 0 deletions src/aaz_dev/cli/model/atomic/_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,12 @@ class CLIAtomicProfile(Model):

class Options:
serialize_when_none = False

@property
def profile_folder_name(self):
profile_folder_name = self.name.lower().replace('-', '_')
if profile_folder_name != "latest":
# for rest profiles such as 2019-03-01-hybrid, the folder name starts with digit,
# it's not a valid python package name.
profile_folder_name = "profile_" + profile_folder_name
return profile_folder_name
9 changes: 9 additions & 0 deletions src/aaz_dev/cli/model/view/_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,12 @@ class CLIViewProfile(Model):

class Options:
serialize_when_none = False

@property
def profile_folder_name(self):
profile_folder_name = self.name.lower().replace('-', '_')
if profile_folder_name != "latest":
# for rest profiles such as 2019-03-01-hybrid, the folder name starts with digit,
# it's not a valid python package name.
profile_folder_name = "profile_" + profile_folder_name
return profile_folder_name
7 changes: 7 additions & 0 deletions src/aaz_dev/utils/case.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,10 @@ def to_snack_case(name, separator='_'):
name = re.sub('(.)([A-Z][a-z]+)', r'\1' + separator + r'\2', name)
name = re.sub('([a-z0-9])([A-Z])', r'\1' + separator + r'\2', name).lower()
return name.replace('-', separator).replace('_', separator)


def to_variation_name(name):
"""Convert name to snack case an replace special characters by '__'"""
name = to_snack_case(name)
name = re.sub(r'[^a-z0-9_]', '__', name)
return name
kairu-ms marked this conversation as resolved.
Show resolved Hide resolved
Loading