COT.cli module¶
CLI entry point for the Common OVF Tool (COT) suite.
Classes
CLI | Command-line user interface for COT. |
- class CLI[source]¶
Bases: COT.ui_shared.UI
Command-line user interface for COT.
confirm Prompt user to confirm the requested operation. create_parser Create parser object for global cot command. create_subparsers Populate the CLI sub-parsers for all known submodules. fill_examples Pretty-print a set of usage examples. fill_usage Pretty-print a list of usage strings for a COT subcommand. formatter Create formatter for log output. get_input Prompt the user to enter a string. get_password Get password string from the user. main Main worker function for COT when invoked from the CLI. parse_args Parse the given CLI arguments into a namespace object. run Parse the given CLI args then run. set_verbosity Enable logging and/or change the logging verbosity level. terminal_width Get the width of the terminal in columns. - confirm(prompt)[source]¶
Prompt user to confirm the requested operation.
Auto-accepts if force is set to True.
Parameters: prompt (str) – Message to prompt the user with Returns: True (user confirms acceptance) or False (user declines)
- create_parser()[source]¶
Create parser object for global cot command.
Includes a number of globally applicable CLI options.
- create_subparsers()[source]¶
Populate the CLI sub-parsers for all known submodules.
Creates an instance of each COTGenericSubmodule subclass, then calls create_subparser() for each.
- fill_examples(example_list)[source]¶
Pretty-print a set of usage examples.
>>> fill_examples([ ... ('cot deploy foo.ova esxi 192.0.2.100 -u admin -p admin' ... ' -n test_vm', ... "Deploy to vSphere/ESXi server 192.0.2.100 with credentials" ... " admin/admin, creating a VM named 'test_vm' from foo.ova."), ... ('cot deploy foo.ova esxi 192.0.2.100 -u admin -c 1CPU-2.5GB', ... "Deploy to vSphere/ESXi server 192.0.2.100, with username" ... " admin (prompting the user to input a password at runtime)," ... " creating a VM based on profile '1CPU-2.5GB' in foo.ova.") ... ]) Examples: cot deploy foo.ova esxi 192.0.2.100 -u admin -p admin \ -n test_vm Deploy to vSphere/ESXi server 192.0.2.100 with credentials admin/admin, creating a VM named 'test_vm' from foo.ova. cot deploy foo.ova esxi 192.0.2.100 -u admin \ -c 1CPU-2.5GB Deploy to vSphere/ESXi server 192.0.2.100, with username admin (prompting the user to input a password at runtime), creating a VM based on profile '1CPU-2.5GB' in foo.ova.
Parameters: example_list (list) – List of (cli_example, example_description) tuples. Returns: Examples wrapped appropriately to the terminal_width() value. CLI examples will be wrapped with backslashes and a hanging indent.
- fill_usage(subcommand, usage_list)[source]¶
Pretty-print a list of usage strings for a COT subcommand.
Automatically prepends a cot subcommand --help usage string to the provided list.
>>> fill_usage('add-file', ["FILE PACKAGE [-o OUTPUT] [-f FILE_ID]"]) cot add-file --help cot add-file FILE PACKAGE [-o OUTPUT] [-f FILE_ID]
Parameters: - subcommand (str) – Subcommand name/keyword
- usage_list (list) – List of usage strings for this subcommand.
Returns: String containing all usage strings, each appropriately wrapped to the terminal_width() value.
- formatter(verbosity=20)[source]¶
Create formatter for log output.
We offer different (more verbose) formatting when debugging is enabled, hence this need.
Parameters: verbosity – Logging level as defined by logging. Returns: Formatter object for use with logging. Return type: instance of colorlog.ColoredFormatter
- get_input(prompt, default_value)[source]¶
Prompt the user to enter a string.
Auto-inputs the default_value if force is set to True.
Parameters: - prompt (str) – Message to prompt the user with
- default_value (str) – Default value to input if the user simply hits Enter without entering a value, or if force.
Returns: Input value
Return type: str
- get_password(username, host)[source]¶
Get password string from the user.
Parameters: - username (str) – Username the password is associated with
- host (str) – Host the password is associated with
Raises InvalidInputError: if force is True (as there is no “default” password value)
- main(args)[source]¶
Main worker function for COT when invoked from the CLI.
- Calls set_verbosity() with the appropriate verbosity level derived from the args.
- Looks up the appropriate COTGenericSubmodule instance corresponding to the subcommand that was invoked.
- Converts args to a dict and calls set_value() for each arg/value in the dict.
- Calls run() followed by finished().
- Catches various exceptions and handles them appropriately.
Parameters: args – Parser namespace object returned from parse_args(). Return type: int Returns: Exit code for the COT executable. - 0 on successful completion
- 1 on runtime error
- 2 on input error (parser error, InvalidInputError, etc.)
- parse_args(argv)[source]¶
Parse the given CLI arguments into a namespace object.
Parameters: argv (list) – List of CLI arguments, not including argv0 Returns: Parser namespace object
- run(argv)[source]¶
Parse the given CLI args then run.
Calls parse_args() followed by main().
Parameters: argv (list) – The CLI argv value (not including argv[0]) Returns: Return code from main()
- set_verbosity(level)[source]¶
Enable logging and/or change the logging verbosity level.
Will call formatter() and associate the resulting formatter with logging.
Parameters: level – Logging level as defined by logging