F-3 CLI Usability Improvements

Registered by dan wendlandt

There are a few things worth doing to make the v2-compatible quantum CLI easier to use (feel free to add more, or to split individual items out into separate bugs):

- rename binary to quantum from quantumv2, and eliminate old binary
- eliminate "cliff.app" text from error messages.
- allow specifying networks by name, not UUID, as long as name is unambiguous for that tenant (similar to how nova let's you refer to a VM by name). This actually makes the flow much more smooth, and probably even eliminates the need to have a single command to create both network and subnet (since there's no longer a need for users/scripts to parse the UUID returned by the first call and include it in the second).

Blueprint information

Status:
Complete
Approver:
dan wendlandt
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
yong sheng gong
Definition:
New
Series goal:
Accepted for folsom
Implementation:
Implemented
Milestone target:
milestone icon 2012.2
Started by
dan wendlandt
Completed by
dan wendlandt

Whiteboard

Yong, looks like you're already making good progress on this as individual bugs. Up to you whether you want to leave this blueprint active, or unassign it and just use bugs.
Hi Dan, eliminate "cliff.app" text from error messages is not a good practice since the error is logged by cliff.app. Below is the code from cliff.app:
    LOG = logging.getLogger(__name__)

    def run_subcommand(self, argv):
        subcommand = self.command_manager.find_command(argv)
        cmd_factory, cmd_name, sub_argv = subcommand
        cmd = cmd_factory(self, self.options)
        err = None
        result = 1
        try:
            self.prepare_to_run_command(cmd)
            full_name = (cmd_name
                         if self.interactive_mode
                         else ' '.join([self.NAME, cmd_name])
                         )
            cmd_parser = cmd.get_parser(full_name)
            parsed_args = cmd_parser.parse_args(sub_argv)
            result = cmd.run(parsed_args)
        except Exception as err:
            if self.options.debug:
                LOG.exception(err)
            else:
                LOG.error(err)
So I think we can keep the cliff.app text.

Hi Yong... I see where you're coming from, but for a user of the CLI, they will have no idea what "cliff" is, and its likely to be confusing. What do other openstack CLIs do in this circumstance?

(?)

Work Items

Work items:
add name into port/subnet model: DONE
find resource in delete/update operation by id or name: DONE
modify cli to support id or name in delete/update ops: DONE
remove cliff.app: TODO

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.