)]}'
{"nova/network/neutronv2/api.py":[{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"0aebfc376544817c1c958fd6b48f13fa2eaab173","unresolved":false,"context_lines":[{"line_number":756,"context_line":"                                                        neutron\u003dneutron)"},{"line_number":757,"context_line":"                       else get_client(context, admin\u003dTrue))"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        admin_client \u003d port_client if neutron !\u003d port_client else None"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"        #"},{"line_number":762,"context_line":"        # Validate ports and networks with neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_a51c6a6b","line":759,"updated":"2016-08-19 00:16:42.000000000","message":"This seems weird since the admin_client is used later, but the same code was used in the mitaka version...","commit_id":"436fc615e62d53c4612b19ab692ecea30acd2b42"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a24a0b5ddcab230f8c5cc2f23fd103c781b74909","unresolved":false,"context_lines":[{"line_number":756,"context_line":"                                                        neutron\u003dneutron)"},{"line_number":757,"context_line":"                       else get_client(context, admin\u003dTrue))"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        admin_client \u003d port_client if neutron !\u003d port_client else None"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"        #"},{"line_number":762,"context_line":"        # Validate ports and networks with neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_d10b1a2a","line":759,"in_reply_to":"3ac371cc_25afda7e","updated":"2016-08-19 08:21:14.000000000","message":"So... let me get a tidy up ready for this one.\n\nThis change to use the user token was very intentional.\n\nI think the better fix is to drop all the (if port_binding) stuff, as we really don\u0027t need that any more.","commit_id":"436fc615e62d53c4612b19ab692ecea30acd2b42"},{"author":{"_account_id":13637,"name":"Divya K Konoor","email":"dikonoor@in.ibm.com","username":"dikonoor"},"change_message_id":"d1219bf8e0342f6f3a7887171c1a503d4bfbf887","unresolved":false,"context_lines":[{"line_number":756,"context_line":"                                                        neutron\u003dneutron)"},{"line_number":757,"context_line":"                       else get_client(context, admin\u003dTrue))"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        admin_client \u003d port_client if neutron !\u003d port_client else None"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"        #"},{"line_number":762,"context_line":"        # Validate ports and networks with neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_25afda7e","line":759,"in_reply_to":"3ac371cc_a51c6a6b","updated":"2016-08-19 00:36:30.000000000","message":"I am not sure why this change has been made. Shouldn\u0027t passing admin\u003dTrue while getting the client at https://github.com/openstack/nova/blob/master/nova/network/neutronv2/api.py#L749 solve the problem?","commit_id":"436fc615e62d53c4612b19ab692ecea30acd2b42"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"818bc79b2ea30a4e21fc679c3f1285a5c7f27fda","unresolved":false,"context_lines":[{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        # TODO(johngarbutt) ideally we would create the port with the"},{"line_number":783,"context_line":"        # user\u0027s context, but some operators got used to us always"},{"line_number":784,"context_line":"        # creating ports using the user context. Lets continue using"},{"line_number":785,"context_line":"        # the admin context until we have a token that is both the"},{"line_number":786,"context_line":"        # user credentials and the Nova service user."},{"line_number":787,"context_line":"        requests_and_created_ports \u003d self._create_ports_for_instance("}],"source_content_type":"text/x-python","patch_set":16,"id":"ba5da102_9e71967a","line":784,"range":{"start_line":784,"start_character":35,"end_line":784,"end_character":39},"updated":"2016-11-05 19:53:13.000000000","message":"Nit: should this be \u0027admin\u0027?","commit_id":"114d0ddb35e04469bccf2c1b02f1602307716dd4"}],"nova/tests/unit/network/test_neutronv2.py":[{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"adaa20b5b79ac1967169d33ec796d9ef97120682","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                             \u0027floating_ip_address\u0027: \u0027172.0.1.2\u0027}]"},{"line_number":327,"context_line":"        self.dhcp_port_data1 \u003d [{\u0027fixed_ips\u0027: [{\u0027ip_address\u0027: \u002710.0.1.9\u0027,"},{"line_number":328,"context_line":"                                               \u0027subnet_id\u0027: \u0027my_subid1\u0027}],"},{"line_number":329,"context_line":"                                 \u0027admin_state_up\u0027: True,"},{"line_number":330,"context_line":"                                 \u0027status\u0027: \u0027ACTIVE\u0027}]"},{"line_number":331,"context_line":"        self.port_address2 \u003d \u002710.0.2.2\u0027"},{"line_number":332,"context_line":"        self.port_data2 \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ac06dbe_1e3f8fd7","line":329,"updated":"2016-08-24 17:32:40.000000000","message":"I\u0027ll put these back how they were so no change is picked up here.","commit_id":"41023a21b97ed4ee10115fd06d25e93580ce5734"},{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"adaa20b5b79ac1967169d33ec796d9ef97120682","unresolved":false,"context_lines":[{"line_number":777,"context_line":""},{"line_number":778,"context_line":"    def setUp(self):"},{"line_number":779,"context_line":"        super(TestNeutronv2, self).setUp()"},{"line_number":780,"context_line":"        neutronapi.get_client(mox.IgnoreArg()).MultipleTimes().\\"},{"line_number":781,"context_line":"            AndReturn(self.moxed_client)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"    def test_get_instance_nw_info_1(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ac06dbe_de1b377f","line":780,"updated":"2016-08-24 17:32:40.000000000","message":"Also need to fix this back to how it was so a change isn\u0027t picked up","commit_id":"41023a21b97ed4ee10115fd06d25e93580ce5734"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5cadad66a55e5b2752d942e20370a63a7c8b57ff","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        self._returned_nw_info \u003d []"},{"line_number":419,"context_line":"        self.mox.StubOutWithMock(neutronapi, \u0027get_client\u0027)"},{"line_number":420,"context_line":"        self.moxed_client \u003d self.mox.CreateMock(client.Client)"},{"line_number":421,"context_line":"        self.moxed_admin_client \u003d self.mox.CreateMock(client.Client)"},{"line_number":422,"context_line":"        self.addCleanup(CONF.reset)"},{"line_number":423,"context_line":"        self.addCleanup(self.mox.VerifyAll)"},{"line_number":424,"context_line":"        self.addCleanup(self.mox.UnsetStubs)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a430d35_1472f5ad","line":421,"range":{"start_line":421,"start_character":8,"end_line":421,"end_character":68},"updated":"2017-02-09 16:54:05.000000000","message":"Is this a use of Mox which I see before me?","commit_id":"173455344a3d7218a61420fb7b6bef77a085d221"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5cadad66a55e5b2752d942e20370a63a7c8b57ff","unresolved":false,"context_lines":[{"line_number":544,"context_line":""},{"line_number":545,"context_line":"            if macs:"},{"line_number":546,"context_line":"                port_req_body[\u0027port\u0027][\u0027mac_address\u0027] \u003d macs.pop()"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"            if has_extra_dhcp_opts:"},{"line_number":549,"context_line":"                port_req_body[\u0027port\u0027][\u0027extra_dhcp_opts\u0027] \u003d dhcp_options"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1a430d35_54647de4","line":547,"updated":"2017-02-09 16:54:05.000000000","message":"unrelated change","commit_id":"173455344a3d7218a61420fb7b6bef77a085d221"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5cadad66a55e5b2752d942e20370a63a7c8b57ff","unresolved":false,"context_lines":[{"line_number":1272,"context_line":"        self.instance \u003d fake_instance.fake_instance_obj(self.context,"},{"line_number":1273,"context_line":"                                                        **self.instance)"},{"line_number":1274,"context_line":"        api \u003d neutronapi.API()"},{"line_number":1275,"context_line":"        neutronapi.get_client("},{"line_number":1276,"context_line":"            mox.IgnoreArg(), admin\u003dTrue).AndReturn("},{"line_number":1277,"context_line":"            self.moxed_admin_client)"},{"line_number":1278,"context_line":"        neutronapi.get_client("}],"source_content_type":"text/x-python","patch_set":17,"id":"1a430d35_14803546","line":1275,"updated":"2017-02-09 16:54:05.000000000","message":"I really don\u0027t like the model that Mox uses...","commit_id":"173455344a3d7218a61420fb7b6bef77a085d221"}]}
