Skip to content

Commit 9b9c4bb

Browse files
cherry pick changes from carl/feedback-5--profile-list-validation branch (#37)
* add validation to short profile list. * apply validation to profile set options. * disallow setting invalid profiles
1 parent 3e53df7 commit 9b9c4bb

File tree

1 file changed

+28
-30
lines changed

1 file changed

+28
-30
lines changed

src/planet_auth_utils/commands/cli/profile_cmd.py

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ def _dialogue_choose_auth_profile():
7070
filtered_builtin_profile_names.append(profile_name)
7171

7272
filtered_builtin_profile_names.sort()
73-
sorted_on_disk_profile_names = Profile.list_on_disk_profiles().copy()
73+
74+
# Loading filters out invalid profile configurations that may be on disk
75+
sorted_on_disk_profile_names = list(_load_all_on_disk_profiles().keys())
7476
sorted_on_disk_profile_names.sort()
7577
all_profile_names = filtered_builtin_profile_names + sorted_on_disk_profile_names
7678
choices = []
@@ -133,38 +135,30 @@ def cmd_profile_list(long):
133135
"""
134136
List auth profiles.
135137
"""
138+
click.echo("Built-in profiles:")
139+
profile_names = Builtins.builtin_profile_names().copy()
140+
profile_names.sort()
141+
display_dicts = OrderedDict()
142+
display_names = []
143+
for profile_name in profile_names:
144+
config_dict = Builtins.builtin_profile_auth_client_config_dict(profile_name)
145+
# The idea of a "hidden" profile currently only applies to built-in profiles.
146+
# This is largely so we can have partial SKEL profiles.
147+
if not config_dict.get("_hidden", False):
148+
display_dicts[profile_name] = config_dict
149+
display_names.append(profile_name)
136150
if long:
137-
click.echo("Built-in profiles:")
138-
profile_names = Builtins.builtin_profile_names().copy()
139-
profile_names.sort()
140-
display_object = OrderedDict()
141-
for profile_name in profile_names:
142-
config_dict = Builtins.builtin_profile_auth_client_config_dict(profile_name)
143-
# The idea of a "hidden" profile currently only applies to built-in profiles.
144-
# This is largely so we can have partial SKEL profiles.
145-
if not config_dict.get("_hidden", False):
146-
display_object[profile_name] = config_dict
147-
print_obj(display_object)
148-
149-
click.echo("\nLocally defined profiles:")
150-
print_obj(_load_all_on_disk_profiles())
151+
print_obj(display_dicts)
152+
else:
153+
print_obj(display_names)
151154

155+
click.echo("\nLocally defined profiles:")
156+
profile_dicts = _load_all_on_disk_profiles()
157+
profile_names = list(profile_dicts.keys())
158+
if long:
159+
print_obj(profile_dicts)
152160
else:
153-
click.echo("Built-in profiles:")
154-
display_profile_names = []
155-
for profile_name in Builtins.builtin_profile_names():
156-
config_dict = Builtins.builtin_profile_auth_client_config_dict(profile_name)
157-
# The idea of a "hidden" profile currently only applies to built-in profiles.
158-
# This is largely so we can have partial SKEL profiles.
159-
if not config_dict.get("_hidden", False):
160-
display_profile_names.append(profile_name)
161-
display_profile_names.sort()
162-
print_obj(display_profile_names)
163-
164-
click.echo("\nLocally defined profiles:")
165-
display_profile_names = Profile.list_on_disk_profiles()
166-
display_profile_names.sort()
167-
print_obj(display_profile_names)
161+
print_obj(profile_names)
168162

169163

170164
@cmd_profile.command("create")
@@ -277,6 +271,10 @@ def cmd_profile_set(selected_profile):
277271
"""
278272
if not selected_profile:
279273
selected_profile = _dialogue_choose_auth_profile()
274+
else:
275+
# Validate user input. Dialogue selected profiles should be pre-vetted.
276+
normalized_profile_name, _ = PlanetAuthFactory.load_auth_client_config_from_profile(selected_profile)
277+
selected_profile = normalized_profile_name
280278

281279
try:
282280
user_profile_config_file = PlanetAuthUserConfig()

0 commit comments

Comments
 (0)