cloudstack-cloudmonkey icon indicating copy to clipboard operation
cloudstack-cloudmonkey copied to clipboard

Feature request: Add dedicated command to switch between existing profiles (avoid accidental creation)

Open luganofer opened this issue 6 months ago • 5 comments

Hi! I’ve been using CloudMonkey with multiple profiles and noticed a usability issue with the current set profile command.

Right now, set profile serves both to create a new profile and to switch to an existing profile:

  • When creating a profile, you run:

set profile <new_profile_name> set url <api_url> set apikey <api_key> set secretkey <secret_key> [optional: set username / set domain]

  • When switching between profiles, you also run:

set profile <existing_profile_name>

The problem is that if you mistype the profile name when trying to switch, CloudMonkey silently creates a new empty profile instead of switching, which can be confusing and lead to misconfiguration.

Proposal:

Add a dedicated command for switching between existing profiles — one that does not create new profiles if the name doesn’t match. For example:

switch profile <profile_name>

or

use profile <profile_name>

This would:

  • Prevent accidental creation of unwanted profiles.
  • Make the intent clearer by separating profile creation from profile switching.
  • Improve usability when working with multiple CloudStack connections.

The current set profile could remain for profile creation/configuration to preserve backward compatibility.

luganofer avatar Aug 12 '25 21:08 luganofer

@luganofer , there is tab-completion for set profile, listing all existing profiles. This would also prevent you from mis-typing. Would that be enough?

And say we add switch profile , would we still allow switching using set profile <name>, or would you expect that to error out if the name exists?

If we want to avoid all misunderstandings we should deprecate set profile <name> and create both switch and create commands.

I’ve been using cmk for very long and must admit I bumped into to this once, over the years. That does not give me a big feel of urgency to fix it. (not completely against it but just wonder if it has enough value to change it)

DaanHoogland avatar Aug 13 '25 07:08 DaanHoogland

@luganofer , there is tab-completion for set profile, listing all existing profiles. This would also prevent you from mis-typing. Would that be enough?

And say we add switch profile , would we still allow switching using set profile <name>, or would you expect that to error out if the name exists?

If we want to avoid all misunderstandings we should deprecate set profile <name> and create both switch and create commands.

I’ve been using cmk for very long and must admit I bumped into to this once, over the years. That does not give me a big feel of urgency to fix it. (not completely against it but just wonder if it has enough value to change it)

Hi @DaanHoogland ,

I completely agree with you. It's not urgent, it's just an idea for improvement. The tab autocomplete works well and is very useful. But I think it's much better to have two different commands for creating and switching between profiles to avoid errors and confusions.

luganofer avatar Aug 13 '25 13:08 luganofer

@DaanHoogland @luganofer what do you expect create profile to do? Just create a new profile and not switch to it? My opinion is to keep it simple and just add a switch command.

shwstppr avatar Aug 27 '25 11:08 shwstppr

@DaanHoogland @luganofer what do you expect create profile to do? Just create a new profile and not switch to it? My opinion is to keep it simple and just add a switch command.

so switch is set but do not create, right? sounds good enough to me.

DaanHoogland avatar Aug 27 '25 12:08 DaanHoogland

@luganofer can you please check #192? You can get the binary with changes in the PR

shwstppr avatar Aug 28 '25 12:08 shwstppr