{"action":"created","issue":{"url":"https://api.github.com/repos/puppetlabs/puppet/issues/4449","labels_url":"https://api.github.com/repos/puppetlabs/puppet/issues/4449/labels{/name}","comments_url":"https://api.github.com/repos/puppetlabs/puppet/issues/4449/comments","events_url":"https://api.github.com/repos/puppetlabs/puppet/issues/4449/events","html_url":"https://github.com/puppetlabs/puppet/pull/4449","id":116974986,"number":4449,"title":"(PE-12534) Fix yumrepo param specifying false fail","user":{"login":"reidmv","id":100142,"avatar_url":"https://avatars.githubusercontent.com/u/100142?v=3","gravatar_id":"","url":"https://api.github.com/users/reidmv","html_url":"https://github.com/reidmv","followers_url":"https://api.github.com/users/reidmv/followers","following_url":"https://api.github.com/users/reidmv/following{/other_user}","gists_url":"https://api.github.com/users/reidmv/gists{/gist_id}","starred_url":"https://api.github.com/users/reidmv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reidmv/subscriptions","organizations_url":"https://api.github.com/users/reidmv/orgs","repos_url":"https://api.github.com/users/reidmv/repos","events_url":"https://api.github.com/users/reidmv/events{/privacy}","received_events_url":"https://api.github.com/users/reidmv/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-11-15T05:52:27Z","updated_at":"2015-11-15T06:00:33Z","closed_at":"2015-11-15T06:00:33Z","pull_request":{"url":"https://api.github.com/repos/puppetlabs/puppet/pulls/4449","html_url":"https://github.com/puppetlabs/puppet/pull/4449","diff_url":"https://github.com/puppetlabs/puppet/pull/4449.diff","patch_url":"https://github.com/puppetlabs/puppet/pull/4449.patch"},"body":"Previously, there was no munge logic for YUM_BOOLEAN parameters of the yumrepo type. Boolean false is a valid value for these parameters. Due to the way Puppet::Parameter::Value default validation methods work however, if a parameter's @should value is represented as Boolean false it will effectively always be considered insync - which is wrong, in the case of how yumrepo parameters work.\r\n\r\nThis commit adds common munging logic to each parameter that accepts YUM_BOOLEAN values, converting Boolean false to string false to ensure the default validation routines work correctly and property insync is correctly detected.\r\n\r\nWhile working on this problem, another issue became apparent, which is that in Puppet 4 \"absent\" passed to YUM_BOOLEAN parameters comes back as a string. However, the provider only knows to remove the relevant line from the config file if absent is a symbol. Therefore, the munge method also converts string absent to symbol absent."},"comment":{"url":"https://api.github.com/repos/puppetlabs/puppet/issues/comments/156784692","html_url":"https://github.com/puppetlabs/puppet/pull/4449#issuecomment-156784692","issue_url":"https://api.github.com/repos/puppetlabs/puppet/issues/4449","id":156784692,"user":{"login":"reidmv","id":100142,"avatar_url":"https://avatars.githubusercontent.com/u/100142?v=3","gravatar_id":"","url":"https://api.github.com/users/reidmv","html_url":"https://github.com/reidmv","followers_url":"https://api.github.com/users/reidmv/followers","following_url":"https://api.github.com/users/reidmv/following{/other_user}","gists_url":"https://api.github.com/users/reidmv/gists{/gist_id}","starred_url":"https://api.github.com/users/reidmv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reidmv/subscriptions","organizations_url":"https://api.github.com/users/reidmv/orgs","repos_url":"https://api.github.com/users/reidmv/repos","events_url":"https://api.github.com/users/reidmv/events{/privacy}","received_events_url":"https://api.github.com/users/reidmv/received_events","type":"User","site_admin":false},"created_at":"2015-11-15T06:00:33Z","updated_at":"2015-11-15T06:00:33Z","body":"Investigating the CI's request for a PUP ticket (not a PE) I found the discussion in PUP-3528, which suggests the desired fix for this is not to deal correctly with false, but to reject false (the correct specification being instead False). Closing the PR for now to adjust."}}