puppetlabs/puppet — pull request #1145 by daniel-pittman (2012-09-13 23:37:57+00:00)
Title: #16327: inventory service fails when target is absent

This turns out to have been a combination of two bugs, one that prevented the YAML cache being enabled at all, and a second (deliberate) change that caused the order in which data was fetched from the master to change, triggering a bug because of the pervasive assumptions about state change from code flow in the indirector.

Fixing both allows this to work: first, the YAML cache will behave as expected, allowing compilation to work while data to the (unreachable) inventory service will be discarded on error.

The second allows the agent to carry on if that *doesn't* work when fetching node details, which allows it to get far enough to actually submit facts and compile, allowing a brand new, shiny node to actually work even if the inventory service was down.