)]}'
{"attributes/default.rb":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1209275e4d84b3da1da3222f2547293a31252478","unresolved":false,"context_lines":[{"line_number":296,"context_line":"  }"},{"line_number":297,"context_line":"when \u0027debian\u0027"},{"line_number":298,"context_line":"  default[\u0027openstack\u0027][\u0027common\u0027][\u0027platform\u0027] \u003d {"},{"line_number":299,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \"-o Dpkg::Options::\u003d\u0027--force-confold\u0027 -o Dpkg::Options::\u003d\u0027--force-confdef\u0027\","},{"line_number":300,"context_line":"  }"},{"line_number":301,"context_line":"end"},{"line_number":302,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"9f91af0f_5c597e8b","side":"PARENT","line":299,"updated":"2018-01-09 15:53:24.000000000","message":"It looks like this is still needed in some places, see the error in the openstack-network cookbook patch.","commit_id":"ea0365d79ae7069ffadd196ecdbb979066fac52a"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"32e4e0793681b4e36c45eb8724ef2742b75427da","unresolved":false,"context_lines":[{"line_number":296,"context_line":"  }"},{"line_number":297,"context_line":"when \u0027debian\u0027"},{"line_number":298,"context_line":"  default[\u0027openstack\u0027][\u0027common\u0027][\u0027platform\u0027] \u003d {"},{"line_number":299,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \"-o Dpkg::Options::\u003d\u0027--force-confold\u0027 -o Dpkg::Options::\u003d\u0027--force-confdef\u0027\","},{"line_number":300,"context_line":"  }"},{"line_number":301,"context_line":"end"},{"line_number":302,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"7f96bb07_d2d68650","side":"PARENT","line":299,"in_reply_to":"9f91af0f_5c597e8b","updated":"2018-01-11 06:50:55.000000000","message":"Done","commit_id":"ea0365d79ae7069ffadd196ecdbb979066fac52a"},{"author":{"_account_id":11915,"name":"Jan Klare","email":"klare@osism.tech","username":"jklare"},"change_message_id":"377b64611a4cb9be6424d930abcbea3e4f7f8c6c","unresolved":false,"context_lines":[{"line_number":298,"context_line":"when \u0027debian\u0027"},{"line_number":299,"context_line":"  default[\u0027openstack\u0027][\u0027common\u0027][\u0027platform\u0027] \u003d {"},{"line_number":300,"context_line":"    \u0027common_client_packages\u0027 \u003d\u003e [\u0027python-openstackclient\u0027],"},{"line_number":301,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \u0027\u0027,"},{"line_number":302,"context_line":"  }"},{"line_number":303,"context_line":"end"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":20,"id":"7f96bb07_54c8d020","line":301,"updated":"2018-01-15 11:00:17.000000000","message":"As far as i can see the attribute default[\u0027openstack\u0027][\u0027common\u0027][\u0027platform\u0027]... is never used. To refactor and centralise the cookbook specific attribute, one would have to remove or truncate the original attribute (like default[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027]... or default[\u0027openstack\u0027][\u0027compute\u0027][\u0027platform\u0027]...) from all attribute files and recipes in all cookbooks and replace it with the [\u0027common\u0027] one. IMO this should be done with a blueprint if needed, but to be hones i am not in favour of centralising this one since it will remove the ability to change the specific package_overrides for one cookbook (meaning one could also go ahead and just hardcode this part IMO).","commit_id":"b2881c3a808a263a152f7fe33983a6b98e9ebe99"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"1269ee1953fd3531c1bed29fac20cd543e4b4068","unresolved":false,"context_lines":[{"line_number":298,"context_line":"when \u0027debian\u0027"},{"line_number":299,"context_line":"  default[\u0027openstack\u0027][\u0027common\u0027][\u0027platform\u0027] \u003d {"},{"line_number":300,"context_line":"    \u0027common_client_packages\u0027 \u003d\u003e [\u0027python-openstackclient\u0027],"},{"line_number":301,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \u0027\u0027,"},{"line_number":302,"context_line":"  }"},{"line_number":303,"context_line":"end"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":20,"id":"7f96bb07_705ab14f","line":301,"in_reply_to":"7f96bb07_54c8d020","updated":"2018-01-15 15:20:34.000000000","message":"that brings about the larger question of if this block should stay, or go to the bitbucket. arguably, if nothing is using it, then it\u0027s cruft, and should probably go away. the replacement for package_overrides on a global scale would be in this very review[0], where it does not matter if Chef is running or not when running apt, that the same outcome exists no matter how apt is called.\n\nthe service cookbooks can keep their blanked package_overrides for downstreams to override, if needed, and we can expose that higher in test kitchen. in implementation, one could also wrap openstack-common::default with chef-rewind, or outright modify their fork, to achieve the same outcome without juggling double versus single quotes in package_overrides between ruby versions. over the years, this has popped up in esoteric github issues[1][2] resulting in workarounds or further code upstream. that sort of feedback never made it back to openstack-chef\u0027s lp, despite the cookbooks\u0027 widespread use of these CLI options.\n\n[0] https://review.openstack.org/#/c/523030/20/recipes/default.rb\n[1] https://github.com/chef/chef/issues/5836\n[2] https://github.com/chef-cookbooks/docker/issues/595","commit_id":"b2881c3a808a263a152f7fe33983a6b98e9ebe99"}],"libraries/hashed_password.rb":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1fb37c0ccdfb58e32d585d6acc4ec44deb46abb6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Author:: Maksim Horbul (\u003cmax@gorbul.net\u003e)"},{"line_number":3,"context_line":"# Cookbook:: database"},{"line_number":4,"context_line":"# Library:: hashed_password"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Copyright:: 2016, Eligible, Inc."}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_cc608e04","line":3,"updated":"2017-12-08 11:53:22.000000000","message":"Maybe add a note that this file is copied from there?","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"a6e2e4987d151a210f9ac24c9e60cba29a4def57","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Author:: Maksim Horbul (\u003cmax@gorbul.net\u003e)"},{"line_number":3,"context_line":"# Cookbook:: database"},{"line_number":4,"context_line":"# Library:: hashed_password"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Copyright:: 2016, Eligible, Inc."}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_2ca1e3f8","line":3,"in_reply_to":"df87a7cf_cc608e04","updated":"2017-12-10 04:53:20.000000000","message":"Done","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"}],"recipes/default.rb":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1fb37c0ccdfb58e32d585d6acc4ec44deb46abb6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"platform_options \u003d node[\u0027openstack\u0027][\u0027common\u0027][\u0027platform\u0027]"},{"line_number":22,"context_line":"case node[\u0027platform_family\u0027]"},{"line_number":23,"context_line":"when \u0027debian\u0027"},{"line_number":24,"context_line":"  # update the apt cache before installing anything"},{"line_number":25,"context_line":"  apt_update \u0027default\u0027 do"},{"line_number":26,"context_line":"    action :update"},{"line_number":27,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_4c1b1e80","line":24,"updated":"2017-12-08 11:53:22.000000000","message":"I\u0027m not sure that this is a good idea to enforce this unconditionally, maybe at least keep the option to disable via the node variable above?","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"a6e2e4987d151a210f9ac24c9e60cba29a4def57","unresolved":false,"context_lines":[{"line_number":21,"context_line":"platform_options \u003d node[\u0027openstack\u0027][\u0027common\u0027][\u0027platform\u0027]"},{"line_number":22,"context_line":"case node[\u0027platform_family\u0027]"},{"line_number":23,"context_line":"when \u0027debian\u0027"},{"line_number":24,"context_line":"  # update the apt cache before installing anything"},{"line_number":25,"context_line":"  apt_update \u0027default\u0027 do"},{"line_number":26,"context_line":"    action :update"},{"line_number":27,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_ec29bb36","line":24,"in_reply_to":"df87a7cf_4c1b1e80","updated":"2017-12-10 04:53:20.000000000","message":"Done. I removed one too many lines here.","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1fb37c0ccdfb58e32d585d6acc4ec44deb46abb6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"      cache_rebuild true # update the cache after a new repo is added"},{"line_number":56,"context_line":"    end"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    package \u0027thin-provisioning-tools\u0027 do"},{"line_number":59,"context_line":"      action :upgrade"},{"line_number":60,"context_line":"    end"},{"line_number":61,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_cf13a05b","line":58,"updated":"2017-12-08 11:53:22.000000000","message":"Why do you want to install this unconditionally? Seems this is only needed for iscsi or LVM?","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"a6e2e4987d151a210f9ac24c9e60cba29a4def57","unresolved":false,"context_lines":[{"line_number":55,"context_line":"      cache_rebuild true # update the cache after a new repo is added"},{"line_number":56,"context_line":"    end"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    package \u0027thin-provisioning-tools\u0027 do"},{"line_number":59,"context_line":"      action :upgrade"},{"line_number":60,"context_line":"    end"},{"line_number":61,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_2c3d638e","line":58,"in_reply_to":"df87a7cf_cf13a05b","updated":"2017-12-10 04:53:20.000000000","message":"Done. I threw that in the default recipe in my tests and didn\u0027t move it to block-storage where it should have gone.","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1fb37c0ccdfb58e32d585d6acc4ec44deb46abb6","unresolved":false,"context_lines":[{"line_number":99,"context_line":"end"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# include the memcached recipe to provide a basic memcached instance"},{"line_number":102,"context_line":"include_recipe \u0027memcached::default\u0027"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"if node[\u0027openstack\u0027][\u0027databag_type\u0027] \u003d\u003d \u0027vault\u0027"},{"line_number":105,"context_line":"  chef_gem \u0027chef-vault\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_af165c48","line":102,"updated":"2017-12-08 11:53:22.000000000","message":"I don\u0027t think that this should be installed anywhere, might belong to the controller role instead.","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"a6e2e4987d151a210f9ac24c9e60cba29a4def57","unresolved":false,"context_lines":[{"line_number":99,"context_line":"end"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"# include the memcached recipe to provide a basic memcached instance"},{"line_number":102,"context_line":"include_recipe \u0027memcached::default\u0027"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"if node[\u0027openstack\u0027][\u0027databag_type\u0027] \u003d\u003d \u0027vault\u0027"},{"line_number":105,"context_line":"  chef_gem \u0027chef-vault\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_6cfccbb4","line":102,"in_reply_to":"df87a7cf_af165c48","updated":"2017-12-10 04:53:20.000000000","message":"Done","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"}],"spec/cli_spec.rb":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1fb37c0ccdfb58e32d585d6acc4ec44deb46abb6","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"      it \u0027runs glance command to query invalid id\u0027 do"},{"line_number":147,"context_line":"        allow(subject).to receive(:openstack_command).with(\u0027openstack\u0027, \u0027image list\u0027, :env, {})"},{"line_number":148,"context_line":"                                                     .and_raise(\"No image with a name or ID of \u0027test\u0027 exists. (1)\")"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        expect { subject.image_id(\u0027test\u0027, :env) }.to raise_error(RuntimeError)"},{"line_number":151,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_8796e6ef","line":148,"updated":"2017-12-08 11:53:22.000000000","message":"This doesn\u0027t look too nice IMO, making the line too long.\n\nCan we split the previous line at the \".with\" instead?","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"a6e2e4987d151a210f9ac24c9e60cba29a4def57","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"      it \u0027runs glance command to query invalid id\u0027 do"},{"line_number":147,"context_line":"        allow(subject).to receive(:openstack_command).with(\u0027openstack\u0027, \u0027image list\u0027, :env, {})"},{"line_number":148,"context_line":"                                                     .and_raise(\"No image with a name or ID of \u0027test\u0027 exists. (1)\")"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        expect { subject.image_id(\u0027test\u0027, :env) }.to raise_error(RuntimeError)"},{"line_number":151,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_bd743fd0","line":148,"in_reply_to":"df87a7cf_8796e6ef","updated":"2017-12-10 04:53:20.000000000","message":"Done","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"}],"spec/password_spec.rb":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1fb37c0ccdfb58e32d585d6acc4ec44deb46abb6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        end"},{"line_number":29,"context_line":"        it \u0027returns the data from a chef vault item\u0027 do"},{"line_number":30,"context_line":"          allow(ChefVault::Item).to receive(:load).with(\u0027vault_passwords\u0027, \u0027nova\u0027)"},{"line_number":31,"context_line":"                                                  .and_return(\u0027nova\u0027 \u003d\u003e \u0027novapassword\u0027)"},{"line_number":32,"context_line":"          expect(subject.secret(\u0027passwords\u0027, \u0027nova\u0027)).to eq(\u0027novapassword\u0027)"},{"line_number":33,"context_line":"        end"},{"line_number":34,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_0f1f485b","line":31,"updated":"2017-12-08 11:53:22.000000000","message":"dito","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"},{"author":{"_account_id":14790,"name":"Samuel Cassiba","email":"samuel@cassi.ba","username":"scassiba"},"change_message_id":"a6e2e4987d151a210f9ac24c9e60cba29a4def57","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        end"},{"line_number":29,"context_line":"        it \u0027returns the data from a chef vault item\u0027 do"},{"line_number":30,"context_line":"          allow(ChefVault::Item).to receive(:load).with(\u0027vault_passwords\u0027, \u0027nova\u0027)"},{"line_number":31,"context_line":"                                                  .and_return(\u0027nova\u0027 \u003d\u003e \u0027novapassword\u0027)"},{"line_number":32,"context_line":"          expect(subject.secret(\u0027passwords\u0027, \u0027nova\u0027)).to eq(\u0027novapassword\u0027)"},{"line_number":33,"context_line":"        end"},{"line_number":34,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"df87a7cf_5d7f33aa","line":31,"in_reply_to":"df87a7cf_0f1f485b","updated":"2017-12-10 04:53:20.000000000","message":"Done","commit_id":"aa550873686bd1499eab072f6ad8832ad39ac03c"}]}
