)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"19448b22d18ac50411b9b6ec436abf9eed03b801","unresolved":false,"context_lines":[{"line_number":7,"context_line":"L2Gateway version 2 driver for OpenDaylight"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ia2ae3f70b5e6c02611e54ed6ca94b35d3526f659"},{"line_number":10,"context_line":"Partial-Bug: 1656900"},{"line_number":11,"context_line":"Implements: blueprint l2gateway-v2-driver"},{"line_number":12,"context_line":"Co-Authored-by: Vishal Thapar \u003cvishal.thapar@ericsson.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"1a430d35_19ece68e","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":20},"updated":"2017-02-09 19:51:16.000000000","message":"Can you please mention that functional test will come as another patch?","commit_id":"9b09a5b9b044225872c4213b596004cb3ef18a9e"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"30e8d3dd9dfdd6bc5da163273ba47d92095d0821","unresolved":false,"context_lines":[{"line_number":7,"context_line":"L2Gateway version 2 driver for OpenDaylight"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ia2ae3f70b5e6c02611e54ed6ca94b35d3526f659"},{"line_number":10,"context_line":"Partial-Bug: 1656900"},{"line_number":11,"context_line":"Implements: blueprint l2gateway-v2-driver"},{"line_number":12,"context_line":"Co-Authored-by: Vishal Thapar \u003cvishal.thapar@ericsson.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"fa31d9ce_4d906d96","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":20},"in_reply_to":"1a430d35_19ece68e","updated":"2017-02-09 20:57:13.000000000","message":"Done","commit_id":"9b09a5b9b044225872c4213b596004cb3ef18a9e"}],"devstack/README.rst":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"2d6fb7c3cb9452e63849581486b8c41670696ac1","unresolved":false,"context_lines":[{"line_number":150,"context_line":"  where the value represents the entire path to the OpenDaylight"},{"line_number":151,"context_line":"  l2gw service driver."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"- After stacking completes, we are all set to use bgpvpn-as-a-service with"},{"line_number":154,"context_line":"  OpenDaylight."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a461143_bf942343","line":153,"range":{"start_line":153,"start_character":50,"end_line":153,"end_character":69},"updated":"2017-01-27 21:50:53.000000000","message":"typo. copy-and-paste bug?","commit_id":"52e45eb7c078b90bc9f250b1e41a21eaffcfa6cc"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"3657b9cbdc61777103ac338c3fda09e619b6d9ed","unresolved":false,"context_lines":[{"line_number":150,"context_line":"  where the value represents the entire path to the OpenDaylight"},{"line_number":151,"context_line":"  l2gw service driver."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"- After stacking completes, we are all set to use bgpvpn-as-a-service with"},{"line_number":154,"context_line":"  OpenDaylight."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3a461143_9e1e426e","line":153,"range":{"start_line":153,"start_character":50,"end_line":153,"end_character":69},"in_reply_to":"3a461143_bf942343","updated":"2017-01-31 09:41:26.000000000","message":"Impact of doing two varied drivers at the same time.  Fixed it in next PS.","commit_id":"52e45eb7c078b90bc9f250b1e41a21eaffcfa6cc"}],"networking_odl/common/constants.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"18a0acd9091d39331bbe564807a9be578ea56555","unresolved":false,"context_lines":[{"line_number":49,"context_line":"ODL_SFC_PORT_CHAIN \u003d \u0027portchain\u0027"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"ODL_L2GATEWAY \u003d \u0027l2_gateway\u0027"},{"line_number":52,"context_line":"ODL_L2GATEWAY_CONNECTION \u003d \u0027l2gateway_connection\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"ODL_CREATE \u003d \u0027create\u0027"},{"line_number":55,"context_line":"ODL_UPDATE \u003d \u0027update\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_bd398fd9","line":52,"updated":"2017-01-21 03:15:13.000000000","message":"This is also duplicated in v1 driver code.\nSo please remove them in v1driver code.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"61208e5b2c543de4e63c9ffbf561e6fcdfc2d632","unresolved":false,"context_lines":[{"line_number":49,"context_line":"ODL_SFC_PORT_CHAIN \u003d \u0027portchain\u0027"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"ODL_L2GATEWAY \u003d \u0027l2_gateway\u0027"},{"line_number":52,"context_line":"ODL_L2GATEWAY_CONNECTION \u003d \u0027l2gateway_connection\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"ODL_CREATE \u003d \u0027create\u0027"},{"line_number":55,"context_line":"ODL_UPDATE \u003d \u0027update\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_20154b3f","line":52,"in_reply_to":"5a3905b3_6610745a","updated":"2017-01-23 10:12:45.000000000","message":"we have to use l2_gateway only here and so this can\u0027t be commonly reused by v1 driver.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"2b7b8bfefa438437b6e23b7a04fff7a0ef31f32b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"ODL_SFC_PORT_CHAIN \u003d \u0027portchain\u0027"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"ODL_L2GATEWAY \u003d \u0027l2_gateway\u0027"},{"line_number":52,"context_line":"ODL_L2GATEWAY_CONNECTION \u003d \u0027l2gateway_connection\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"ODL_CREATE \u003d \u0027create\u0027"},{"line_number":55,"context_line":"ODL_UPDATE \u003d \u0027update\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_6610745a","line":52,"in_reply_to":"5a3905b3_bd398fd9","updated":"2017-01-21 14:08:47.000000000","message":"v1 driver is using l2-gateways instead of l2_gateway.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"}],"networking_odl/journal/dependency_validations.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"18a0acd9091d39331bbe564807a9be578ea56555","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            session, row.object_uuid, operation\u003d[odl_const.ODL_UPDATE,"},{"line_number":232,"context_line":"                                                 odl_const.ODL_CREATE]):"},{"line_number":233,"context_line":"            return False"},{"line_number":234,"context_line":"    return True"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"def validate_l2gateway_connection(session, row):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_3dd75f4c","line":234,"updated":"2017-01-21 03:15:13.000000000","message":"There is dependency to l2gateway connection.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"61208e5b2c543de4e63c9ffbf561e6fcdfc2d632","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            session, row.object_uuid, operation\u003d[odl_const.ODL_UPDATE,"},{"line_number":232,"context_line":"                                                 odl_const.ODL_CREATE]):"},{"line_number":233,"context_line":"            return False"},{"line_number":234,"context_line":"    return True"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"def validate_l2gateway_connection(session, row):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_606033d0","line":234,"in_reply_to":"5a3905b3_177d1cb1","updated":"2017-01-23 10:12:45.000000000","message":"+1","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"a8e63b41cd3ee71a39709efd9554e6d9fdfd1ad3","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            session, row.object_uuid, operation\u003d[odl_const.ODL_UPDATE,"},{"line_number":232,"context_line":"                                                 odl_const.ODL_CREATE]):"},{"line_number":233,"context_line":"            return False"},{"line_number":234,"context_line":"    return True"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"def validate_l2gateway_connection(session, row):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_32a1f8f8","line":234,"in_reply_to":"5a3905b3_177d1cb1","updated":"2017-01-24 01:21:12.000000000","message":"At least can you please add a comment on it?","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"2b7b8bfefa438437b6e23b7a04fff7a0ef31f32b","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            session, row.object_uuid, operation\u003d[odl_const.ODL_UPDATE,"},{"line_number":232,"context_line":"                                                 odl_const.ODL_CREATE]):"},{"line_number":233,"context_line":"            return False"},{"line_number":234,"context_line":"    return True"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"def validate_l2gateway_connection(session, row):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_177d1cb1","line":234,"in_reply_to":"5a3905b3_3dd75f4c","updated":"2017-01-21 14:08:47.000000000","message":"Can\u0027t really check for deletes as l2gw_connection delete only comes with l2gw_connection_id, no data available.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"18a0acd9091d39331bbe564807a9be578ea56555","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            session, row.object_uuid, operation\u003d[odl_const.ODL_UPDATE,"},{"line_number":254,"context_line":"                                                 odl_const.ODL_CREATE]):"},{"line_number":255,"context_line":"            return False"},{"line_number":256,"context_line":"    return True"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"_VALIDATION_MAP \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_5dc8aba8","line":256,"updated":"2017-01-21 03:15:13.000000000","message":"There is a dependency to network and l2gateway.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"2b7b8bfefa438437b6e23b7a04fff7a0ef31f32b","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            session, row.object_uuid, operation\u003d[odl_const.ODL_UPDATE,"},{"line_number":254,"context_line":"                                                 odl_const.ODL_CREATE]):"},{"line_number":255,"context_line":"            return False"},{"line_number":256,"context_line":"    return True"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"_VALIDATION_MAP \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_97702cde","line":256,"in_reply_to":"5a3905b3_5dc8aba8","updated":"2017-01-21 14:08:47.000000000","message":"Done","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe7d6c432f8c0e6977f33df5f74620e80444a5c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5a3905b3_52c924ab","updated":"2017-01-24 01:23:16.000000000","message":"If it\u0027s difficult to add vaildation logic, can you please add TODO comment?","commit_id":"0a511b8e5e448337571a0edcc9ef53d6c3733193"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe7d6c432f8c0e6977f33df5f74620e80444a5c1","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    Validate l2gateway operation depending on whether it\u0027s"},{"line_number":222,"context_line":"    dependencies are still in \u0027pending\u0027 or \u0027processing\u0027 state."},{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    if (row.operation \u003d\u003d odl_const.ODL_UPDATE and"},{"line_number":225,"context_line":"            not _is_valid_update_operation(session, row)):"},{"line_number":226,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a3905b3_b70a3a24","line":223,"updated":"2017-01-24 01:23:16.000000000","message":"There is a dependency gateway on gateway connection.\n(reverse dependency.)","commit_id":"0a511b8e5e448337571a0edcc9ef53d6c3733193"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"60d1d78b0d33e5d42af89d8912d68888817a577a","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    Validate l2gateway operation depending on whether it\u0027s"},{"line_number":222,"context_line":"    dependencies are still in \u0027pending\u0027 or \u0027processing\u0027 state."},{"line_number":223,"context_line":"    \"\"\""},{"line_number":224,"context_line":"    if (row.operation \u003d\u003d odl_const.ODL_UPDATE and"},{"line_number":225,"context_line":"            not _is_valid_update_operation(session, row)):"},{"line_number":226,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a3905b3_a5859bcf","line":223,"in_reply_to":"5a3905b3_b70a3a24","updated":"2017-01-24 05:34:58.000000000","message":"We have noted this dependency as a comment @234.","commit_id":"0a511b8e5e448337571a0edcc9ef53d6c3733193"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe7d6c432f8c0e6977f33df5f74620e80444a5c1","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    \"\"\""},{"line_number":248,"context_line":"    if row.operation in odl_const.ODL_CREATE:"},{"line_number":249,"context_line":"        # Check for pending or processing network/l2gw operations"},{"line_number":250,"context_line":"        for dep_id in [row.data[\u0027network_id\u0027], row.data[\u0027gateway_id\u0027]]:"},{"line_number":251,"context_line":"            if db.check_for_pending_or_processing_ops("},{"line_number":252,"context_line":"                    session, dep_id, seqnum\u003drow.seqnum):"},{"line_number":253,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a3905b3_52084428","line":250,"range":{"start_line":250,"start_character":33,"end_line":250,"end_character":44},"updated":"2017-01-24 01:23:16.000000000","message":"network has dependency on l2gateway connection.","commit_id":"0a511b8e5e448337571a0edcc9ef53d6c3733193"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"60d1d78b0d33e5d42af89d8912d68888817a577a","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    \"\"\""},{"line_number":248,"context_line":"    if row.operation in odl_const.ODL_CREATE:"},{"line_number":249,"context_line":"        # Check for pending or processing network/l2gw operations"},{"line_number":250,"context_line":"        for dep_id in [row.data[\u0027network_id\u0027], row.data[\u0027gateway_id\u0027]]:"},{"line_number":251,"context_line":"            if db.check_for_pending_or_processing_ops("},{"line_number":252,"context_line":"                    session, dep_id, seqnum\u003drow.seqnum):"},{"line_number":253,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a3905b3_a5375b4b","line":250,"range":{"start_line":250,"start_character":33,"end_line":250,"end_character":44},"in_reply_to":"5a3905b3_52084428","updated":"2017-01-24 05:34:58.000000000","message":"deletion of network that is used by an l2gateway_connection is already covered by us under validate_network_operation().\n\nSimilarly creation of network into ODL before the creation of l2gateway-connection into ODL is validated by us here above.\n\nCan you please let us know what we are missing?","commit_id":"0a511b8e5e448337571a0edcc9ef53d6c3733193"}],"networking_odl/l2gateway/driver.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"19448b22d18ac50411b9b6ec436abf9eed03b801","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        super(OpenDaylightL2gwDriver, self).__init__(service_plugin, validator)"},{"line_number":43,"context_line":"        self.service_plugin \u003d service_plugin"},{"line_number":44,"context_line":"        self.client \u003d odl_client.OpenDaylightRestClient.create_client()"},{"line_number":45,"context_line":"        LOG.info(_LI(\"ODL: Started OpenDaylight L2Gateway driver\"))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @property"},{"line_number":48,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a430d35_7d36b5e8","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":67},"updated":"2017-02-09 19:51:16.000000000","message":"Can you please add deprecation message to use v2 driver?","commit_id":"9b09a5b9b044225872c4213b596004cb3ef18a9e"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"30e8d3dd9dfdd6bc5da163273ba47d92095d0821","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        super(OpenDaylightL2gwDriver, self).__init__(service_plugin, validator)"},{"line_number":43,"context_line":"        self.service_plugin \u003d service_plugin"},{"line_number":44,"context_line":"        self.client \u003d odl_client.OpenDaylightRestClient.create_client()"},{"line_number":45,"context_line":"        LOG.info(_LI(\"ODL: Started OpenDaylight L2Gateway driver\"))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @property"},{"line_number":48,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":26,"id":"fa31d9ce_8de8a518","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":67},"in_reply_to":"1a430d35_7d36b5e8","updated":"2017-02-09 20:57:13.000000000","message":"Done","commit_id":"9b09a5b9b044225872c4213b596004cb3ef18a9e"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"90e9d9cbce9c97ea181522b62047141e9ac4ad0a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.client \u003d odl_client.OpenDaylightRestClient.create_client()"},{"line_number":45,"context_line":"        LOG.warning("},{"line_number":46,"context_line":"            _LW(\"ODL: OpenDaylight L2gateway driver has been deprecated\""},{"line_number":47,"context_line":"                \"and will be removed. Switch to driver_v2.\"))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @property"},{"line_number":50,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"fa31d9ce_3bdd2871","line":47,"updated":"2017-02-10 04:57:56.000000000","message":"do we want to give full path here?","commit_id":"80c3e1d7311df2b9e7c594c6f6bed1000c6509c6"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"75c66f546c747ac40d01cb578a8d2f482a2812d0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.client \u003d odl_client.OpenDaylightRestClient.create_client()"},{"line_number":45,"context_line":"        LOG.warning("},{"line_number":46,"context_line":"            _LW(\"ODL: OpenDaylight L2gateway driver has been deprecated\""},{"line_number":47,"context_line":"                \"and will be removed. Switch to driver_v2.\"))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @property"},{"line_number":50,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"fa31d9ce_bb2af8e5","line":47,"in_reply_to":"fa31d9ce_3bdd2871","updated":"2017-02-10 05:19:37.000000000","message":"I thought about it, entire path is same except for driver/driver_v2. This being in n-odl we can easily add documentation for it than compared to BGPVPN.","commit_id":"80c3e1d7311df2b9e7c594c6f6bed1000c6509c6"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"cbda0c66de6c8ee96786f2cab030ed9bc7c33516","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.client \u003d odl_client.OpenDaylightRestClient.create_client()"},{"line_number":45,"context_line":"        LOG.warning("},{"line_number":46,"context_line":"            _LW(\"ODL: OpenDaylight L2gateway driver has been deprecated\""},{"line_number":47,"context_line":"                \"and will be removed. Switch to driver_v2.\"))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @property"},{"line_number":50,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"fa31d9ce_fb62adac","line":47,"in_reply_to":"fa31d9ce_bb2af8e5","updated":"2017-02-10 06:14:52.000000000","message":"Ok fine.","commit_id":"80c3e1d7311df2b9e7c594c6f6bed1000c6509c6"}],"networking_odl/l2gateway/driver_v2.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"18a0acd9091d39331bbe564807a9be578ea56555","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from networking_l2gw.services.l2gateway import service_drivers"},{"line_number":25,"context_line":"from networking_odl._i18n import _LI"},{"line_number":26,"context_line":"from networking_odl.common import constants as odl_const"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from networking_odl.journal import cleanup"},{"line_number":29,"context_line":"from networking_odl.journal import full_sync"},{"line_number":30,"context_line":"from networking_odl.journal import journal"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_1d4f036c","line":27,"updated":"2017-01-21 03:15:13.000000000","message":"unnecessary blank line.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"2b7b8bfefa438437b6e23b7a04fff7a0ef31f32b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from networking_l2gw.services.l2gateway import service_drivers"},{"line_number":25,"context_line":"from networking_odl._i18n import _LI"},{"line_number":26,"context_line":"from networking_odl.common import constants as odl_const"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from networking_odl.journal import cleanup"},{"line_number":29,"context_line":"from networking_odl.journal import full_sync"},{"line_number":30,"context_line":"from networking_odl.journal import journal"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_f11b4071","line":27,"in_reply_to":"5a3905b3_1d4f036c","updated":"2017-01-21 14:08:47.000000000","message":"Done","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"18a0acd9091d39331bbe564807a9be578ea56555","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from networking_odl.journal import journal"},{"line_number":31,"context_line":"from networking_odl.journal import maintenance"},{"line_number":32,"context_line":"from networking_odl.journal import recovery"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cfg.CONF.import_group(\u0027ml2_odl\u0027, \u0027networking_odl.common.config\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_7d5ac72b","line":33,"updated":"2017-01-21 03:15:13.000000000","message":"pep8: two blank lines.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"2b7b8bfefa438437b6e23b7a04fff7a0ef31f32b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from networking_odl.journal import journal"},{"line_number":31,"context_line":"from networking_odl.journal import maintenance"},{"line_number":32,"context_line":"from networking_odl.journal import recovery"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cfg.CONF.import_group(\u0027ml2_odl\u0027, \u0027networking_odl.common.config\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_31286886","line":33,"in_reply_to":"5a3905b3_7d5ac72b","updated":"2017-01-21 14:08:47.000000000","message":"Done","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"18a0acd9091d39331bbe564807a9be578ea56555","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self._start_maintenance_thread()"},{"line_number":52,"context_line":"        LOG.info(_LI(\"ODL: Started OpenDaylight L2Gateway V2 driver\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _start_maintenance_thread(self):"},{"line_number":55,"context_line":"        # start the maintenance thread and register all the maintenance"},{"line_number":56,"context_line":"        # operations :"},{"line_number":57,"context_line":"        # (1) JournalCleanup - Delete completed rows from journal"},{"line_number":58,"context_line":"        # (2) CleanupProcessing - Mark orphaned processing rows to pending"},{"line_number":59,"context_line":"        # (3) Full sync - Re-sync when detecting an ODL \"cold reboot\""},{"line_number":60,"context_line":"        cleanup_obj \u003d cleanup.JournalCleanup()"},{"line_number":61,"context_line":"        self._maintenance_thread \u003d maintenance.MaintenanceThread()"},{"line_number":62,"context_line":"        self._maintenance_thread.register_operation("},{"line_number":63,"context_line":"            cleanup_obj.delete_completed_rows)"},{"line_number":64,"context_line":"        self._maintenance_thread.register_operation("},{"line_number":65,"context_line":"            cleanup_obj.cleanup_processing_rows)"},{"line_number":66,"context_line":"        self._maintenance_thread.register_operation(full_sync.full_sync)"},{"line_number":67,"context_line":"        self._maintenance_thread.register_operation(recovery.journal_recovery)"},{"line_number":68,"context_line":"        self._maintenance_thread.start()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @property"},{"line_number":71,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_bd40af35","line":68,"range":{"start_line":54,"start_character":0,"end_line":68,"end_character":40},"updated":"2017-01-21 03:15:13.000000000","message":"This isn\u0027t necessary.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"61208e5b2c543de4e63c9ffbf561e6fcdfc2d632","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self._start_maintenance_thread()"},{"line_number":52,"context_line":"        LOG.info(_LI(\"ODL: Started OpenDaylight L2Gateway V2 driver\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _start_maintenance_thread(self):"},{"line_number":55,"context_line":"        # start the maintenance thread and register all the maintenance"},{"line_number":56,"context_line":"        # operations :"},{"line_number":57,"context_line":"        # (1) JournalCleanup - Delete completed rows from journal"},{"line_number":58,"context_line":"        # (2) CleanupProcessing - Mark orphaned processing rows to pending"},{"line_number":59,"context_line":"        # (3) Full sync - Re-sync when detecting an ODL \"cold reboot\""},{"line_number":60,"context_line":"        cleanup_obj \u003d cleanup.JournalCleanup()"},{"line_number":61,"context_line":"        self._maintenance_thread \u003d maintenance.MaintenanceThread()"},{"line_number":62,"context_line":"        self._maintenance_thread.register_operation("},{"line_number":63,"context_line":"            cleanup_obj.delete_completed_rows)"},{"line_number":64,"context_line":"        self._maintenance_thread.register_operation("},{"line_number":65,"context_line":"            cleanup_obj.cleanup_processing_rows)"},{"line_number":66,"context_line":"        self._maintenance_thread.register_operation(full_sync.full_sync)"},{"line_number":67,"context_line":"        self._maintenance_thread.register_operation(recovery.journal_recovery)"},{"line_number":68,"context_line":"        self._maintenance_thread.start()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @property"},{"line_number":71,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_e0234356","line":68,"range":{"start_line":54,"start_character":0,"end_line":68,"end_character":40},"in_reply_to":"5a3905b3_bd40af35","updated":"2017-01-23 10:12:45.000000000","message":"Can you please let us know why you think above is not necessary?\n\nI have seen these made available and runs for the v2 mech-driver.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"a8e63b41cd3ee71a39709efd9554e6d9fdfd1ad3","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self._start_maintenance_thread()"},{"line_number":52,"context_line":"        LOG.info(_LI(\"ODL: Started OpenDaylight L2Gateway V2 driver\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _start_maintenance_thread(self):"},{"line_number":55,"context_line":"        # start the maintenance thread and register all the maintenance"},{"line_number":56,"context_line":"        # operations :"},{"line_number":57,"context_line":"        # (1) JournalCleanup - Delete completed rows from journal"},{"line_number":58,"context_line":"        # (2) CleanupProcessing - Mark orphaned processing rows to pending"},{"line_number":59,"context_line":"        # (3) Full sync - Re-sync when detecting an ODL \"cold reboot\""},{"line_number":60,"context_line":"        cleanup_obj \u003d cleanup.JournalCleanup()"},{"line_number":61,"context_line":"        self._maintenance_thread \u003d maintenance.MaintenanceThread()"},{"line_number":62,"context_line":"        self._maintenance_thread.register_operation("},{"line_number":63,"context_line":"            cleanup_obj.delete_completed_rows)"},{"line_number":64,"context_line":"        self._maintenance_thread.register_operation("},{"line_number":65,"context_line":"            cleanup_obj.cleanup_processing_rows)"},{"line_number":66,"context_line":"        self._maintenance_thread.register_operation(full_sync.full_sync)"},{"line_number":67,"context_line":"        self._maintenance_thread.register_operation(recovery.journal_recovery)"},{"line_number":68,"context_line":"        self._maintenance_thread.start()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @property"},{"line_number":71,"context_line":"    def service_type(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_92b2ac4a","line":68,"range":{"start_line":54,"start_character":0,"end_line":68,"end_character":40},"in_reply_to":"5a3905b3_e0234356","updated":"2017-01-24 01:21:12.000000000","message":"full sync and journal recovery is supposed to exist only one instance.\nWe don\u0027t need multiple instances of them.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"18a0acd9091d39331bbe564807a9be578ea56555","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    @staticmethod"},{"line_number":75,"context_line":"    def _record_in_journal(context, object_type, operation, resource_id,"},{"line_number":76,"context_line":"                           resource\u003dNone):"},{"line_number":77,"context_line":"        if resource_id is None:"},{"line_number":78,"context_line":"            pass"},{"line_number":79,"context_line":"        LOG.info(_LI(\"ODL L2GW: Precommit Recording Data %(resource_id)s\""},{"line_number":80,"context_line":"                 \" %(resource)s\"),"},{"line_number":81,"context_line":"                 {\u0027resource_id\u0027: resource_id, \u0027resource_data\u0027: resource})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_1d7623a4","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":16},"updated":"2017-01-21 03:15:13.000000000","message":"This does nothing.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"61208e5b2c543de4e63c9ffbf561e6fcdfc2d632","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    @staticmethod"},{"line_number":75,"context_line":"    def _record_in_journal(context, object_type, operation, resource_id,"},{"line_number":76,"context_line":"                           resource\u003dNone):"},{"line_number":77,"context_line":"        if resource_id is None:"},{"line_number":78,"context_line":"            pass"},{"line_number":79,"context_line":"        LOG.info(_LI(\"ODL L2GW: Precommit Recording Data %(resource_id)s\""},{"line_number":80,"context_line":"                 \" %(resource)s\"),"},{"line_number":81,"context_line":"                 {\u0027resource_id\u0027: resource_id, \u0027resource_data\u0027: resource})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_606af382","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":16},"in_reply_to":"5a3905b3_1d7623a4","updated":"2017-01-23 10:12:45.000000000","message":"Without resource-id the journal entry cannot be created.\n\nIn order to not have journal throw exceptions, I placed the resource_id check here.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"a8e63b41cd3ee71a39709efd9554e6d9fdfd1ad3","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    @staticmethod"},{"line_number":75,"context_line":"    def _record_in_journal(context, object_type, operation, resource_id,"},{"line_number":76,"context_line":"                           resource\u003dNone):"},{"line_number":77,"context_line":"        if resource_id is None:"},{"line_number":78,"context_line":"            pass"},{"line_number":79,"context_line":"        LOG.info(_LI(\"ODL L2GW: Precommit Recording Data %(resource_id)s\""},{"line_number":80,"context_line":"                 \" %(resource)s\"),"},{"line_number":81,"context_line":"                 {\u0027resource_id\u0027: resource_id, \u0027resource_data\u0027: resource})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_727e206b","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":16},"in_reply_to":"5a3905b3_606af382","updated":"2017-01-24 01:21:12.000000000","message":"Do you intend \"return\" instead of \"pass\"?","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"2b7b8bfefa438437b6e23b7a04fff7a0ef31f32b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                       resource_id, operation, resource)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def create_l2_gateway_precommit(self, context, l2_gateway):"},{"line_number":86,"context_line":"        LOG.info(_LI(\"ODL: Precommit Create L2Gateway %(l2gateway)s\"),"},{"line_number":87,"context_line":"                 {\u0027l2gateway\u0027: l2_gateway})"},{"line_number":88,"context_line":"        self._record_in_journal("},{"line_number":89,"context_line":"            context, odl_const.ODL_L2GATEWAY,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_d1400437","line":86,"range":{"start_line":86,"start_character":8,"end_line":86,"end_character":16},"updated":"2017-01-21 14:08:47.000000000","message":"@Vivek: These should be removed before merge. journal already has logging to capture data.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"61208e5b2c543de4e63c9ffbf561e6fcdfc2d632","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                       resource_id, operation, resource)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def create_l2_gateway_precommit(self, context, l2_gateway):"},{"line_number":86,"context_line":"        LOG.info(_LI(\"ODL: Precommit Create L2Gateway %(l2gateway)s\"),"},{"line_number":87,"context_line":"                 {\u0027l2gateway\u0027: l2_gateway})"},{"line_number":88,"context_line":"        self._record_in_journal("},{"line_number":89,"context_line":"            context, odl_const.ODL_L2GATEWAY,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_60bcb306","line":86,"range":{"start_line":86,"start_character":8,"end_line":86,"end_character":16},"in_reply_to":"5a3905b3_d1400437","updated":"2017-01-23 10:12:45.000000000","message":"The info were put for my trial runs only..\n\nAll info can be removed.","commit_id":"2edff6138f729bb55f603f38bd1f6cb97f227439"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"fe7d6c432f8c0e6977f33df5f74620e80444a5c1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":36,"context_line":"class OpenDaylightL2gwDriver(service_drivers.L2gwDriver):"},{"line_number":37,"context_line":"    \"\"\"Opendaylight L2Gateway Service Driver"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a3905b3_37c2cae9","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":31},"updated":"2017-01-24 01:23:16.000000000","message":"Isn\u0027t this class concrete?","commit_id":"0a511b8e5e448337571a0edcc9ef53d6c3733193"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"60d1d78b0d33e5d42af89d8912d68888817a577a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":36,"context_line":"class OpenDaylightL2gwDriver(service_drivers.L2gwDriver):"},{"line_number":37,"context_line":"    \"\"\"Opendaylight L2Gateway Service Driver"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a3905b3_45ca371c","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":31},"in_reply_to":"5a3905b3_37c2cae9","updated":"2017-01-24 05:34:58.000000000","message":"Done","commit_id":"0a511b8e5e448337571a0edcc9ef53d6c3733193"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"2d6fb7c3cb9452e63849581486b8c41670696ac1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @staticmethod"},{"line_number":51,"context_line":"    def _record_in_journal(context, object_type, operation, resource_id,"},{"line_number":52,"context_line":"                           resource\u003dNone):"},{"line_number":53,"context_line":"        # TODO(vivekanandan): Remove the log"},{"line_number":54,"context_line":"        LOG.info(_LI(\"ODL L2GW: Precommit Recording Data %(resource_id)s\""},{"line_number":55,"context_line":"                 \" %(resource)s\"),"},{"line_number":56,"context_line":"                 {\u0027resource_id\u0027: resource_id, \u0027resource_data\u0027: resource})"},{"line_number":57,"context_line":"        journal.record(context, None, object_type,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_1f91b747","line":54,"range":{"start_line":53,"start_character":8,"end_line":54,"end_character":16},"updated":"2017-01-27 21:50:53.000000000","message":"In this case, LOG.debug would be appropriate.","commit_id":"52e45eb7c078b90bc9f250b1e41a21eaffcfa6cc"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"3657b9cbdc61777103ac338c3fda09e619b6d9ed","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    @staticmethod"},{"line_number":51,"context_line":"    def _record_in_journal(context, object_type, operation, resource_id,"},{"line_number":52,"context_line":"                           resource\u003dNone):"},{"line_number":53,"context_line":"        # TODO(vivekanandan): Remove the log"},{"line_number":54,"context_line":"        LOG.info(_LI(\"ODL L2GW: Precommit Recording Data %(resource_id)s\""},{"line_number":55,"context_line":"                 \" %(resource)s\"),"},{"line_number":56,"context_line":"                 {\u0027resource_id\u0027: resource_id, \u0027resource_data\u0027: resource})"},{"line_number":57,"context_line":"        journal.record(context, None, object_type,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a461143_f16bf7b4","line":54,"range":{"start_line":53,"start_character":8,"end_line":54,"end_character":16},"in_reply_to":"3a461143_1f91b747","updated":"2017-01-31 09:41:26.000000000","message":"done.  I made all of them log.debug.","commit_id":"52e45eb7c078b90bc9f250b1e41a21eaffcfa6cc"}],"networking_odl/tests/unit/l2gateway/test_driver_v2.py":[{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"a0e725df54a809531442649e55bdd0d48a5a8704","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(OpendaylightL2GWDriverTestCase, self).setUp()"},{"line_number":32,"context_line":"        self.db_session \u003d neutron_db_api.get_session()"},{"line_number":33,"context_line":"        self.driver \u003d driverv2.OpenDaylightL2gwDriver(service_plugin\u003dNone)"},{"line_number":34,"context_line":"        self.context \u003d self._get_mock_context()"},{"line_number":35,"context_line":"        self.mock_sync_thread \u003d mock.patch.object("},{"line_number":36,"context_line":"            journal.OpendaylightJournalThread, \u0027start_odl_sync_thread\u0027).start()"},{"line_number":37,"context_line":"        self.thread \u003d journal.OpendaylightJournalThread()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _get_mock_context(self):"},{"line_number":40,"context_line":"        context \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":24,"id":"1a430d35_cac2a252","line":37,"range":{"start_line":34,"start_character":47,"end_line":37,"end_character":57},"updated":"2017-02-09 06:43:14.000000000","message":"these are not needed, I removed it from trunk driver too. OpenDaylightConfigBase takes care of them","commit_id":"cca3e2c91a090616fa319e9eb37f1a1f169b7df6"},{"author":{"_account_id":9361,"name":"Vivekanandan Narasimhan","email":"n.vivekanandan@ericsson.com","username":"viveknarasimhan"},"change_message_id":"a5fb49df1aff1b9bc3dcc60993d4558709c4840b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        super(OpendaylightL2GWDriverTestCase, self).setUp()"},{"line_number":32,"context_line":"        self.db_session \u003d neutron_db_api.get_session()"},{"line_number":33,"context_line":"        self.driver \u003d driverv2.OpenDaylightL2gwDriver(service_plugin\u003dNone)"},{"line_number":34,"context_line":"        self.context \u003d self._get_mock_context()"},{"line_number":35,"context_line":"        self.mock_sync_thread \u003d mock.patch.object("},{"line_number":36,"context_line":"            journal.OpendaylightJournalThread, \u0027start_odl_sync_thread\u0027).start()"},{"line_number":37,"context_line":"        self.thread \u003d journal.OpendaylightJournalThread()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def _get_mock_context(self):"},{"line_number":40,"context_line":"        context \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":24,"id":"1a430d35_45114503","line":37,"range":{"start_line":34,"start_character":47,"end_line":37,"end_character":57},"in_reply_to":"1a430d35_cac2a252","updated":"2017-02-09 07:24:30.000000000","message":"thanks","commit_id":"cca3e2c91a090616fa319e9eb37f1a1f169b7df6"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"19448b22d18ac50411b9b6ec436abf9eed03b801","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        }"},{"line_number":84,"context_line":"        return fake_l2_gateway_connection"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _assert_op(self, operation, object_type, data, preCommit\u003dTrue):"},{"line_number":87,"context_line":"        row \u003d db.get_oldest_pending_db_row_with_lock(self.db_session)"},{"line_number":88,"context_line":"        if preCommit:"},{"line_number":89,"context_line":"            self.assertEqual(operation, row[\u0027operation\u0027])"}],"source_content_type":"text/x-python","patch_set":26,"id":"1a430d35_390b622d","line":86,"range":{"start_line":86,"start_character":55,"end_line":86,"end_character":64},"updated":"2017-02-09 19:51:16.000000000","message":"precommit. openstack doesn\u0027t use camel case for arg.","commit_id":"9b09a5b9b044225872c4213b596004cb3ef18a9e"},{"author":{"_account_id":18429,"name":"Vishal Thapar","email":"vthapar@redhat.com","username":"thapar"},"change_message_id":"30e8d3dd9dfdd6bc5da163273ba47d92095d0821","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        }"},{"line_number":84,"context_line":"        return fake_l2_gateway_connection"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _assert_op(self, operation, object_type, data, preCommit\u003dTrue):"},{"line_number":87,"context_line":"        row \u003d db.get_oldest_pending_db_row_with_lock(self.db_session)"},{"line_number":88,"context_line":"        if preCommit:"},{"line_number":89,"context_line":"            self.assertEqual(operation, row[\u0027operation\u0027])"}],"source_content_type":"text/x-python","patch_set":26,"id":"fa31d9ce_aded6927","line":86,"range":{"start_line":86,"start_character":55,"end_line":86,"end_character":64},"in_reply_to":"1a430d35_390b622d","updated":"2017-02-09 20:57:13.000000000","message":"Done","commit_id":"9b09a5b9b044225872c4213b596004cb3ef18a9e"}]}
