LinchPin Command-Line API

The linchpin.cli module provides an API for writing a command-line interface, the LinchPin Command Line Shell implementation being the reference implementation.

class linchpin.cli.LinchpinCli(ctx)
find_include(filename, ftype='topology')

Find the included file to be acted upon.

Parameters
  • filename – name of file from to be loaded

  • ftype – the file type to locate: topology, layout (default: topology)

lp_destroy(targets=(), run_id=None, tx_id=None, env_vars=None)

This function takes a list of targets, and performs a destructive teardown, including undefining nodes, according to the target(s).

See also

lp_down - currently unimplemented

Parameters
  • targets – A tuple of targets to destroy.

  • run_id – An optional run_id to use

  • tx_id – An optional tx_id to use

lp_fetch(src, root='', fetch_type='workspace', fetch_protocol='FetchGit', fetch_ref=None, dest_ws=None, nocache=False)

Fetch a workspace from git, http(s), or a local directory, and generate a provided workspace

Parameters
  • src – The URL or URI of the remote directory

  • root – Used to specify the location of the workspace within the remote. If root is not set, the root of the given remote will be used.

  • fetch_type – Specifies which component(s) of a workspace the user wants to fetch. Types include: topologies, layouts, resources, hooks, workspace. (default: workspace)

  • fetch_protocol – The protocol to use to fetch the workspace. (default: git)

  • fetch_ref – Specify the git branch. Used only with git protocol (eg. master). If not used, the default branch will be used.

  • dest_ws

    Workspaces destination, the workspace will be relative to this location.

    If dest_ws is not provided and -r/–root is provided, the basename will be the name of the workspace within the destination. If no root is provided, a random workspace name will be generated. The destination can also be explicitly set by using -w (see linchpin –help).

  • nocache – If true, don’t copy from the cache dir, unless it’s longer than the configured fetch.cache_days (1 day) (default: False)

lp_init(providers=['libvirt'])

Initializes a linchpin project. Creates the necessary directory structure, includes PinFile, topologies and layouts for the given provider. (Default: Dummy. Other providers not yet implemented.)

Parameters

providers – A list of providers for which templates

(and a target) will be provided into the workspace. NOT YET IMPLEMENTED

lp_setup(providers='all')

This function takes a list of providers, and setsup the dependencies :param providers:

A tuple of providers to install dependencies

lp_up(targets=(), run_id=None, tx_id=None, inv_f='cfg', env_vars=())

This function takes a list of targets, and provisions them according to their topology.

Parameters
  • targets – A tuple of targets to provision

  • run_id – An optional run_id if the task is idempotent

  • tx_id – An optional tx_id if the task is idempotent

lp_validate(targets=(), old_schema=False)

This function takes a list of targets, and validates their topology.

Parameters

targets – A tuple of targets to provision

:param old_schema

Denotes whether schema should be validated with the old schema rather than the new one!/usr/bin/env python

property pf_data

getter for pinfile template data

property pinfile

getter function for pinfile name

property workspace

getter function for context workspace

class linchpin.cli.context.LinchpinCliContext

Context object, which will be used to manage the cli, and load the configuration file

property inventory

getter function for inventory

property inventory_folder

getter function for inventory_folder

property inventory_path

getter function for inventory_path

load_config(lpconfig=None)

Update self.cfgs from the linchpin configuration file (linchpin.conf).

The following paths are used to find the config file. The search path defaults to the first-found order:

* /etc/linchpin.conf
* /linchpin/library/path/linchpin.conf
* <workspace>/linchpin.conf

An alternate search_path can be passed.

Parameters

search_path – A list of paths to search a linchpin config

(default: None)

log(msg, **kwargs)

Logs a message to a logfile or the console

Parameters
  • msg – message to log

  • lvl – keyword argument defining the log level

  • msg_type – keyword argument giving more flexibility.

Note

Only msg_type STATE is currently implemented.

log_debug(msg)

Logs a DEBUG message

log_info(msg)

Logs an INFO message

log_state(msg)

Logs a message to stdout

property pinfile

getter function for pinfile name

setup_logging()

Setup logging to a file, console, or both. Modifying the linchpin.conf appropriately will provide functionality.

property workspace

getter function for workspace