)]}'
{"neutron/plugins/nicira/NeutronServicePlugin.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"c0e03555c62d751a916e31df83bbae98ee72575c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 VMware, Inc."},{"line_number":4,"context_line":"# All Rights Reserved"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9Z5w%3D","line":1,"updated":"2014-02-07 05:49:07.000000000","message":"Unrelated change.","commit_id":"5f0e116719e4d59640b8a1d70a11a321b1933908"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"a12862b1af112d9dc8eb87a948568d9cae454f9e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 VMware, Inc."},{"line_number":4,"context_line":"# All Rights Reserved"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F3XQ%3D","line":1,"in_reply_to":"AAAAUH%2F9Z5w%3D","updated":"2014-02-12 02:55:20.000000000","message":"Done","commit_id":"5f0e116719e4d59640b8a1d70a11a321b1933908"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"bd5e2d0ccb60d6eaf347e65f58e64cbd657580b5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 VMware, Inc."},{"line_number":4,"context_line":"# All Rights Reserved"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FmlM%3D","line":1,"in_reply_to":"AAAAUH%2F9Z5w%3D","updated":"2014-02-12 03:16:38.000000000","message":"thanks for your review and I have removed most unrelevant changes.","commit_id":"5f0e116719e4d59640b8a1d70a11a321b1933908"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"c0e03555c62d751a916e31df83bbae98ee72575c","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            self._update_router_port_attachment("},{"line_number":440,"context_line":"                self.cluster, None, lrouter[\u0027uuid\u0027], {}, lr_port[\u0027uuid\u0027],"},{"line_number":441,"context_line":"                \u0027PatchAttachment\u0027, ls_port[\u0027uuid\u0027], None)"},{"line_number":442,"context_line":"        except NvpApiClient.NvpApiException:"},{"line_number":443,"context_line":"            # lr_port should have been deleted"},{"line_number":444,"context_line":"            nvplib.delete_port(self.cluster, lswitch[\u0027uuid\u0027], ls_port[\u0027uuid\u0027])"},{"line_number":445,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9Z6g%3D","line":442,"updated":"2014-02-07 05:49:07.000000000","message":"Unrelated change.","commit_id":"5f0e116719e4d59640b8a1d70a11a321b1933908"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"a12862b1af112d9dc8eb87a948568d9cae454f9e","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            self._update_router_port_attachment("},{"line_number":440,"context_line":"                self.cluster, None, lrouter[\u0027uuid\u0027], {}, lr_port[\u0027uuid\u0027],"},{"line_number":441,"context_line":"                \u0027PatchAttachment\u0027, ls_port[\u0027uuid\u0027], None)"},{"line_number":442,"context_line":"        except NvpApiClient.NvpApiException:"},{"line_number":443,"context_line":"            # lr_port should have been deleted"},{"line_number":444,"context_line":"            nvplib.delete_port(self.cluster, lswitch[\u0027uuid\u0027], ls_port[\u0027uuid\u0027])"},{"line_number":445,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2FnTU%3D","line":442,"in_reply_to":"AAAAUH%2F9Z6g%3D","updated":"2014-02-12 02:55:20.000000000","message":"Done","commit_id":"5f0e116719e4d59640b8a1d70a11a321b1933908"}],"neutron/plugins/nicira/vshield/edge_loadbalancer_driver.py":[{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            \u0027algorithm\u0027: BALANCE_MAP.get("},{"line_number":79,"context_line":"                pool.get(\u0027lb_method\u0027),"},{"line_number":80,"context_line":"                \u0027round-robin\u0027),"},{"line_number":81,"context_line":"            \u0027transparent\u0027: True,"},{"line_number":82,"context_line":"            \u0027member\u0027: [],"},{"line_number":83,"context_line":"            \u0027monitorId\u0027: []"},{"line_number":84,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86tY%3D","line":81,"updated":"2013-12-18 20:52:03.000000000","message":"This is handled by review #59146 patch, right?","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            \u0027algorithm\u0027: BALANCE_MAP.get("},{"line_number":79,"context_line":"                pool.get(\u0027lb_method\u0027),"},{"line_number":80,"context_line":"                \u0027round-robin\u0027),"},{"line_number":81,"context_line":"            \u0027transparent\u0027: True,"},{"line_number":82,"context_line":"            \u0027member\u0027: [],"},{"line_number":83,"context_line":"            \u0027monitorId\u0027: []"},{"line_number":84,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84qA%3D","line":81,"in_reply_to":"AAAATn%2F86tY%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        try:"},{"line_number":205,"context_line":"            self.vcns.delete_vip(edge_id, vip_vseid)"},{"line_number":206,"context_line":"            self.vcns.delete_app_profile(edge_id, app_profileid)"},{"line_number":207,"context_line":"        except vcns_exc.ResourceNotFound:"},{"line_number":208,"context_line":"            LOG.exception(_(\"vip not found on edge: %s\"), edge_id)"},{"line_number":209,"context_line":"        except vcns_exc.VcnsApiException:"},{"line_number":210,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86tQ%3D","line":207,"updated":"2013-12-18 20:52:03.000000000","message":"Review #59146 also handles this already.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        try:"},{"line_number":205,"context_line":"            self.vcns.delete_vip(edge_id, vip_vseid)"},{"line_number":206,"context_line":"            self.vcns.delete_app_profile(edge_id, app_profileid)"},{"line_number":207,"context_line":"        except vcns_exc.ResourceNotFound:"},{"line_number":208,"context_line":"            LOG.exception(_(\"vip not found on edge: %s\"), edge_id)"},{"line_number":209,"context_line":"        except vcns_exc.VcnsApiException:"},{"line_number":210,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84p8%3D","line":207,"in_reply_to":"AAAATn%2F86tQ%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        pool_vseid \u003d pool_binding[\u0027pool_vseid\u0027]"},{"line_number":265,"context_line":"        try:"},{"line_number":266,"context_line":"            self.vcns.delete_pool(edge_id, pool_vseid)"},{"line_number":267,"context_line":"        except vcns_exc.ResourceNotFound:"},{"line_number":268,"context_line":"            LOG.exception(_(\"pool not found on edge: %s\"), edge_id)"},{"line_number":269,"context_line":"        except vcns_exc.VcnsApiException:"},{"line_number":270,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86tM%3D","line":267,"updated":"2013-12-18 20:52:03.000000000","message":"Let\u0027s move this to review #59146.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        pool_vseid \u003d pool_binding[\u0027pool_vseid\u0027]"},{"line_number":265,"context_line":"        try:"},{"line_number":266,"context_line":"            self.vcns.delete_pool(edge_id, pool_vseid)"},{"line_number":267,"context_line":"        except vcns_exc.ResourceNotFound:"},{"line_number":268,"context_line":"            LOG.exception(_(\"pool not found on edge: %s\"), edge_id)"},{"line_number":269,"context_line":"        except vcns_exc.VcnsApiException:"},{"line_number":270,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84oE%3D","line":267,"in_reply_to":"AAAATn%2F86tM%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        monitor_vseid \u003d monitor_binding[\u0027monitor_vseid\u0027]"},{"line_number":333,"context_line":"        try:"},{"line_number":334,"context_line":"            self.vcns.delete_health_monitor(edge_id, monitor_vseid)"},{"line_number":335,"context_line":"        except vcns_exc.ResourceNotFound:"},{"line_number":336,"context_line":"            LOG.exception(_(\"HealthMonitor not found on edge: %s\"), edge_id)"},{"line_number":337,"context_line":"        except vcns_exc.VcnsApiException:"},{"line_number":338,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86s8%3D","line":335,"updated":"2013-12-18 20:52:03.000000000","message":"Let\u0027s move this to review #59146.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        monitor_vseid \u003d monitor_binding[\u0027monitor_vseid\u0027]"},{"line_number":333,"context_line":"        try:"},{"line_number":334,"context_line":"            self.vcns.delete_health_monitor(edge_id, monitor_vseid)"},{"line_number":335,"context_line":"        except vcns_exc.ResourceNotFound:"},{"line_number":336,"context_line":"            LOG.exception(_(\"HealthMonitor not found on edge: %s\"), edge_id)"},{"line_number":337,"context_line":"        except vcns_exc.VcnsApiException:"},{"line_number":338,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84oA%3D","line":335,"in_reply_to":"AAAATn%2F86s8%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"}],"neutron/tests/unit/nicira/test_fwaas_plugin.py":[{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    def test_list_firewalls(self):"},{"line_number":221,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":222,"context_line":"        name1 \u003d \"fw1\""},{"line_number":223,"context_line":"        router_id1 \u003d self.router_id"},{"line_number":224,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":225,"context_line":"        name2 \u003d \"fw2\""},{"line_number":226,"context_line":"        router_id2 \u003d self.router_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86p0%3D","line":223,"updated":"2013-12-18 20:52:03.000000000","message":"Why not use r1 \u003d _create_router(...) (or a wrapper of it which deserializes the response), and get r1[\u0027id\u0027] directly? I don\u0027t think it\u0027s a good practice to use self.router_id like this. Also you can ise a for loop to replace line 221~236.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    def test_list_firewalls(self):"},{"line_number":221,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":222,"context_line":"        name1 \u003d \"fw1\""},{"line_number":223,"context_line":"        router_id1 \u003d self.router_id"},{"line_number":224,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":225,"context_line":"        name2 \u003d \"fw2\""},{"line_number":226,"context_line":"        router_id2 \u003d self.router_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84kQ%3D","line":223,"in_reply_to":"AAAATn%2F86p0%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        name3 \u003d \"fw3\""},{"line_number":229,"context_line":"        router_id3 \u003d self.router_id"},{"line_number":230,"context_line":"        keys_list \u003d ["},{"line_number":231,"context_line":"            {\u0027name\u0027: name1,"},{"line_number":232,"context_line":"             \u0027router_id\u0027: router_id1},"},{"line_number":233,"context_line":"            {\u0027name\u0027: name2,"},{"line_number":234,"context_line":"             \u0027router_id\u0027: router_id2},"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86lE%3D","line":231,"updated":"2013-12-18 20:52:03.000000000","message":"You might want to add more attributes to this list to make sure the plugin returns more than just name and router_id.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        name3 \u003d \"fw3\""},{"line_number":229,"context_line":"        router_id3 \u003d self.router_id"},{"line_number":230,"context_line":"        keys_list \u003d ["},{"line_number":231,"context_line":"            {\u0027name\u0027: name1,"},{"line_number":232,"context_line":"             \u0027router_id\u0027: router_id1},"},{"line_number":233,"context_line":"            {\u0027name\u0027: name2,"},{"line_number":234,"context_line":"             \u0027router_id\u0027: router_id2},"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84fc%3D","line":231,"in_reply_to":"AAAATn%2F86lE%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"fdb8d9ac1f47b2a7c4810f0a8976dbd6b7ba67f4","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            res \u003d self.deserialize("},{"line_number":237,"context_line":"                self.fmt, req.get_response(self.ext_api))"},{"line_number":238,"context_line":"            self.assertEqual(len(res[\u0027firewalls\u0027]), 3)"},{"line_number":239,"context_line":"            for index in range(len(res[\u0027firewalls\u0027])):"},{"line_number":240,"context_line":"                for k, v in keys_list[index].items():"},{"line_number":241,"context_line":"                    self.assertEqual(res[\u0027firewalls\u0027][index][k], v)"},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAU3%2F%2F81I%3D","line":239,"updated":"2014-02-23 17:35:28.000000000","message":"I think list result may not be in the same order as you created them. You may want to check how _test_list_resources() do the comparison using sorted().\n\nAlso a minor point is you\u0027re doing two list query, one inside _test_list_resources() another new_list_request().","commit_id":"1eb8fa563d13e46f0a7011143f65e371ae091684"}],"neutron/tests/unit/nicira/test_lbaas_plugin.py":[{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                for k in (\u0027id\u0027, \u0027address\u0027, \u0027port_id\u0027, \u0027pool_id\u0027):"},{"line_number":220,"context_line":"                    self.assertTrue(vip[\u0027vip\u0027].get(k, None))"},{"line_number":221,"context_line":"                expected[\u0027status\u0027] \u003d \u0027ACTIVE\u0027"},{"line_number":222,"context_line":"                expected[\u0027router_id\u0027] \u003d self.router_id"},{"line_number":223,"context_line":"                self.assertEqual("},{"line_number":224,"context_line":"                    dict((k, v)"},{"line_number":225,"context_line":"                         for k, v in vip[\u0027vip\u0027].items() if k in expected),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86os%3D","line":222,"updated":"2013-12-18 20:52:03.000000000","message":"Can you add router_id to expected between line 190~198?","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                for k in (\u0027id\u0027, \u0027address\u0027, \u0027port_id\u0027, \u0027pool_id\u0027):"},{"line_number":220,"context_line":"                    self.assertTrue(vip[\u0027vip\u0027].get(k, None))"},{"line_number":221,"context_line":"                expected[\u0027status\u0027] \u003d \u0027ACTIVE\u0027"},{"line_number":222,"context_line":"                expected[\u0027router_id\u0027] \u003d self.router_id"},{"line_number":223,"context_line":"                self.assertEqual("},{"line_number":224,"context_line":"                    dict((k, v)"},{"line_number":225,"context_line":"                         for k, v in vip[\u0027vip\u0027].items() if k in expected),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84h0%3D","line":222,"in_reply_to":"AAAATn%2F86os%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                router_id\u003dself.router_id, name\u003dname,"},{"line_number":252,"context_line":"                pool\u003dpool, subnet\u003dsubnet) as vip:"},{"line_number":253,"context_line":"                keys.append((\u0027subnet_id\u0027, vip[\u0027vip\u0027][\u0027subnet_id\u0027]))"},{"line_number":254,"context_line":"                keys.append((\u0027router_id\u0027, self.router_id))"},{"line_number":255,"context_line":"                data \u003d {\u0027vip\u0027: {\u0027name\u0027: name,"},{"line_number":256,"context_line":"                                \u0027connection_limit\u0027: 100,"},{"line_number":257,"context_line":"                                \u0027session_persistence\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86no%3D","line":254,"updated":"2013-12-18 20:52:03.000000000","message":"This can be moved to line 232~237?","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                router_id\u003dself.router_id, name\u003dname,"},{"line_number":252,"context_line":"                pool\u003dpool, subnet\u003dsubnet) as vip:"},{"line_number":253,"context_line":"                keys.append((\u0027subnet_id\u0027, vip[\u0027vip\u0027][\u0027subnet_id\u0027]))"},{"line_number":254,"context_line":"                keys.append((\u0027router_id\u0027, self.router_id))"},{"line_number":255,"context_line":"                data \u003d {\u0027vip\u0027: {\u0027name\u0027: name,"},{"line_number":256,"context_line":"                                \u0027connection_limit\u0027: 100,"},{"line_number":257,"context_line":"                                \u0027session_persistence\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84h4%3D","line":254,"in_reply_to":"AAAATn%2F86no%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":291,"context_line":"        name \u003d \"vip_show\""},{"line_number":292,"context_line":"        keys \u003d [(\u0027name\u0027, name),"},{"line_number":293,"context_line":"                (\u0027address\u0027, \"10.0.0.2\"),"},{"line_number":294,"context_line":"                (\u0027protocol_port\u0027, 80),"},{"line_number":295,"context_line":"                (\u0027protocol\u0027, \u0027HTTP\u0027),"},{"line_number":296,"context_line":"                (\u0027connection_limit\u0027, -1),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86mk%3D","line":293,"updated":"2013-12-18 20:52:03.000000000","message":"comparing address is not a good idea. This relies on the fact that \u002710.0.0.2\u0027 is the first unused address and neutron will always return it. If this is changed, the test case will fail. Consider removing address from the check list, or just make sure address is in the response and is valid.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":291,"context_line":"        name \u003d \"vip_show\""},{"line_number":292,"context_line":"        keys \u003d [(\u0027name\u0027, name),"},{"line_number":293,"context_line":"                (\u0027address\u0027, \"10.0.0.2\"),"},{"line_number":294,"context_line":"                (\u0027protocol_port\u0027, 80),"},{"line_number":295,"context_line":"                (\u0027protocol\u0027, \u0027HTTP\u0027),"},{"line_number":296,"context_line":"                (\u0027connection_limit\u0027, -1),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84gw%3D","line":293,"in_reply_to":"AAAATn%2F86mk%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    self.assertEqual(res[\u0027vip\u0027][k], v)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    def test_list_vips(self):"},{"line_number":323,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":324,"context_line":"        name1 \u003d \"vip1\""},{"line_number":325,"context_line":"        router_id1 \u003d self.router_id"},{"line_number":326,"context_line":"        self._fake_router_edge_mapping()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86mU%3D","line":323,"updated":"2013-12-18 20:52:03.000000000","message":"Consider using _create_router or a wrapper of it and a for loop to replace line 323~338 as I mentioned in the other file.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":320,"context_line":"                    self.assertEqual(res[\u0027vip\u0027][k], v)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    def test_list_vips(self):"},{"line_number":323,"context_line":"        self._fake_router_edge_mapping()"},{"line_number":324,"context_line":"        name1 \u003d \"vip1\""},{"line_number":325,"context_line":"        router_id1 \u003d self.router_id"},{"line_number":326,"context_line":"        self._fake_router_edge_mapping()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84gs%3D","line":323,"in_reply_to":"AAAATn%2F86mU%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"890fe1305b1bcb1d46f4a7becda73a4c209d5fbf","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        name3 \u003d \"vip3\""},{"line_number":331,"context_line":"        router_id3 \u003d self.router_id"},{"line_number":332,"context_line":"        keys_list \u003d ["},{"line_number":333,"context_line":"            {\u0027name\u0027: name1,"},{"line_number":334,"context_line":"             \u0027router_id\u0027: router_id1},"},{"line_number":335,"context_line":"            {\u0027name\u0027: name2,"},{"line_number":336,"context_line":"             \u0027router_id\u0027: router_id2},"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F86l0%3D","line":333,"updated":"2013-12-18 20:52:03.000000000","message":"you might want to consider adding more attributes to this list.","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"4d010b0e1013c9262115465d895796ef6992ba76","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        name3 \u003d \"vip3\""},{"line_number":331,"context_line":"        router_id3 \u003d self.router_id"},{"line_number":332,"context_line":"        keys_list \u003d ["},{"line_number":333,"context_line":"            {\u0027name\u0027: name1,"},{"line_number":334,"context_line":"             \u0027router_id\u0027: router_id1},"},{"line_number":335,"context_line":"            {\u0027name\u0027: name2,"},{"line_number":336,"context_line":"             \u0027router_id\u0027: router_id2},"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F84fg%3D","line":333,"in_reply_to":"AAAATn%2F86l0%3D","updated":"2013-12-19 08:14:09.000000000","message":"Done","commit_id":"ac08fc2daa89023e8d42d0f13ac9ee260f87aabf"},{"author":{"_account_id":6461,"name":"Kaiwei Fan","email":"fank@vmware.com","username":"kaiwei-fan"},"change_message_id":"fdb8d9ac1f47b2a7c4810f0a8976dbd6b7ba67f4","unresolved":false,"context_lines":[{"line_number":344,"context_line":"                res \u003d self.deserialize("},{"line_number":345,"context_line":"                    self.fmt, req.get_response(self.ext_api))"},{"line_number":346,"context_line":"                self.assertEqual(len(res[\u0027vips\u0027]), 3)"},{"line_number":347,"context_line":"                for index in range(len(res[\u0027vips\u0027])):"},{"line_number":348,"context_line":"                    for k, v in keys_list[index].items():"},{"line_number":349,"context_line":"                        self.assertEqual(res[\u0027vips\u0027][index][k], v)"},{"line_number":350,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAU3%2F%2F804%3D","line":347,"updated":"2014-02-23 17:35:28.000000000","message":"Same comment as in test_fwass_plugin.py","commit_id":"1eb8fa563d13e46f0a7011143f65e371ae091684"}]}
