The autocompletion of the options of the "add" command doesn't work for objects that don't have a corresponding top level collection. A notable example of this is the "qos" object. There isn't an top level "/qoss" collection in the system, instead it is a sub collection of the top level "/datacenters" collection. The command to add a new "qos" should look like this: # add qos --parent-datacenter-name mydc --name myname --type mytype ... But using the tab key for auto completion only displays the "parent-datacenter-*" options. The root cause for this is that the "__add_resource_specific_options" method of the "AddCmdShell" class extracts the options from the broker class corresponding to the object, and it calculates the name of that class using a simple name mapping: whatever -> brokers.Whatever This works fine for other object, for example for clusters: cluster -> brokers.Cluster But for "qos" there isn't a "brokers.QoS" broker class, because there isn't such a collection. To solve this problem the "__add_resource_specific_options" method of the "AddCmdShell" class needs to be changed so that in this particular case it retrieves the available options from the "brokers.DataCenterQos" class. In general it needs to take into account the given "--parent-*" options to decide what broker class to use.
There aren't plans to update the CLI, so this won't be fixed.