)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e260fbbf84f762e508eff3769d83c13f8603247","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"nova-net: Flatten class hierarchy for neutron SG tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We\u0027re going to want to merge this back into the parent once we drop"},{"line_number":10,"context_line":"support for the nova-network security group driver. Make this a little"},{"line_number":11,"context_line":"easier by reducing some of the redundant levels of classes currently"},{"line_number":12,"context_line":"found here."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_341e835f","line":9,"updated":"2019-12-03 15:01:51.000000000","message":"I was going to ask why not just drop the nova-net security group tests module rather than merge the neutron stuff into the nova-net security group tests, but I guess the idea is that since the neutron tests extend the nova-net tests, simply dropping the nova-net tests isn\u0027t a clean option since if we did we\u0027d have to move those into the neutron tests, or maybe that\u0027s your plan and what you mean by \"merge\".","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c1f7cddbbb9d0f2d2a4de1e854711434ad8ffe27","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"nova-net: Flatten class hierarchy for neutron SG tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We\u0027re going to want to merge this back into the parent once we drop"},{"line_number":10,"context_line":"support for the nova-network security group driver. Make this a little"},{"line_number":11,"context_line":"easier by reducing some of the redundant levels of classes currently"},{"line_number":12,"context_line":"found here."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa7e38b_d425afc0","line":9,"in_reply_to":"3fa7e38b_341e835f","updated":"2019-12-03 15:33:35.000000000","message":"Correct. We subclass the nova-network test class and only override some of the tests, so I wanted to fold in the overrides and keep the non-overridden tests","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"}],"nova/tests/unit/api/openstack/compute/test_neutron_security_groups.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2bb769826d6e1f0846c8e1029a89b6b83dd552ae","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class TestNeutronSecurityGroupsV21(test_security_groups.TestSecurityGroupsV21):"},{"line_number":42,"context_line":"    # Used to override set config in the base test in test_security_groups."},{"line_number":43,"context_line":"    use_neutron \u003d True"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_2c47024f","line":42,"range":{"start_line":42,"start_character":14,"end_line":42,"end_character":26},"updated":"2019-12-04 21:24:43.000000000","message":"one or the other?","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2bb769826d6e1f0846c8e1029a89b6b83dd552ae","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        super(TestNeutronSecurityGroupsV21, self).setUp()"},{"line_number":47,"context_line":"        cfg.CONF.set_override(\u0027use_neutron\u0027, True)"},{"line_number":48,"context_line":"        self.original_client \u003d neutron_api.get_client"},{"line_number":49,"context_line":"        neutron_api.get_client \u003d get_client"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_aca1b2f9","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":50},"updated":"2019-12-04 21:24:43.000000000","message":"redundant?","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e5a9f0c9449b40fd7c01cd06e930e9f262a062bd","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        super(TestNeutronSecurityGroupsV21, self).setUp()"},{"line_number":47,"context_line":"        cfg.CONF.set_override(\u0027use_neutron\u0027, True)"},{"line_number":48,"context_line":"        self.original_client \u003d neutron_api.get_client"},{"line_number":49,"context_line":"        neutron_api.get_client \u003d get_client"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_883617e7","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":50},"in_reply_to":"3fa7e38b_aca1b2f9","updated":"2019-12-05 14:30:55.000000000","message":"You\u0027re looking for https://review.opendev.org/#/c/696509/","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2bb769826d6e1f0846c8e1029a89b6b83dd552ae","unresolved":false,"context_lines":[{"line_number":434,"context_line":"    def setUp(self):"},{"line_number":435,"context_line":"        super(TestNeutronSecurityGroupRulesV21, self).setUp()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        cfg.CONF.set_override(\u0027use_neutron\u0027, True)"},{"line_number":438,"context_line":"        self.original_client \u003d neutron_api.get_client"},{"line_number":439,"context_line":"        neutron_api.get_client \u003d get_client"},{"line_number":440,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_ec97aa9b","line":437,"range":{"start_line":437,"start_character":8,"end_line":437,"end_character":50},"updated":"2019-12-04 21:24:43.000000000","message":"redundant?","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e5a9f0c9449b40fd7c01cd06e930e9f262a062bd","unresolved":false,"context_lines":[{"line_number":434,"context_line":"    def setUp(self):"},{"line_number":435,"context_line":"        super(TestNeutronSecurityGroupRulesV21, self).setUp()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        cfg.CONF.set_override(\u0027use_neutron\u0027, True)"},{"line_number":438,"context_line":"        self.original_client \u003d neutron_api.get_client"},{"line_number":439,"context_line":"        neutron_api.get_client \u003d get_client"},{"line_number":440,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_482c9f92","line":437,"range":{"start_line":437,"start_character":8,"end_line":437,"end_character":50},"in_reply_to":"3fa7e38b_ec97aa9b","updated":"2019-12-05 14:30:55.000000000","message":"ditto https://review.opendev.org/#/c/696509/4","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2bb769826d6e1f0846c8e1029a89b6b83dd552ae","unresolved":false,"context_lines":[{"line_number":435,"context_line":"        super(TestNeutronSecurityGroupRulesV21, self).setUp()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        cfg.CONF.set_override(\u0027use_neutron\u0027, True)"},{"line_number":438,"context_line":"        self.original_client \u003d neutron_api.get_client"},{"line_number":439,"context_line":"        neutron_api.get_client \u003d get_client"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"        id1 \u003d \u002711111111-1111-1111-1111-111111111111\u0027"},{"line_number":442,"context_line":"        sg_template1 \u003d test_security_groups.security_group_template("}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_2cb5c232","line":439,"range":{"start_line":438,"start_character":0,"end_line":439,"end_character":43},"updated":"2019-12-04 21:24:43.000000000","message":"Kinda feel like this...","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2bb769826d6e1f0846c8e1029a89b6b83dd552ae","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        neutron._fake_security_groups[id2] \u003d sg_template2"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"    def tearDown(self):"},{"line_number":453,"context_line":"        neutron_api.get_client \u003d self.original_client"},{"line_number":454,"context_line":"        get_client()._reset()"},{"line_number":455,"context_line":"        super(TestNeutronSecurityGroupRulesV21, self).tearDown()"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    def test_create_add_existing_rules_by_cidr(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_ccf2ee05","line":454,"range":{"start_line":453,"start_character":0,"end_line":454,"end_character":29},"updated":"2019-12-04 21:24:43.000000000","message":"...and this ought to be in the superclass\u0027s setUp/tearDown conditioned on use_neutron (or a different class var, if I\u0027ve missed something in the hierarchy).","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2bb769826d6e1f0846c8e1029a89b6b83dd552ae","unresolved":false,"context_lines":[{"line_number":511,"context_line":"    def setUp(self):"},{"line_number":512,"context_line":"        super(TestNeutronSecurityGroupsOutputTest, self).setUp()"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"        cfg.CONF.set_override(\u0027use_neutron\u0027, True)"},{"line_number":515,"context_line":"        self.original_client \u003d neutron_api.get_client"},{"line_number":516,"context_line":"        neutron_api.get_client \u003d get_client"},{"line_number":517,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_6cd97a82","line":514,"range":{"start_line":514,"start_character":8,"end_line":514,"end_character":50},"updated":"2019-12-04 21:24:43.000000000","message":"not redundant :)","commit_id":"c29d6dcf201658693dde92381f44195b981f2ec7"}]}
