cfengine/core — pull request #1325 by kacfengine (2014-01-22 09:18:32+00:00)
Title: Separate validated and release_id information into separate files.

The base problem is that only the policy server has enough information
to generate the release_id, most notably because the server will have
a git repository with a tag, whereas each agent will not. Therefore
the agents will generate a different release_id, based on file
contents. Add to the problem that stale files at each agent can also
influence the result, and you have a mess. Therefore only the policy
server should be allowed to generate the release_id.

This is a problem because each agent must be able to generate
cf_promises_validated, so that it can trigger a policy reload in its
daemons.

The problem is solved by separating those two pieces of information
(timestamp in cf_promises_validated, and releaseId in
cf_promises_release_id). All agents generate the former; only the
policy server generates the latter, with other agents downloading it.