)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"633a1143c2cfdcc78454b41392412a1d0dde627d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"As we discussed on http://lists.openstack.org/pipermail/openstack-dev/2015-July/068864.html"},{"line_number":10,"context_line":"All http POST/PUT methods need to contain **kwargs as their arguments."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch makes add_router_interface_with_subnet_id,"},{"line_number":13,"context_line":"add_router_interface_with_port_id, remove_router_interface_with_subnet_id,"},{"line_number":14,"context_line":"remove_router_interface_with_port_id of network_client use **kwargs."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a7b0d38_86277bb5","line":12,"updated":"2015-12-25 11:10:58.000000000","message":"We should mention in the commit message that now we have two methods instead of four.","commit_id":"7e772a5632678b28bbfc9a255fc1c10a5288ba99"},{"author":{"_account_id":17753,"name":"Piyush Pathak","email":"cyperxprt@gmail.com","username":"piyush110786"},"change_message_id":"51cdd87a5228d2df9d895fd2bd89e5a62face2f4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"As we discussed on http://lists.openstack.org/pipermail/openstack-dev/2015-July/068864.html"},{"line_number":10,"context_line":"All http POST/PUT methods need to contain **kwargs as their arguments."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch makes add_router_interface_with_subnet_id,"},{"line_number":13,"context_line":"add_router_interface_with_port_id, remove_router_interface_with_subnet_id,"},{"line_number":14,"context_line":"remove_router_interface_with_port_id of network_client use **kwargs."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a7b0d38_d8d9bc23","line":12,"in_reply_to":"1a7b0d38_86277bb5","updated":"2015-12-28 05:23:07.000000000","message":"Done","commit_id":"7e772a5632678b28bbfc9a255fc1c10a5288ba99"}],"tempest/api/network/admin/test_l3_agent_scheduler.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"6a1042b71478363bca741c0784719244ecd927cb","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                cls.network \u003d cls.create_network()"},{"line_number":81,"context_line":"                cls.subnet \u003d cls.create_subnet(cls.network)"},{"line_number":82,"context_line":"                cls.port \u003d cls.create_port(cls.network)"},{"line_number":83,"context_line":"                    cls.router[\u0027id\u0027], cls.port[\u0027id\u0027])"},{"line_number":84,"context_line":"                cls.client.add_router_interface(cls.router[\u0027id\u0027],"},{"line_number":85,"context_line":"                                                port_id\u003dcls.port[\u0027id\u0027])"},{"line_number":86,"context_line":"                # NOTE: Sometimes we have seen this test fail with dvr in,"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_59e20f05","line":83,"updated":"2016-01-12 13:38:51.000000000","message":"Please, remove this line.","commit_id":"1c33d2ba478cd3f718ac65fc206cd672100d86ed"}],"tempest/services/network/json/network_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3dd1e42899a8dad5ad3167af52b9a6a6d154e710","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        uri \u003d \u0027/routers/%s/add_router_interface\u0027 % router_id"},{"line_number":243,"context_line":"        return self.update_resource(uri, kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def add_router_interface_with_port_id(self, router_id, **kwargs):"},{"line_number":246,"context_line":"        \"\"\"add router interface with port id"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        Available params: see http://developer.openstack.org/"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_0d47d877","line":245,"range":{"start_line":245,"start_character":4,"end_line":245,"end_character":69},"updated":"2015-12-21 08:01:25.000000000","message":"We can merge add_router_interface_with_port_id and add_router_interface_with_subnet_id into a single add_router_interface() because we remove subnet_id and port_id from them.\n\nThat is very nice to clean up","commit_id":"7f42db5fc796e890dadf78e526f4003e8d142535"},{"author":{"_account_id":17753,"name":"Piyush Pathak","email":"cyperxprt@gmail.com","username":"piyush110786"},"change_message_id":"999f1c325528cdf9532509160ff8ccc12888fbf0","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        uri \u003d \u0027/routers/%s/add_router_interface\u0027 % router_id"},{"line_number":243,"context_line":"        return self.update_resource(uri, kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def add_router_interface_with_port_id(self, router_id, **kwargs):"},{"line_number":246,"context_line":"        \"\"\"add router interface with port id"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        Available params: see http://developer.openstack.org/"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_3b4f6038","line":245,"range":{"start_line":245,"start_character":4,"end_line":245,"end_character":69},"in_reply_to":"3a7e1126_0d47d877","updated":"2015-12-21 11:51:17.000000000","message":"Thanks for the comment Ken\u0027ichi Ohmichi.. I think so same we can implement on remove remove_router_interface_with_subnet_id and remove_router_interface_with_port_id. what do you say ??","commit_id":"7f42db5fc796e890dadf78e526f4003e8d142535"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"240dede29be3a3089e17d489611f20a4dac419c9","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        uri \u003d \u0027/routers/%s/add_router_interface\u0027 % router_id"},{"line_number":243,"context_line":"        return self.update_resource(uri, kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def add_router_interface_with_port_id(self, router_id, **kwargs):"},{"line_number":246,"context_line":"        \"\"\"add router interface with port id"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        Available params: see http://developer.openstack.org/"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a7b0d38_a55f2d40","line":245,"range":{"start_line":245,"start_character":4,"end_line":245,"end_character":69},"in_reply_to":"3a7e1126_3b4f6038","updated":"2015-12-24 08:37:49.000000000","message":"Nice idea! yeah, we can do it for remove_router_interface_** also.","commit_id":"7f42db5fc796e890dadf78e526f4003e8d142535"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"633a1143c2cfdcc78454b41392412a1d0dde627d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        return self._update_router(router_id, set_enable_snat\u003dTrue, **kwargs)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def add_router_interface(self, router_id, **kwargs):"},{"line_number":237,"context_line":"        \"\"\"add router interface with subnet id"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        Available params: see http://developer.openstack.org/"},{"line_number":240,"context_line":"                              api-ref-networking-v2-ext.html#addRouterInterface"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_3374c7cd","line":237,"updated":"2015-12-25 11:10:58.000000000","message":"As far as I understand now we can add router with both subnet ID and port ID. So doc string should be corrected.\n\n  \"\"\"Add router interface.\n    \n  Available params: see http://developer.openstack.org/\n                        api-ref-networking-v2-ext.html#addRouterInterface\n  \"\"\"","commit_id":"7e772a5632678b28bbfc9a255fc1c10a5288ba99"},{"author":{"_account_id":17753,"name":"Piyush Pathak","email":"cyperxprt@gmail.com","username":"piyush110786"},"change_message_id":"51cdd87a5228d2df9d895fd2bd89e5a62face2f4","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        return self._update_router(router_id, set_enable_snat\u003dTrue, **kwargs)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def add_router_interface(self, router_id, **kwargs):"},{"line_number":237,"context_line":"        \"\"\"add router interface with subnet id"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        Available params: see http://developer.openstack.org/"},{"line_number":240,"context_line":"                              api-ref-networking-v2-ext.html#addRouterInterface"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_78ea08ae","line":237,"in_reply_to":"1a7b0d38_3374c7cd","updated":"2015-12-28 05:23:07.000000000","message":"nice catch!! thanks :-)","commit_id":"7e772a5632678b28bbfc9a255fc1c10a5288ba99"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"633a1143c2cfdcc78454b41392412a1d0dde627d","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        return self.update_resource(uri, kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def remove_router_interface(self, router_id, **kwargs):"},{"line_number":246,"context_line":"        \"\"\"remove router interface with subnet id"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        Available params: see http://developer.openstack.org/"},{"line_number":249,"context_line":"                              api-ref-networking-v2-ext.html#removeRouterInterface"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_533cf3e1","line":246,"updated":"2015-12-25 11:10:58.000000000","message":"ditto.","commit_id":"7e772a5632678b28bbfc9a255fc1c10a5288ba99"},{"author":{"_account_id":17753,"name":"Piyush Pathak","email":"cyperxprt@gmail.com","username":"piyush110786"},"change_message_id":"51cdd87a5228d2df9d895fd2bd89e5a62face2f4","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        return self.update_resource(uri, kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def remove_router_interface(self, router_id, **kwargs):"},{"line_number":246,"context_line":"        \"\"\"remove router interface with subnet id"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        Available params: see http://developer.openstack.org/"},{"line_number":249,"context_line":"                              api-ref-networking-v2-ext.html#removeRouterInterface"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_18d424ea","line":246,"in_reply_to":"1a7b0d38_533cf3e1","updated":"2015-12-28 05:23:07.000000000","message":"Done","commit_id":"7e772a5632678b28bbfc9a255fc1c10a5288ba99"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"96bc02bd616b72500218d47e05fce554f9e6e84b","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        return self._update_router(router_id, set_enable_snat\u003dTrue, **kwargs)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def add_router_interface(self, router_id, **kwargs):"},{"line_number":237,"context_line":"        \"\"\"add router interface"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        Available params: see http://developer.openstack.org/"},{"line_number":240,"context_line":"                              api-ref-networking-v2-ext.html#addRouterInterface"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_b2ad7233","line":237,"range":{"start_line":237,"start_character":11,"end_line":237,"end_character":14},"updated":"2015-12-30 10:40:14.000000000","message":"add -\u003e Add. Also a dot is needed after \u0027interface\u0027.","commit_id":"640fe8519b02bf36d2e94cbd638f956c66a12a2c"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"96bc02bd616b72500218d47e05fce554f9e6e84b","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        return self.update_resource(uri, kwargs)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def remove_router_interface(self, router_id, **kwargs):"},{"line_number":246,"context_line":"        \"\"\"remove router interface"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        Available params: see http://developer.openstack.org/"},{"line_number":249,"context_line":"                              api-ref-networking-v2-ext.html#removeRouterInterface"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa69d971_f271aae1","line":246,"range":{"start_line":246,"start_character":11,"end_line":246,"end_character":17},"updated":"2015-12-30 10:40:14.000000000","message":"ditto","commit_id":"640fe8519b02bf36d2e94cbd638f956c66a12a2c"}],"tempest/tests/common/test_dynamic_creds.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cf4bb934541899b83af11b9757cd74795417fda4","unresolved":false,"context_lines":[{"line_number":413,"context_line":"        # Verify remove router interface calls"},{"line_number":414,"context_line":"        calls \u003d remove_router_interface_mock.mock_calls"},{"line_number":415,"context_line":"        self.assertEqual(len(calls), 3)"},{"line_number":416,"context_line":"        args \u003d map(lambda x: x[1], calls)"},{"line_number":417,"context_line":"        kwargs \u003d map(lambda x: x[2], calls)"},{"line_number":418,"context_line":"        args \u003d list(args)"},{"line_number":419,"context_line":"        kwargs \u003d list(kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa69d971_8e55a21e","line":416,"updated":"2015-12-30 13:49:28.000000000","message":"It can be something like this:\n\n    args \u003d map(lambda x: (x[1][0], x[2]), calls)","commit_id":"edc2ed69a0af6c3edefbb670ade997c450412eae"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cf4bb934541899b83af11b9757cd74795417fda4","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        calls \u003d remove_router_interface_mock.mock_calls"},{"line_number":415,"context_line":"        self.assertEqual(len(calls), 3)"},{"line_number":416,"context_line":"        args \u003d map(lambda x: x[1], calls)"},{"line_number":417,"context_line":"        kwargs \u003d map(lambda x: x[2], calls)"},{"line_number":418,"context_line":"        args \u003d list(args)"},{"line_number":419,"context_line":"        kwargs \u003d list(kwargs)"},{"line_number":420,"context_line":"        self.assertIn((\u00271234\u0027,), args)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa69d971_09252caa","line":417,"updated":"2015-12-30 13:49:28.000000000","message":"So this line can be removed at all.","commit_id":"edc2ed69a0af6c3edefbb670ade997c450412eae"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cf4bb934541899b83af11b9757cd74795417fda4","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        kwargs \u003d map(lambda x: x[2], calls)"},{"line_number":418,"context_line":"        args \u003d list(args)"},{"line_number":419,"context_line":"        kwargs \u003d list(kwargs)"},{"line_number":420,"context_line":"        self.assertIn((\u00271234\u0027,), args)"},{"line_number":421,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u00271234\u0027}, kwargs)"},{"line_number":422,"context_line":"        self.assertIn((\u002712345\u0027,), args)"},{"line_number":423,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u002712345\u0027}, kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa69d971_ce22bab9","line":420,"updated":"2015-12-30 13:49:28.000000000","message":"And here we can write in such a way:\n\n    self.assertIn((\u00271234\u0027, {\u0027subnet_id\u0027: \u00271234\u0027}), args)","commit_id":"edc2ed69a0af6c3edefbb670ade997c450412eae"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"af304de5599d786eed1bcc78fb3650a947cc0743","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        self.assertEqual(len(calls), 3)"},{"line_number":420,"context_line":"        args \u003d map(lambda x: (x[1][0], x[2]), calls)"},{"line_number":421,"context_line":"        args \u003d list(args)"},{"line_number":422,"context_line":"        kwargs \u003d list(kwargs)"},{"line_number":423,"context_line":"        self.assertIn((\u00271234\u0027, {\u0027subnet_id\u0027: \u00271234\u0027}), args)"},{"line_number":424,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u00271234\u0027}, kwargs)"},{"line_number":425,"context_line":"        self.assertIn((\u002712345\u0027,), args)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_db958a40","line":422,"updated":"2016-01-21 02:30:02.000000000","message":"We should remove this line.","commit_id":"175787d3630a3c15574b4e1e26d5e49b151ba56d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"af304de5599d786eed1bcc78fb3650a947cc0743","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        args \u003d list(args)"},{"line_number":422,"context_line":"        kwargs \u003d list(kwargs)"},{"line_number":423,"context_line":"        self.assertIn((\u00271234\u0027, {\u0027subnet_id\u0027: \u00271234\u0027}), args)"},{"line_number":424,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u00271234\u0027}, kwargs)"},{"line_number":425,"context_line":"        self.assertIn((\u002712345\u0027,), args)"},{"line_number":426,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u002712345\u0027}, kwargs)"},{"line_number":427,"context_line":"        self.assertIn((\u0027123456\u0027,), args)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_5b88ba22","line":424,"updated":"2016-01-21 02:30:02.000000000","message":"ditto.","commit_id":"175787d3630a3c15574b4e1e26d5e49b151ba56d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"af304de5599d786eed1bcc78fb3650a947cc0743","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        kwargs \u003d list(kwargs)"},{"line_number":423,"context_line":"        self.assertIn((\u00271234\u0027, {\u0027subnet_id\u0027: \u00271234\u0027}), args)"},{"line_number":424,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u00271234\u0027}, kwargs)"},{"line_number":425,"context_line":"        self.assertIn((\u002712345\u0027,), args)"},{"line_number":426,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u002712345\u0027}, kwargs)"},{"line_number":427,"context_line":"        self.assertIn((\u0027123456\u0027,), args)"},{"line_number":428,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u0027123456\u0027}, kwargs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_bbaa166f","line":425,"updated":"2016-01-21 02:30:02.000000000","message":"It should be \n\n\nself.assertIn((\u002712345\u0027, {\u0027subnet_id\u0027: \u002712345\u0027}), args)","commit_id":"175787d3630a3c15574b4e1e26d5e49b151ba56d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"af304de5599d786eed1bcc78fb3650a947cc0743","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        self.assertIn((\u00271234\u0027, {\u0027subnet_id\u0027: \u00271234\u0027}), args)"},{"line_number":424,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u00271234\u0027}, kwargs)"},{"line_number":425,"context_line":"        self.assertIn((\u002712345\u0027,), args)"},{"line_number":426,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u002712345\u0027}, kwargs)"},{"line_number":427,"context_line":"        self.assertIn((\u0027123456\u0027,), args)"},{"line_number":428,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u0027123456\u0027}, kwargs)"},{"line_number":429,"context_line":"        # Verify network delete calls"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_1b824201","line":426,"updated":"2016-01-21 02:30:02.000000000","message":"You should remove this line.","commit_id":"175787d3630a3c15574b4e1e26d5e49b151ba56d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"af304de5599d786eed1bcc78fb3650a947cc0743","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u00271234\u0027}, kwargs)"},{"line_number":425,"context_line":"        self.assertIn((\u002712345\u0027,), args)"},{"line_number":426,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u002712345\u0027}, kwargs)"},{"line_number":427,"context_line":"        self.assertIn((\u0027123456\u0027,), args)"},{"line_number":428,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u0027123456\u0027}, kwargs)"},{"line_number":429,"context_line":"        # Verify network delete calls"},{"line_number":430,"context_line":"        calls \u003d net_mock.mock_calls"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_dbd10afd","line":427,"updated":"2016-01-21 02:30:02.000000000","message":"self.assertIn((\u0027123456\u0027, {\u0027subnet_id\u0027: \u0027123456\u0027}), args)","commit_id":"175787d3630a3c15574b4e1e26d5e49b151ba56d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"af304de5599d786eed1bcc78fb3650a947cc0743","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        self.assertIn((\u002712345\u0027,), args)"},{"line_number":426,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u002712345\u0027}, kwargs)"},{"line_number":427,"context_line":"        self.assertIn((\u0027123456\u0027,), args)"},{"line_number":428,"context_line":"        self.assertIn({\u0027subnet_id\u0027: \u0027123456\u0027}, kwargs)"},{"line_number":429,"context_line":"        # Verify network delete calls"},{"line_number":430,"context_line":"        calls \u003d net_mock.mock_calls"},{"line_number":431,"context_line":"        self.assertEqual(len(calls), 3)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_db7caa22","line":428,"updated":"2016-01-21 02:30:02.000000000","message":"You should remove this line.","commit_id":"175787d3630a3c15574b4e1e26d5e49b151ba56d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3bd18f645719a8114182da9c7f3d6be9b5e90afa","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            \u0027tempest.services.network.json.network_client.NetworkClient.\u0027"},{"line_number":323,"context_line":"            \u0027add_router_interface\u0027)"},{"line_number":324,"context_line":"        primary_creds \u003d creds.get_primary_creds()"},{"line_number":325,"context_line":"        router_interface_mock.called_once_with(\u00271234\u0027, \u00271234\u0027)"},{"line_number":326,"context_line":"        network \u003d primary_creds.network"},{"line_number":327,"context_line":"        subnet \u003d primary_creds.subnet"},{"line_number":328,"context_line":"        router \u003d primary_creds.router"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a68dd71_974ebe94","line":325,"range":{"start_line":325,"start_character":60,"end_line":325,"end_character":62},"updated":"2016-01-22 09:22:56.000000000","message":"Problem here is called_once_with method does nto exist in mock and so it does not anything. \n\nThis is already fixed So rebase it with master and then do the necessary changes.\n\nThat is why you cannot get failure on your env and fails in gate","commit_id":"be15b8bed860bed815762875f443277cbd4da187"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a5d38e150acc540fa49ec448c64038040fa1b908","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            \u0027tempest.services.network.json.network_client.NetworkClient.\u0027"},{"line_number":323,"context_line":"            \u0027add_router_interface\u0027)"},{"line_number":324,"context_line":"        primary_creds \u003d creds.get_primary_creds()"},{"line_number":325,"context_line":"        router_interface_mock.called_once_with(\u00271234\u0027, \u00271234\u0027)"},{"line_number":326,"context_line":"        network \u003d primary_creds.network"},{"line_number":327,"context_line":"        subnet \u003d primary_creds.subnet"},{"line_number":328,"context_line":"        router \u003d primary_creds.router"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a68dd71_e37d04b2","line":325,"range":{"start_line":325,"start_character":55,"end_line":325,"end_character":61},"updated":"2016-01-22 06:43:37.000000000","message":"To fix unit tests it looks like it should be something like this:\n\n\nrouter_interface_mock.called_once_with(\u00271234\u0027, subnet_id\u003d\u00271234\u0027)","commit_id":"be15b8bed860bed815762875f443277cbd4da187"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a5d38e150acc540fa49ec448c64038040fa1b908","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            \u0027tempest.services.network.json.network_client.NetworkClient.\u0027"},{"line_number":355,"context_line":"            \u0027add_router_interface\u0027)"},{"line_number":356,"context_line":"        creds.get_primary_creds()"},{"line_number":357,"context_line":"        router_interface_mock.called_once_with(\u00271234\u0027, \u00271234\u0027)"},{"line_number":358,"context_line":"        router_interface_mock.reset_mock()"},{"line_number":359,"context_line":"        # Create alternate tenant and network"},{"line_number":360,"context_line":"        self._mock_user_create(\u002712345\u0027, \u0027fake_alt_user\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a68dd71_03605800","line":357,"range":{"start_line":357,"start_character":55,"end_line":357,"end_character":61},"updated":"2016-01-22 06:43:37.000000000","message":"ditto.","commit_id":"be15b8bed860bed815762875f443277cbd4da187"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a5d38e150acc540fa49ec448c64038040fa1b908","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        self._mock_subnet_create(creds, \u002712345\u0027, \u0027fake_alt_subnet\u0027)"},{"line_number":364,"context_line":"        self._mock_router_create(\u002712345\u0027, \u0027fake_alt_router\u0027)"},{"line_number":365,"context_line":"        creds.get_alt_creds()"},{"line_number":366,"context_line":"        router_interface_mock.called_once_with(\u002712345\u0027, \u002712345\u0027)"},{"line_number":367,"context_line":"        router_interface_mock.reset_mock()"},{"line_number":368,"context_line":"        # Create admin tenant and networks"},{"line_number":369,"context_line":"        self._mock_user_create(\u0027123456\u0027, \u0027fake_admin_user\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a68dd71_235b1c56","line":366,"range":{"start_line":366,"start_character":56,"end_line":366,"end_character":63},"updated":"2016-01-22 06:43:37.000000000","message":"ditto.","commit_id":"be15b8bed860bed815762875f443277cbd4da187"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a5d38e150acc540fa49ec448c64038040fa1b908","unresolved":false,"context_lines":[{"line_number":461,"context_line":"            \u0027tempest.services.network.json.network_client.NetworkClient.\u0027"},{"line_number":462,"context_line":"            \u0027add_router_interface\u0027)"},{"line_number":463,"context_line":"        alt_creds \u003d creds.get_alt_creds()"},{"line_number":464,"context_line":"        router_interface_mock.called_once_with(\u00271234\u0027, \u00271234\u0027)"},{"line_number":465,"context_line":"        network \u003d alt_creds.network"},{"line_number":466,"context_line":"        subnet \u003d alt_creds.subnet"},{"line_number":467,"context_line":"        router \u003d alt_creds.router"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a68dd71_633fd4d6","line":464,"range":{"start_line":464,"start_character":55,"end_line":464,"end_character":61},"updated":"2016-01-22 06:43:37.000000000","message":"ditto.","commit_id":"be15b8bed860bed815762875f443277cbd4da187"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"a5d38e150acc540fa49ec448c64038040fa1b908","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            \u0027add_router_interface\u0027)"},{"line_number":487,"context_line":"        self._mock_list_roles(\u0027123456\u0027, \u0027admin\u0027)"},{"line_number":488,"context_line":"        admin_creds \u003d creds.get_admin_creds()"},{"line_number":489,"context_line":"        router_interface_mock.called_once_with(\u00271234\u0027, \u00271234\u0027)"},{"line_number":490,"context_line":"        network \u003d admin_creds.network"},{"line_number":491,"context_line":"        subnet \u003d admin_creds.subnet"},{"line_number":492,"context_line":"        router \u003d admin_creds.router"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a68dd71_4313b066","line":489,"range":{"start_line":489,"start_character":55,"end_line":489,"end_character":61},"updated":"2016-01-22 06:43:37.000000000","message":"ditto.","commit_id":"be15b8bed860bed815762875f443277cbd4da187"}]}
