)]}'
{"nova/network/security_group/openstack_driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5fca846b6f2cc476de4f3e3557b7bffea3a12b2b","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# TODO(stephenfin): Remove this since it\u0027s not needed with nova-net no longer"},{"line_number":24,"context_line":"# screwing things up"},{"line_number":25,"context_line":"def get_openstack_security_group_driver():"},{"line_number":26,"context_line":"    return importutils.import_object(NEUTRON_DRIVER)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_abc3df38","side":"PARENT","line":25,"updated":"2019-12-04 15:53:29.000000000","message":"Removing this wholesale will negate the performance fix to cache the driver as a singleton from https://review.opendev.org/#/c/697122/ - see how the API handles SchedulerReportClient as a singleton. If we remove this code with the cache then we should do something similar with making the neutron security group API a singleton.","commit_id":"3f87ae4c6ba805f837a9c66ef3793e48716b36d8"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"025536c16a3ab3400b199781381101b1098f5a64","unresolved":false,"context_lines":[{"line_number":11089,"context_line":"            self.context, instance, CONF.host, action\u003d\u0027unlock\u0027,"},{"line_number":11090,"context_line":"            source\u003d\u0027nova-api\u0027)"},{"line_number":11091,"context_line":""},{"line_number":11092,"context_line":"    def test_add_remove_security_group(self):"},{"line_number":11093,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":11094,"context_line":""},{"line_number":11095,"context_line":"        self.compute.build_and_run_instance(self.context,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_807df9e7","side":"PARENT","line":11092,"updated":"2019-12-16 18:58:22.000000000","message":"I guess this is removed because even though the neutron security group driver implements add_to_instance and remove_from_instance, it\u0027s removed here since it would be redundant with existing test coverage of the neutron security group driver, right?","commit_id":"d5c9423e40dc7e70c751baa1c3ea7c8896cb960a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"994ee57a60e14bc0abea9555e503f0405696ec0d","unresolved":false,"context_lines":[{"line_number":11089,"context_line":"            self.context, instance, CONF.host, action\u003d\u0027unlock\u0027,"},{"line_number":11090,"context_line":"            source\u003d\u0027nova-api\u0027)"},{"line_number":11091,"context_line":""},{"line_number":11092,"context_line":"    def test_add_remove_security_group(self):"},{"line_number":11093,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":11094,"context_line":""},{"line_number":11095,"context_line":"        self.compute.build_and_run_instance(self.context,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_6e5a2752","side":"PARENT","line":11092,"in_reply_to":"3fa7e38b_807df9e7","updated":"2019-12-17 10:09:38.000000000","message":"Yup.","commit_id":"d5c9423e40dc7e70c751baa1c3ea7c8896cb960a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"025536c16a3ab3400b199781381101b1098f5a64","unresolved":false,"context_lines":[{"line_number":11144,"context_line":"    def test_secgroup_refresh(self, mock_get, mock_refresh):"},{"line_number":11145,"context_line":"        mock_get.return_value \u003d mock.sentinel.instances"},{"line_number":11146,"context_line":""},{"line_number":11147,"context_line":"        self.security_group_api.trigger_members_refresh(mock.sentinel.ctxt,"},{"line_number":11148,"context_line":"                                                        mock.sentinel.ids)"},{"line_number":11149,"context_line":""},{"line_number":11150,"context_line":"        mock_get.assert_called_once_with(mock.sentinel.ctxt, mock.sentinel.ids)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_c05c5182","side":"PARENT","line":11147,"range":{"start_line":11147,"start_character":32,"end_line":11147,"end_character":55},"updated":"2019-12-16 18:58:22.000000000","message":"And this doesn\u0027t exist for the neutron secgroup driver and was only called by the _do_trigger_security_group_members_refresh_for_instance method in the NetworkManager.","commit_id":"d5c9423e40dc7e70c751baa1c3ea7c8896cb960a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"994ee57a60e14bc0abea9555e503f0405696ec0d","unresolved":false,"context_lines":[{"line_number":11144,"context_line":"    def test_secgroup_refresh(self, mock_get, mock_refresh):"},{"line_number":11145,"context_line":"        mock_get.return_value \u003d mock.sentinel.instances"},{"line_number":11146,"context_line":""},{"line_number":11147,"context_line":"        self.security_group_api.trigger_members_refresh(mock.sentinel.ctxt,"},{"line_number":11148,"context_line":"                                                        mock.sentinel.ids)"},{"line_number":11149,"context_line":""},{"line_number":11150,"context_line":"        mock_get.assert_called_once_with(mock.sentinel.ctxt, mock.sentinel.ids)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_ee2b7798","side":"PARENT","line":11147,"range":{"start_line":11147,"start_character":32,"end_line":11147,"end_character":55},"in_reply_to":"3fa7e38b_c05c5182","updated":"2019-12-17 10:09:38.000000000","message":"Yeah, I actually remove this either here or in a subsequent patch due to its new-found uselessness","commit_id":"d5c9423e40dc7e70c751baa1c3ea7c8896cb960a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"025536c16a3ab3400b199781381101b1098f5a64","unresolved":false,"context_lines":[{"line_number":11158,"context_line":"    def test_secrule_refresh(self, mock_get, mock_refresh):"},{"line_number":11159,"context_line":"        mock_get.return_value \u003d mock.sentinel.instances"},{"line_number":11160,"context_line":""},{"line_number":11161,"context_line":"        self.security_group_api.trigger_rules_refresh(mock.sentinel.ctxt,"},{"line_number":11162,"context_line":"                                                      mock.sentinel.id)"},{"line_number":11163,"context_line":""},{"line_number":11164,"context_line":"        mock_get.assert_called_once_with(mock.sentinel.ctxt, mock.sentinel.id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_40d5c1b7","side":"PARENT","line":11161,"range":{"start_line":11161,"start_character":32,"end_line":11161,"end_character":53},"updated":"2019-12-16 18:58:22.000000000","message":"And this is a pass in the base secgroup class but doesn\u0027t really make sense for the neutron driver since refreshing a group when rules are added/removed is the job of neutron. Now we still have SecurityGroupRulesController in the API which proxies to neutron before microversion 2.35 but the refresh stuff isn\u0027t native to nova.","commit_id":"d5c9423e40dc7e70c751baa1c3ea7c8896cb960a"}]}
