)]}'
{"CHANGELOG.md":[{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"b6a2a7187478e58b19b6e1faed51e45d9caf4d0b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# CHANGELOG for cookbook-openstack-network"},{"line_number":2,"context_line":"This file is used to list changes made in each version of cookbook-openstack-network."},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"## 10.1.1"},{"line_number":5,"context_line":"* Add support for Neutron VPN Service"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"## 10.0.1"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"fa98f980_03cbe71e","line":4,"updated":"2014-09-18 01:38:27.000000000","message":"10.1.0","commit_id":"b644f0e62c65aa8b32d06a7a2022da08d7af40c7"}],"attributes/default.rb":[{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"f0bbf96b18e594d37a8514e1b2f07f37d4a87310","unresolved":false,"context_lines":[{"line_number":177,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027allow_overlapping_ips\u0027] \u003d \u0027False\u0027"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# vpn agent configuration, default is false"},{"line_number":180,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d \u0027False\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"# use neutron root wrap"},{"line_number":183,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027use_rootwrap\u0027] \u003d true"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_84363d4f","line":180,"updated":"2014-09-16 06:12:48.000000000","message":"I did not see you use it in template, just saw it in if/unless condition, so you\u0027d better change it to boolean.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8c17501b80a825314c0bd645ba4553994c14e6b4","unresolved":false,"context_lines":[{"line_number":177,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027allow_overlapping_ips\u0027] \u003d \u0027False\u0027"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# vpn agent configuration, default is false"},{"line_number":180,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d \u0027False\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"# use neutron root wrap"},{"line_number":183,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027use_rootwrap\u0027] \u003d true"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_ebd28dcf","line":180,"updated":"2014-09-15 14:59:40.000000000","message":"Why not use false here instead of string, this is a recipe only value right?","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"7b93ccb7f3b8ccbb0dff94730e651a17961cc731","unresolved":false,"context_lines":[{"line_number":177,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027allow_overlapping_ips\u0027] \u003d \u0027False\u0027"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# vpn agent configuration, default is false"},{"line_number":180,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d \u0027False\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"# use neutron root wrap"},{"line_number":183,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027use_rootwrap\u0027] \u003d true"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_30686bf4","line":180,"in_reply_to":"fa98f980_84363d4f","updated":"2014-09-16 09:53:57.000000000","message":"Done","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"7e125eef5cdde01a2437c34ac8a9a6eeeb10022a","unresolved":false,"context_lines":[{"line_number":177,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027allow_overlapping_ips\u0027] \u003d \u0027False\u0027"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"# vpn agent configuration, default is false"},{"line_number":180,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d \u0027False\u0027"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"# use neutron root wrap"},{"line_number":183,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027use_rootwrap\u0027] \u003d true"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_ee48ca5d","line":180,"in_reply_to":"fa98f980_ebd28dcf","updated":"2014-09-16 03:33:00.000000000","message":"Hi, mark,\n\nwhen the default value is used to make a logic decision, it should be a value, such as default[\u0027openstack\u0027][\u0027network\u0027][\u0027use_rootwrap\u0027] \u003d true, but when it is used to as a option in an config file, it should be a string, like default[\u0027openstack\u0027][\u0027network\u0027][\u0027l3\u0027][\u0027router_delete_namespaces\u0027] \u003d \u0027False\u0027, \n\nam I right?","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"f0bbf96b18e594d37a8514e1b2f07f37d4a87310","unresolved":false,"context_lines":[{"line_number":1054,"context_line":"    \u0027neutron_dhcp_packages\u0027 \u003d\u003e [\u0027neutron-dhcp-agent\u0027],"},{"line_number":1055,"context_line":"    \u0027neutron_dhcp_build_packages\u0027 \u003d\u003e %w(build-essential pkg-config libidn11-dev libdbus-1-dev libnetfilter-conntrack-dev gettext),"},{"line_number":1056,"context_line":"    \u0027neutron_l3_packages\u0027 \u003d\u003e [\u0027neutron-l3-agent\u0027],"},{"line_number":1057,"context_line":"    \u0027neutron_vpn_packages\u0027 \u003d\u003e [\u0027neutron-plugin-vpn-agent\u0027],"},{"line_number":1058,"context_line":"    \u0027neutron_lb_packages\u0027 \u003d\u003e [\u0027neutron-lbaas-agent\u0027, \u0027haproxy\u0027],"},{"line_number":1059,"context_line":"    \u0027neutron_openvswitch_packages\u0027 \u003d\u003e [\u0027openvswitch-switch\u0027, \u0027openvswitch-datapath-dkms\u0027, \u0027bridge-utils\u0027],"},{"line_number":1060,"context_line":"    \u0027neutron_openvswitch_build_packages\u0027 \u003d\u003e %w(build-essential pkg-config fakeroot libssl-dev openssl debhelper autoconf dkms python-all python-qt4 python-zopeinterface python-twisted-conch),"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_04fc0db4","line":1057,"updated":"2014-09-16 06:12:48.000000000","message":"neutron-plugin-vpn-agent is transitional dummy package, I think you\u0027d better use neutron-vpn-agent instead.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"7b93ccb7f3b8ccbb0dff94730e651a17961cc731","unresolved":false,"context_lines":[{"line_number":1054,"context_line":"    \u0027neutron_dhcp_packages\u0027 \u003d\u003e [\u0027neutron-dhcp-agent\u0027],"},{"line_number":1055,"context_line":"    \u0027neutron_dhcp_build_packages\u0027 \u003d\u003e %w(build-essential pkg-config libidn11-dev libdbus-1-dev libnetfilter-conntrack-dev gettext),"},{"line_number":1056,"context_line":"    \u0027neutron_l3_packages\u0027 \u003d\u003e [\u0027neutron-l3-agent\u0027],"},{"line_number":1057,"context_line":"    \u0027neutron_vpn_packages\u0027 \u003d\u003e [\u0027neutron-plugin-vpn-agent\u0027],"},{"line_number":1058,"context_line":"    \u0027neutron_lb_packages\u0027 \u003d\u003e [\u0027neutron-lbaas-agent\u0027, \u0027haproxy\u0027],"},{"line_number":1059,"context_line":"    \u0027neutron_openvswitch_packages\u0027 \u003d\u003e [\u0027openvswitch-switch\u0027, \u0027openvswitch-datapath-dkms\u0027, \u0027bridge-utils\u0027],"},{"line_number":1060,"context_line":"    \u0027neutron_openvswitch_build_packages\u0027 \u003d\u003e %w(build-essential pkg-config fakeroot libssl-dev openssl debhelper autoconf dkms python-all python-qt4 python-zopeinterface python-twisted-conch),"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_50424f68","line":1057,"in_reply_to":"fa98f980_04fc0db4","updated":"2014-09-16 09:53:57.000000000","message":"Done","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"}],"metadata.rb":[{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"b6a2a7187478e58b19b6e1faed51e45d9caf4d0b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"license           \u0027Apache 2.0\u0027"},{"line_number":6,"context_line":"description       \u0027Installs and configures the OpenStack Network API Service and various agents and plugins\u0027"},{"line_number":7,"context_line":"long_description  IO.read(File.join(File.dirname(__FILE__), \u0027README.md\u0027))"},{"line_number":8,"context_line":"version           \u002710.1.1\u0027"},{"line_number":9,"context_line":"recipe            \u0027openstack-network::client\u0027, \u0027Install packages required for network client\u0027"},{"line_number":10,"context_line":"recipe            \u0027openstack-network::server\u0027, \u0027Installs packages required for a OpenStack Network server\u0027"},{"line_number":11,"context_line":"recipe            \u0027openstack-network::openvswitch\u0027, \u0027Installs packages required for OVS\u0027"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"fa98f980_e3c5030b","line":8,"updated":"2014-09-18 01:38:27.000000000","message":"should be 10.1.0","commit_id":"b644f0e62c65aa8b32d06a7a2022da08d7af40c7"}],"recipes/l3_agent.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8c17501b80a825314c0bd645ba4553994c14e6b4","unresolved":false,"context_lines":[{"line_number":39,"context_line":"service \u0027neutron-l3-agent\u0027 do"},{"line_number":40,"context_line":"  service_name platform_options[\u0027neutron_l3_agent_service\u0027]"},{"line_number":41,"context_line":"  supports status: true, restart: true"},{"line_number":42,"context_line":"  if node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":43,"context_line":"    action [:stop, :disable]"},{"line_number":44,"context_line":"  else"},{"line_number":45,"context_line":"    action :enable"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_cbe6a9af","line":42,"updated":"2014-09-15 14:59:40.000000000","message":"Do we need matching check like this in the vpn recipe?\n\nAnd we probably need to update l3 spec for this.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"f0bbf96b18e594d37a8514e1b2f07f37d4a87310","unresolved":false,"context_lines":[{"line_number":39,"context_line":"service \u0027neutron-l3-agent\u0027 do"},{"line_number":40,"context_line":"  service_name platform_options[\u0027neutron_l3_agent_service\u0027]"},{"line_number":41,"context_line":"  supports status: true, restart: true"},{"line_number":42,"context_line":"  if node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":43,"context_line":"    action [:stop, :disable]"},{"line_number":44,"context_line":"  else"},{"line_number":45,"context_line":"    action :enable"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_a4cb4151","line":42,"updated":"2014-09-16 06:12:48.000000000","message":"This attribute here is string, so always true...","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"7b93ccb7f3b8ccbb0dff94730e651a17961cc731","unresolved":false,"context_lines":[{"line_number":39,"context_line":"service \u0027neutron-l3-agent\u0027 do"},{"line_number":40,"context_line":"  service_name platform_options[\u0027neutron_l3_agent_service\u0027]"},{"line_number":41,"context_line":"  supports status: true, restart: true"},{"line_number":42,"context_line":"  if node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":43,"context_line":"    action [:stop, :disable]"},{"line_number":44,"context_line":"  else"},{"line_number":45,"context_line":"    action :enable"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_50396ff0","line":42,"in_reply_to":"fa98f980_a4cb4151","updated":"2014-09-16 09:53:57.000000000","message":"Done changing to boolean.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"7e125eef5cdde01a2437c34ac8a9a6eeeb10022a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"service \u0027neutron-l3-agent\u0027 do"},{"line_number":40,"context_line":"  service_name platform_options[\u0027neutron_l3_agent_service\u0027]"},{"line_number":41,"context_line":"  supports status: true, restart: true"},{"line_number":42,"context_line":"  if node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":43,"context_line":"    action [:stop, :disable]"},{"line_number":44,"context_line":"  else"},{"line_number":45,"context_line":"    action :enable"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_aecb2251","line":42,"in_reply_to":"fa98f980_cbe6a9af","updated":"2014-09-16 03:33:00.000000000","message":"You can stop and disable l3 agent is vpn recipe, but it will still subscribe to the neutron.conf, so when the file changed the l3 agent will restart, so I think we should match check here.\n\nwhen enable_vpn is true, the l3 agent will be disabed, and this will be checked in vpn spec! Since the context in a chef spec file is unique,so if you want chek the code in l3 spec,we may need two l3 spec files one is for enable vpn and another is for disable vpn, just like some recipes may have multi specs for different linux distributions!","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"f0bbf96b18e594d37a8514e1b2f07f37d4a87310","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":53,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":54,"context_line":"  mode   00644"},{"line_number":55,"context_line":"  unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":56,"context_line":"    notifies :restart, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":57,"context_line":"  end"},{"line_number":58,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_c49f654e","line":55,"updated":"2014-09-16 06:12:48.000000000","message":"always true here.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"7b93ccb7f3b8ccbb0dff94730e651a17961cc731","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":53,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":54,"context_line":"  mode   00644"},{"line_number":55,"context_line":"  unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":56,"context_line":"    notifies :restart, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":57,"context_line":"  end"},{"line_number":58,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_703cb3e1","line":55,"in_reply_to":"fa98f980_c49f654e","updated":"2014-09-16 09:53:57.000000000","message":"Done","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"57d1fcc1086601471dbcb3a57190f90c3cb78f62","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  source \u0027l3_agent.ini.erb\u0027"},{"line_number":52,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":53,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":54,"context_line":"  mode   00644"},{"line_number":55,"context_line":"  unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":56,"context_line":"    notifies :restart, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":57,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"fa98f980_5c15029a","line":54,"updated":"2014-09-16 15:06:56.000000000","message":"should probably be 00640, see other new patches for cleaning up permissions.","commit_id":"37fd453d76e68391306a448b80f593de1bf92444"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"ec93ad46081ab4d80badf6542485526cbc5e30be","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  source \u0027l3_agent.ini.erb\u0027"},{"line_number":52,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":53,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":54,"context_line":"  mode   00644"},{"line_number":55,"context_line":"  unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":56,"context_line":"    notifies :restart, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":57,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"fa98f980_fd74e2d1","line":54,"in_reply_to":"fa98f980_5c15029a","updated":"2014-09-17 03:21:20.000000000","message":"Done","commit_id":"37fd453d76e68391306a448b80f593de1bf92444"}],"recipes/vpn_agent.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8c17501b80a825314c0bd645ba4553994c14e6b4","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  supports status: true, restart: true"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  action :enable"},{"line_number":45,"context_line":"  # if the vpn agent is enabled, we should disable the l3-agent immediately"},{"line_number":46,"context_line":"  # notifies :disable, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":47,"context_line":"  subscribes :restart, \u0027template[/etc/neutron/neutron.conf]\u0027"},{"line_number":48,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_0bb27193","line":45,"updated":"2014-09-15 14:59:40.000000000","message":"should this be reworded that the l3 recipe will handle this check?","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"7e125eef5cdde01a2437c34ac8a9a6eeeb10022a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  supports status: true, restart: true"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  action :enable"},{"line_number":45,"context_line":"  # if the vpn agent is enabled, we should disable the l3-agent immediately"},{"line_number":46,"context_line":"  # notifies :disable, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":47,"context_line":"  subscribes :restart, \u0027template[/etc/neutron/neutron.conf]\u0027"},{"line_number":48,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_cb08582f","line":45,"in_reply_to":"fa98f980_0bb27193","updated":"2014-09-16 03:33:00.000000000","message":"you are right!this can be removed, but I think it may be better to remind us the vpn agent and l3 agent should not run at the same time here, although the work is done by the l3 recipe!","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"7b93ccb7f3b8ccbb0dff94730e651a17961cc731","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  supports status: true, restart: true"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  action :enable"},{"line_number":45,"context_line":"  # if the vpn agent is enabled, we should disable the l3-agent immediately"},{"line_number":46,"context_line":"  # notifies :disable, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":47,"context_line":"  subscribes :restart, \u0027template[/etc/neutron/neutron.conf]\u0027"},{"line_number":48,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_900d9740","line":45,"in_reply_to":"fa98f980_2462f13d","updated":"2014-09-16 09:53:57.000000000","message":"Moved to L3 agent recipe.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"f0bbf96b18e594d37a8514e1b2f07f37d4a87310","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  supports status: true, restart: true"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"  action :enable"},{"line_number":45,"context_line":"  # if the vpn agent is enabled, we should disable the l3-agent immediately"},{"line_number":46,"context_line":"  # notifies :disable, \u0027service[neutron-l3-agent]\u0027, :immediately"},{"line_number":47,"context_line":"  subscribes :restart, \u0027template[/etc/neutron/neutron.conf]\u0027"},{"line_number":48,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_2462f13d","line":45,"in_reply_to":"fa98f980_cb08582f","updated":"2014-09-16 06:12:48.000000000","message":"If so, I think you should move this comment to l3-agent recipe.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8c17501b80a825314c0bd645ba4553994c14e6b4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  source \u0027vpn_agent.ini.erb\u0027"},{"line_number":52,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":53,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":54,"context_line":"  mode   00644"},{"line_number":55,"context_line":"  notifies :restart, \u0027service[neutron-vpn-agent]\u0027, :immediately"},{"line_number":56,"context_line":"end"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_cbe5c9dc","line":54,"updated":"2014-09-15 14:59:40.000000000","message":"Should be just 640?","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"c56e185ea609d3d738554432acab58131c5ca92a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  source \u0027vpn_agent.ini.erb\u0027"},{"line_number":52,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":53,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":54,"context_line":"  mode   00644"},{"line_number":55,"context_line":"  notifies :restart, \u0027service[neutron-vpn-agent]\u0027, :immediately"},{"line_number":56,"context_line":"end"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_bcceee59","line":54,"in_reply_to":"fa98f980_cb5a184f","updated":"2014-09-16 15:04:26.000000000","message":"Please refer to the other new patches that are changing the permissions, I think the direction we want to go in general is using 640/600 for files and 700/750 for directories.","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"7e125eef5cdde01a2437c34ac8a9a6eeeb10022a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  source \u0027vpn_agent.ini.erb\u0027"},{"line_number":52,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":53,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":54,"context_line":"  mode   00644"},{"line_number":55,"context_line":"  notifies :restart, \u0027service[neutron-vpn-agent]\u0027, :immediately"},{"line_number":56,"context_line":"end"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":1,"id":"fa98f980_cb5a184f","line":54,"in_reply_to":"fa98f980_cbe5c9dc","updated":"2014-09-16 03:33:00.000000000","message":"if the mode vlaue is passed as an octal integer, we should add a 0 to it, so the value may be 0640, or as a string like \"640\", from the document, we may guess the mode vlaue such as 00644, the first zero is for octal coding, and the second zero is for sticky bit, which is only meaning for the directory, so to be consistent with the directory, we choose 00644 rather than 0640.\nhere is the reference https://docs.getchef.com/resource_cookbook_file.html","commit_id":"d5138445cee3214b7bfbfc7a250573a8bfc28c0e"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"57d1fcc1086601471dbcb3a57190f90c3cb78f62","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  source \u0027vpn_agent.ini.erb\u0027"},{"line_number":49,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":50,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":51,"context_line":"  mode   00644"},{"line_number":52,"context_line":"  notifies :restart, \u0027service[neutron-vpn-agent]\u0027, :immediately"},{"line_number":53,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"fa98f980_bc518e65","line":51,"updated":"2014-09-16 15:06:56.000000000","message":"should be 00640","commit_id":"37fd453d76e68391306a448b80f593de1bf92444"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"ec93ad46081ab4d80badf6542485526cbc5e30be","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  source \u0027vpn_agent.ini.erb\u0027"},{"line_number":49,"context_line":"  owner node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027user\u0027]"},{"line_number":50,"context_line":"  group node[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027group\u0027]"},{"line_number":51,"context_line":"  mode   00644"},{"line_number":52,"context_line":"  notifies :restart, \u0027service[neutron-vpn-agent]\u0027, :immediately"},{"line_number":53,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"fa98f980_bd6b3af0","line":51,"in_reply_to":"fa98f980_bc518e65","updated":"2014-09-17 03:21:20.000000000","message":"Done","commit_id":"37fd453d76e68391306a448b80f593de1bf92444"}],"spec/vpn_agent_spec.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"f1cd663e34eacc6a05c191d28f15b9c5458fe0e4","unresolved":false,"context_lines":[{"line_number":31,"context_line":"      expect(chef_run).to enable_service(\u0027neutron-vpn-agent\u0027)"},{"line_number":32,"context_line":"    end"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    # it \u0027notifies the l3 agent service\u0027 do"},{"line_number":35,"context_line":"    #   expect(chef_run.service(\u0027neutron-vpn-agent\u0027)).to notify(\u0027service[neutron-l3-agent]\u0027).to(:disable).immediately"},{"line_number":36,"context_line":"    # end"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"fa98f980_254e1dc3","line":34,"updated":"2014-09-18 16:18:23.000000000","message":"Why commented out.  For new code, with in or out, or a TODO comment stating reason?","commit_id":"87dc3492934f8a8f09722d10d7f401a09769473e"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"e04b58fea379197faf45ea43a334c70ab4d55094","unresolved":false,"context_lines":[{"line_number":31,"context_line":"      expect(chef_run).to enable_service(\u0027neutron-vpn-agent\u0027)"},{"line_number":32,"context_line":"    end"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    # it \u0027notifies the l3 agent service\u0027 do"},{"line_number":35,"context_line":"    #   expect(chef_run.service(\u0027neutron-vpn-agent\u0027)).to notify(\u0027service[neutron-l3-agent]\u0027).to(:disable).immediately"},{"line_number":36,"context_line":"    # end"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":4,"id":"fa98f980_f8e59038","line":34,"in_reply_to":"fa98f980_254e1dc3","updated":"2014-09-19 02:09:01.000000000","message":"We can\u0027t notify a service to disable itself in chef, and its function is the same with \"verify l3 agent is stoped and disabled\" in the above, so this section will be removed in next code set.","commit_id":"87dc3492934f8a8f09722d10d7f401a09769473e"}],"templates/default/vpn_agent.ini.erb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"f1cd663e34eacc6a05c191d28f15b9c5458fe0e4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"# VPN-Agent configuration file"},{"line_number":3,"context_line":"# Note vpn-agent inherits l3-agent, so you can use configs on l3-agent also"},{"line_number":4,"context_line":"debug \u003d \u003c%\u003d node[\"openstack\"][\"network\"][\"debug\"] %\u003e"}],"source_content_type":"application/x-erb","patch_set":4,"id":"fa98f980_25d53db7","line":1,"updated":"2014-09-18 16:18:23.000000000","message":"missing banner line?\n\u003c%\u003d node[\"openstack\"][\"network\"][\"custom_template_banner\"] %\u003e","commit_id":"87dc3492934f8a8f09722d10d7f401a09769473e"}]}
