)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"305cd11910be5e85f88a21c6ec794bbe2b8c71ce","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The ROUTER_PORT resources handle the creation and update of"},{"line_number":18,"context_line":"Logical_Router_Port and NAT resources (always going on the"},{"line_number":19,"context_line":"same transactions)."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I96a7e812427ebbc8e868a0e3ab78754084cdaecf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"5f93b717_4c66fe53","line":20,"updated":"2018-01-29 10:30:26.000000000","message":"As this is the last patch in the series, shouldn\u0027t it have following?\n\n Closes-Bug: # 1605089","commit_id":"d205e0f0ab8e60abb9344de25a5a53878264c23d"}],"networking_ovn/common/maintenance.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"e0edf567c208536117836e418f27f77ffa58b9e9","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                elif row.resource_type \u003d\u003d ovn_const.TYPE_SECURITY_GROUP_RULES:"},{"line_number":264,"context_line":"                    self._fix_delete_sg_rule(row)"},{"line_number":265,"context_line":"                elif row.resource_type \u003d\u003d ovn_const.TYPE_ROUTERS:"},{"line_number":266,"context_line":"                    self._fix_delete_router(row)"},{"line_number":267,"context_line":"            except Exception:"},{"line_number":268,"context_line":"                LOG.exception(\u0027Failed to fix deleted resource %(res_uuid)s \u0027"},{"line_number":269,"context_line":"                              \u0027(type: %(res_type)s)\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_7ddf9e39","line":266,"updated":"2018-01-17 15:48:42.000000000","message":"i know it\u0027s wip, just to remember that we need to fix here too although I\u0027m sure you have it in mind :)","commit_id":"22c189b8bf580b19bd7531ce7846435de277c58c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c72bafc26cfa2b45acf6beca1386ef3589a1d597","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        port \u003d self._ovn_client._plugin.get_port(admin_context,"},{"line_number":187,"context_line":"                                                 row.resource_uuid)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        if row.revision_number \u003d\u003d ovn_const.INITIAL_REV_NUM:"},{"line_number":190,"context_line":"            self._ovn_client._l3_plugin.add_router_interface("},{"line_number":191,"context_line":"                admin_context, port[\u0027device_owner\u0027],"},{"line_number":192,"context_line":"                {\u0027port_id\u0027: row.resource_uuid})"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_8e9e4761","line":189,"updated":"2018-01-23 15:31:42.000000000","message":"Recently we changed this approach to instead of looking at the INITIAL_REV_NUM we check whether the resource exist or not in the OVNDB before we go ahead and create it [0]\n\nAlso, I\u0027ve uploaded a patch refactoring this module to avoid duplicating the code for all resources. If u feel like rebasing it on top of that (you don\u0027t have to!) this is the patch: https://review.openstack.org/#/c/536407/\n\n[0] https://github.com/openstack/networking-ovn/blob/a60921a07687dc3837242904d5ed765ba269f10c/networking_ovn/common/maintenance.py#L106","commit_id":"106b3d06a38041c95daf0b1dd368498c22911b0f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c8b710835222c36c675510782b1c5b9668a45744","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        if not ovn_lrp:"},{"line_number":201,"context_line":"            db_rev.delete_revision(row.resource_uuid, ovn_const.TYPE_ROUTERS)"},{"line_number":202,"context_line":"        else:"},{"line_number":203,"context_line":"            # TODO(mangelajo): we need to ensure the consistency of snat"},{"line_number":204,"context_line":"            # I\u0027ll do it in a second patch because I need to extend ovsdbapp"},{"line_number":205,"context_line":"            # to find a router_id from the lrp id"},{"line_number":206,"context_line":"            self._ovn_client.delete_router_port(row.resource_uuid)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def _fix_create_update_routers(self, row):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f93b717_a13b5a36","line":205,"range":{"start_line":203,"start_character":0,"end_line":205,"end_character":49},"updated":"2018-01-25 12:29:39.000000000","message":"(nothing to do here, just a comment)\n\nWe probably will need a new release of the ovsdbapp and a version bump to be able to use such changes in networking-ovn later on.","commit_id":"1422e41d7e1190add8a97bfa44ecee0c61d26e61"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c8b710835222c36c675510782b1c5b9668a45744","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        LOG.warning(\u0027Inconsistencies found in the database!\u0027)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        # Fix the create/update resources inconsistencies"},{"line_number":324,"context_line":"        # FIXME(mangelajo): get the resources by types, so we can handle"},{"line_number":325,"context_line":"        # root/leaf resources properly in order, now we\u0027d retry thanks to"},{"line_number":326,"context_line":"        # the exception handling."},{"line_number":327,"context_line":"        for row in create_update_inconsistencies:"},{"line_number":328,"context_line":"            try:"},{"line_number":329,"context_line":"                if row.resource_type \u003d\u003d ovn_const.TYPE_NETWORKS:"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f93b717_41c5b63b","line":326,"range":{"start_line":324,"start_character":0,"end_line":326,"end_character":33},"updated":"2018-01-25 12:29:39.000000000","message":"++\n\nThe patch https://review.openstack.org/#/c/535771 is doing this.","commit_id":"1422e41d7e1190add8a97bfa44ecee0c61d26e61"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"cc0470f5605ddc95d7d667ed7990b5d1f210760a","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        LOG.warning(\u0027Inconsistencies found in the database!\u0027)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # Fix the create/update resources inconsistencies"},{"line_number":219,"context_line":"        # FIXME(mangelajo): get the resources by types, so we can handle"},{"line_number":220,"context_line":"        # root/leaf resources properly in order, now we\u0027d retry thanks to"},{"line_number":221,"context_line":"        # the exception handling."},{"line_number":222,"context_line":"        for row in create_update_inconsistencies:"},{"line_number":223,"context_line":"            try:"},{"line_number":224,"context_line":"                # NOTE(lucasagomes): The way to fix subnets is bit"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f93b717_7b8f3bcc","line":221,"range":{"start_line":219,"start_character":0,"end_line":221,"end_character":33},"updated":"2018-01-25 16:00:30.000000000","message":"It\u0027s already been done now, the patch before the refactor is the one sorting out the order","commit_id":"03383c406c8ad5f7256ab0cab0c1fed9f23541bd"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"ceeb257990a556d58d1a49ad6b7953910dcfff84","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        LOG.warning(\u0027Inconsistencies found in the database!\u0027)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # Fix the create/update resources inconsistencies"},{"line_number":219,"context_line":"        # FIXME(mangelajo): get the resources by types, so we can handle"},{"line_number":220,"context_line":"        # root/leaf resources properly in order, now we\u0027d retry thanks to"},{"line_number":221,"context_line":"        # the exception handling."},{"line_number":222,"context_line":"        for row in create_update_inconsistencies:"},{"line_number":223,"context_line":"            try:"},{"line_number":224,"context_line":"                # NOTE(lucasagomes): The way to fix subnets is bit"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f93b717_766af280","line":221,"range":{"start_line":219,"start_character":0,"end_line":221,"end_character":33},"in_reply_to":"5f93b717_7b8f3bcc","updated":"2018-01-25 16:15:52.000000000","message":"Right! :) We didn\u0027t notice during rebase.\nDone","commit_id":"03383c406c8ad5f7256ab0cab0c1fed9f23541bd"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"575c3579f646b67a4e04d19db760247021713fc7","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            return"},{"line_number":208,"context_line":"        LOG.warning(\u0027Inconsistencies found in the database!\u0027)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # Fix the create/update resources inconsistencies"},{"line_number":211,"context_line":"        for row in create_update_inconsistencies:"},{"line_number":212,"context_line":"            try:"},{"line_number":213,"context_line":"                # NOTE(lucasagomes): The way to fix subnets is bit"}],"source_content_type":"text/x-python","patch_set":14,"id":"5f93b717_16628e3f","side":"PARENT","line":210,"updated":"2018-01-25 16:24:29.000000000","message":"@dalvarez, I guess this went away during the rebase you did, but it was unintended.","commit_id":"dc84c23a868e81d5d0df30c34de8b3904f1945e6"}],"networking_ovn/common/ovn_client.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"d77356ff7591444af89b8c114e37a481456cd5d7","unresolved":false,"context_lines":[{"line_number":991,"context_line":"                **columns),"},{"line_number":992,"context_line":"            self._nb_idl.set_lrouter_port_in_lswitch_port("},{"line_number":993,"context_line":"                port[\u0027id\u0027], lrouter_port_name, is_gw_port\u003dis_gw_port)]"},{"line_number":994,"context_line":"        self._transaction(commands, txn\u003dtxn)"},{"line_number":995,"context_line":""},{"line_number":996,"context_line":"    def update_router_port(self, router_id, port):"},{"line_number":997,"context_line":"        \"\"\"Update a logical router port.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_04d0e1f6","line":994,"updated":"2018-01-23 11:03:12.000000000","message":"oops! -\u003e db_rev.bump_revision(port, ovn_const.TYPE_ROUTER_PORTS)","commit_id":"106b3d06a38041c95daf0b1dd368498c22911b0f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c72bafc26cfa2b45acf6beca1386ef3589a1d597","unresolved":false,"context_lines":[{"line_number":991,"context_line":"                **columns),"},{"line_number":992,"context_line":"            self._nb_idl.set_lrouter_port_in_lswitch_port("},{"line_number":993,"context_line":"                port[\u0027id\u0027], lrouter_port_name, is_gw_port\u003dis_gw_port)]"},{"line_number":994,"context_line":"        self._transaction(commands, txn\u003dtxn)"},{"line_number":995,"context_line":""},{"line_number":996,"context_line":"    def update_router_port(self, router_id, port):"},{"line_number":997,"context_line":"        \"\"\"Update a logical router port.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_8ee64744","line":994,"in_reply_to":"7f96bb07_04d0e1f6","updated":"2018-01-23 15:31:42.000000000","message":"++","commit_id":"106b3d06a38041c95daf0b1dd368498c22911b0f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c8b710835222c36c675510782b1c5b9668a45744","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"        if bump_db_rev and check_rev_cmd.result \u003d\u003d ovn_const.TXN_COMMITTED:"},{"line_number":1062,"context_line":"            db_rev.bump_revision(port, ovn_const.TYPE_ROUTER_PORTS)"},{"line_number":1063,"context_line":"        else:"},{"line_number":1064,"context_line":"            # FIXME(mangelajo): we don\u0027t bump the revision here, but we do"},{"line_number":1065,"context_line":"            # in the higher level add_router_interface function, because"},{"line_number":1066,"context_line":"            # we can\u0027t consider it done until the Nat rules are updated"},{"line_number":1067,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f93b717_21674a50","line":1064,"range":{"start_line":1064,"start_character":14,"end_line":1064,"end_character":19},"updated":"2018-01-25 12:29:39.000000000","message":"I see we have this same description in the create_router_port() method. But there, it\u0027s a NOTE and here it\u0027s a FIXME. Is this something we want to fix later or we are just noting that we bump the revision number elsewhere ?","commit_id":"1422e41d7e1190add8a97bfa44ecee0c61d26e61"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"cc0470f5605ddc95d7d667ed7990b5d1f210760a","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"        if bump_db_rev and check_rev_cmd.result \u003d\u003d ovn_const.TXN_COMMITTED:"},{"line_number":1062,"context_line":"            db_rev.bump_revision(port, ovn_const.TYPE_ROUTER_PORTS)"},{"line_number":1063,"context_line":"        else:"},{"line_number":1064,"context_line":"            # FIXME(mangelajo): we don\u0027t bump the revision here, but we do"},{"line_number":1065,"context_line":"            # in the higher level add_router_interface function, because"},{"line_number":1066,"context_line":"            # we can\u0027t consider it done until the Nat rules are updated"},{"line_number":1067,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f93b717_b63ddabc","line":1064,"range":{"start_line":1064,"start_character":14,"end_line":1064,"end_character":19},"updated":"2018-01-25 16:00:30.000000000","message":"This sounds more like a NOTE (as per L1035) than a FIXME to me because it doesn\u0027t describe any actions that we have to do in the future to stop this behavior.","commit_id":"03383c406c8ad5f7256ab0cab0c1fed9f23541bd"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"ceeb257990a556d58d1a49ad6b7953910dcfff84","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"        if bump_db_rev and check_rev_cmd.result \u003d\u003d ovn_const.TXN_COMMITTED:"},{"line_number":1062,"context_line":"            db_rev.bump_revision(port, ovn_const.TYPE_ROUTER_PORTS)"},{"line_number":1063,"context_line":"        else:"},{"line_number":1064,"context_line":"            # FIXME(mangelajo): we don\u0027t bump the revision here, but we do"},{"line_number":1065,"context_line":"            # in the higher level add_router_interface function, because"},{"line_number":1066,"context_line":"            # we can\u0027t consider it done until the Nat rules are updated"},{"line_number":1067,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f93b717_561b361a","line":1064,"range":{"start_line":1064,"start_character":14,"end_line":1064,"end_character":19},"in_reply_to":"5f93b717_b63ddabc","updated":"2018-01-25 16:15:52.000000000","message":"Makes total sense. Thank you.","commit_id":"03383c406c8ad5f7256ab0cab0c1fed9f23541bd"}],"networking_ovn/db/revision.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c8b710835222c36c675510782b1c5b9668a45744","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            resource_type\u003dresource_type))"},{"line_number":117,"context_line":"        LOG.debug(\"bump_revision uuid\u003d%s type\u003d%s new_rev\u003d%s ovn_rev\u003d%s\","},{"line_number":118,"context_line":"                  resource[\u0027id\u0027], resource_type, revision_number,"},{"line_number":119,"context_line":"                  row.revision_number)"},{"line_number":120,"context_line":"        if revision_number \u003c row.revision_number:"},{"line_number":121,"context_line":"            LOG.debug("},{"line_number":122,"context_line":"                \u0027Skip bumping the revision number for %(res_uuid)s (type: \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f93b717_61fa3243","line":119,"updated":"2018-01-25 12:29:39.000000000","message":"Do we want to keep this debug logs here ? Just asking because we do log when it\u0027s skipped (L120) and after it\u0027s committed (L130)","commit_id":"1422e41d7e1190add8a97bfa44ecee0c61d26e61"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"cc0470f5605ddc95d7d667ed7990b5d1f210760a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            resource_type\u003dresource_type))"},{"line_number":117,"context_line":"        LOG.debug(\"bump_revision uuid\u003d%s type\u003d%s new_rev\u003d%s ovn_rev\u003d%s\","},{"line_number":118,"context_line":"                  resource[\u0027id\u0027], resource_type, revision_number,"},{"line_number":119,"context_line":"                  row.revision_number)"},{"line_number":120,"context_line":"        if revision_number \u003c row.revision_number:"},{"line_number":121,"context_line":"            LOG.debug("},{"line_number":122,"context_line":"                \u0027Skip bumping the revision number for %(res_uuid)s (type: \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f93b717_fb710be2","line":119,"updated":"2018-01-25 16:00:30.000000000","message":"Should we keep these debug logs ?\n\nWe already log something similar at L121 and after commit as well L130","commit_id":"03383c406c8ad5f7256ab0cab0c1fed9f23541bd"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"ceeb257990a556d58d1a49ad6b7953910dcfff84","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            resource_type\u003dresource_type))"},{"line_number":117,"context_line":"        LOG.debug(\"bump_revision uuid\u003d%s type\u003d%s new_rev\u003d%s ovn_rev\u003d%s\","},{"line_number":118,"context_line":"                  resource[\u0027id\u0027], resource_type, revision_number,"},{"line_number":119,"context_line":"                  row.revision_number)"},{"line_number":120,"context_line":"        if revision_number \u003c row.revision_number:"},{"line_number":121,"context_line":"            LOG.debug("},{"line_number":122,"context_line":"                \u0027Skip bumping the revision number for %(res_uuid)s (type: \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"5f93b717_3619cad6","line":119,"in_reply_to":"5f93b717_fb710be2","updated":"2018-01-25 16:15:52.000000000","message":"Done. Daniel did :D","commit_id":"03383c406c8ad5f7256ab0cab0c1fed9f23541bd"}],"networking_ovn/l3/l3_ovn.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"fe047355278429ccba2914dfa328298d15dc64ad","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            pass"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        if not router.get(l3.EXTERNAL_GW_INFO):"},{"line_number":228,"context_line":"            self._ovn_client.delete_router_port(port_id, router_id)"},{"line_number":229,"context_line":"            db_rev.delete_revision(port_id, ovn_const.TYPE_ROUTER_PORTS)"},{"line_number":230,"context_line":"            return router_interface_info"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_00b206e7","line":228,"updated":"2018-01-23 14:45:34.000000000","message":"This change is buggy, this should only happen if multi_prefix \u003d\u003d False","commit_id":"106b3d06a38041c95daf0b1dd368498c22911b0f"}],"networking_ovn/ml2/mech_driver.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"c3a6378046e4507e0b1bbb8a2edc8bb1162f3618","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                                       context._plugin_context.session)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"        # in the case of router ports we also need to track the creation of"},{"line_number":365,"context_line":"        # the LSPs"},{"line_number":366,"context_line":"        if utils.is_lsp_router_port(port):"},{"line_number":367,"context_line":"            db_rev.create_initial_revision(port[\u0027id\u0027],"},{"line_number":368,"context_line":"                                           ovn_const.TYPE_ROUTER_PORTS)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_a99baf63","line":365,"range":{"start_line":365,"start_character":14,"end_line":365,"end_character":18},"updated":"2018-01-17 13:12:11.000000000","message":"LRPs","commit_id":"030fd701af59d4e88616679233c5d906d10bf67c"}],"networking_ovn/ovsdb/impl_idl_ovn.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c8b710835222c36c675510782b1c5b9668a45744","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        result \u003d lr.execute(check_error\u003dTrue)"},{"line_number":628,"context_line":"        return result[0] if result else None"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def get_lrouter_port(self, lrp_name):"},{"line_number":631,"context_line":"        # TODO(mangelajo): Implement lrp_get() ovsdbapp and use from here"},{"line_number":632,"context_line":"        lrp \u003d self.db_find_rows(\u0027Logical_Router_Port\u0027, (\u0027name\u0027, \u0027\u003d\u0027, lrp_name))"},{"line_number":633,"context_line":"        result \u003d lrp.execute(check_error\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f93b717_81241ec8","line":630,"range":{"start_line":630,"start_character":0,"end_line":630,"end_character":41},"updated":"2018-01-25 12:29:39.000000000","message":"Let\u0027s add this new method to the ovn_api.py module as well: https://github.com/openstack/networking-ovn/blob/0a548563ffeb3434e71d4206c728eb392be65db3/networking_ovn/ovsdb/ovn_api.py#L576-L583","commit_id":"1422e41d7e1190add8a97bfa44ecee0c61d26e61"}],"networking_ovn/tests/unit/l3/test_l3_ovn.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"7c604afdb3da1df6b7957746283826e514e032f6","unresolved":false,"context_lines":[{"line_number":404,"context_line":""},{"line_number":405,"context_line":"        bump_rev_calls \u003d [mock.call(self.fake_ext_gw_port,"},{"line_number":406,"context_line":"                                    ovn_const.TYPE_ROUTER_PORTS),"},{"line_number":407,"context_line":"                          mock.call(self.fake_router_with_ext_gw,"},{"line_number":408,"context_line":"                                    ovn_const.TYPE_ROUTERS),"},{"line_number":409,"context_line":"                          ]"},{"line_number":410,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7f96bb07_b15b4af4","line":407,"updated":"2018-01-24 09:14:03.000000000","message":"This call is not present because above in L382 you are mocking _get_v4_network_of_all_router_ports to return an empty list. Thus, _add_router_ext_gw() will not get called and the router port won\u0027t get created:\n\n                if router.get(l3.EXTERNAL_GW_INFO) and networks is not None:\n                    self._add_router_ext_gw(context, router, networks, txn)\n\n\n^ networks is None due to the mock in L382","commit_id":"a6472b7155cf73b15fb49698f89656f6b5ca529e"}]}
