skip to navigation
skip to content

Not Logged In

openlmi-scripts 0.2.1

Client-side library and command-line client

Package Documentation

Latest Version: 0.2.7

openlmi-scripts
===============
Client-side python modules and command line utilities.

It comprises of one binary called `lmi` and a common library. `lmi`
meta-command allows to run commands on a set of OpenLMI providers. These
commands can be installed separately in a modular way.

`lmi` is a command line application allowing to run single command on a set
of hosts with just one statement from `shell` or it can run in an
interactive way.

For more information please refer to online documentation on [pythonhosted][]
or build your own in `doc/` directory.

Structure
---------
Following diagram depicts directory structure.

    openlmi-tools
    ├── commands        # base directory for lmi subcommands
    │   ├── service     # service provider comand (service)
    │   │   └── lmi
    │   │       └── scripts
    │   │           └── service
    │   └── software    # software provider command (sw)
    │       └── lmi
    │           └── scripts
    │               └── software
    ├── config          # configuration files for lmi meta-command
    └── lmi             # common client-side library
        └── scripts
            ├── common
            └── _metacommand    # functionality of lmi meta-command

Each subdirectory of `commands/` contains library for interfacing with
particular set of OpenLMI providers. Each contains its own `setup.py` file,
that handles its installation and registration of command. They have one
command thing. Each such `setup.py` must pass `entry_points` dictionary to
the `setup()` function, wich associates commands defined in command library
with its name under `lmi` meta-command.

Dependencies
------------
Code base is written for `python 2.7`.
There are following python dependencies:

 * openlmi-tools
 * python-docopt

Installation
------------
Use standard `setuptools` script for installation:

    $ cd openlmi-scripts
    $ python setup.py install --user

This installs just the *lmi meta-command* and client-side library. To install
subcommands, you need to do the same procedure for each particular command
under `commands/` directory.

Usage
-----
To get a help and see available commands, run:

    $ lmi help

To get a help for particular command, run:

    $ lmi help service

To issue single command on a host, run:

    $ lmi --host ${hostname} service list

To start the app in interactive mode:

    $ lmi --host ${hostname}
    > service list --disabled
    ...
    > service start svnserve.service
    ...
    > quit

Developing lmi scripts.
-----------------------

This documents how to quickly develop lmi scripts without the need to
reinstall python eggs, when anything is changed. This presumes, that the
development process takes place in a git repotory checked out from [git][].
It can be located anywhere on system.

Before we start with setting up an environment, please double check, that you
don't have installed anything from openlmi-scripts in system path
(`/usr/lib/python2.7/site-packages/lmi/scripts` should not exist). And make
sure, that user path is also cleared:

    $ rm -rf $HOME/.local/lib/python2.7/site-packages/lmi*
    $ rm -rf $HOME/.local/lib/python2.7/site-packages/openlmi*

Install all dependencies:

  * python-docopt
  * openlmi-python-base
  * openlmi-tools

Either via rpms or from respective git repositories. For openlmi-python-base
package contained in [providers-git][] repository the setup script is
located at `src/python/setup.py`. In future these will be available from PyPi.

Let's setup an environment:

  1. Create a workspace directory for current `$USER` (let's call it a `WSP`).
     This is a place, where our eggs and binaries will be "installed".
     It can be located anywhere, for example:

        $ WSP=~/.python_workspace
        $ mkdir $WSP

  2. Add workspace to your python path to make all modules installed there
     importable (you can add this to your `~/.bashrc`):

        $ export PYTHONPATH=$WSP:$PYTHONPATH

  3. Add workspace to your PATH, so the installed binaries can be run:

        $ export PATH=$WSP:$PATH

  4. Now let's "install" to our workspace. First `cd` to checked out
     openlmi-scripts repository.
  5. Install them and any commands you want -- possibly your own

        $ python setup.py develop --install-dir=$WSP
        $ for cmd in service storage; do
        >     pushd commands/$cmd
        >     python setup.py develop --install-dir=$WSP
        >     popd
        > done

Now any change made to openlmi-scripts is immediately reflected in `lmi`
meta-command.

------------------------------------------------------------------------------
[git]:           https://github.com/openlmi/openlmi-scripts                 "openlmi-scripts"
[providers-git]: https://fedorahosted.org/openlmi/browser/openlmi-providers "openlmi-providers"
[pythonhosted]:  http://pythonhosted.org/openlmi-scripts/index.html         "python hosted"
 
File Type Py Version Uploaded on Size
openlmi-scripts-0.2.1.tar.gz (md5) Source 2013-09-11 36KB
  • Downloads (All Versions):
  • 20 downloads in the last day
  • 104 downloads in the last week
  • 595 downloads in the last month