Skip to content

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

Description

@luganofer

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.

Activity

  1. DaanHoogland commented on Aug 13, 2025

    @DaanHoogland
    Contributor

    @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)

  2. luganofer commented on Aug 13, 2025

    @luganofer
    Author

    @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.

  3. added this to the 6.6.0 milestone on Aug 19, 2025
  4. shwstppr commented on Aug 27, 2025

    @shwstppr
    Contributor

    @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.

  5. DaanHoogland commented on Aug 27, 2025

    @DaanHoogland
    Contributor

    @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.

  6. added a commit that references this issue on Aug 27, 2025
    1d772cf
  7. shwstppr commented on Aug 28, 2025

    @shwstppr
    Contributor

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

  8. added a commit that references this issue on Sep 9, 2026
    df41d70
  9. yadvr commented on Sep 18, 2026

    @yadvr
    Member

    fwiw, the way cmk designed was for users to use tab-tab, as in "set profile " which lists the profile which they tab+select an existing profile or create a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions