)]}'
{"quantum/plugins/nicira/QuantumPlugin.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"869501b4b62688684561acb6ea23f9a4ac0be061","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 2012 Nicira, Inc."},{"line_number":4,"context_line":"# All Rights Reserved"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPH%2F%2F1A8%3D","side":"PARENT","line":1,"updated":"2013-05-27 23:18:14.000000000","message":"whoops?","commit_id":"08c49053c1fb38560b1b243f5219570305444d2c"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # Map nova zones to cluster for easy retrieval"},{"line_number":153,"context_line":"    novazone_cluster_map \u003d {}"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    port_security_enabled_update \u003d \"update_port:port_security_enabled\""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def __init__(self):"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2F7wI%3D","line":155,"updated":"2013-06-17 22:39:45.000000000","message":"This looks like it\u0027s no longer needed, so you might as well get rid of in this patch.","commit_id":"a327d8a21512c6ba54ff0df31a52b7c78a9c190a"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":152,"context_line":"    # Map nova zones to cluster for easy retrieval"},{"line_number":153,"context_line":"    novazone_cluster_map \u003d {}"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    port_security_enabled_update \u003d \"update_port:port_security_enabled\""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def __init__(self):"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2F0Ik%3D","line":155,"in_reply_to":"AAAAPn%2F%2F7wI%3D","updated":"2013-06-20 15:37:36.000000000","message":"k","commit_id":"a327d8a21512c6ba54ff0df31a52b7c78a9c190a"}],"quantum/plugins/nicira/nvplib.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"869501b4b62688684561acb6ea23f9a4ac0be061","unresolved":false,"context_lines":[{"line_number":754,"context_line":""},{"line_number":755,"context_line":""},{"line_number":756,"context_line":"def do_request(*args, **kwargs):"},{"line_number":757,"context_line":"    \"\"\"Issue a request to a specified cluster if specified via kwargs"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    :param args: a list of positional arguments."},{"line_number":760,"context_line":"    :param kwargs: a list of keyworkds arguments."}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2Ff9s%3D","line":757,"updated":"2013-06-29 05:53:32.000000000","message":"You are violating conventions on multi-line docstrings according to:\nhttps://github.com/openstack/quantum/blob/master/HACKING.rst#docstrings\n\n:)","commit_id":"108ed524a3c52e8b326abff66a061017bbde2124"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":754,"context_line":""},{"line_number":755,"context_line":""},{"line_number":756,"context_line":"def do_request(*args, **kwargs):"},{"line_number":757,"context_line":"    \"\"\"Issue a request to a specified cluster if specified via kwargs"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"    :param args: a list of positional arguments."},{"line_number":760,"context_line":"    :param kwargs: a list of keyworkds arguments."}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAPn%2F%2FfvM%3D","line":757,"in_reply_to":"AAAAPn%2F%2Ff9s%3D","updated":"2013-06-29 08:55:10.000000000","message":"Ah that\u0027s retaliation!!!!\nWe\u0027re at war now!","commit_id":"108ed524a3c52e8b326abff66a061017bbde2124"}],"quantum/tests/unit/nicira/test_nicira_plugin.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":383,"context_line":"    def test_router_create_nvp_error_returns_500(self, vlan_id\u003dNone):"},{"line_number":384,"context_line":"        with mock.patch.object(nvplib,"},{"line_number":385,"context_line":"                               \u0027create_router_lport\u0027,"},{"line_number":386,"context_line":"                               new\u003dself._raise_nvp_api_exc):"},{"line_number":387,"context_line":"            with self._create_l3_ext_network(vlan_id) as net:"},{"line_number":388,"context_line":"                with self.subnet(network\u003dnet) as s:"},{"line_number":389,"context_line":"                    data \u003d {\u0027router\u0027: {\u0027tenant_id\u0027: \u0027whatever\u0027}}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FkcE%3D","line":386,"updated":"2013-05-30 11:15:52.000000000","message":"why not use:\n\nside_effect\u003dNvpApiClient.NvpApiException instead of new\u003d...","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":383,"context_line":"    def test_router_create_nvp_error_returns_500(self, vlan_id\u003dNone):"},{"line_number":384,"context_line":"        with mock.patch.object(nvplib,"},{"line_number":385,"context_line":"                               \u0027create_router_lport\u0027,"},{"line_number":386,"context_line":"                               new\u003dself._raise_nvp_api_exc):"},{"line_number":387,"context_line":"            with self._create_l3_ext_network(vlan_id) as net:"},{"line_number":388,"context_line":"                with self.subnet(network\u003dnet) as s:"},{"line_number":389,"context_line":"                    data \u003d {\u0027router\u0027: {\u0027tenant_id\u0027: \u0027whatever\u0027}}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fjp8%3D","line":386,"in_reply_to":"AAAAPH%2F%2FkcE%3D","updated":"2013-05-30 16:04:37.000000000","message":"Done","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":584,"context_line":"                body \u003d self._update(\u0027floatingips\u0027, fip[\u0027floatingip\u0027][\u0027id\u0027],"},{"line_number":585,"context_line":"                                    {\u0027floatingip\u0027: {\u0027port_id\u0027: None}})"},{"line_number":586,"context_line":"                body \u003d self._show(\u0027floatingips\u0027, fip[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":587,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027port_id\u0027], None)"},{"line_number":588,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027fixed_ip_address\u0027], None)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FkcA%3D","line":587,"updated":"2013-05-30 11:15:52.000000000","message":"self.assertNone()","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":584,"context_line":"                body \u003d self._update(\u0027floatingips\u0027, fip[\u0027floatingip\u0027][\u0027id\u0027],"},{"line_number":585,"context_line":"                                    {\u0027floatingip\u0027: {\u0027port_id\u0027: None}})"},{"line_number":586,"context_line":"                body \u003d self._show(\u0027floatingips\u0027, fip[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":587,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027port_id\u0027], None)"},{"line_number":588,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027fixed_ip_address\u0027], None)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fjp4%3D","line":587,"in_reply_to":"AAAAPH%2F%2FkcA%3D","updated":"2013-05-30 16:04:37.000000000","message":"Done","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":585,"context_line":"                                    {\u0027floatingip\u0027: {\u0027port_id\u0027: None}})"},{"line_number":586,"context_line":"                body \u003d self._show(\u0027floatingips\u0027, fip[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":587,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027port_id\u0027], None)"},{"line_number":588,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027fixed_ip_address\u0027], None)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"class NvpQoSTestExtensionManager(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fkb8%3D","line":588,"updated":"2013-05-30 11:15:52.000000000","message":"self.assertNone()","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":585,"context_line":"                                    {\u0027floatingip\u0027: {\u0027port_id\u0027: None}})"},{"line_number":586,"context_line":"                body \u003d self._show(\u0027floatingips\u0027, fip[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":587,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027port_id\u0027], None)"},{"line_number":588,"context_line":"                self.assertEqual(body[\u0027floatingip\u0027][\u0027fixed_ip_address\u0027], None)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"class NvpQoSTestExtensionManager(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fjps%3D","line":588,"in_reply_to":"AAAAPH%2F%2Fkb8%3D","updated":"2013-05-30 16:04:37.000000000","message":"Thanks. I tend to use this because I never remember on top of my head which one are python 2.7 only and which one are backported to unittest2","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"}],"quantum/tests/unit/nicira/test_nvplib.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self.addCleanup(self.mock_nvpapi.stop)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _build_tag_dict(self, tags):"},{"line_number":66,"context_line":"        # This syntax is needed for python 2.6 compatibility"},{"line_number":67,"context_line":"        tag_dict \u003d {}"},{"line_number":68,"context_line":"        for tag in tags:"},{"line_number":69,"context_line":"            tag_dict[tag[\u0027scope\u0027]] \u003d tag[\u0027tag\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fkbo%3D","line":66,"updated":"2013-05-30 11:15:52.000000000","message":"return dict((t[\u0027scope\u0027], t[\u0027tag\u0027]) for r in tags)","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":63,"context_line":"        self.addCleanup(self.mock_nvpapi.stop)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _build_tag_dict(self, tags):"},{"line_number":66,"context_line":"        # This syntax is needed for python 2.6 compatibility"},{"line_number":67,"context_line":"        tag_dict \u003d {}"},{"line_number":68,"context_line":"        for tag in tags:"},{"line_number":69,"context_line":"            tag_dict[tag[\u0027scope\u0027]] \u003d tag[\u0027tag\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fjpc%3D","line":66,"in_reply_to":"AAAAPH%2F%2Fkbo%3D","updated":"2013-05-30 16:04:37.000000000","message":"Right :)","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.assertEqual(sorted(gw_ids), sorted([r[\u0027uuid\u0027] for r in results]))"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_list_l2_gw_service_by_tenant(self):"},{"line_number":156,"context_line":"        gw_ids \u003d []"},{"line_number":157,"context_line":"        for name in (\u0027fake-1\u0027, \u0027fake-2\u0027):"},{"line_number":158,"context_line":"            gw_ids.append("},{"line_number":159,"context_line":"                self._create_gw_service(_uuid(), name, tenant_id\u003dname)[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FkbU%3D","line":156,"updated":"2013-05-30 11:15:52.000000000","message":"gw_ids \u003d [\n    self._create_gw_service(_uuid(), name, tenant_id\u003dname)[\u0027uuid\u0027])\n    for name in (\u0027fake-1\u0027, \u0027fake-2\u0027)\n]","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.assertEqual(sorted(gw_ids), sorted([r[\u0027uuid\u0027] for r in results]))"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_list_l2_gw_service_by_tenant(self):"},{"line_number":156,"context_line":"        gw_ids \u003d []"},{"line_number":157,"context_line":"        for name in (\u0027fake-1\u0027, \u0027fake-2\u0027):"},{"line_number":158,"context_line":"            gw_ids.append("},{"line_number":159,"context_line":"                self._create_gw_service(_uuid(), name, tenant_id\u003dname)[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FjpY%3D","line":156,"in_reply_to":"AAAAPH%2F%2FkbU%3D","updated":"2013-05-30 16:04:37.000000000","message":"Done","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":470,"context_line":"        nvplib.delete_router_lport(self.fake_cluster, lrouter[\u0027uuid\u0027],"},{"line_number":471,"context_line":"                                   lrouter_port[\u0027uuid\u0027])"},{"line_number":472,"context_line":"        ports \u003d nvplib.query_lrouter_lports(self.fake_cluster, lrouter[\u0027uuid\u0027])"},{"line_number":473,"context_line":"        self.assertEqual(len(ports), 0)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def test_delete_lrouter_port_nonexistent_router_raises(self):"},{"line_number":476,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FkbM%3D","line":473,"updated":"2013-05-30 11:15:52.000000000","message":"self.assertFalse(ports)","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":470,"context_line":"        nvplib.delete_router_lport(self.fake_cluster, lrouter[\u0027uuid\u0027],"},{"line_number":471,"context_line":"                                   lrouter_port[\u0027uuid\u0027])"},{"line_number":472,"context_line":"        ports \u003d nvplib.query_lrouter_lports(self.fake_cluster, lrouter[\u0027uuid\u0027])"},{"line_number":473,"context_line":"        self.assertEqual(len(ports), 0)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    def test_delete_lrouter_port_nonexistent_router_raises(self):"},{"line_number":476,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FjpQ%3D","line":473,"in_reply_to":"AAAAPH%2F%2FkbM%3D","updated":"2013-05-30 16:04:37.000000000","message":"Done","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":672,"context_line":"                                        \u002710.0.0.1\u0027)"},{"line_number":673,"context_line":"        with mock.patch.object(self.fake_cluster.api_client,"},{"line_number":674,"context_line":"                               \u0027get_nvp_version\u0027,"},{"line_number":675,"context_line":"                               new\u003dlambda: version):"},{"line_number":676,"context_line":"            nvplib.create_lrouter_dnat_rule("},{"line_number":677,"context_line":"                self.fake_cluster, lrouter[\u0027uuid\u0027], \u0027192.168.0.2\u0027, order\u003d200,"},{"line_number":678,"context_line":"                dest_port\u003ddest_port,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fka8%3D","line":675,"updated":"2013-05-30 11:15:52.000000000","message":"replace new\u003d with:\n\nreturn_value\u003dversion","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":672,"context_line":"                                        \u002710.0.0.1\u0027)"},{"line_number":673,"context_line":"        with mock.patch.object(self.fake_cluster.api_client,"},{"line_number":674,"context_line":"                               \u0027get_nvp_version\u0027,"},{"line_number":675,"context_line":"                               new\u003dlambda: version):"},{"line_number":676,"context_line":"            nvplib.create_lrouter_dnat_rule("},{"line_number":677,"context_line":"                self.fake_cluster, lrouter[\u0027uuid\u0027], \u0027192.168.0.2\u0027, order\u003d200,"},{"line_number":678,"context_line":"                dest_port\u003ddest_port,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FjpM%3D","line":675,"in_reply_to":"AAAAPH%2F%2Fka8%3D","updated":"2013-05-30 16:04:37.000000000","message":"Done","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":1081,"context_line":"        # mock do_request"},{"line_number":1082,"context_line":"        with mock.patch.object(nvplib, \u0027do_request\u0027, new\u003dfakedorequest):"},{"line_number":1083,"context_line":"            version \u003d nvplib.get_cluster_version(\u0027whatever\u0027)"},{"line_number":1084,"context_line":"            self.assertEqual(version, None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2Fkas%3D","line":1084,"updated":"2013-05-30 11:15:52.000000000","message":".assertNone()","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":1081,"context_line":"        # mock do_request"},{"line_number":1082,"context_line":"        with mock.patch.object(nvplib, \u0027do_request\u0027, new\u003dfakedorequest):"},{"line_number":1083,"context_line":"            version \u003d nvplib.get_cluster_version(\u0027whatever\u0027)"},{"line_number":1084,"context_line":"            self.assertEqual(version, None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAPH%2F%2FjpI%3D","line":1084,"in_reply_to":"AAAAPH%2F%2Fkas%3D","updated":"2013-05-30 16:04:37.000000000","message":"Done","commit_id":"b12eb544ec4b14da109a7f953c7ce7e2ab4597b7"}]}
