)]}'
{"etc/ironic/ironic.conf.sample":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"3d14040240e4c626f274a9d3f35c14359c6f527e","unresolved":false,"context_lines":[{"line_number":855,"context_line":"# should be set to a single value for better performance."},{"line_number":856,"context_line":"# (list value)"},{"line_number":857,"context_line":"#hash_algorithms\u003dmd5"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"[matchmaker_ring]"},{"line_number":861,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1ae5cdf2_7f2335a7","side":"PARENT","line":858,"updated":"2014-06-10 08:10:10.000000000","message":"These keystone section change should not be involved into this patch, please make sure your keystone client is latest code and run the sample conf generator again, thanks.","commit_id":"63c10301245b5b07fe3224e1dc537bc07c94aa9c"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"1da58da5a088b4b1b8c18443e2b010ae7a3bdeea","unresolved":false,"context_lines":[{"line_number":885,"context_line":"# neutron. Can be either \"keystone\" or \"noauth\". \"noauth\" is"},{"line_number":886,"context_line":"# insecure and should only be used for testing. (string value)"},{"line_number":887,"context_line":"#auth_strategy\u003dkeystone"},{"line_number":888,"context_line":""},{"line_number":889,"context_line":""},{"line_number":890,"context_line":"[pxe]"},{"line_number":891,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1ae5cdf2_afbb4fc2","line":888,"updated":"2014-06-13 08:11:28.000000000","message":"This section is different with the code[1], so please run  the conf generator script[2] to create it to update, thanks.\n\n [1] https://review.openstack.org/#/c/98922/3/ironic/common/neutron.py L33\n [2] tools/config/generate_sample.sh","commit_id":"72bc2a95b3c27229acd139522a7e07b08746b0bd"}],"ironic/common/neutron.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4a627f1737230293f9e094de28b0bfad5e067852","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if CONF.neutron.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":61,"context_line":"            params[\u0027endpoint_url\u0027] \u003d CONF.neutron.url"},{"line_number":62,"context_line":"            params[\u0027auth_strategy\u0027] \u003d \u0027noauth\u0027"},{"line_number":63,"context_line":"        elif context.auth_token is None:"},{"line_number":64,"context_line":"            params[\u0027endpoint_url\u0027] \u003d (CONF.neutron.url or"},{"line_number":65,"context_line":"                                      keystone.get_service_url(\u0027neutron\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_2fdcac45","line":62,"updated":"2014-06-12 21:43:10.000000000","message":"Just wondering. What if CONF.neutron.auth_strategy is \u0027foobar\u0027. Do we care?","commit_id":"4387a45e1ff123cff6b31291bb411a71bd084964"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"91d6bcf1290c220603b458dc05dfbb01d8b60f8d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if CONF.neutron.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":67,"context_line":"            params[\u0027endpoint_url\u0027] \u003d CONF.neutron.url"},{"line_number":68,"context_line":"            params[\u0027auth_strategy\u0027] \u003d \u0027noauth\u0027"},{"line_number":69,"context_line":"        elif (CONF.neutron.auth_strategy \u003d\u003d \u0027keystone\u0027 and"},{"line_number":70,"context_line":"                context.auth_token is None):"},{"line_number":71,"context_line":"            params[\u0027endpoint_url\u0027] \u003d (CONF.neutron.url or"},{"line_number":72,"context_line":"                                      keystone.get_service_url(\u0027neutron\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_b98f94cb","line":69,"updated":"2014-07-02 20:37:48.000000000","message":"I had a discussion with jroll about what happens if someone specifies something other than noauth or keystone, and then I forgot about looking at jroll\u0027s change.\n\nI don\u0027t know what the \u0027right\u0027 way is, but based on the existing code, it seems like if context.auth_token is None (and neutron.auth_strategy is not noauth), this path should be taken. Cuz the last else uses context.auth_token which I suspect won\u0027t work if it is None.\n\nI don\u0027t know neutron though. I suppose if the user specifies an invalid value, they get what they get...","commit_id":"d9e52fa8005d8ead0416a836a74e70d1d170deaf"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"064fd4011b38e7c5537f4ebbb8f37f7482de4865","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if CONF.neutron.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":67,"context_line":"            params[\u0027endpoint_url\u0027] \u003d CONF.neutron.url"},{"line_number":68,"context_line":"            params[\u0027auth_strategy\u0027] \u003d \u0027noauth\u0027"},{"line_number":69,"context_line":"        elif (CONF.neutron.auth_strategy \u003d\u003d \u0027keystone\u0027 and"},{"line_number":70,"context_line":"                context.auth_token is None):"},{"line_number":71,"context_line":"            params[\u0027endpoint_url\u0027] \u003d (CONF.neutron.url or"},{"line_number":72,"context_line":"                                      keystone.get_service_url(\u0027neutron\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_973d37be","line":69,"in_reply_to":"baada198_b98f94cb","updated":"2014-07-02 21:16:10.000000000","message":"Done","commit_id":"d9e52fa8005d8ead0416a836a74e70d1d170deaf"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b22bf139c0c72eafc2570ac9b54e8f90ad6dbe46","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            params[\u0027tenant_name\u0027] \u003d CONF.keystone_authtoken.admin_tenant_name"},{"line_number":79,"context_line":"            params[\u0027password\u0027] \u003d CONF.keystone_authtoken.admin_password"},{"line_number":80,"context_line":"            params[\u0027auth_url\u0027] \u003d (CONF.keystone_authtoken.auth_uri or \u0027\u0027)"},{"line_number":81,"context_line":"        elif (CONF.neutron.auth_strategy \u003d\u003d \u0027keystone\u0027 and"},{"line_number":82,"context_line":"                context.auth_token is not None):"},{"line_number":83,"context_line":"            params[\u0027token\u0027] \u003d context.auth_token"},{"line_number":84,"context_line":"            params[\u0027endpoint_url\u0027] \u003d CONF.neutron.url"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_7740a3a5","line":81,"updated":"2014-07-02 21:30:47.000000000","message":"this can be left as it was, \u0027else:\u0027, since the only way to get here now is if context.auth_token is not None.","commit_id":"04b96568e38b60622d866cb4009bed85ba43baf8"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"375147fd52273165c6bdcaed98c2d257736da980","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            params[\u0027tenant_name\u0027] \u003d CONF.keystone_authtoken.admin_tenant_name"},{"line_number":79,"context_line":"            params[\u0027password\u0027] \u003d CONF.keystone_authtoken.admin_password"},{"line_number":80,"context_line":"            params[\u0027auth_url\u0027] \u003d (CONF.keystone_authtoken.auth_uri or \u0027\u0027)"},{"line_number":81,"context_line":"        elif (CONF.neutron.auth_strategy \u003d\u003d \u0027keystone\u0027 and"},{"line_number":82,"context_line":"                context.auth_token is not None):"},{"line_number":83,"context_line":"            params[\u0027token\u0027] \u003d context.auth_token"},{"line_number":84,"context_line":"            params[\u0027endpoint_url\u0027] \u003d CONF.neutron.url"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_ae1ca5c2","line":81,"in_reply_to":"baada198_7740a3a5","updated":"2014-07-03 00:02:18.000000000","message":"Done","commit_id":"04b96568e38b60622d866cb4009bed85ba43baf8"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ec049711f6f8d385be8ade5c5065e7c30db0625f","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        if CONF.neutron.auth_strategy not in [\u0027noauth\u0027, \u0027keystone\u0027]:"},{"line_number":67,"context_line":"            raise exception.ConfigInvalid(\u0027Neutron auth_strategy should be \u0027"},{"line_number":68,"context_line":"                                          \u0027either \"noauth\" or \"keystone\".\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        if CONF.neutron.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":71,"context_line":"            params[\u0027endpoint_url\u0027] \u003d CONF.neutron.url"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_eb0da491","line":68,"updated":"2014-07-03 08:00:56.000000000","message":"i18n :(","commit_id":"4a01ddd5942a69354ba6acb4867ff7527f2f0c08"}],"ironic/tests/test_neutron.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"120afd65df7e862a92b3260d2461734f041305ff","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            mock_client_init.return_value \u003d None"},{"line_number":107,"context_line":"            neutron.NeutronAPI(my_context)"},{"line_number":108,"context_line":"            mock_client_init.assert_called_once_with(**expected)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_neutron_port_update(self):"},{"line_number":111,"context_line":"        opts \u003d [{\u0027opt_name\u0027: \u0027bootfile-name\u0027,"},{"line_number":112,"context_line":"                    \u0027opt_value\u0027: \u0027pxelinux.0\u0027},"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_5cde666e","line":109,"updated":"2014-07-02 20:47:26.000000000","message":"is it worth adding a test for auth_strategy\u003d\u0027foo\u0027?","commit_id":"d9e52fa8005d8ead0416a836a74e70d1d170deaf"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"064fd4011b38e7c5537f4ebbb8f37f7482de4865","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            mock_client_init.return_value \u003d None"},{"line_number":107,"context_line":"            neutron.NeutronAPI(my_context)"},{"line_number":108,"context_line":"            mock_client_init.assert_called_once_with(**expected)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_neutron_port_update(self):"},{"line_number":111,"context_line":"        opts \u003d [{\u0027opt_name\u0027: \u0027bootfile-name\u0027,"},{"line_number":112,"context_line":"                    \u0027opt_value\u0027: \u0027pxelinux.0\u0027},"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_7742633f","line":109,"in_reply_to":"baada198_5cde666e","updated":"2014-07-02 21:16:10.000000000","message":"Done","commit_id":"d9e52fa8005d8ead0416a836a74e70d1d170deaf"}]}
