)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3e088bf648b1bf7e99b58a54e7aeb96f5a9c92b2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Refactor DVR _arp_entry methods"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This should decouple the DVR stuff from the agent.  This moves some"},{"line_number":10,"context_line":"methods to dvr_router to encapulate them better.  It is removes a"},{"line_number":11,"context_line":"reference to fullsync from DVR to better separate concerns."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ibf0cec4c44576f7c7196c9780a1b12de96a812b3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba7be1f8_18b88675","line":10,"updated":"2015-02-24 02:20:01.000000000","message":"nit: encapsulate\nnit: s/It is/It also (?)","commit_id":"377f6858c8b548c25d9857d809e0f7057f3028e8"},{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"0087e016db23558fdb43bc041461eaeae2367007","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This should decouple the DVR stuff from the agent.  This moves some"},{"line_number":10,"context_line":"methods to dvr_router to encapulate them better.  It is removes a"},{"line_number":11,"context_line":"reference to fullsync from DVR to better separate concerns."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ibf0cec4c44576f7c7196c9780a1b12de96a812b3"},{"line_number":14,"context_line":"Partially-Implements: bp/restructure-l3-agent"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba7be1f8_9481fafd","line":11,"updated":"2015-02-27 07:06:44.000000000","message":"s/It is removes a reference to fullsync from DVR to better separate concerns./It is to remove a reference to full sync from DVR for separation of concerns.\n\n.. might be?","commit_id":"0c6aaab947c9cf1aaf1ffaa1de789843d40a2c32"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"cec237cdfe26be973a9dc88a27b205c67fe3e350","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This should decouple the DVR stuff from the agent.  This moves some"},{"line_number":10,"context_line":"methods to dvr_router to encapulate them better.  It is removes a"},{"line_number":11,"context_line":"reference to fullsync from DVR to better separate concerns."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ibf0cec4c44576f7c7196c9780a1b12de96a812b3"},{"line_number":14,"context_line":"Partially-Implements: bp/restructure-l3-agent"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba7be1f8_7a8c5a80","line":11,"in_reply_to":"ba7be1f8_9481fafd","updated":"2015-02-27 15:42:31.000000000","message":"Thanks for pointing it out.  I think I was working on the wording and I left an extra word in there.  I will remove the word \u0027is\u0027 and all should read as I wanted it to.","commit_id":"0c6aaab947c9cf1aaf1ffaa1de789843d40a2c32"}],"neutron/agent/l3/agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3e088bf648b1bf7e99b58a54e7aeb96f5a9c92b2","unresolved":false,"context_lines":[{"line_number":560,"context_line":"            return self.get_external_device_name(ex_gw_port[\u0027id\u0027])"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def get_internal_device_name(self, port_id):"},{"line_number":563,"context_line":"        return (namespaces.INTERNAL_DEV_PREFIX + port_id)["},{"line_number":564,"context_line":"            :self.driver.DEV_NAME_LEN]"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def get_external_device_name(self, port_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_be2763b5","side":"PARENT","line":563,"updated":"2015-02-24 02:20:01.000000000","message":"So is there still a definition of INTERNAL_DEV_PREFIX in namespaces.py ?","commit_id":"4ed590b3032ddbf71349d3bee2a1c04e500e1911"}],"neutron/agent/l3/router_info.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3e088bf648b1bf7e99b58a54e7aeb96f5a9c92b2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from neutron.openstack.common import log as logging"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":"INTERNAL_DEV_PREFIX \u003d \u0027qr-\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class RouterInfo(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_de2a577d","line":27,"updated":"2015-02-24 02:20:01.000000000","message":"This is why I asked about namespaces.INTERNAL_DEV_PREFIX","commit_id":"377f6858c8b548c25d9857d809e0f7057f3028e8"}],"neutron/tests/unit/agent/l3/test_dvr_router.py":[{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"0087e016db23558fdb43bc041461eaeae2367007","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        ri.floating_ip_removed_dist.assert_called_once_with("},{"line_number":171,"context_line":"            mock.sentinel.ip_cidr)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def test__get_internal_port(self):"},{"line_number":174,"context_line":"        ri \u003d self._create_router()"},{"line_number":175,"context_line":"        port \u003d {\u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: mock.sentinel.subnet_id}]}"},{"line_number":176,"context_line":"        router_ports \u003d [port]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_7493a64f","line":173,"updated":"2015-02-27 07:06:44.000000000","message":"s/__/_/\n??","commit_id":"0c6aaab947c9cf1aaf1ffaa1de789843d40a2c32"},{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"1b3e4d02feaa8621498c16674fe10ab5cacdc395","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        ri.floating_ip_removed_dist.assert_called_once_with("},{"line_number":171,"context_line":"            mock.sentinel.ip_cidr)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def test__get_internal_port(self):"},{"line_number":174,"context_line":"        ri \u003d self._create_router()"},{"line_number":175,"context_line":"        port \u003d {\u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: mock.sentinel.subnet_id}]}"},{"line_number":176,"context_line":"        router_ports \u003d [port]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_fa729548","line":173,"in_reply_to":"ba7be1f8_1a40be34","updated":"2015-03-03 12:18:00.000000000","message":"okay","commit_id":"0c6aaab947c9cf1aaf1ffaa1de789843d40a2c32"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"cec237cdfe26be973a9dc88a27b205c67fe3e350","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        ri.floating_ip_removed_dist.assert_called_once_with("},{"line_number":171,"context_line":"            mock.sentinel.ip_cidr)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def test__get_internal_port(self):"},{"line_number":174,"context_line":"        ri \u003d self._create_router()"},{"line_number":175,"context_line":"        port \u003d {\u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: mock.sentinel.subnet_id}]}"},{"line_number":176,"context_line":"        router_ports \u003d [port]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_1a40be34","line":173,"in_reply_to":"ba7be1f8_7493a64f","updated":"2015-02-27 15:42:31.000000000","message":"The double _ was intentional.  The method is called \u0027_get_internal_port\u0027 and the convention is to name a test with \u0027test_\u0027 + method name.  Hence the double underbar.","commit_id":"0c6aaab947c9cf1aaf1ffaa1de789843d40a2c32"},{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"0087e016db23558fdb43bc041461eaeae2367007","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        ri.router.get.return_value \u003d router_ports"},{"line_number":178,"context_line":"        self.assertEqual(port, ri._get_internal_port(mock.sentinel.subnet_id))"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def test__get_internal_port_not_found(self):"},{"line_number":181,"context_line":"        ri \u003d self._create_router()"},{"line_number":182,"context_line":"        port \u003d {\u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: mock.sentinel.subnet_id}]}"},{"line_number":183,"context_line":"        router_ports \u003d [port]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_94981a6c","line":180,"updated":"2015-02-27 07:06:44.000000000","message":"s/__/_/ ??","commit_id":"0c6aaab947c9cf1aaf1ffaa1de789843d40a2c32"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"cec237cdfe26be973a9dc88a27b205c67fe3e350","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        ri.router.get.return_value \u003d router_ports"},{"line_number":178,"context_line":"        self.assertEqual(port, ri._get_internal_port(mock.sentinel.subnet_id))"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def test__get_internal_port_not_found(self):"},{"line_number":181,"context_line":"        ri \u003d self._create_router()"},{"line_number":182,"context_line":"        port \u003d {\u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: mock.sentinel.subnet_id}]}"},{"line_number":183,"context_line":"        router_ports \u003d [port]"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_9a73ceb3","line":180,"in_reply_to":"ba7be1f8_94981a6c","updated":"2015-02-27 15:42:31.000000000","message":"ditto","commit_id":"0c6aaab947c9cf1aaf1ffaa1de789843d40a2c32"}]}
