)]}'
{"README.md":[{"author":{"_account_id":9061,"name":"David Moreau Simard","email":"moi@dmsimard.com","username":"dmsimard"},"change_message_id":"b30261836394d591c02a010d6617224b6aeb13ce","unresolved":false,"context_lines":[{"line_number":243,"context_line":"class { \u0027swift::objectexpirer\u0027: }"},{"line_number":244,"context_line":"```"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"It is assumed that the object expirer service will usually be installed in a proxy node. On Red Hat-based distributions, if the class is included in a non-proxy node, the openstack-swift-proxy package will need to be installed."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"### Verifying installation"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":20,"id":"7a2fa921_b25f9040","line":246,"updated":"2015-10-06 20:05:15.000000000","message":"This comment seems weird to me. There is also an autorequire in swift_object_expirer_config.rb. Perhaps use an \"ensure_packages\" for swift-proxy in swift::objectexpirer ?","commit_id":"d8a8b70547c2ec9bec98db012dc330f78568628d"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"c097581cdf90d0f8016355163beda5f694ed39e8","unresolved":false,"context_lines":[{"line_number":243,"context_line":"class { \u0027swift::objectexpirer\u0027: }"},{"line_number":244,"context_line":"```"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"It is assumed that the object expirer service will usually be installed in a proxy node. On Red Hat-based distributions, if the class is included in a non-proxy node, the openstack-swift-proxy package will need to be installed."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"### Verifying installation"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":20,"id":"7a2fa921_18c19e2e","line":246,"in_reply_to":"7a2fa921_b25f9040","updated":"2015-10-07 15:44:42.000000000","message":"This dates back to patch sets 7 and 8. Basically, with RH-based distributions we want to cover two scenarios: object-expirer installed on a proxy node (where swift::proxy is included), and object-expirer installed on a separate node. \n\nWe cannot just create the package resource in objectexpirer.pp (long explanation in the above mentioned patch sets) because it can break one of the two scenarios. Since we assume that proxy and object-expirer will be co-located most of the time, we document the other case. Maybe I could just include here a minimum manifest that would work on that case? Something like:\n\npackage { \u0027openstack-swift-proxy\u0027:\n\tensure \u003d\u003e present,\n}\nclass { \u0027swift::objectexpirer\u0027: }","commit_id":"d8a8b70547c2ec9bec98db012dc330f78568628d"}],"lib/puppet/provider/swift_object_expirer_config/ini_setting.rb":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"0ba4827065756e75029285c41ec6a67a30c94ceb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Puppet::Type.type(:swift_object_expirer_config).provide("},{"line_number":2,"context_line":"  :ini_setting,"},{"line_number":3,"context_line":"  :parent \u003d\u003e Puppet::Type.type(:ini_setting).provider(:ruby)"},{"line_number":4,"context_line":") do"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"  def section"}],"source_content_type":"text/x-ruby","patch_set":12,"id":"da20952f_f97fc5dc","line":3,"updated":"2015-09-04 19:30:40.000000000","message":"Thanks to Yanis\u0027s work we\u0027ve moved these _config providers to use a different ini class as a parent, see example: http://git.openstack.org/cgit/openstack/puppet-swift/tree/lib/puppet/provider/swift_object_config/ini_setting.rb\n\nIf we use that model then the class should be able to leave these values unset so that the defaults will be used.","commit_id":"6f2e74890aae1f7336729c03af3040fee35130bc"}],"lib/puppet/type/swift_object_expirer_config.rb":[{"author":{"_account_id":11176,"name":"Adam Vinsh","email":"adam.vinsh@viasat.com","username":"vinsh"},"change_message_id":"990e88cf9de89562bde316ba4ee06edfc382887b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    newvalues(:true, :false)"},{"line_number":38,"context_line":"    defaultto false"},{"line_number":39,"context_line":"  end"},{"line_number":40,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"fa1b9901_29d5e71a","line":40,"updated":"2015-08-20 13:47:26.000000000","message":"This change recently merged \nhttps://review.openstack.org/#/c/211929/\n\nI believe to keep with the same idea you may want to add this here:\n\nautorequire(:package) do\n\u0027swift-object-expirer\u0027\nend","commit_id":"4b79f8515be2344e8e55b094d569cacb66965e3e"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"2e80992b8d85e4506af271b7f8b452f594e2a7ad","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    newvalues(:true, :false)"},{"line_number":38,"context_line":"    defaultto false"},{"line_number":39,"context_line":"  end"},{"line_number":40,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"fa1b9901_4b9ede63","line":40,"in_reply_to":"fa1b9901_29d5e71a","updated":"2015-08-21 09:26:57.000000000","message":"I\u0027m having trouble implementing this. Since we need to require different packages for Debian and Red Hat, I tried something like this:\n\n  if Facter[\u0027osfamily\u0027].value \u003d\u003d \u0027Debian\u0027\n    autorequire(:package) do\n      \u0027swift-object-expirer\u0027\n    end\n  elsif Facter[\u0027osfamily\u0027].value \u003d\u003d \u0027RedHat\u0027\n    autorequire(:package) do\n      \u0027openstack-swift-proxy\u0027\n    end\n  end\n\nIt works fine, however the rspec test for the type is giving me headache. I\u0027m using https://review.openstack.org/#/c/211929/3/spec/unit/type/swift_bench_config_spec.rb as an example to build the test.\n\nIt does not matter how I stub the osfamily fact, apparently the Puppet type is loaded only once, before the rspec tests are executed, so it will always autorequire one of the packages (RedHat or Debian one) for all tests.\n\nI\u0027ve only seen examples were facts are used in the provider definition tests, not in the type definition. Is there a way I could work around this?","commit_id":"4b79f8515be2344e8e55b094d569cacb66965e3e"}],"manifests/objectexpirer.pp":[{"author":{"_account_id":11176,"name":"Adam Vinsh","email":"adam.vinsh@viasat.com","username":"vinsh"},"change_message_id":"65b97cea20b44b7798ff096ae6affc052e5308ce","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  Swift_object_expirer_config\u003c||\u003e ~\u003e Service[\u0027swift-object-expirer\u0027]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  # On Red Hat platforms, it may be defined already,"},{"line_number":82,"context_line":"  # because it is part of openstack-swift-proxy"},{"line_number":83,"context_line":"  if !defined(Package[$::swift::params::object_expirer_package_name]) {"},{"line_number":84,"context_line":"    $pkgalias \u003d $::osfamily ? {"},{"line_number":85,"context_line":"                  \u0027RedHat\u0027 \u003d\u003e \u0027swift-proxy\u0027,"}],"source_content_type":"text/x-puppet","patch_set":7,"id":"fa1b9901_c93a9acd","line":82,"updated":"2015-08-24 14:35:33.000000000","message":"!defined is parse order dependent... can cause issues and is generally best avoided (what I always read and am understanding more)\n\nI discussed this part with Clayton O\u0027Neil, he mentioned that the other modules handle these sort of situations by checking to see \n\nif expirer_package_name is set at all or if it matches the name of the other package.\n\nSo for this:\nif ::swift::params::object_expirer_package_name !\u003d ::swift::params::proxy_server_package_name,\nthen package {object-expirer....\n\n\nThe proxy server is a requirement of the expirer. With the check for package name, you can avoid a re-declaration of the swift-proxy package on redhat.. and you can get the expirer package on debian.","commit_id":"776a22cf49eed908d139a4a1887640aaf5b9d6d3"},{"author":{"_account_id":11176,"name":"Adam Vinsh","email":"adam.vinsh@viasat.com","username":"vinsh"},"change_message_id":"f049195a89e991c3257b31699fd08cfade113b97","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  Swift_object_expirer_config\u003c||\u003e ~\u003e Service[\u0027swift-object-expirer\u0027]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  # On Red Hat platforms, it may be defined already,"},{"line_number":82,"context_line":"  # because it is part of openstack-swift-proxy"},{"line_number":83,"context_line":"  if !defined(Package[$::swift::params::object_expirer_package_name]) {"},{"line_number":84,"context_line":"    $pkgalias \u003d $::osfamily ? {"},{"line_number":85,"context_line":"                  \u0027RedHat\u0027 \u003d\u003e \u0027swift-proxy\u0027,"}],"source_content_type":"text/x-puppet","patch_set":7,"id":"fa1b9901_d75785c8","line":82,"in_reply_to":"fa1b9901_0e09702c","updated":"2015-08-24 19:40:11.000000000","message":"I would vote that the !defined code is removed for the method I suggest.  \nThen the readme is updated to make note that the proxy package needs to be included to run the expirer on a non proxy node with redhat.\n\nWe make the assumption that most cases run it on a proxy node. But provide an easy path for redhat users that want to run it elsewhere.  Meanwhile it will also just work on ubuntu by default.","commit_id":"776a22cf49eed908d139a4a1887640aaf5b9d6d3"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"8cfd381091c41f9ed77a71912544bc6874daf6f0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  Swift_object_expirer_config\u003c||\u003e ~\u003e Service[\u0027swift-object-expirer\u0027]"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  # On Red Hat platforms, it may be defined already,"},{"line_number":82,"context_line":"  # because it is part of openstack-swift-proxy"},{"line_number":83,"context_line":"  if !defined(Package[$::swift::params::object_expirer_package_name]) {"},{"line_number":84,"context_line":"    $pkgalias \u003d $::osfamily ? {"},{"line_number":85,"context_line":"                  \u0027RedHat\u0027 \u003d\u003e \u0027swift-proxy\u0027,"}],"source_content_type":"text/x-puppet","patch_set":7,"id":"fa1b9901_0e09702c","line":82,"in_reply_to":"fa1b9901_c93a9acd","updated":"2015-08-24 16:20:10.000000000","message":"I\u0027ve been scratching my head about this for a while. This would work for Debian and Red Hat systems, with one exception.\n\nIf I create a manifest with only \"class {\u0027::swift:objectexpirer\u0027:} because I want to set up an object expirer outside of a proxy, it would work on Debian, but not in Red Hat. The swift-proxy package would not be included, so the execution will end up failing. This was the use case I wanted to cover (and works in this patch set), although I wonder if it is worthy.","commit_id":"776a22cf49eed908d139a4a1887640aaf5b9d6d3"},{"author":{"_account_id":9500,"name":"Matt Fischer","email":"matt@mattfischer.com","username":"mfisch"},"change_message_id":"13a97df1491f8eed6d53d83a1e156817262c33e7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"#    (optional) Account name used for expiring objects."},{"line_number":30,"context_line":"#    Defaults to \u0027expiring_objects\u0027."},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"#  [*interval*]"},{"line_number":33,"context_line":"#    (optional) Minimum time for a pass to take."},{"line_number":34,"context_line":"#    Defaults to 300."},{"line_number":35,"context_line":"#"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"9a1a9d01_d76ac1ec","line":32,"updated":"2015-09-30 01:31:58.000000000","message":"units?","commit_id":"011b5529cf9f209bbd4c8112efd08dd829d2b0dd"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"e71a6973cbb79c69c85daaa054017b05105f7fdf","unresolved":false,"context_lines":[{"line_number":29,"context_line":"#    (optional) Account name used for expiring objects."},{"line_number":30,"context_line":"#    Defaults to \u0027expiring_objects\u0027."},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"#  [*interval*]"},{"line_number":33,"context_line":"#    (optional) Minimum time for a pass to take."},{"line_number":34,"context_line":"#    Defaults to 300."},{"line_number":35,"context_line":"#"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"9a1a9d01_c37afe87","line":32,"in_reply_to":"9a1a9d01_d76ac1ec","updated":"2015-09-30 08:08:41.000000000","message":"I see it\u0027s not mentioned in the documentation (http://docs.openstack.org/kilo/config-reference/content/object-expirer-configuration.html). From a quick look at the code, it is in seconds. Will fix it now.","commit_id":"011b5529cf9f209bbd4c8112efd08dd829d2b0dd"},{"author":{"_account_id":9500,"name":"Matt Fischer","email":"matt@mattfischer.com","username":"mfisch"},"change_message_id":"13a97df1491f8eed6d53d83a1e156817262c33e7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"#    Defaults to \u0027/var/cache/swift\u0027."},{"line_number":54,"context_line":"#"},{"line_number":55,"context_line":"#  [*report_interval*]"},{"line_number":56,"context_line":"#    (optional) Report interval"},{"line_number":57,"context_line":"#    Defaults to 300."},{"line_number":58,"context_line":"#"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":19,"id":"9a1a9d01_f76fc5f9","line":56,"updated":"2015-09-30 01:31:58.000000000","message":"units?","commit_id":"011b5529cf9f209bbd4c8112efd08dd829d2b0dd"},{"author":{"_account_id":9061,"name":"David Moreau Simard","email":"moi@dmsimard.com","username":"dmsimard"},"change_message_id":"b30261836394d591c02a010d6617224b6aeb13ce","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#    Defaults to 300."},{"line_number":58,"context_line":"#"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class swift::objectexpirer("},{"line_number":61,"context_line":"  $manage_service                \u003d true,"},{"line_number":62,"context_line":"  $enabled                       \u003d true,"},{"line_number":63,"context_line":"  $package_ensure                \u003d \u0027present\u0027,"}],"source_content_type":"text/x-puppet","patch_set":20,"id":"7a2fa921_52995c1e","line":60,"updated":"2015-10-06 20:05:15.000000000","message":"There are dashes or underscores (object-expirer, object_expirer) elsewhere, I\u0027d probably name this swift::object_expirer for consistency.","commit_id":"d8a8b70547c2ec9bec98db012dc330f78568628d"},{"author":{"_account_id":13294,"name":"Javier Peña","email":"jpena@redhat.com","username":"jpena"},"change_message_id":"c097581cdf90d0f8016355163beda5f694ed39e8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#    Defaults to 300."},{"line_number":58,"context_line":"#"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class swift::objectexpirer("},{"line_number":61,"context_line":"  $manage_service                \u003d true,"},{"line_number":62,"context_line":"  $enabled                       \u003d true,"},{"line_number":63,"context_line":"  $package_ensure                \u003d \u0027present\u0027,"}],"source_content_type":"text/x-puppet","patch_set":20,"id":"7a2fa921_3841faa9","line":60,"in_reply_to":"7a2fa921_52995c1e","updated":"2015-10-07 15:44:42.000000000","message":"In the same directory we have ringbuilder, ringserver and ringsync. I wanted to stay consistent with those.","commit_id":"d8a8b70547c2ec9bec98db012dc330f78568628d"}],"spec/classes/swift_objectexpirer_spec.rb":[{"author":{"_account_id":11176,"name":"Adam Vinsh","email":"adam.vinsh@viasat.com","username":"vinsh"},"change_message_id":"990e88cf9de89562bde316ba4ee06edfc382887b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            :service_name                \u003d\u003e \u0027openstack-swift-object-expirer\u0027,"},{"line_number":104,"context_line":"            :service_provider            \u003d\u003e nil }"},{"line_number":105,"context_line":"        end"},{"line_number":106,"context_line":"   "},{"line_number":107,"context_line":"    it_configures \u0027swift-object-expirer\u0027"},{"line_number":108,"context_line":"    context \u0027when overridding parameters\u0027 do"},{"line_number":109,"context_line":"      before do"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"fa1b9901_ae79fdc9","line":106,"updated":"2015-08-20 13:47:26.000000000","message":"white space","commit_id":"4b79f8515be2344e8e55b094d569cacb66965e3e"}],"spec/unit/type/swift_object_expirer_config_spec.rb":[{"author":{"_account_id":11176,"name":"Adam Vinsh","email":"adam.vinsh@viasat.com","username":"vinsh"},"change_message_id":"f036b63aed7ac7956020d2f9f37811cc3e205840","unresolved":false,"context_lines":[{"line_number":21,"context_line":"      expect(dependency[0].target).to eq(@swift_object_expirer_config)"},{"line_number":22,"context_line":"      expect(dependency[0].source).to eq(package)"},{"line_number":23,"context_line":"    end"},{"line_number":24,"context_line":"  end"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"  context \u0027on Debian platforms\u0027 do"},{"line_number":27,"context_line":"    let :platform_params do"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"fa1b9901_8fb0b044","line":24,"updated":"2015-08-26 13:43:27.000000000","message":"Nothing wrong here, just wanted to comment that this is really helpful to see the spec done this way.  I learned alot!","commit_id":"6a0947cc07c69dcb9dc846efaa811b1d9029de90"}]}
