Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-20179

CLI should provide user-friendly list options

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.0.0-beta1
    • None
    • cli
    • Docs Required, Release Notes Required

    Description

      We have several command options that should accept a list of strings, for example cluster init --cmg-nodes. cmg-nodes can accept a single sting, string with comma-separated node names without a space, and finally, can be repeated.

      Imagine you are a user that types a command

      [defaultNode]> cluster init --cluster-name my --meta-storage-node defaultNode --cmg-node defaultNode, defaultNode2

      And get the error:
      Unmatched argument at index 7: 'defaultNode2'

      That is not clear what is wrong but the reason is that you typed a space before the comma.

      I suggest rethinking the way CLI supports lists of strings and offering a more user-friendly solution. Probably, we have to redefine our own jline3 parser. I would expect and least a clear error message about what is wrong and how to fix it.

      Another challenge here is to improve autocompletion in interactive mode. Imagine I want to use <TAB> completion against a cluster of two nodes node1 and node2:

      [defaultNode]> cluster init --cluster-name my --meta-storage-node <TAB1>node1 --meta-storage-node <TAB2>node2

      On TAB1 I can see the completion of 2 variants: node1 and node2. That is correct. On TAB2 I expect to see only node2 completion but I still see node1 and node2. That is not correct, because the list of nodes is not expected to contain duplicates.

      As a result of this ticket, I expect:

      • correct errors with examples
      • correct completions
      • a common solution to be used in all commands that need lists of string

      Attachments

        Activity

          People

            Unassigned Unassigned
            aleksandr.pakhomov Aleksandr
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: