puppetlabs/puppet — pull request #679 by jeffweiss (2012-04-18 05:51:17+00:00)
Title: (#13898) Fail Face when option collides w/ setting

Change `Puppet::Interface::Option` to prohibit options on Faces that have
the same name as an existing Puppet setting.
Move functionality of `Puppet::Util::Setting::StringSetting.setbycli` to
`Puppet::Util::Settings` and deprecate usage of `StringSetting.setbycli`
because `StringSetting` provides metadata for the definition of setting,
whereas `Setting` contains both the value and the origin of the value,
whether `:cli`, `:memory`, `:application_defaults`, etc.
Change ca application and certificate Face to properly handle all
permutations of `--dns_alt_names` (Puppet setting) and `--dns-alt-names`
(Face option).
Remove "documentation only" options of `:modulepath` and `:environment` from
module Face.

Prior to this commit, Faces could declare options that collided with
existing Puppet settings, which has caused unexpected behavior for the
Face. This commit explicitly prohibits the Face from declaring an
option which is already a Puppet setting. This is a potentially
breaking change for externally developed Faces.