)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"8c7d999890f6377dad98bd1195005602a0a5e6d0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"from the push notifications cache."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I1f27eccb2a69c553631fdc12d34e9025925844c5"},{"line_number":13,"context_line":"Related-Bug: #1592028"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1f621f24_711cebc0","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"updated":"2020-11-09 08:18:14.000000000","message":"does \u0027Partial\u0027 suit better here?","commit_id":"8fd27f5b83e7cc77ed88f2702a476cdd8295f8ff"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"9e4e92607ad26081298247c52491fa177a6c2f58","unresolved":false,"context_lines":[{"line_number":10,"context_line":"from the push notifications cache."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I1f27eccb2a69c553631fdc12d34e9025925844c5"},{"line_number":13,"context_line":"Related-Bug: #1592028"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1f621f24_d4fb2344","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"in_reply_to":"1f621f24_711cebc0","updated":"2020-11-09 21:24:47.000000000","message":"Yeah, it does. Done","commit_id":"8fd27f5b83e7cc77ed88f2702a476cdd8295f8ff"}],"neutron/agent/securitygroups_rpc.py":[{"author":{"_account_id":28159,"name":"Hang Yang","email":"hangyang@yahooinc.com","username":"hangyang"},"change_message_id":"8cd794912f8025db3e2df255a1aaaff05e185f45","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                self.refresh_firewall(devices)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def address_group_updated(self, address_group_id):"},{"line_number":216,"context_line":"        LOG.info(\"Address group updated %r\", security_groups)"},{"line_number":217,"context_line":"        # TODO(mlavalle) A follow up patch in the address groups implementation"},{"line_number":218,"context_line":"        # series will add more code here"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f65232a_26fab841","line":216,"range":{"start_line":216,"start_character":45,"end_line":216,"end_character":60},"updated":"2020-10-21 20:34:56.000000000","message":":s/security_groups/address_group_id","commit_id":"0174b5a077a805176263bbbc4460764cef437a3e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"02f68875a094524279d7dcd6fa357641e4000c96","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                self.refresh_firewall(devices)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def address_group_updated(self, address_group_id):"},{"line_number":216,"context_line":"        LOG.info(\"Address group updated %r\", security_groups)"},{"line_number":217,"context_line":"        # TODO(mlavalle) A follow up patch in the address groups implementation"},{"line_number":218,"context_line":"        # series will add more code here"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f65232a_29c60b69","line":216,"range":{"start_line":216,"start_character":45,"end_line":216,"end_character":60},"in_reply_to":"3f65232a_26fab841","updated":"2020-10-21 21:45:41.000000000","message":"Done","commit_id":"0174b5a077a805176263bbbc4460764cef437a3e"},{"author":{"_account_id":28159,"name":"Hang Yang","email":"hangyang@yahooinc.com","username":"hangyang"},"change_message_id":"8cd794912f8025db3e2df255a1aaaff05e185f45","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # series will add more code here"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def address_group_deleted(self, address_group_id):"},{"line_number":221,"context_line":"        LOG.info(\"Address group deleted %r\", security_groups)"},{"line_number":222,"context_line":"        # TODO(mlavalle) A follow up patch in the address groups implementation"},{"line_number":223,"context_line":"        # series will add more code here"},{"line_number":224,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f65232a_a6a3684f","line":221,"range":{"start_line":221,"start_character":45,"end_line":221,"end_character":60},"updated":"2020-10-21 20:34:56.000000000","message":"ditto","commit_id":"0174b5a077a805176263bbbc4460764cef437a3e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"02f68875a094524279d7dcd6fa357641e4000c96","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        # series will add more code here"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def address_group_deleted(self, address_group_id):"},{"line_number":221,"context_line":"        LOG.info(\"Address group deleted %r\", security_groups)"},{"line_number":222,"context_line":"        # TODO(mlavalle) A follow up patch in the address groups implementation"},{"line_number":223,"context_line":"        # series will add more code here"},{"line_number":224,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f65232a_89a0ffa7","line":221,"range":{"start_line":221,"start_character":45,"end_line":221,"end_character":60},"in_reply_to":"3f65232a_a6a3684f","updated":"2020-10-21 21:45:41.000000000","message":"Done","commit_id":"0174b5a077a805176263bbbc4460764cef437a3e"}],"neutron/api/rpc/handlers/securitygroups_rpc.py":[{"author":{"_account_id":28159,"name":"Hang Yang","email":"hangyang@yahooinc.com","username":"hangyang"},"change_message_id":"8cd794912f8025db3e2df255a1aaaff05e185f45","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        # error."},{"line_number":247,"context_line":"        raise NotImplementedError()"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def get_address_group_details(self, address_group_id):"},{"line_number":250,"context_line":"        ag_obj \u003d self.rcache.get_resource_by_id(resources.ADDRESSGROUP,"},{"line_number":251,"context_line":"                                                address_group_id)"},{"line_number":252,"context_line":"        if not ag_obj:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f65232a_2656382b","line":249,"range":{"start_line":249,"start_character":8,"end_line":249,"end_character":33},"updated":"2020-10-21 20:34:56.000000000","message":"what should be the caller of this method?","commit_id":"0174b5a077a805176263bbbc4460764cef437a3e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"02f68875a094524279d7dcd6fa357641e4000c96","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        # error."},{"line_number":247,"context_line":"        raise NotImplementedError()"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def get_address_group_details(self, address_group_id):"},{"line_number":250,"context_line":"        ag_obj \u003d self.rcache.get_resource_by_id(resources.ADDRESSGROUP,"},{"line_number":251,"context_line":"                                                address_group_id)"},{"line_number":252,"context_line":"        if not ag_obj:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f65232a_4921c7fb","line":249,"range":{"start_line":249,"start_character":8,"end_line":249,"end_character":33},"in_reply_to":"3f65232a_2656382b","updated":"2020-10-21 21:45:41.000000000","message":"The callback _handle_address_group_event in line 309 below is called when updates to address groups arrived from the RPC wire and got reflected in the resource cache. That callback in turn calls either of the two methods that I added to the security groups agent here:\n\nhttps://review.opendev.org/#/c/759117/2/neutron/agent/securitygroups_rpc.py@215\n\nThese methods initiate the processing in the security group agent of the updates to address groups. Those methods only received the address group id. At some point, those methods or methods called by them need to retrieve the entire address group","commit_id":"0174b5a077a805176263bbbc4460764cef437a3e"}],"neutron/tests/unit/api/rpc/handlers/test_securitygroups_rpc.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"872e808b4573d9dbe85122d908586f4f5cbaee38","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.api.rpc.handlers import securitygroups_rpc"},{"line_number":24,"context_line":"from neutron import objects"},{"line_number":25,"context_line":"from neutron.objects.port.extensions import port_security as psec"},{"line_number":26,"context_line":"from neutron.objects import address_group"},{"line_number":27,"context_line":"from neutron.objects import ports"},{"line_number":28,"context_line":"from neutron.objects import securitygroup"},{"line_number":29,"context_line":"from neutron.tests import base"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f65232a_cf7dd76f","line":26,"updated":"2020-10-22 00:59:42.000000000","message":"pep8: H306: imports not in alphabetical order (neutron.objects.port.extensions.port_security, neutron.objects.address_group)","commit_id":"6473272d6ed82c48ef4e95f60644aa061c9cc63e"}]}
