|
The Puppet command line tools will accept partial matches for flags, but do not use the values provided. This causes unexpected behavior when a command accepts a flag or type but doesn't actually act upon it.
Reproduction Case
Install Puppet 3.7.x or 4.0.x.
Execute config print commands with flags that affect settings, such as puppet agent -
no-daemonize --configprint daemonize with various truncations of the
-no-daemonize flag.
Outcome
Partial matches are accepted, but don't alter the setting value:
puppet agent --no-daemon --configprint daemonize
|
true
|
|
puppet agent --no-daemoniz --configprint daemonize
|
true
|
|
# Correct behavior when flag is fully specified.
|
puppet agent --no-daemonize --configprint daemonize
|
false
|
Expected Outcome
The Puppet command line interface should treat partial flags the same way as missing flags and throw an 'invalid option' error:
puppet agent --no-daemon
|
Error: Could not parse application options: invalid option: --no-daemon
|
|