)]}'
{"CHANGELOG.md":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ed90d9ba2ce9db3435d1d354e147eb0365b80cf4","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 multi driver support and package dependencies to vpn_agent recipe"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"## 10.1.0"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"9aa7fdbe_c56a10b2","line":4,"updated":"2014-10-28 14:40:32.000000000","message":"Don\u0027t think we need a version bump for this, it has no intra cookbook dependencies and does not change current flow that much.","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"412271b9c0ce5c0fbf61b9eb3a827f7622cc44f5","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 multi driver support and package dependencies to vpn_agent recipe"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"## 10.1.0"}],"source_content_type":"text/x-markdown","patch_set":5,"id":"9aa7fdbe_c3fd963d","line":4,"in_reply_to":"9aa7fdbe_c56a10b2","updated":"2014-10-29 03:37:46.000000000","message":"Done","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"1b73a64e4872f5c2fb87fd03bfa8f26235e709fe","unresolved":false,"context_lines":[{"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.0"},{"line_number":5,"context_line":"* Add multi driver support and package dependencies to vpn_agent recipe"},{"line_number":6,"context_line":"* Add support for Neutron VPN Service"},{"line_number":7,"context_line":"* Remove Neutron DB stamp and upgrade to head."},{"line_number":8,"context_line":"* Add attribute for ML2 enable_ipset"}],"source_content_type":"text/x-markdown","patch_set":7,"id":"9aa7fdbe_55a06aa5","line":5,"updated":"2014-10-29 14:59:23.000000000","message":"This should be at the bottom to be consistent with how we have been doing it.","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"ecd88634ec073293205ff9670a9bf1cc32bb97d8","unresolved":false,"context_lines":[{"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.0"},{"line_number":5,"context_line":"* Add multi driver support and package dependencies to vpn_agent recipe"},{"line_number":6,"context_line":"* Add support for Neutron VPN Service"},{"line_number":7,"context_line":"* Remove Neutron DB stamp and upgrade to head."},{"line_number":8,"context_line":"* Add attribute for ML2 enable_ipset"}],"source_content_type":"text/x-markdown","patch_set":7,"id":"7a8c0949_e2336ef4","line":5,"in_reply_to":"9aa7fdbe_55a06aa5","updated":"2014-10-30 08:42:08.000000000","message":"Done","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"}],"attributes/default.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ed90d9ba2ce9db3435d1d354e147eb0365b80cf4","unresolved":false,"context_lines":[{"line_number":393,"context_line":""},{"line_number":394,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d VPN Agent Configuration \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027]"},{"line_number":397,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027ipsec_status_check_interval\u0027] \u003d 60"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Metadata Agent Configuration \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_a5a7cc09","line":396,"updated":"2014-10-28 14:40:32.000000000","message":"Please add comment line above attributes","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"412271b9c0ce5c0fbf61b9eb3a827f7622cc44f5","unresolved":false,"context_lines":[{"line_number":393,"context_line":""},{"line_number":394,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d VPN Agent Configuration \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027]"},{"line_number":397,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027ipsec_status_check_interval\u0027] \u003d 60"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Metadata Agent Configuration \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_03f87e48","line":396,"in_reply_to":"9aa7fdbe_a5a7cc09","updated":"2014-10-29 03:37:46.000000000","message":"Done","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"1b73a64e4872f5c2fb87fd03bfa8f26235e709fe","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"    \u0027neutron_server_service\u0027 \u003d\u003e \u0027neutron-server\u0027,"},{"line_number":1063,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \u0027\u0027,"},{"line_number":1064,"context_line":"    # packages should be installed when using OpenSwanDriver by vpn_agent"},{"line_number":1065,"context_line":"    \u0027openswan_packages\u0027 \u003d\u003e [\u0027openswan\u0027]"},{"line_number":1066,"context_line":"  }"},{"line_number":1067,"context_line":"when \u0027suse\u0027"},{"line_number":1068,"context_line":"  default[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027] \u003d {"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"9aa7fdbe_f59ebe53","line":1065,"updated":"2014-10-29 14:59:23.000000000","message":"or make this generic, vpn_device_driver_packages, and default it to openswan to match the default for vpn_device_driver.   Then add a comment to the vpn_device_driver key to state that it has a matching packages key that can be used to get any driver dependencies installed.","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"ecd88634ec073293205ff9670a9bf1cc32bb97d8","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"    \u0027neutron_server_service\u0027 \u003d\u003e \u0027neutron-server\u0027,"},{"line_number":1063,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \u0027\u0027,"},{"line_number":1064,"context_line":"    # packages should be installed when using OpenSwanDriver by vpn_agent"},{"line_number":1065,"context_line":"    \u0027openswan_packages\u0027 \u003d\u003e [\u0027openswan\u0027]"},{"line_number":1066,"context_line":"  }"},{"line_number":1067,"context_line":"when \u0027suse\u0027"},{"line_number":1068,"context_line":"  default[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027] \u003d {"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"7a8c0949_a2940645","line":1065,"in_reply_to":"9aa7fdbe_f59ebe53","updated":"2014-10-30 08:42:08.000000000","message":"Done","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":210,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027allow_overlapping_ips\u0027] \u003d \u0027False\u0027"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"# vpn agent configuration, default is false"},{"line_number":213,"context_line":"# must enable namespaces to set enable_vpn true"},{"line_number":214,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d false"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"# use neutron root wrap"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_ebe33b03","line":213,"updated":"2014-10-30 15:34:42.000000000","message":"Caps for \"Must enable...    ?","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":210,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027allow_overlapping_ips\u0027] \u003d \u0027False\u0027"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"# vpn agent configuration, default is false"},{"line_number":213,"context_line":"# must enable namespaces to set enable_vpn true"},{"line_number":214,"context_line":"default[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d false"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"# use neutron root wrap"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_38682dba","line":213,"in_reply_to":"7a8c0949_ebe33b03","updated":"2014-10-31 03:05:41.000000000","message":"Done","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"    \u0027neutron_linuxbridge_agent_service\u0027 \u003d\u003e \u0027neutron-linuxbridge-agent\u0027,"},{"line_number":1063,"context_line":"    \u0027neutron_server_service\u0027 \u003d\u003e \u0027neutron-server\u0027,"},{"line_number":1064,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \u0027\u0027,"},{"line_number":1065,"context_line":"    \u0027vpn_device_driver_packages\u0027 \u003d\u003e [\u0027openswan\u0027]"},{"line_number":1066,"context_line":"  }"},{"line_number":1067,"context_line":"when \u0027suse\u0027"},{"line_number":1068,"context_line":"  default[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027] \u003d {"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_6ba66bc3","line":1065,"updated":"2014-10-30 15:34:42.000000000","message":"i would prefer if you leave the package overrides at the bottom of this list.   Maybe push this up line 1047, just under the existing neutron_vpn_packages  line?","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"    \u0027neutron_linuxbridge_agent_service\u0027 \u003d\u003e \u0027neutron-linuxbridge-agent\u0027,"},{"line_number":1063,"context_line":"    \u0027neutron_server_service\u0027 \u003d\u003e \u0027neutron-server\u0027,"},{"line_number":1064,"context_line":"    \u0027package_overrides\u0027 \u003d\u003e \u0027\u0027,"},{"line_number":1065,"context_line":"    \u0027vpn_device_driver_packages\u0027 \u003d\u003e [\u0027openswan\u0027]"},{"line_number":1066,"context_line":"  }"},{"line_number":1067,"context_line":"when \u0027suse\u0027"},{"line_number":1068,"context_line":"  default[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027] \u003d {"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_b89b3dc8","line":1065,"in_reply_to":"7a8c0949_6ba66bc3","updated":"2014-10-31 03:05:41.000000000","message":"Done","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"}],"recipes/vpn_agent.rb":[{"author":{"_account_id":8112,"name":"Ma Wen Cheng","email":"wenchma@cn.ibm.com","username":"wenchma"},"change_message_id":"b7c25dc995d2e06dd15e82a22329a97d09298768","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"[\u0027quantum\u0027, \u0027neutron\u0027].include?(node[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027]) || return"},{"line_number":22,"context_line":"return unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":23,"context_line":"unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027]"},{"line_number":24,"context_line":"  Chef::Log.error(\u0027namespace must be enabled when using vpn agent\u0027)"},{"line_number":25,"context_line":"end"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":3,"id":"9aa7fdbe_5c48c5b2","line":23,"updated":"2014-10-28 05:55:22.000000000","message":"Be careful for this attribute, it is string not boolean, https://github.com/stackforge/cookbook-openstack-network/blob/master/attributes/default.rb#L209","commit_id":"727469722fcbc5c6059678e8771b5d898e2991b2"},{"author":{"_account_id":8172,"name":"Wei Hu","email":"huwei.xtu@gmail.com","username":"WeiHu"},"change_message_id":"dc3d3574ca05374ce3d0f17d591fb8c5d39e2b83","unresolved":false,"context_lines":[{"line_number":21,"context_line":"[\u0027quantum\u0027, \u0027neutron\u0027].include?(node[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027]) || return"},{"line_number":22,"context_line":"return unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":23,"context_line":"unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027]"},{"line_number":24,"context_line":"  Chef::Log.error(\u0027namespace must be enabled when using vpn agent\u0027)"},{"line_number":25,"context_line":"end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# VPN agent is based on L3 agent"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"9aa7fdbe_3c76a106","line":24,"updated":"2014-10-28 05:46:41.000000000","message":"Should we stop deploy here or continue if not enable network namespaces ? Log.error won\u0027t stop the deployment.","commit_id":"727469722fcbc5c6059678e8771b5d898e2991b2"},{"author":{"_account_id":8112,"name":"Ma Wen Cheng","email":"wenchma@cn.ibm.com","username":"wenchma"},"change_message_id":"1b64e40e73caf9667444bc557ec109ae8baa69e1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"[\u0027quantum\u0027, \u0027neutron\u0027].include?(node[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027]) || return"},{"line_number":22,"context_line":"return unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":23,"context_line":"unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027].downcase \u003d\u003d \u0027true\u0027"},{"line_number":24,"context_line":"  fail \u0027namespace must be enabled when using vpn agent\u0027  "},{"line_number":25,"context_line":"end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# VPN agent is based on L3 agent"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"9aa7fdbe_47f1d293","line":24,"updated":"2014-10-28 06:54:26.000000000","message":"remove the extra space","commit_id":"54dc2aa8d2b2384752ea39dd9fd76a0c6cccfc9c"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ed90d9ba2ce9db3435d1d354e147eb0365b80cf4","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"[\u0027quantum\u0027, \u0027neutron\u0027].include?(node[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027]) || return"},{"line_number":22,"context_line":"return unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":23,"context_line":"unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027].downcase \u003d\u003d \u0027true\u0027"},{"line_number":24,"context_line":"  fail \u0027namespace must be enabled when using vpn agent\u0027"},{"line_number":25,"context_line":"end"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_c5c69099","line":23,"updated":"2014-10-28 14:40:32.000000000","message":"Since use_namespaces defaults to True, we need to add some comments in the readme and attribute defaults to explain this dependency relationship with using vpn recipe.","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"412271b9c0ce5c0fbf61b9eb3a827f7622cc44f5","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"[\u0027quantum\u0027, \u0027neutron\u0027].include?(node[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027]) || return"},{"line_number":22,"context_line":"return unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":23,"context_line":"unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027].downcase \u003d\u003d \u0027true\u0027"},{"line_number":24,"context_line":"  fail \u0027namespace must be enabled when using vpn agent\u0027"},{"line_number":25,"context_line":"end"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_437d26e7","line":23,"in_reply_to":"9aa7fdbe_c5c69099","updated":"2014-10-29 03:37:46.000000000","message":"Done","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ed90d9ba2ce9db3435d1d354e147eb0365b80cf4","unresolved":false,"context_lines":[{"line_number":21,"context_line":"[\u0027quantum\u0027, \u0027neutron\u0027].include?(node[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027]) || return"},{"line_number":22,"context_line":"return unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":23,"context_line":"unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027].downcase \u003d\u003d \u0027true\u0027"},{"line_number":24,"context_line":"  fail \u0027namespace must be enabled when using vpn agent\u0027"},{"line_number":25,"context_line":"end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# VPN agent is based on L3 agent"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_050258b3","line":24,"updated":"2014-10-28 14:40:32.000000000","message":"Probably want to beef up this msg a bit and call out the \u0027use_namespaces\u0027 attribute.","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"412271b9c0ce5c0fbf61b9eb3a827f7622cc44f5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"[\u0027quantum\u0027, \u0027neutron\u0027].include?(node[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027]) || return"},{"line_number":22,"context_line":"return unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027]"},{"line_number":23,"context_line":"unless node[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027].downcase \u003d\u003d \u0027true\u0027"},{"line_number":24,"context_line":"  fail \u0027namespace must be enabled when using vpn agent\u0027"},{"line_number":25,"context_line":"end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# VPN agent is based on L3 agent"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_43f28670","line":24,"in_reply_to":"9aa7fdbe_050258b3","updated":"2014-10-29 03:37:46.000000000","message":"Done","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ed90d9ba2ce9db3435d1d354e147eb0365b80cf4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# VPN agent is based on L3 agent"},{"line_number":28,"context_line":"include_recipe \u0027openstack-network::l3_agent\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"platform_options \u003d node.default[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027]"},{"line_number":31,"context_line":"core_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin\u0027]"},{"line_number":32,"context_line":"main_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin_map\u0027][core_plugin.split(\u0027.\u0027).last.downcase]"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_2514bce7","line":30,"updated":"2014-10-28 14:40:32.000000000","message":"Why was default added here, I don\u0027t see the need/reason for it, it\u0027s just a simple node attribute at this point.","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"412271b9c0ce5c0fbf61b9eb3a827f7622cc44f5","unresolved":false,"context_lines":[{"line_number":27,"context_line":"# VPN agent is based on L3 agent"},{"line_number":28,"context_line":"include_recipe \u0027openstack-network::l3_agent\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"platform_options \u003d node.default[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027]"},{"line_number":31,"context_line":"core_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin\u0027]"},{"line_number":32,"context_line":"main_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin_map\u0027][core_plugin.split(\u0027.\u0027).last.downcase]"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_4393664f","line":30,"in_reply_to":"9aa7fdbe_2514bce7","updated":"2014-10-29 03:37:46.000000000","message":"I will change default to normal in next set!","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ed90d9ba2ce9db3435d1d354e147eb0365b80cf4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any?"},{"line_number":36,"context_line":"  node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver|"},{"line_number":37,"context_line":"    driver \u003d driver.split(\u0027.\u0027).last.downcase"},{"line_number":38,"context_line":"    if driver.include? \u0027openswan\u0027"},{"line_number":39,"context_line":"      platform_options[\u0027neutron_vpn_packages\u0027].push(\u0027openswan\u0027)"},{"line_number":40,"context_line":"    end"},{"line_number":41,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_c5a5b0a2","line":38,"updated":"2014-10-28 14:40:32.000000000","message":"Instead of the ugly checking and push here, why not just have another platform option for dependencies that can be set by the user.  \n\nOr have an OpenSwanDriver package list and just call out that.\n\n[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027]\u0027openswan_packages\u0027] \u003d [\u0027openswan\u0027]\n\nWhat about just using the openswan cookbook?","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"412271b9c0ce5c0fbf61b9eb3a827f7622cc44f5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any?"},{"line_number":36,"context_line":"  node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver|"},{"line_number":37,"context_line":"    driver \u003d driver.split(\u0027.\u0027).last.downcase"},{"line_number":38,"context_line":"    if driver.include? \u0027openswan\u0027"},{"line_number":39,"context_line":"      platform_options[\u0027neutron_vpn_packages\u0027].push(\u0027openswan\u0027)"},{"line_number":40,"context_line":"    end"},{"line_number":41,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"9aa7fdbe_630b0a7e","line":38,"in_reply_to":"9aa7fdbe_c5a5b0a2","updated":"2014-10-29 03:37:46.000000000","message":"Hi, Mark,\n  I know what\u0027s you mean, and we already have a platform option which can be set by the user:\n[\u0027openstack\u0027][\u0027network\u0027][\u0027platform\u0027][\u0027neutron_vpn_packages\u0027]\n  All the vpn related package should be included in it, this code just want to make sure the user do not forget to include openswan when using OpenSwanDriver. This can reduce potential errors! Since not all the users know he need to add different package dependencies when using different drivers, I think we should at least make sure that most frequently used drivers\u0027 dependencies can be ckecked automatically!","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"1b73a64e4872f5c2fb87fd03bfa8f26235e709fe","unresolved":false,"context_lines":[{"line_number":34,"context_line":"main_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin_map\u0027][core_plugin.split(\u0027.\u0027).last.downcase]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Before upgrading neutron_vpn_packages, check package dependencies according node\u0027s vpn_device_driver."},{"line_number":37,"context_line":"# Here only OpenSwanDriver is handled, new drivers will be added in future."},{"line_number":38,"context_line":"if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any?"},{"line_number":39,"context_line":"  node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver|"},{"line_number":40,"context_line":"    driver \u003d driver.split(\u0027.\u0027).last"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"9aa7fdbe_95fd7271","line":37,"updated":"2014-10-29 14:59:23.000000000","message":"See comments in previous patch set.   All this openswan logic should be removed and just simple like the lines 50-57.  The not_if would be the only_if { node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] } as the gate.   Much simpler, right?","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"ecd88634ec073293205ff9670a9bf1cc32bb97d8","unresolved":false,"context_lines":[{"line_number":34,"context_line":"main_plugin \u003d node[\u0027openstack\u0027][\u0027network\u0027][\u0027core_plugin_map\u0027][core_plugin.split(\u0027.\u0027).last.downcase]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Before upgrading neutron_vpn_packages, check package dependencies according node\u0027s vpn_device_driver."},{"line_number":37,"context_line":"# Here only OpenSwanDriver is handled, new drivers will be added in future."},{"line_number":38,"context_line":"if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any?"},{"line_number":39,"context_line":"  node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver|"},{"line_number":40,"context_line":"    driver \u003d driver.split(\u0027.\u0027).last"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"7a8c0949_a2f7a68b","line":37,"in_reply_to":"9aa7fdbe_95fd7271","updated":"2014-10-30 08:42:08.000000000","message":"Done","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"}],"spec/vpn_agent_spec.rb":[{"author":{"_account_id":8112,"name":"Ma Wen Cheng","email":"wenchma@cn.ibm.com","username":"wenchma"},"change_message_id":"b7c25dc995d2e06dd15e82a22329a97d09298768","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    let(:chef_run) do"},{"line_number":10,"context_line":"      node.set[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027] \u003d \u0027neutron\u0027"},{"line_number":11,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d true"},{"line_number":12,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespace\u0027] \u003d true"},{"line_number":13,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027]"},{"line_number":14,"context_line":"      runner.converge(described_recipe)"},{"line_number":15,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"9aa7fdbe_dcd3d5d2","line":12,"updated":"2014-10-28 05:55:22.000000000","message":"look at https://github.com/stackforge/cookbook-openstack-network/blob/master/attributes/default.rb#L209,\n\nthe default is \u0027true\u0027, need to set it ? \n\nand this attribute is string\n\nshould be use_namespaces","commit_id":"727469722fcbc5c6059678e8771b5d898e2991b2"},{"author":{"_account_id":8172,"name":"Wei Hu","email":"huwei.xtu@gmail.com","username":"WeiHu"},"change_message_id":"dc3d3574ca05374ce3d0f17d591fb8c5d39e2b83","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    let(:chef_run) do"},{"line_number":10,"context_line":"      node.set[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027] \u003d \u0027neutron\u0027"},{"line_number":11,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d true"},{"line_number":12,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespace\u0027] \u003d true"},{"line_number":13,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027]"},{"line_number":14,"context_line":"      runner.converge(described_recipe)"},{"line_number":15,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"9aa7fdbe_1c6b9d1e","line":12,"updated":"2014-10-28 05:46:41.000000000","message":"use_namespace or use_namespaces? I guess it should be use_namespaces.","commit_id":"727469722fcbc5c6059678e8771b5d898e2991b2"},{"author":{"_account_id":8112,"name":"Ma Wen Cheng","email":"wenchma@cn.ibm.com","username":"wenchma"},"change_message_id":"1b64e40e73caf9667444bc557ec109ae8baa69e1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    let(:chef_run) do"},{"line_number":10,"context_line":"      node.set[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027] \u003d \u0027neutron\u0027"},{"line_number":11,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d true"},{"line_number":12,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027use_namespaces\u0027] \u003d \u0027True\u0027"},{"line_number":13,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027]"},{"line_number":14,"context_line":"      runner.converge(described_recipe)"},{"line_number":15,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"9aa7fdbe_e737264b","line":12,"updated":"2014-10-28 06:54:26.000000000","message":"the value \u0027True\u0027 is default, do we need to set it to \u0027True\u0027 again ?","commit_id":"54dc2aa8d2b2384752ea39dd9fd76a0c6cccfc9c"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"1b73a64e4872f5c2fb87fd03bfa8f26235e709fe","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    let(:chef_run) do"},{"line_number":10,"context_line":"      node.set[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027] \u003d \u0027neutron\u0027"},{"line_number":11,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d true"},{"line_number":12,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027,"},{"line_number":13,"context_line":"                                                                      \u0027neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver\u0027]"},{"line_number":14,"context_line":"      runner.converge(described_recipe)"},{"line_number":15,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"9aa7fdbe_752f2ef7","line":12,"updated":"2014-10-29 14:59:23.000000000","message":"this is specific to the test case below, line 55, move it in there.","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"ecd88634ec073293205ff9670a9bf1cc32bb97d8","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    let(:chef_run) do"},{"line_number":10,"context_line":"      node.set[\u0027openstack\u0027][\u0027compute\u0027][\u0027network\u0027][\u0027service_type\u0027] \u003d \u0027neutron\u0027"},{"line_number":11,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027enable_vpn\u0027] \u003d true"},{"line_number":12,"context_line":"      node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027,"},{"line_number":13,"context_line":"                                                                      \u0027neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver\u0027]"},{"line_number":14,"context_line":"      runner.converge(described_recipe)"},{"line_number":15,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"7a8c0949_427e02e6","line":12,"in_reply_to":"9aa7fdbe_752f2ef7","updated":"2014-10-30 08:42:08.000000000","message":"Done","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"1b73a64e4872f5c2fb87fd03bfa8f26235e709fe","unresolved":false,"context_lines":[{"line_number":25,"context_line":"      expect(chef_run).to disable_service(\u0027neutron-l3-agent\u0027)"},{"line_number":26,"context_line":"    end"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    it \u0027upgrades openswan package\u0027 do"},{"line_number":29,"context_line":"      expect(chef_run).to upgrade_package(\u0027openswan\u0027)"},{"line_number":30,"context_line":"    end"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":7,"id":"9aa7fdbe_757d6ee7","line":28,"updated":"2014-10-29 14:59:23.000000000","message":"With regard to previous suggestions, I would rename this to  upgrades vpn device driver packages.    And then add another spec to test the not_if logic, where it does not install any driver packages.","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"ecd88634ec073293205ff9670a9bf1cc32bb97d8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"      expect(chef_run).to disable_service(\u0027neutron-l3-agent\u0027)"},{"line_number":26,"context_line":"    end"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    it \u0027upgrades openswan package\u0027 do"},{"line_number":29,"context_line":"      expect(chef_run).to upgrade_package(\u0027openswan\u0027)"},{"line_number":30,"context_line":"    end"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":7,"id":"7a8c0949_f8923ef5","line":28,"in_reply_to":"9aa7fdbe_757d6ee7","updated":"2014-10-30 08:42:08.000000000","message":"Done","commit_id":"e5fc3ade640ec2ec966a7faf303cc56d4ab50e63"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"          mode: 0640"},{"line_number":50,"context_line":"        )"},{"line_number":51,"context_line":"      end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      it \u0027renders multi vpn_device_driver entries in vpn_agent.ini, when multi vpn_device_driver setted\u0027 do"},{"line_number":54,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027,"},{"line_number":55,"context_line":"                                                                                 \u0027neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver\u0027]"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_4b60cf35","line":52,"updated":"2014-10-30 15:34:42.000000000","message":"Please add one more spec here, for the default case of just the one OpenSwanDriver entry, thx.","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"          mode: 0640"},{"line_number":50,"context_line":"        )"},{"line_number":51,"context_line":"      end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      it \u0027renders multi vpn_device_driver entries in vpn_agent.ini, when multi vpn_device_driver setted\u0027 do"},{"line_number":54,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027,"},{"line_number":55,"context_line":"                                                                                 \u0027neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver\u0027]"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_586fb992","line":52,"in_reply_to":"7a8c0949_4b60cf35","updated":"2014-10-31 03:05:41.000000000","message":"Done","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        )"},{"line_number":51,"context_line":"      end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      it \u0027renders multi vpn_device_driver entries in vpn_agent.ini, when multi vpn_device_driver setted\u0027 do"},{"line_number":54,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027,"},{"line_number":55,"context_line":"                                                                                 \u0027neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver\u0027]"},{"line_number":56,"context_line":"        chef_run.converge(described_recipe)"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_2bc1c32e","line":53,"updated":"2014-10-30 15:34:42.000000000","message":"setted   -\u003e  set","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        )"},{"line_number":51,"context_line":"      end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      it \u0027renders multi vpn_device_driver entries in vpn_agent.ini, when multi vpn_device_driver setted\u0027 do"},{"line_number":54,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d [\u0027neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver\u0027,"},{"line_number":55,"context_line":"                                                                                 \u0027neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver\u0027]"},{"line_number":56,"context_line":"        chef_run.converge(described_recipe)"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_d8a009f7","line":53,"in_reply_to":"7a8c0949_2bc1c32e","updated":"2014-10-31 03:05:41.000000000","message":"Done","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        chef_run.converge(described_recipe)"},{"line_number":57,"context_line":"        [/^vpn_device_driver \u003d neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver$/,"},{"line_number":58,"context_line":"         /^vpn_device_driver \u003d neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver$/].each do |line|"},{"line_number":59,"context_line":"          expect(chef_run).to render_file(\u0027/etc/neutron/vpn_agent.ini\u0027).with_content(line)"},{"line_number":60,"context_line":"        end"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_8b0c7796","line":59,"updated":"2014-10-30 15:34:42.000000000","message":"\u0027/etc/neutron/vpn_agent.ini\u0027   -\u003e  file.name","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        chef_run.converge(described_recipe)"},{"line_number":57,"context_line":"        [/^vpn_device_driver \u003d neutron.services.vpn.device_drivers.ipsec.OpenSwanDriver$/,"},{"line_number":58,"context_line":"         /^vpn_device_driver \u003d neutron.services.vpn.device_drivers.cisco_ipsec.CiscoCsrIPsecDriver$/].each do |line|"},{"line_number":59,"context_line":"          expect(chef_run).to render_file(\u0027/etc/neutron/vpn_agent.ini\u0027).with_content(line)"},{"line_number":60,"context_line":"        end"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_f8a5c504","line":59,"in_reply_to":"7a8c0949_8b0c7796","updated":"2014-10-31 03:05:41.000000000","message":"Done","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        end"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"      it \u0027renders zero vpn_device_driver entry in vpn_agent.ini, when no vpn_device_driver setted\u0027 do"},{"line_number":64,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d []"},{"line_number":65,"context_line":"        chef_run.converge(described_recipe)"},{"line_number":66,"context_line":"        expect(chef_run).to render_file(\u0027/etc/neutron/vpn_agent.ini\u0027).with_content(/^(?!vpn_device_driver)(.*)$/)"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_2bd8e31c","line":63,"updated":"2014-10-30 15:34:42.000000000","message":"zero  -\u003e  no     \nsetted   -\u003e  set","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        end"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"      it \u0027renders zero vpn_device_driver entry in vpn_agent.ini, when no vpn_device_driver setted\u0027 do"},{"line_number":64,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d []"},{"line_number":65,"context_line":"        chef_run.converge(described_recipe)"},{"line_number":66,"context_line":"        expect(chef_run).to render_file(\u0027/etc/neutron/vpn_agent.ini\u0027).with_content(/^(?!vpn_device_driver)(.*)$/)"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_98b6813c","line":63,"in_reply_to":"7a8c0949_2bd8e31c","updated":"2014-10-31 03:05:41.000000000","message":"Done","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":63,"context_line":"      it \u0027renders zero vpn_device_driver entry in vpn_agent.ini, when no vpn_device_driver setted\u0027 do"},{"line_number":64,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d []"},{"line_number":65,"context_line":"        chef_run.converge(described_recipe)"},{"line_number":66,"context_line":"        expect(chef_run).to render_file(\u0027/etc/neutron/vpn_agent.ini\u0027).with_content(/^(?!vpn_device_driver)(.*)$/)"},{"line_number":67,"context_line":"      end"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"      it \u0027notifies the vpn agent service\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_2b1d43be","line":66,"updated":"2014-10-30 15:34:42.000000000","message":"\u0027/etc/neutron/vpn_agent.ini\u0027   -\u003e  file.name\n\nhumm, usually we use the .not_to for these. something like:\n\nexpect(chef_run).not_to render_file(file.name).with_content(/^vpn_device_driver\u003d/)","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"      it \u0027renders zero vpn_device_driver entry in vpn_agent.ini, when no vpn_device_driver setted\u0027 do"},{"line_number":64,"context_line":"        chef_run.node.set[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027] \u003d []"},{"line_number":65,"context_line":"        chef_run.converge(described_recipe)"},{"line_number":66,"context_line":"        expect(chef_run).to render_file(\u0027/etc/neutron/vpn_agent.ini\u0027).with_content(/^(?!vpn_device_driver)(.*)$/)"},{"line_number":67,"context_line":"      end"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"      it \u0027notifies the vpn agent service\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":10,"id":"7a8c0949_78e71541","line":66,"in_reply_to":"7a8c0949_2b1d43be","updated":"2014-10-31 03:05:41.000000000","message":"Hi, \nI have test not_to in this situation, like that:\nexpect(chef_run).not_to render_file(file.name).with_content(start_with(\u0027vpn_device_driver\u0027))\nbut it seems that not_to works on render_file, rather that with_content as we expected, so when I using not_to here, it do not render the file, so I use a regualr expression!","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"}],"templates/default/vpn_agent.ini.erb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ed90d9ba2ce9db3435d1d354e147eb0365b80cf4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# vpn_device_driver\u003danother_driver"},{"line_number":15,"context_line":"\u003c% if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any? %\u003e"},{"line_number":16,"context_line":"  \u003c% node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver| %\u003e"},{"line_number":17,"context_line":"vpn_device_driver \u003d \u003c%\u003d driver %\u003e"},{"line_number":18,"context_line":"  \u003c% end %\u003e"},{"line_number":19,"context_line":"\u003c% end %\u003e"},{"line_number":20,"context_line":""}],"source_content_type":"application/x-erb","patch_set":5,"id":"9aa7fdbe_85fd6870","line":17,"updated":"2014-10-28 14:40:32.000000000","message":"Need spec tests for the nil and the multiple cases.","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"412271b9c0ce5c0fbf61b9eb3a827f7622cc44f5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# vpn_device_driver\u003danother_driver"},{"line_number":15,"context_line":"\u003c% if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any? %\u003e"},{"line_number":16,"context_line":"  \u003c% node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver| %\u003e"},{"line_number":17,"context_line":"vpn_device_driver \u003d \u003c%\u003d driver %\u003e"},{"line_number":18,"context_line":"  \u003c% end %\u003e"},{"line_number":19,"context_line":"\u003c% end %\u003e"},{"line_number":20,"context_line":""}],"source_content_type":"application/x-erb","patch_set":5,"id":"9aa7fdbe_83baae6c","line":17,"in_reply_to":"9aa7fdbe_85fd6870","updated":"2014-10-29 03:37:46.000000000","message":"vpn_device_driver is depending on node\u0027s attribute, and we can only set one attribute once in a spec, so we can\u0027t test multi cases in one spec, but I will add a multiple vpn_device_driver case in the spec","commit_id":"a68f63bf6f71ef9c914c75fba7e79cf1fdbcbd10"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"ba2dbafd4d021590bcf22a5475a66fc281285de4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# vpn_device_driver\u003danother_driver"},{"line_number":15,"context_line":"\u003c% if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any? %\u003e"},{"line_number":16,"context_line":"  \u003c% node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver| %\u003e"},{"line_number":17,"context_line":"vpn_device_driver \u003d \u003c%\u003d driver %\u003e"},{"line_number":18,"context_line":"  \u003c% end %\u003e"},{"line_number":19,"context_line":"\u003c% end %\u003e"},{"line_number":20,"context_line":""}],"source_content_type":"application/x-erb","patch_set":10,"id":"7a8c0949_2b4b83b1","line":17,"updated":"2014-10-30 15:34:42.000000000","message":"I would prefer if we don\u0027t have spaces around the \u003d","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"},{"author":{"_account_id":7515,"name":"Jian LI","email":"ljianbj@cn.ibm.com","username":"leejian0612"},"change_message_id":"b49408f8ce70981cb32c29bfb5e8dcc761ec731f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# vpn_device_driver\u003danother_driver"},{"line_number":15,"context_line":"\u003c% if node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].any? %\u003e"},{"line_number":16,"context_line":"  \u003c% node[\u0027openstack\u0027][\u0027network\u0027][\u0027vpn\u0027][\u0027vpn_device_driver\u0027].each do |driver| %\u003e"},{"line_number":17,"context_line":"vpn_device_driver \u003d \u003c%\u003d driver %\u003e"},{"line_number":18,"context_line":"  \u003c% end %\u003e"},{"line_number":19,"context_line":"\u003c% end %\u003e"},{"line_number":20,"context_line":""}],"source_content_type":"application/x-erb","patch_set":10,"id":"7a8c0949_f86ea5c8","line":17,"in_reply_to":"7a8c0949_2b4b83b1","updated":"2014-10-31 03:05:41.000000000","message":"Done","commit_id":"a1d358fe80457ef3e889d5bdccf847739408df23"}]}
