)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"58715592a4828003d5c313592f308f7aadeb08ab","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Not restart neutron-server on compute node"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds an attribute to define the name of neutron"},{"line_number":10,"context_line":"server role. When the neutron server role is not included in"},{"line_number":11,"context_line":"current node, stop neutron-server from restarting even when"},{"line_number":12,"context_line":"neutron configuration file is changed."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_bf30239f","line":10,"updated":"2015-01-14 14:16:16.000000000","message":"Would be good to clarify that the os-network-server role is part of the roles provided by in the openstack-chef-repo.","commit_id":"949b839280871fdd33250b08e4de168016cebe7a"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"86da8783746270099ee94883bfa3d4ebc5609f62","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Not restart neutron-server on compute node"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds an attribute to define the name of neutron"},{"line_number":10,"context_line":"server role. When the neutron server role is not included in"},{"line_number":11,"context_line":"current node, stop neutron-server from restarting even when"},{"line_number":12,"context_line":"neutron configuration file is changed."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_6008be91","line":10,"in_reply_to":"3a961159_bf30239f","updated":"2015-01-19 02:48:10.000000000","message":"Done","commit_id":"949b839280871fdd33250b08e4de168016cebe7a"}],"CHANGELOG.md":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"0ef8a19fc0637069807da1d2b7a57897e3c327b6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* Fix user_group configuration in lbaas_agent.ini.erb"},{"line_number":29,"context_line":"* Added logic for Centos 6.5 to install newer version of dnsmasq"},{"line_number":30,"context_line":"* Handle nil and empty string for cafile"},{"line_number":31,"context_line":"* Not restart neutron-server on compute node"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"## 10.0.1"},{"line_number":34,"context_line":"* Add tunnel_types item in ovs_neutron_plugin.ini.erb"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1a6ced46_509301fa","line":31,"updated":"2015-03-23 17:07:46.000000000","message":"Please rebase, Changelog has been removed in master/kilo branches.","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"f5f16dfc60ad6ea95c8d1dc12a1e80fe49a372a2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* Fix user_group configuration in lbaas_agent.ini.erb"},{"line_number":29,"context_line":"* Added logic for Centos 6.5 to install newer version of dnsmasq"},{"line_number":30,"context_line":"* Handle nil and empty string for cafile"},{"line_number":31,"context_line":"* Not restart neutron-server on compute node"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"## 10.0.1"},{"line_number":34,"context_line":"* Add tunnel_types item in ovs_neutron_plugin.ini.erb"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"1a6ced46_4c45016f","line":31,"in_reply_to":"1a6ced46_509301fa","updated":"2015-03-24 14:28:30.000000000","message":"Done","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"}],"libraries/utils.rb":[{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"76d21f06557a22092d87dcc6f7601dfe086a6b52","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  end"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"  def role_included?(role)"},{"line_number":15,"context_line":"    if node[\u0027roles\u0027].include?(role)"},{"line_number":16,"context_line":"      return true"},{"line_number":17,"context_line":"    else"},{"line_number":18,"context_line":"      return false"}],"source_content_type":"text/x-ruby","patch_set":12,"id":"1a6ced46_5d6912bd","line":15,"updated":"2015-03-25 01:35:35.000000000","message":"return node[\u0027roles\u0027].include?(role)","commit_id":"d279b4a9e5689360fe63b588438b536e39967834"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"ba2e44543f10a21fa896f646341af1fdc6152bbc","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  end"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"  def role_included?(role)"},{"line_number":15,"context_line":"    if node[\u0027roles\u0027].include?(role)"},{"line_number":16,"context_line":"      return true"},{"line_number":17,"context_line":"    else"},{"line_number":18,"context_line":"      return false"}],"source_content_type":"text/x-ruby","patch_set":12,"id":"fa963961_062be131","line":15,"in_reply_to":"1a6ced46_5d6912bd","updated":"2015-03-27 02:59:20.000000000","message":"Done. Thx :)","commit_id":"d279b4a9e5689360fe63b588438b536e39967834"}],"recipes/default.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"58715592a4828003d5c313592f308f7aadeb08ab","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    nova_admin_pass: nova_admin_pass"},{"line_number":208,"context_line":"  )"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"  if search(:role, \"name:#{neutron_server_role}\").length \u003e 0"},{"line_number":211,"context_line":"    notifies :restart, \u0027service[neutron-server]\u0027, :delayed"},{"line_number":212,"context_line":"  end"},{"line_number":213,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3a961159_ffb46bf2","line":210,"updated":"2015-01-14 14:16:16.000000000","message":"Maybe some DRY here, pull out the search so it only happens once?","commit_id":"949b839280871fdd33250b08e4de168016cebe7a"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"86da8783746270099ee94883bfa3d4ebc5609f62","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    nova_admin_pass: nova_admin_pass"},{"line_number":208,"context_line":"  )"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"  if search(:role, \"name:#{neutron_server_role}\").length \u003e 0"},{"line_number":211,"context_line":"    notifies :restart, \u0027service[neutron-server]\u0027, :delayed"},{"line_number":212,"context_line":"  end"},{"line_number":213,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3a961159_e0c58e3d","line":210,"in_reply_to":"3a961159_ffb46bf2","updated":"2015-01-19 02:48:10.000000000","message":"Done","commit_id":"949b839280871fdd33250b08e4de168016cebe7a"},{"author":{"_account_id":8112,"name":"Ma Wen Cheng","email":"wenchma@cn.ibm.com","username":"wenchma"},"change_message_id":"37d1b098fc04d961106b1eac1bd38f3093dbd28a","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  )"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"  if role_match"},{"line_number":212,"context_line":"    notifies :restart, \u0027service[neutron-server]\u0027, :delayed"},{"line_number":213,"context_line":"  end"},{"line_number":214,"context_line":"end"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a961159_14f2b16e","line":212,"updated":"2015-01-16 05:36:50.000000000","message":"can change the three lines to avoid multi lines:\n\nnotifies :restart, \u0027service[neutron-server]\u0027, :delayed if role_match \n\nor\n\nrole_match \u0026\u0026 notifies :restart, \u0027service[neutron-server]\u0027, :delayed","commit_id":"d2f415f92894c65badc035516d44b6e90b588653"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"ac616c3d8ebe6df5f854b6ddfcfafbc519f02021","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  )"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"  if role_match"},{"line_number":212,"context_line":"    notifies :restart, \u0027service[neutron-server]\u0027, :delayed"},{"line_number":213,"context_line":"  end"},{"line_number":214,"context_line":"end"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a961159_67d95b55","line":212,"in_reply_to":"3a961159_14f2b16e","updated":"2015-01-19 02:47:34.000000000","message":"Done","commit_id":"d2f415f92894c65badc035516d44b6e90b588653"},{"author":{"_account_id":11915,"name":"Jan Klare","email":"klare@osism.tech","username":"jklare"},"change_message_id":"332489a103f3944ffeac8a590234d6e47c2e5498","unresolved":false,"context_lines":[{"line_number":187,"context_line":"end"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"neutron_server_role \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027neutron_server_chef_role\u0027]"},{"line_number":190,"context_line":"role_match \u003d search(:role, \"name:#{neutron_server_role}\").length \u003e 0"},{"line_number":191,"context_line":"template \u0027/etc/neutron/neutron.conf\u0027 do"},{"line_number":192,"context_line":"  source \u0027neutron.conf.erb\u0027"},{"line_number":193,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a961159_0dedfff0","line":190,"updated":"2015-01-19 20:58:59.000000000","message":"as far as i can tell this wont work at all, because this will always return true if this role is defined (does not even have to be included in any runlist in the whole setup)\n\nmaybe you want to check for:\n\nnode.roles.include? neutron_server_role","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"f5f16dfc60ad6ea95c8d1dc12a1e80fe49a372a2","unresolved":false,"context_lines":[{"line_number":187,"context_line":"end"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"neutron_server_role \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027neutron_server_chef_role\u0027]"},{"line_number":190,"context_line":"role_match \u003d search(:role, \"name:#{neutron_server_role}\").length \u003e 0"},{"line_number":191,"context_line":"template \u0027/etc/neutron/neutron.conf\u0027 do"},{"line_number":192,"context_line":"  source \u0027neutron.conf.erb\u0027"},{"line_number":193,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"1a6ced46_2c67e526","line":190,"in_reply_to":"1a6ced46_64e75f41","updated":"2015-03-24 14:28:30.000000000","message":"Done","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"f5f16dfc60ad6ea95c8d1dc12a1e80fe49a372a2","unresolved":false,"context_lines":[{"line_number":187,"context_line":"end"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"neutron_server_role \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027neutron_server_chef_role\u0027]"},{"line_number":190,"context_line":"role_match \u003d search(:role, \"name:#{neutron_server_role}\").length \u003e 0"},{"line_number":191,"context_line":"template \u0027/etc/neutron/neutron.conf\u0027 do"},{"line_number":192,"context_line":"  source \u0027neutron.conf.erb\u0027"},{"line_number":193,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"1a6ced46_ccaad118","line":190,"in_reply_to":"3a961159_0dedfff0","updated":"2015-03-24 14:28:30.000000000","message":"Done","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"b736b3b4828ce88e19cebf50bd135f587048853f","unresolved":false,"context_lines":[{"line_number":187,"context_line":"end"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"neutron_server_role \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027neutron_server_chef_role\u0027]"},{"line_number":190,"context_line":"role_match \u003d search(:role, \"name:#{neutron_server_role}\").length \u003e 0"},{"line_number":191,"context_line":"template \u0027/etc/neutron/neutron.conf\u0027 do"},{"line_number":192,"context_line":"  source \u0027neutron.conf.erb\u0027"},{"line_number":193,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9a80dd14_56e4750c","line":190,"in_reply_to":"3a961159_0dedfff0","updated":"2015-03-19 14:52:03.000000000","message":"Hi, Jan. I use node[\u0027recipes\u0027].include?(\u0027openstack-network::server\u0027) instead of checking roles, I consider it can work. :)","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"0ef8a19fc0637069807da1d2b7a57897e3c327b6","unresolved":false,"context_lines":[{"line_number":187,"context_line":"end"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"neutron_server_role \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027neutron_server_chef_role\u0027]"},{"line_number":190,"context_line":"role_match \u003d search(:role, \"name:#{neutron_server_role}\").length \u003e 0"},{"line_number":191,"context_line":"template \u0027/etc/neutron/neutron.conf\u0027 do"},{"line_number":192,"context_line":"  source \u0027neutron.conf.erb\u0027"},{"line_number":193,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"1a6ced46_64e75f41","line":190,"in_reply_to":"9a80dd14_56e4750c","updated":"2015-03-23 17:07:46.000000000","message":"I agree with Jan, should be using something like node.roles.include?   This will check the auto-expanded role list.","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"12f7731c5e452b914eb23dd44cb89d1247def7db","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    nova_admin_pass: nova_admin_pass"},{"line_number":209,"context_line":"  )"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"  notifies :restart, \u0027service[neutron-server]\u0027, :delayed if role_match"},{"line_number":212,"context_line":"end"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"template \u0027/etc/neutron/api-paste.ini\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a961159_e5751898","line":211,"updated":"2015-01-20 10:50:12.000000000","message":"Should use subscribe in service[neutron-server] instead of notifies here.","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"6431d860fe9a21f8823bfe093fd7022ce442b656","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    nova_admin_pass: nova_admin_pass"},{"line_number":209,"context_line":"  )"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"  notifies :restart, \u0027service[neutron-server]\u0027, :delayed if role_match"},{"line_number":212,"context_line":"end"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"template \u0027/etc/neutron/api-paste.ini\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"1a6ced46_319b03cb","line":211,"in_reply_to":"3a961159_e5751898","updated":"2015-03-23 06:18:52.000000000","message":"Hi, ZhiWei. I tested your suggestion, and something strange happened.\nIn a single run, or we can say when this recipe is invoked on the first time, the logic can work and if current node is a compute node, neutron-server will not restart.\nBut on the second time the recipe is invoked, chef seems skip doing our logic checking here, and directly restart neutron-server.\n\nLater I tested Xu Han\u0027s style, both on the first and second time this recipe is invoked, our logic here will get processed and neutron-server will not restart.\n\nSo, I consider that keep Xu Han\u0027s style is good enough.","commit_id":"e1e8ebb684ec73c3b0ff4473655fcfb68a824b2e"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"76d21f06557a22092d87dcc6f7601dfe086a6b52","unresolved":false,"context_lines":[{"line_number":43,"context_line":"core_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin\u0027]"},{"line_number":44,"context_line":"main_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin_map\u0027][core_plugin.split(\u0027.\u0027).last.downcase]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"role_match \u003d role_included? \u0027os-network-server\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"if node[\u0027openstack\u0027][\u0027network\u0027][\u0027syslog\u0027][\u0027use\u0027]"},{"line_number":49,"context_line":"  include_recipe \u0027openstack-common::logging\u0027"}],"source_content_type":"text/x-ruby","patch_set":12,"id":"1a6ced46_3daa96d4","line":46,"updated":"2015-03-25 01:35:35.000000000","message":"or maybe only use `node[\u0027role\u0027].include?(os-network-server)`","commit_id":"d279b4a9e5689360fe63b588438b536e39967834"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"4402b982bb9bfd6d9c6ee463abc1abf059068e63","unresolved":false,"context_lines":[{"line_number":43,"context_line":"core_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin\u0027]"},{"line_number":44,"context_line":"main_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin_map\u0027][core_plugin.split(\u0027.\u0027).last.downcase]"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"role_match \u003d role_included? \u0027os-network-server\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"if node[\u0027openstack\u0027][\u0027network\u0027][\u0027syslog\u0027][\u0027use\u0027]"},{"line_number":49,"context_line":"  include_recipe \u0027openstack-common::logging\u0027"}],"source_content_type":"text/x-ruby","patch_set":12,"id":"1a6ced46_24b522cd","line":46,"in_reply_to":"1a6ced46_3daa96d4","updated":"2015-03-25 02:46:49.000000000","message":"Yes, only use node[\u0027roles\u0027].include?(\u0027os-network-server\u0027) can work, but if we do it like that, it will be difficult to write UT. Currently I have no better idea about how to mock node[\u0027xx\u0027].include?(\u0027yy\u0027) return true or false.","commit_id":"d279b4a9e5689360fe63b588438b536e39967834"}]}
