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)[source]
__init__(ctx)[source]

Set some variables, pass to parent class

lp_up(targets=(), run_id=None)[source]

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

Parameters:
  • pinfile – Provided PinFile, with available targets
  • targets – A tuple of targets to provision
  • run_id – An optional run_id if the task is idempotent or a destroy action
lp_destroy(targets=(), run_id=None)[source]

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:
  • pinfile – Provided PinFile, with available targets,
  • targets – A tuple of targets to destroy.
lp_down(pinfile, targets=(), run_id=None)[source]

This function takes a list of targets, and performs a shutdown on nodes in the target’s topology. Only providers which support shutdown from their API (Ansible) will support this option.

CURRENTLY UNIMPLEMENTED

See also

lp_destroy

Parameters:
  • pinfile – Provided PinFile, with available targets,
  • targets – A tuple of targets to provision.
get_cfg(section=None, key=None, default=None)

Get cfgs value(s) by section and/or key, or the whole cfgs object

Parameters:
  • section – section from ini-style config file
  • key – key to get from config file, within section
  • default – default value to return if nothing is found.
set_cfg(section, key, value)

Set a value in cfgs. Does not persist into a file, only during the current execution.

Parameters:
  • section – section within ini-style config file
  • key – key to use
  • value – value to set into section within config file
get_evar(key=None, default=None)

Get the current evars (extra_vars)

Parameters:
  • key – key to use
  • default – default value to return if nothing is found

(default: None)

set_evar(key, value)

Set a value into evars (extra_vars). Does not persist into a file, only during the current execution.

Parameters:
  • key – key to use
  • value – value to set into evars
class linchpin.cli.context.LinchpinCliContext[source]

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

get_cfg(section=None, key=None, default=None)

Get cfgs value(s) by section and/or key, or the whole cfgs object

Parameters:
  • section – section from ini-style config file
  • key – key to get from config file, within section
  • default – default value to return if nothing is found.

Does not apply if section is not provided.

get_evar(key=None, default=None)

Get the current evars (extra_vars)

Parameters:
  • key – key to use
  • default – default value to return if nothing is found

(default: None)

load_config(lpconfig=None)[source]
load_global_evars()

Instantiate the evars variable, then load the variables from the ‘evars’ section in linchpin.conf. This will then be passed to invoke_linchpin, which passes them to the Ansible playbook as needed.

log(msg, **kwargs)[source]

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)[source]

Logs a DEBUG message

log_info(msg)[source]

Logs an INFO message

log_state(msg)[source]

Logs a message to stdout

pinfile

getter function for pinfile name

set_cfg(section, key, value)

Set a value in cfgs. Does not persist into a file, only during the current execution.

Parameters:
  • section – section within ini-style config file
  • key – key to use
  • value – value to set into section within config file
set_evar(key, value)

Set a value into evars (extra_vars). Does not persist into a file, only during the current execution.

Parameters:
  • key – key to use
  • value – value to set into evars
setup_logging()[source]

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

workspace

getter function for workspace