)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"b50615b5ab49e30e983dba6b96afeaa561c429ec","unresolved":false,"context_lines":[{"line_number":17,"context_line":"As a side-effect use newer pylint version, and fix the problems reported"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I701c89ecc890a1d866815b5401cd4c022c51c9c4"},{"line_number":20,"context_line":"Depends-On: https://review.opendev.org/#/c/708965/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"9f560f44_c5019d08","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":50},"updated":"2020-08-05 07:03:51.000000000","message":"nit: We can remove the depends-on tag as this patch is already merged.","commit_id":"96c266c9a797e44e43ce01f2469156eb285e9f0f"}],"bgpvpn_dashboard/test/settings.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"db3f7cf46fbb1dcb7a386196257b16f26fb00750","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# pop these keys to avoid log warnings about deprecation"},{"line_number":25,"context_line":"# update_dashboards will populate them anyway"},{"line_number":26,"context_line":"HORIZON_CONFIG.pop(\u0027dashboards\u0027, None)    # noqa: F405"},{"line_number":27,"context_line":"HORIZON_CONFIG.pop(\u0027default_dashboard\u0027, None)  # noqa: F405"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_d2650347","line":26,"range":{"start_line":26,"start_character":38,"end_line":26,"end_character":42},"updated":"2020-03-12 14:23:31.000000000","message":"nit: too many spaces","commit_id":"19236a7c46070a98bf817d603e3b8b02764b11c1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"80c66abe2935aa1cfd48cb04f852e094943e91fd","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# pop these keys to avoid log warnings about deprecation"},{"line_number":25,"context_line":"# update_dashboards will populate them anyway"},{"line_number":26,"context_line":"HORIZON_CONFIG.pop(\u0027dashboards\u0027, None)    # noqa: F405"},{"line_number":27,"context_line":"HORIZON_CONFIG.pop(\u0027default_dashboard\u0027, None)  # noqa: F405"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_17991f78","line":26,"range":{"start_line":26,"start_character":38,"end_line":26,"end_character":42},"in_reply_to":"1fa4df85_d2650347","updated":"2020-03-16 14:12:30.000000000","message":"Done","commit_id":"19236a7c46070a98bf817d603e3b8b02764b11c1"}],"lower-constraints.txt":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"85a9ca2eb9a52ab8459b3d2662a4e3e3d52c909d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"future\u003d\u003d0.16.0"},{"line_number":35,"context_line":"futurist\u003d\u003d1.2.0"},{"line_number":36,"context_line":"greenlet\u003d\u003d0.4.10"},{"line_number":37,"context_line":"hacking\u003d\u003d0.12.0"},{"line_number":38,"context_line":"horizon\u003d\u003d17.1.0"},{"line_number":39,"context_line":"httplib2\u003d\u003d0.9.1"},{"line_number":40,"context_line":"idna\u003d\u003d2.6"}],"source_content_type":"text/plain","patch_set":4,"id":"1f493fa4_e7499b32","line":37,"updated":"2020-05-07 11:24:27.000000000","message":"remove hacking here as well","commit_id":"13143a48961327ceb261dab552ff0a45b86e56c6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8f4c149eeda29fa3cae99e163d412a28e392298d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"future\u003d\u003d0.16.0"},{"line_number":35,"context_line":"futurist\u003d\u003d1.2.0"},{"line_number":36,"context_line":"greenlet\u003d\u003d0.4.10"},{"line_number":37,"context_line":"hacking\u003d\u003d0.12.0"},{"line_number":38,"context_line":"horizon\u003d\u003d17.1.0"},{"line_number":39,"context_line":"httplib2\u003d\u003d0.9.1"},{"line_number":40,"context_line":"idna\u003d\u003d2.6"}],"source_content_type":"text/plain","patch_set":4,"id":"ff570b3c_8f6474bb","line":37,"in_reply_to":"1f493fa4_e7499b32","updated":"2020-05-11 14:04:08.000000000","message":"Thanks Done","commit_id":"13143a48961327ceb261dab552ff0a45b86e56c6"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"673f75453ccb55cb632c69903d295c3677897269","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ff570b3c_5c497130","updated":"2020-05-25 07:55:19.000000000","message":"Shouldn\u0027t we upgrade the versions here, rather than remove modules from this list ?","commit_id":"7ea06645dab1d5c1ff6017c615e52db646c348e3"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"de5ee7ff2d122a9ed97f16c04a541de0a0612293","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ff570b3c_bc31ada5","in_reply_to":"ff570b3c_5c497130","updated":"2020-05-25 08:00:29.000000000","message":"Removing them is fine, they are not needed for installation.\n\nThe requirements-check job would complain if essential entries are removed.","commit_id":"7ea06645dab1d5c1ff6017c615e52db646c348e3"}],"networking_bgpvpn/neutron/db/bgpvpn_db.py":[{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"7afda029f6ee099c044d94d26ebac8dd0904aab2","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    return route"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class BGPVPNPluginDb(object):  # pylint: disable\u003duseless-object-inheritance"},{"line_number":245,"context_line":"    \"\"\"BGPVPN service plugin database class using SQLAlchemy models.\"\"\""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def __new__(cls, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff570b3c_2f5d6848","line":244,"updated":"2020-06-09 06:42:28.000000000","message":"remove object here ?","commit_id":"8fbc437e3a3f3d6dab9e1ccfde95ff1d93fad2fe"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f5f2e8d7a19196a17523c049f599c564f9541198","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    return route"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class BGPVPNPluginDb(object):  # pylint: disable\u003duseless-object-inheritance"},{"line_number":245,"context_line":"    \"\"\"BGPVPN service plugin database class using SQLAlchemy models.\"\"\""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def __new__(cls, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff570b3c_f2da3749","line":244,"in_reply_to":"ff570b3c_2f5d6848","updated":"2020-06-09 07:34:13.000000000","message":"again the obvious solution","commit_id":"8fbc437e3a3f3d6dab9e1ccfde95ff1d93fad2fe"}],"networking_bgpvpn/neutron/db/migration/alembic_migrations/env.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d0c317961802a744d6026065d2a2635130b816e1","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import sqlalchemy as sa"},{"line_number":21,"context_line":"from sqlalchemy import event"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron_lib.db import model_base"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"MYSQL_ENGINE \u003d None"},{"line_number":26,"context_line":"BGPVPN_VERSION_TABLE \u003d \u0027alembic_version_bgpvpn\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_e58f6427","line":23,"updated":"2020-06-25 03:01:31.000000000","message":"Why is it needed? neutron_lib is a third-party import from networking-bgpvpn perspective. What requires us to do it?\n\n(I see similar import changes in other files too. This is the first place I noticed it, so I comment it here only.)","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5750363f7c6c6d72060f8515b88a9922c6f78013","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import sqlalchemy as sa"},{"line_number":21,"context_line":"from sqlalchemy import event"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from neutron_lib.db import model_base"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"MYSQL_ENGINE \u003d None"},{"line_number":26,"context_line":"BGPVPN_VERSION_TABLE \u003d \u0027alembic_version_bgpvpn\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_7e129063","line":23,"in_reply_to":"bf51134e_e58f6427","updated":"2020-06-29 16:43:59.000000000","message":"True.\nI can\u0027t remember why exactly I changed this line","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"}],"networking_bgpvpn/neutron/db/migration/alembic_migrations/versions/newton/contract/23ce05e0a19f_rename_tenant_to_project.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d0c317961802a744d6026065d2a2635130b816e1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import sqlalchemy as sa"},{"line_number":18,"context_line":"from sqlalchemy.engine import reflection"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"\"\"\"rename tenant to project"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Revision ID: 010308b06b49"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_65923459","line":20,"updated":"2020-06-25 03:01:31.000000000","message":"It sounds a bit tricky to me to place imports before the module docstring, but it matches what we did in the neutron repo. While I am not a fan of this style, I am okay with it.","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"}],"networking_bgpvpn/neutron/extensions/bgpvpn.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"57143bb089157f671c45f087b445b54e74f380e1","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api import extensions"},{"line_number":21,"context_line":"from neutron.api.v2 import base"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_a02797b6","line":18,"updated":"2020-07-06 07:46:19.000000000","message":"why this is in separate import group and not in the same group with imports from neutron and neutron_lib?","commit_id":"408dc386bc9c01d652a912e6aa0aa71912b42c8f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"dec209bf9a1d117845971c94f28ad27138642799","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api import extensions"},{"line_number":21,"context_line":"from neutron.api.v2 import base"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_61f57aed","line":18,"in_reply_to":"bf51134e_5bee6cb4","updated":"2020-07-06 16:29:08.000000000","message":"you are right, I moved back to the original situation, where 3 3rd party groups were, but without my change :-)","commit_id":"408dc386bc9c01d652a912e6aa0aa71912b42c8f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"706b3f9e9d536dadc8b351a6d939862892e77bcd","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api import extensions"},{"line_number":21,"context_line":"from neutron.api.v2 import base"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_bbd1885a","line":18,"in_reply_to":"bf51134e_a02797b6","updated":"2020-07-06 09:16:16.000000000","message":"My idea, and how I understand import groups, oslo_log is a 3rd party from bgpvpn\u0027s perspective.","commit_id":"408dc386bc9c01d652a912e6aa0aa71912b42c8f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"374398145fb992436d090271f3ce77439b79ec5e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api import extensions"},{"line_number":21,"context_line":"from neutron.api.v2 import base"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_5bee6cb4","line":18,"in_reply_to":"bf51134e_bbd1885a","updated":"2020-07-06 09:41:06.000000000","message":"yes, but IMO neutron_lib and neutron is also same 3rd party from this perspective, isn\u0027t it?\nNow in fact You have 4 groups of imports here.","commit_id":"408dc386bc9c01d652a912e6aa0aa71912b42c8f"}],"networking_bgpvpn/neutron/extensions/bgpvpn_routes_control.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"57143bb089157f671c45f087b445b54e74f380e1","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api import extensions"},{"line_number":21,"context_line":"from neutron.api.v2 import base"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_802a537b","line":18,"updated":"2020-07-06 07:46:19.000000000","message":"same comment applies too and in all other similar places","commit_id":"408dc386bc9c01d652a912e6aa0aa71912b42c8f"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"706b3f9e9d536dadc8b351a6d939862892e77bcd","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_log import log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api import extensions"},{"line_number":21,"context_line":"from neutron.api.v2 import base"}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_fbcb00a2","line":18,"in_reply_to":"bf51134e_802a537b","updated":"2020-07-06 09:16:16.000000000","message":"see my answer https://review.opendev.org/#/c/710447/11/networking_bgpvpn/neutron/extensions/bgpvpn.py@18","commit_id":"408dc386bc9c01d652a912e6aa0aa71912b42c8f"}],"networking_bgpvpn/neutron/services/service_drivers/bagpipe/bagpipe.py":[{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"4729aede4e9f11a1995ffdce79e2edf1103f52a9","unresolved":false,"context_lines":[{"line_number":156,"context_line":"def get_networks_for_router(context, router_id):"},{"line_number":157,"context_line":"    ports \u003d get_router_ports(context, router_id)"},{"line_number":158,"context_line":"    if ports:"},{"line_number":159,"context_line":"        # pylint: disable\u003dconsider-using-set-comprehension"},{"line_number":160,"context_line":"        return set([port[\u0027network_id\u0027] for port in ports])"},{"line_number":161,"context_line":"    else:"},{"line_number":162,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff570b3c_ed7d54b2","line":159,"updated":"2020-06-07 12:26:24.000000000","message":"Why not use a set comprehension here ?","commit_id":"34e089757ce019dbd01150addd0bc123a10da52a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"65cc5735f0605134b8b431c0df71f08bed63a69a","unresolved":false,"context_lines":[{"line_number":156,"context_line":"def get_networks_for_router(context, router_id):"},{"line_number":157,"context_line":"    ports \u003d get_router_ports(context, router_id)"},{"line_number":158,"context_line":"    if ports:"},{"line_number":159,"context_line":"        # pylint: disable\u003dconsider-using-set-comprehension"},{"line_number":160,"context_line":"        return set([port[\u0027network_id\u0027] for port in ports])"},{"line_number":161,"context_line":"    else:"},{"line_number":162,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff570b3c_61b5c5d0","line":159,"in_reply_to":"ff570b3c_ed7d54b2","updated":"2020-06-08 13:51:35.000000000","message":"Thanks for making me see the obvious solution :-)","commit_id":"34e089757ce019dbd01150addd0bc123a10da52a"}],"networking_bgpvpn/neutron/services/service_drivers/driver_api.py":[{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"7afda029f6ee099c044d94d26ebac8dd0904aab2","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# pylint: disable\u003duseless-object-inheritance"},{"line_number":27,"context_line":"class BGPVPNDriverBase(object, metaclass\u003dabc.ABCMeta):"},{"line_number":28,"context_line":"    \"\"\"BGPVPNDriver interface for driver"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    That driver interface does not persist BGPVPN data in any database. The"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff570b3c_0f5a244f","line":27,"updated":"2020-06-09 06:42:28.000000000","message":"remove \u0027object\u0027 here ?","commit_id":"8fbc437e3a3f3d6dab9e1ccfde95ff1d93fad2fe"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f5f2e8d7a19196a17523c049f599c564f9541198","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# pylint: disable\u003duseless-object-inheritance"},{"line_number":27,"context_line":"class BGPVPNDriverBase(object, metaclass\u003dabc.ABCMeta):"},{"line_number":28,"context_line":"    \"\"\"BGPVPNDriver interface for driver"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    That driver interface does not persist BGPVPN data in any database. The"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff570b3c_d2df3338","line":27,"in_reply_to":"ff570b3c_0f5a244f","updated":"2020-06-09 07:34:13.000000000","message":"Done","commit_id":"8fbc437e3a3f3d6dab9e1ccfde95ff1d93fad2fe"}],"networking_bgpvpn/neutronclient/neutron/v2_0/bgpvpn/bgpvpn.py":[{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"4729aede4e9f11a1995ffdce79e2edf1103f52a9","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        client, BGPVPN.resource, name_or_id)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"class BGPVPNAssociation(object):  # pylint: disable\u003duseless-object-inheritance"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":135,"context_line":"        parser.add_argument(\u0027bgpvpn\u0027, metavar\u003d\u0027BGPVPN\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff570b3c_cd7850c2","line":132,"updated":"2020-06-07 12:26:24.000000000","message":"Why not remove \u0027object\u0027 here ?\nSince we\u0027re dropping python 2 support...\n\n(would apply to other places as well)","commit_id":"34e089757ce019dbd01150addd0bc123a10da52a"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"65cc5735f0605134b8b431c0df71f08bed63a69a","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        client, BGPVPN.resource, name_or_id)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"class BGPVPNAssociation(object):  # pylint: disable\u003duseless-object-inheritance"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":135,"context_line":"        parser.add_argument(\u0027bgpvpn\u0027, metavar\u003d\u0027BGPVPN\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff570b3c_81b459d3","line":132,"in_reply_to":"ff570b3c_cd7850c2","updated":"2020-06-08 13:51:35.000000000","message":"I can\u0027t recall why I left here object.... thanks","commit_id":"34e089757ce019dbd01150addd0bc123a10da52a"}],"networking_bgpvpn/tests/functional/db/test_migrations.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d0c317961802a744d6026065d2a2635130b816e1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            name \u003d\u003d VERSION_TABLE or"},{"line_number":51,"context_line":"            name in EXTERNAL_TABLES or"},{"line_number":52,"context_line":"            any([match in name for match in IGNORED_TABLES_MATCH])"},{"line_number":53,"context_line":"        ):"},{"line_number":54,"context_line":"            return False"},{"line_number":55,"context_line":"        if type_ \u003d\u003d \u0027index\u0027 and reflected and name.startswith(\"idx_autoinc_\"):"},{"line_number":56,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_657b5427","line":53,"updated":"2020-06-25 03:01:31.000000000","message":"IMO we usually do like:\n\n  if (type_ \u003d\u003d \"table\" and\n      (name.startswith(\"alembic\") or\n       ... or\n       ...)):\n\nbut it is not blocking.","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5750363f7c6c6d72060f8515b88a9922c6f78013","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            name \u003d\u003d VERSION_TABLE or"},{"line_number":51,"context_line":"            name in EXTERNAL_TABLES or"},{"line_number":52,"context_line":"            any([match in name for match in IGNORED_TABLES_MATCH])"},{"line_number":53,"context_line":"        ):"},{"line_number":54,"context_line":"            return False"},{"line_number":55,"context_line":"        if type_ \u003d\u003d \u0027index\u0027 and reflected and name.startswith(\"idx_autoinc_\"):"},{"line_number":56,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_be0f0835","line":53,"in_reply_to":"bf51134e_657b5427","updated":"2020-06-29 16:43:59.000000000","message":"Done","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"}],"networking_bgpvpn/tests/unit/extensions/test_bgpvpn_rc_base.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d0c317961802a744d6026065d2a2635130b816e1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if service_type:"},{"line_number":72,"context_line":"            cfg.CONF.set_override(\u0027service_plugins\u0027, [plugin])"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self._plugin_patcher \u003d mock.patch(str(plugin), autospec\u003dTrue)"},{"line_number":75,"context_line":"        self.plugin \u003d self._plugin_patcher.start()"},{"line_number":76,"context_line":"        instance \u003d self.plugin.return_value"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_450d708e","line":74,"updated":"2020-06-25 03:01:31.000000000","message":"What does str(plugin) mean? I am a bit confused.","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5750363f7c6c6d72060f8515b88a9922c6f78013","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if service_type:"},{"line_number":72,"context_line":"            cfg.CONF.set_override(\u0027service_plugins\u0027, [plugin])"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self._plugin_patcher \u003d mock.patch(str(plugin), autospec\u003dTrue)"},{"line_number":75,"context_line":"        self.plugin \u003d self._plugin_patcher.start()"},{"line_number":76,"context_line":"        instance \u003d self.plugin.return_value"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_39015206","line":74,"in_reply_to":"bf51134e_450d708e","updated":"2020-06-29 16:43:59.000000000","message":"I can\u0027t recall why I added str(), perhaps there was a state with hacking2 where a warning was thrown here","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"}],"networking_bgpvpn/tests/unit/services/test_plugin.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d0c317961802a744d6026065d2a2635130b816e1","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        if not service_provider:"},{"line_number":65,"context_line":"            provider \u003d (bgpvpn_def.ALIAS + \u0027:dummy:networking_bgpvpn.neutron.\u0027"},{"line_number":66,"context_line":"                                           \u0027services.service_drivers.\u0027"},{"line_number":67,"context_line":"                                           \u0027driver_api.BGPVPNDriverRC:default\u0027)"},{"line_number":68,"context_line":"        else:"},{"line_number":69,"context_line":"            provider \u003d ("},{"line_number":70,"context_line":"                bgpvpn_def.ALIAS + \u0027:test:\u0027 + service_provider + \u0027:default\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_65251409","line":67,"updated":"2020-06-25 03:01:31.000000000","message":"question: What was the problem of the original code?\nThe new code usually breaks auto-indent by editors (e.g., when hitting TAB key).","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5750363f7c6c6d72060f8515b88a9922c6f78013","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        if not service_provider:"},{"line_number":65,"context_line":"            provider \u003d (bgpvpn_def.ALIAS + \u0027:dummy:networking_bgpvpn.neutron.\u0027"},{"line_number":66,"context_line":"                                           \u0027services.service_drivers.\u0027"},{"line_number":67,"context_line":"                                           \u0027driver_api.BGPVPNDriverRC:default\u0027)"},{"line_number":68,"context_line":"        else:"},{"line_number":69,"context_line":"            provider \u003d ("},{"line_number":70,"context_line":"                bgpvpn_def.ALIAS + \u0027:test:\u0027 + service_provider + \u0027:default\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"bf51134e_b9144245","line":67,"in_reply_to":"bf51134e_65251409","updated":"2020-06-29 16:43:59.000000000","message":"thanks, it is unnecessary to stop","commit_id":"d90afd79c92879f06c9250fa857131471c9d7261"}],"tox.ini":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"db3f7cf46fbb1dcb7a386196257b16f26fb00750","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  N536 \u003d neutron_lib.hacking.checks:assert_equal_none"},{"line_number":118,"context_line":"  N537 \u003d neutron_lib.hacking.translation_checks:no_translate_logs"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"#[hacking]"},{"line_number":121,"context_line":"#local-check-factory \u003d neutron_lib.hacking.checks.factory"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"[testenv:lower-constraints]"},{"line_number":124,"context_line":"deps \u003d"}],"source_content_type":"text/x-properties","patch_set":1,"id":"1fa4df85_327577cd","line":121,"range":{"start_line":120,"start_character":0,"end_line":121,"end_character":57},"updated":"2020-03-12 14:23:31.000000000","message":"Please delete instead of commenting.","commit_id":"19236a7c46070a98bf817d603e3b8b02764b11c1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"80c66abe2935aa1cfd48cb04f852e094943e91fd","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  N536 \u003d neutron_lib.hacking.checks:assert_equal_none"},{"line_number":118,"context_line":"  N537 \u003d neutron_lib.hacking.translation_checks:no_translate_logs"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"#[hacking]"},{"line_number":121,"context_line":"#local-check-factory \u003d neutron_lib.hacking.checks.factory"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"[testenv:lower-constraints]"},{"line_number":124,"context_line":"deps \u003d"}],"source_content_type":"text/x-properties","patch_set":1,"id":"1fa4df85_7783b305","line":121,"range":{"start_line":120,"start_character":0,"end_line":121,"end_character":57},"in_reply_to":"1fa4df85_327577cd","updated":"2020-03-16 14:12:30.000000000","message":"Done","commit_id":"19236a7c46070a98bf817d603e3b8b02764b11c1"}]}
