{"action":"created","issue":{"url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging/issues/2","repository_url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging","labels_url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging/issues/2/comments","events_url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging/issues/2/events","html_url":"https://github.com/hashbrowncipher/puppet-package_purging/pull/2","id":108557212,"number":2,"title":"PoC: holdable Puppet package provider","user":{"login":"hashbrowncipher","id":124699,"avatar_url":"https://avatars.githubusercontent.com/u/124699?v=3","gravatar_id":"","url":"https://api.github.com/users/hashbrowncipher","html_url":"https://github.com/hashbrowncipher","followers_url":"https://api.github.com/users/hashbrowncipher/followers","following_url":"https://api.github.com/users/hashbrowncipher/following{/other_user}","gists_url":"https://api.github.com/users/hashbrowncipher/gists{/gist_id}","starred_url":"https://api.github.com/users/hashbrowncipher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hashbrowncipher/subscriptions","organizations_url":"https://api.github.com/users/hashbrowncipher/orgs","repos_url":"https://api.github.com/users/hashbrowncipher/repos","events_url":"https://api.github.com/users/hashbrowncipher/events{/privacy}","received_events_url":"https://api.github.com/users/hashbrowncipher/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-27T19:55:47Z","updated_at":"2016-05-09T16:02:40Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging/pulls/2","html_url":"https://github.com/hashbrowncipher/puppet-package_purging/pull/2","diff_url":"https://github.com/hashbrowncipher/puppet-package_purging/pull/2.diff","patch_url":"https://github.com/hashbrowncipher/puppet-package_purging/pull/2.patch"},"body":"@kmosher, @solarkennedy: I wanted to draw your attention to this method.  It's not \"there\" yet, but it appears to work in initial testing.\r\n\r\nThe provider removes a single line from the default Puppet dpkg provider, causing it to not freak out when a package is in the held state.  The aptly_purge type then sets all packages to held.  The remainder of packages (the unheld ones) should be possible to safely dist-upgrade."},"comment":{"url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging/issues/comments/217908192","html_url":"https://github.com/hashbrowncipher/puppet-package_purging/pull/2#issuecomment-217908192","issue_url":"https://api.github.com/repos/hashbrowncipher/puppet-package_purging/issues/2","id":217908192,"user":{"login":"hashbrowncipher","id":124699,"avatar_url":"https://avatars.githubusercontent.com/u/124699?v=3","gravatar_id":"","url":"https://api.github.com/users/hashbrowncipher","html_url":"https://github.com/hashbrowncipher","followers_url":"https://api.github.com/users/hashbrowncipher/followers","following_url":"https://api.github.com/users/hashbrowncipher/following{/other_user}","gists_url":"https://api.github.com/users/hashbrowncipher/gists{/gist_id}","starred_url":"https://api.github.com/users/hashbrowncipher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hashbrowncipher/subscriptions","organizations_url":"https://api.github.com/users/hashbrowncipher/orgs","repos_url":"https://api.github.com/users/hashbrowncipher/repos","events_url":"https://api.github.com/users/hashbrowncipher/events{/privacy}","received_events_url":"https://api.github.com/users/hashbrowncipher/received_events","type":"User","site_admin":false},"created_at":"2016-05-09T16:02:40Z","updated_at":"2016-05-09T16:02:40Z","body":"```\r\n# You can't hold a package that isn't installed yet, so this should\r\n# really be done after all packages are installed.\r\n```\r\n\r\nI've tested this, and as far as I can tell, the only way we can fix this is by pairing each installable package resource with a hypothetical \"hold_package\" resource. Otherwise a new package will be installed unheld, and will wait for the next Puppet run to be held."}}