The University of California, San Diego
UCSD

Usher Clients

Usher clients are applications which interact with the Usher controller via the Usher client API. This API provides methods for connecting to the Usher controller, requesting or manipulating VMs, and performing state queries.

Available Clients

The following Usher clients are currently available.

  • Ush - The Usher Shell
  • Plusher - an XML-RPC server that integrates Plush with Usher

Client Configuration Files

Here, I assume you've read and understand the information in the Configuration Files section of the main Usher documentation.

Client applications specify their configuration options in their own private section. For example, ush places its options in an aptly named '[ush]' section of its configuration file. Clients can also specify client API options in the same or a separate file in a section titled '[cli]'. Valid client API options are documented in the cli.config.orig file packaged with the Usher distribution.

By default, the client API looks for its configuration file in /etc/usher/cli.config. An alternate or additional configuration file can be specified with the environment variable 'USHERCLI_CONFIG'. The configuration system tries to read in values from the following locations (in order):

  • /etc/usher/cli.config
  • ~/.usher/cli.config
  • file pointed to by the environment variable USHERCLI_CONFIG (in order listed)

Again, client applications can override options specified in any of these files by placing them in a '[cli]' section of their own configuration file. For example, an ush user can specify client API options in her ush.config file as:

[cli]

# server where Usher controller runs
ctrl_host = usherctrl.mydomain.com

# port on Usher controller to which clients connect
ctrl_port = 844

...

[ush]

# Number of lines of ush shell history to save                                  
hist_len = 1000   

# Show any available exception info and traceback with notifications messages
notice_verbose = False
...

or, simply keep her ush configuration file separate by keeping client API options in ~/.usher/cli.config. Either option is fine. If you have multiple Usher clients, it may be easier to keep them separate.

Writing Clients

See the Writing Clients section of the Development page.

Client Wish List

It would be great to have the following Usher clients. If anyone out there is interested in developing any of these, please let me know (Marvin McNett).

  • gusher - A graphical user interface for Usher. There are a lot of folks out there more qualified to write a decent GUI than I am.
  • web interface - I'd started writing a mod_python web interface for Usher, but time constraints have precluded me from finishing it.
  • XML-RPC interface - a generic XML-RPC interface which closely mirrors the client API would be valuable for non-python applications. Although Plusher is, strictly speaking, an XML-RPC interface, it's fairly specific to plush and doesn't provide access to all of the client API functionality.
  • command line suite - A command line suite that provides functionality similar to ush, but are actually scripts callable from a UNIX shell (bash, tcsh, etc.). This would make writing shell scripts for managing Usher VMs possible.

In addition to these, a few ush enhancements would be nice. First, actually making ush scriptable would be conventient. Then users could save ush scripts and run them when needed. It would also be nice to have ush use readline. Ush does provide command history and a few keyboard command sequences, but not nearly as many as provided by readline. Neither of these modifications should be major projects, it's just that I haven't found time to do them.


Last Updated: 2007-09-03 by mmcnett
Report problems to: Marvin McNett