Only update local version once validation passes

Previously, the current version was set as soon
as puppet completed without error. This was problematic
for cases where Puppet may need to run multiple times
to result in a converged state. Although this is not
a desired case, this is currently required for ceph
installation.

It also makes sense to continue trying to re-running Puppet
when in an unvalidated state in hopes that it might result
in a functional system.

This commit ensures that the current version is not set
until the actual service has been validated.