No commit activity in last 3 years
No release in over 3 years
Exposes smart class parameters lookups as an API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

 Project Readme

foreman_param_lookup

Foreman engine plugin that exposes smart class parameter lookups for any host and class.

Warning: this was written as a proof of concept. It has no authentication and should not be used in a production environment.

The ENC YAML output that Foreman generates only provides parameters for classes that are included on the node through the host or hostgroup records. However any smart class parameter can be evaluated for a host, so this exposes an API to do that.

It's designed to be used with the foreman_data_binding Puppet module, which uses this API to resolve class parameters using the matchers configured in Foreman. It effectively works in the same way as the Hiera integration in Puppet 3.

Get the foreman_data_binding module from Puppet Forge or GitHub.

Installation:

Include in your ~foreman/bundler.d/foreman_param_lookup.rb

gem 'foreman_param_lookup'

Or from git:

gem 'foreman_param_lookup', :git => "https://github.com/domcleal/foreman_param_lookup.git"

As Foreman user:

bundle install

To upgrade to newest version of the plugin:

bundle update foreman_param_lookup

Don't forget to install the Puppet module to use that functionality.

Usage

The URL requires the host (that will be used as context for the smart class parameter lookup) and the class. It'll return all parameters for the class in YAML format.

$ curl http://foreman/param_lookup?host=host.example.net&class=module::class
--- 
  module::class: 
    param1: value
    param2: "another value"

Copyright

Copyright (c) 2013 Red Hat Inc.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.