)]}'
{"neutron/agent/securitygroups_rpc.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"048e1f297a01f580387fcd4d27a1ac66b8462921","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _security_group_updated(self, security_groups, attribute):"},{"line_number":128,"context_line":"        devices \u003d []"},{"line_number":129,"context_line":"        for device in self.firewall.ports.values():"},{"line_number":130,"context_line":"            if set(device.get(attribute,"},{"line_number":131,"context_line":"                              [])).intersection("},{"line_number":132,"context_line":"                    set(security_groups)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F7Dk%3D","line":129,"updated":"2013-07-19 02:52:06.000000000","message":"would it make sense to insert before 129\n\nsec_grp_set \u003d set(security_groups)","commit_id":"c5de054b0af25e6bf4ce7b45d07f4fe55a6e6cae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"dc7d9e484493256effe0b4cc5cffeaecf5fd503d","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _security_group_updated(self, security_groups, attribute):"},{"line_number":128,"context_line":"        devices \u003d []"},{"line_number":129,"context_line":"        for device in self.firewall.ports.values():"},{"line_number":130,"context_line":"            if set(device.get(attribute,"},{"line_number":131,"context_line":"                              [])).intersection("},{"line_number":132,"context_line":"                    set(security_groups)):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F5ik%3D","line":129,"in_reply_to":"AAAAQn%2F%2F7Dk%3D","updated":"2013-07-19 16:28:05.000000000","message":"Done","commit_id":"c5de054b0af25e6bf4ce7b45d07f4fe55a6e6cae"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"048e1f297a01f580387fcd4d27a1ac66b8462921","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    def _security_group_updated(self, security_groups, attribute):"},{"line_number":128,"context_line":"        devices \u003d []"},{"line_number":129,"context_line":"        for device in self.firewall.ports.values():"},{"line_number":130,"context_line":"            if set(device.get(attribute,"},{"line_number":131,"context_line":"                              [])).intersection("},{"line_number":132,"context_line":"                    set(security_groups)):"},{"line_number":133,"context_line":"                    devices.append(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F7Ds%3D","line":130,"updated":"2013-07-19 02:52:06.000000000","message":"if src_grp_set \u0026 set(device.get(attribute, []):","commit_id":"c5de054b0af25e6bf4ce7b45d07f4fe55a6e6cae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"dc7d9e484493256effe0b4cc5cffeaecf5fd503d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    def _security_group_updated(self, security_groups, attribute):"},{"line_number":128,"context_line":"        devices \u003d []"},{"line_number":129,"context_line":"        for device in self.firewall.ports.values():"},{"line_number":130,"context_line":"            if set(device.get(attribute,"},{"line_number":131,"context_line":"                              [])).intersection("},{"line_number":132,"context_line":"                    set(security_groups)):"},{"line_number":133,"context_line":"                    devices.append(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F5go%3D","line":130,"in_reply_to":"AAAAQn%2F%2F7Ds%3D","updated":"2013-07-19 16:28:05.000000000","message":"Mark, I agree your suggestion is efficient and will read better.  I began by erring on the side of least code change but I\u0027m happy to push another patch with this change.","commit_id":"c5de054b0af25e6bf4ce7b45d07f4fe55a6e6cae"}],"neutron/tests/unit/test_security_groups_rpc.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"3536aecf69090baa66dd13f49eb5dde10eab5643","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        self.agent.prepare_devices_filter([\u0027fake_port_id\u0027])"},{"line_number":466,"context_line":"        self.agent.security_groups_rule_updated([\u0027fake_sgid1\u0027, \u0027fake_sgid3\u0027])"},{"line_number":467,"context_line":"        self.agent.refresh_firewall.assert_has_calls("},{"line_number":468,"context_line":"            [call.refresh_firewall([self.fake_device])])"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def test_security_groups_rule_not_updated(self):"},{"line_number":471,"context_line":"        self.agent.refresh_firewall \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F5Fg%3D","line":468,"updated":"2013-07-19 17:31:59.000000000","message":"Shouldn\u0027t we keep the tests with devices\u003dNone for increased test coverage?","commit_id":"b67bb1b758d176d4349caf0926bfdcc2b3e6bad2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a9bc51ef08116b62a3c4b86396875c055fb7de9","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        self.agent.prepare_devices_filter([\u0027fake_port_id\u0027])"},{"line_number":466,"context_line":"        self.agent.security_groups_rule_updated([\u0027fake_sgid1\u0027, \u0027fake_sgid3\u0027])"},{"line_number":467,"context_line":"        self.agent.refresh_firewall.assert_has_calls("},{"line_number":468,"context_line":"            [call.refresh_firewall([self.fake_device])])"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def test_security_groups_rule_not_updated(self):"},{"line_number":471,"context_line":"        self.agent.refresh_firewall \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F4%2BA%3D","line":468,"in_reply_to":"AAAAQn%2F%2F5Fg%3D","updated":"2013-07-19 18:28:49.000000000","message":"This code path will always call with devices\u003d[something] because the caller was changed to do so.  So, it is appropriate to change this test and not add another.","commit_id":"b67bb1b758d176d4349caf0926bfdcc2b3e6bad2"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0a9bc51ef08116b62a3c4b86396875c055fb7de9","unresolved":false,"context_lines":[{"line_number":491,"context_line":"        self.agent.security_groups_provider_updated()"},{"line_number":492,"context_line":"        self.agent.refresh_firewall.assert_has_calls("},{"line_number":493,"context_line":"            [call.refresh_firewall()])"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    def test_refresh_firewall(self):"},{"line_number":496,"context_line":"        self.agent.prepare_devices_filter([\u0027fake_port_id\u0027])"},{"line_number":497,"context_line":"        self.agent.refresh_firewall()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2F4%2BI%3D","line":494,"updated":"2013-07-19 18:28:49.000000000","message":"refresh_firewall is tested with devices\u003dNone here.  However, refresh_firewall needs a new test for devices!\u003dNone.  I will add such a test and resubmit.","commit_id":"b67bb1b758d176d4349caf0926bfdcc2b3e6bad2"}]}
