JioCloud/puppet-rjil — pull request #51 by bodepd (2014-09-18 18:33:49+00:00)
Title: Add status validation and service discovery

This commit adds two feauters to our script
that calls out to Puppet.

1. status checks so that we can keep track of
two types of failures.

* when Puppet fails
* when validation checks fail

2. service dicsovery (this is a much bigger
feature)

Adds a feature where each service can register itself,
and other services can discover registered services
to figure out how to confgure themselves.

Services can register themselves using the class

rjil::profile

which adds single line to the local file

/var/lib/puppet/profile_list.txt

This file is used to determine what services
a node will register itself for.

Before any node runs Puppet, it calls the

python -m jiocloud.orchestrate cache_services

which write the file services.yaml into hiera.

Since an array may be written into hiera and we
want to perform recursive lookups, this commit
also adds a custom hiera backend that can
perform two kinds of lookups:

lookup_array : performs a recursive lookup of
and array

lookup_array_first_element : retrieves the first
element of an array via recursive lookup

3. also fixes a bug so that hiera data is copied
across when we perform a from source installation.