LinchPin Hooks API

The linchpin.hooks module manages the Linchpin Hooks functionality within LinchPin.

class linchpin.hooks.ActionBlockRouter(name, *args, **kwargs)

Proxy pattern implementation for fetching actionmanagers by name

class linchpin.hooks.LinchpinHooks(api)
execute_hook(block_obj, target)
fetch_git_src(block)
fetch_src(block)
get_custom_action_manager(action_block)
global_hooks_block(block)
prepare_ctx_params()

prepares few context parameters based on the current target_data that is being set. these parameters are based topology name.

prepare_inv_params()
resolve_block_path(block)
run_action(state, block, tgt_data)
run_actions(state, action_blocks, tgt_data, is_global=False)

Runs actions inside each action block of each target

Parameters
  • action_blocks – list of action_blocks each block constitues to a type of hook

  • tgt_data – data specific to target, which can be dict of

topology , layout, outputs, inventory :param is_global: scope of the hook

example: action_block: - name: do_something

type: shell actions:

  • echo ‘ this is ‘postup’ operation Hello hai how r u ?’

run_hooks(state, is_global=False)

Function to run hook all hooks from Pinfile based on the state :param state: hook state (currently, preup, postup, predestroy, postdestroy) :param is_global: whether the hook is global (can be applied to multiple targets)

run_inventory_gen(data)
run_local_actions(state, action_blocks, tgt_data)
property rundb