)]}'
{"networking_odl/bgpvpn/odl_v2.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"37a8e2c6f7ff6150c3b7d6e4d9525920585a5e9d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from networking_odl.common import constants as odl_const"},{"line_number":24,"context_line":"from networking_odl.common import postcommit"},{"line_number":25,"context_line":"from networking_odl.journal import journal"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"cfg.CONF.import_group(\u0027ml2_odl\u0027, \u0027networking_odl.common.config\u0027)"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_2222b202","side":"PARENT","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":0},"updated":"2017-07-10 21:49:07.000000000","message":"unnecessary code churn.","commit_id":"210c3039c0f3eeace9e523866a1b91ad0e36b21b"}],"networking_odl/common/constants.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"c1e1d34c1de4c63da9f95bfe79d2fffe8fce772e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"ODL_UPDATE \u003d \u0027update\u0027"},{"line_number":76,"context_line":"ODL_DELETE \u003d \u0027delete\u0027"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"L2_RESOURCES \u003d {ODL_SG: ODL_SGS,"},{"line_number":79,"context_line":"                ODL_SG_RULE: ODL_SG_RULES,"},{"line_number":80,"context_line":"                ODL_NETWORK: ODL_NETWORKS,"},{"line_number":81,"context_line":"                ODL_SUBNET: ODL_SUBNETS,"},{"line_number":82,"context_line":"                ODL_PORT: ODL_PORTS}"},{"line_number":83,"context_line":"L3_RESOURCES \u003d {ODL_ROUTER: ODL_ROUTERS,"},{"line_number":84,"context_line":"                ODL_FLOATINGIP: ODL_FLOATINGIPS}"},{"line_number":85,"context_line":"# TODO(yamahata): add more resources"},{"line_number":86,"context_line":"#                 as networking-odl supports more services like qos, ..."},{"line_number":87,"context_line":"ALL_RESOURCES \u003d {constants.CORE: L2_RESOURCES,"},{"line_number":88,"context_line":"                 constants.L3: L3_RESOURCES}"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"# Constants for journal operation states"},{"line_number":91,"context_line":"PENDING \u003d \u0027pending\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_061ed1b9","line":88,"range":{"start_line":78,"start_character":0,"end_line":88,"end_character":44},"updated":"2017-06-29 19:23:42.000000000","message":"Do we still need those?","commit_id":"04c6779f34caf503846059c99ca9669a7e9bc5d8"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"495b5f5466773e197f8b746a18974d12d09edc39","unresolved":false,"context_lines":[{"line_number":77,"context_line":"ODL_UPDATE \u003d \u0027update\u0027"},{"line_number":78,"context_line":"ODL_DELETE \u003d \u0027delete\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"L2_RESOURCES \u003d {ODL_SG: ODL_SGS,"},{"line_number":81,"context_line":"                ODL_SG_RULE: ODL_SG_RULES,"},{"line_number":82,"context_line":"                ODL_NETWORK: ODL_NETWORKS,"},{"line_number":83,"context_line":"                ODL_SUBNET: ODL_SUBNETS,"},{"line_number":84,"context_line":"                ODL_PORT: ODL_PORTS}"},{"line_number":85,"context_line":"L3_RESOURCES \u003d {ODL_ROUTER: ODL_ROUTERS,"},{"line_number":86,"context_line":"                ODL_FLOATINGIP: ODL_FLOATINGIPS}"},{"line_number":87,"context_line":"# TODO(yamahata): add more resources"},{"line_number":88,"context_line":"#                 as networking-odl supports more services like qos, ..."},{"line_number":89,"context_line":"ALL_RESOURCES \u003d {constants.CORE: L2_RESOURCES,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_d041dda7","line":86,"range":{"start_line":80,"start_character":0,"end_line":86,"end_character":48},"updated":"2017-07-06 23:12:47.000000000","message":"we have two duplicated definitions. one in this file, another in driver. There should be only one.","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"4015e353594004164a429ac59034d83804de9cc0","unresolved":false,"context_lines":[{"line_number":77,"context_line":"ODL_UPDATE \u003d \u0027update\u0027"},{"line_number":78,"context_line":"ODL_DELETE \u003d \u0027delete\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"L2_RESOURCES \u003d {ODL_SG: ODL_SGS,"},{"line_number":81,"context_line":"                ODL_SG_RULE: ODL_SG_RULES,"},{"line_number":82,"context_line":"                ODL_NETWORK: ODL_NETWORKS,"},{"line_number":83,"context_line":"                ODL_SUBNET: ODL_SUBNETS,"},{"line_number":84,"context_line":"                ODL_PORT: ODL_PORTS}"},{"line_number":85,"context_line":"L3_RESOURCES \u003d {ODL_ROUTER: ODL_ROUTERS,"},{"line_number":86,"context_line":"                ODL_FLOATINGIP: ODL_FLOATINGIPS}"},{"line_number":87,"context_line":"# TODO(yamahata): add more resources"},{"line_number":88,"context_line":"#                 as networking-odl supports more services like qos, ..."},{"line_number":89,"context_line":"ALL_RESOURCES \u003d {constants.CORE: L2_RESOURCES,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_c2789ef9","line":86,"range":{"start_line":80,"start_character":0,"end_line":86,"end_character":48},"in_reply_to":"3f1d235d_3f58a454","updated":"2017-07-10 21:45:28.000000000","message":"any reason not to do with this patch?","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"c4b9efe39b7870398146da8ccc1b7df1b3bbe99d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"ODL_UPDATE \u003d \u0027update\u0027"},{"line_number":78,"context_line":"ODL_DELETE \u003d \u0027delete\u0027"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"L2_RESOURCES \u003d {ODL_SG: ODL_SGS,"},{"line_number":81,"context_line":"                ODL_SG_RULE: ODL_SG_RULES,"},{"line_number":82,"context_line":"                ODL_NETWORK: ODL_NETWORKS,"},{"line_number":83,"context_line":"                ODL_SUBNET: ODL_SUBNETS,"},{"line_number":84,"context_line":"                ODL_PORT: ODL_PORTS}"},{"line_number":85,"context_line":"L3_RESOURCES \u003d {ODL_ROUTER: ODL_ROUTERS,"},{"line_number":86,"context_line":"                ODL_FLOATINGIP: ODL_FLOATINGIPS}"},{"line_number":87,"context_line":"# TODO(yamahata): add more resources"},{"line_number":88,"context_line":"#                 as networking-odl supports more services like qos, ..."},{"line_number":89,"context_line":"ALL_RESOURCES \u003d {constants.CORE: L2_RESOURCES,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_3f58a454","line":86,"range":{"start_line":80,"start_character":0,"end_line":86,"end_character":48},"in_reply_to":"3f1d235d_d041dda7","updated":"2017-07-10 08:29:56.000000000","message":"They have been removed in recovery patch.","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"495b5f5466773e197f8b746a18974d12d09edc39","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                ODL_PORT: ODL_PORTS}"},{"line_number":85,"context_line":"L3_RESOURCES \u003d {ODL_ROUTER: ODL_ROUTERS,"},{"line_number":86,"context_line":"                ODL_FLOATINGIP: ODL_FLOATINGIPS}"},{"line_number":87,"context_line":"# TODO(yamahata): add more resources"},{"line_number":88,"context_line":"#                 as networking-odl supports more services like qos, ..."},{"line_number":89,"context_line":"ALL_RESOURCES \u003d {constants.CORE: L2_RESOURCES,"},{"line_number":90,"context_line":"                 constants.L3: L3_RESOURCES}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"# Constants for journal operation states"},{"line_number":93,"context_line":"PENDING \u003d \u0027pending\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_d0ec3dbc","line":90,"range":{"start_line":87,"start_character":0,"end_line":90,"end_character":44},"updated":"2017-07-06 23:12:47.000000000","message":"This can be removed.","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"c4b9efe39b7870398146da8ccc1b7df1b3bbe99d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                ODL_PORT: ODL_PORTS}"},{"line_number":85,"context_line":"L3_RESOURCES \u003d {ODL_ROUTER: ODL_ROUTERS,"},{"line_number":86,"context_line":"                ODL_FLOATINGIP: ODL_FLOATINGIPS}"},{"line_number":87,"context_line":"# TODO(yamahata): add more resources"},{"line_number":88,"context_line":"#                 as networking-odl supports more services like qos, ..."},{"line_number":89,"context_line":"ALL_RESOURCES \u003d {constants.CORE: L2_RESOURCES,"},{"line_number":90,"context_line":"                 constants.L3: L3_RESOURCES}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"# Constants for journal operation states"},{"line_number":93,"context_line":"PENDING \u003d \u0027pending\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_df3410fe","line":90,"range":{"start_line":87,"start_character":0,"end_line":90,"end_character":44},"in_reply_to":"3f1d235d_d0ec3dbc","updated":"2017-07-10 08:29:56.000000000","message":"ditto","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"}],"networking_odl/journal/full_sync.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"c1e1d34c1de4c63da9f95bfe79d2fffe8fce772e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"# TODO(yamahata): to add more resources."},{"line_number":38,"context_line":"#                 e.g. bgpvpn, fwaas, l2gw, lbaas, qos, sfc"},{"line_number":39,"context_line":"#                 and as more services are added"},{"line_number":40,"context_line":"_ORDERED_ODL_RESOURCES \u003d ("},{"line_number":41,"context_line":"    odl_const.ODL_SG,"},{"line_number":42,"context_line":"    odl_const.ODL_SG_RULE,"},{"line_number":43,"context_line":"    odl_const.ODL_NETWORK,"},{"line_number":44,"context_line":"    odl_const.ODL_SUBNET,"},{"line_number":45,"context_line":"    odl_const.ODL_ROUTER,"},{"line_number":46,"context_line":"    odl_const.ODL_PORT,"},{"line_number":47,"context_line":"    odl_const.ODL_FLOATINGIP)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"ALL_RESOURCES \u003d {}"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_23353fdb","line":47,"range":{"start_line":40,"start_character":0,"end_line":47,"end_character":29},"updated":"2017-06-29 19:23:42.000000000","message":"This needs to be updated.","commit_id":"04c6779f34caf503846059c99ca9669a7e9bc5d8"}],"networking_odl/l3/l3_odl_v2.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"c1e1d34c1de4c63da9f95bfe79d2fffe8fce772e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # TODO(rcurran): Continue investigation into how many journal threads"},{"line_number":61,"context_line":"        # to run per neutron controller deployment."},{"line_number":62,"context_line":"        self.journal \u003d journal.OpendaylightJournalThread()"},{"line_number":63,"context_line":"        self.register()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @staticmethod"},{"line_number":66,"context_line":"    def register():"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_8639c142","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":23},"updated":"2017-06-29 19:23:42.000000000","message":"just line 67. we don\u0027t need one line method.","commit_id":"04c6779f34caf503846059c99ca9669a7e9bc5d8"}],"networking_odl/ml2/mech_driver_v2.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"c1e1d34c1de4c63da9f95bfe79d2fffe8fce772e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        odl_features.init()"},{"line_number":73,"context_line":"        if odl_features.has(odl_features.OPERATIONAL_PORT_STATUS):"},{"line_number":74,"context_line":"            port_status_update.OdlPortStatusUpdate()"},{"line_number":75,"context_line":"        self.register()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @staticmethod"},{"line_number":78,"context_line":"    def register():"},{"line_number":79,"context_line":"        full_sync.register(nlib_const.CORE, L2_RESOURCES)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _start_maintenance_thread(self):"},{"line_number":82,"context_line":"        # start the maintenance thread and register all the maintenance"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_e613d5b7","line":79,"range":{"start_line":75,"start_character":0,"end_line":79,"end_character":57},"updated":"2017-06-29 19:23:42.000000000","message":"we don\u0027t need one line method.","commit_id":"04c6779f34caf503846059c99ca9669a7e9bc5d8"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"495b5f5466773e197f8b746a18974d12d09edc39","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        if odl_const.ODL_QOS in cfg.CONF.ml2.extension_drivers:"},{"line_number":70,"context_line":"            qos_driver.OpenDaylightQosDriver.create()"},{"line_number":71,"context_line":"        self._start_maintenance_thread()"},{"line_number":72,"context_line":"        full_sync.register(nlib_const.CORE, L2_RESOURCES)"},{"line_number":73,"context_line":"        odl_features.init()"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def get_workers(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_90948538","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":57},"updated":"2017-07-06 23:12:47.000000000","message":"It\u0027s safer to call this before creating maintenance/journal thread.","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"c4b9efe39b7870398146da8ccc1b7df1b3bbe99d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        if odl_const.ODL_QOS in cfg.CONF.ml2.extension_drivers:"},{"line_number":70,"context_line":"            qos_driver.OpenDaylightQosDriver.create()"},{"line_number":71,"context_line":"        self._start_maintenance_thread()"},{"line_number":72,"context_line":"        full_sync.register(nlib_const.CORE, L2_RESOURCES)"},{"line_number":73,"context_line":"        odl_features.init()"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def get_workers(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_22fe4bae","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":57},"in_reply_to":"3f1d235d_90948538","updated":"2017-07-10 08:29:56.000000000","message":"Done","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"}],"networking_odl/tests/unit/journal/test_full_sync.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"495b5f5466773e197f8b746a18974d12d09edc39","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @staticmethod"},{"line_number":80,"context_line":"    def clean_registered_resources():"},{"line_number":81,"context_line":"        full_sync.ALL_RESOURCES \u003d {}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_no_full_sync_when_canary_exists(self):"},{"line_number":84,"context_line":"        full_sync.full_sync(self.db_session)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_30d37106","line":81,"range":{"start_line":81,"start_character":31,"end_line":81,"end_character":36},"updated":"2017-07-06 23:12:47.000000000","message":".clear()","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"c4b9efe39b7870398146da8ccc1b7df1b3bbe99d","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    @staticmethod"},{"line_number":80,"context_line":"    def clean_registered_resources():"},{"line_number":81,"context_line":"        full_sync.ALL_RESOURCES \u003d {}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_no_full_sync_when_canary_exists(self):"},{"line_number":84,"context_line":"        full_sync.full_sync(self.db_session)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_022d8f45","line":81,"range":{"start_line":81,"start_character":31,"end_line":81,"end_character":36},"in_reply_to":"3f1d235d_30d37106","updated":"2017-07-10 08:29:56.000000000","message":"Done","commit_id":"27b5e5e372bd0f7bde56020209e305c9c9d01130"}]}
