)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"30c34d73f6d5c44b138af21de633d381e3344c2b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Reedip \u003creedip.banerjee@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-22 12:15:32 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add option to unset information from Routers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch introduces the ``router unset`` command to"},{"line_number":10,"context_line":"clear the routing information from the routers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3aaa91ec_70b061de","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":44},"updated":"2016-06-22 09:14:21.000000000","message":"This title does not match the patch. The patch is adding a new command, right ?","commit_id":"1fed17a24d587fa57a7dcce555ad6d14ac546988"}],"doc/source/command-objects/router.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bd3bca5450abab25314333c605db2ba9d09193c0","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        [--route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e]"},{"line_number":250,"context_line":"        \u003crouter\u003e"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":".. option:: --route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    Routes to be removed from the router"},{"line_number":255,"context_line":"    destination: destination subnet (in CIDR notation)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_bad19c59","line":252,"range":{"start_line":252,"start_character":20,"end_line":252,"end_character":61},"updated":"2016-04-20 05:54:56.000000000","message":"i don\u0027t know much about networking (okay, at all), but isn\u0027t there an easier way to clear all the routes from a router? without having to specify so much?","commit_id":"86dd82d7c206e300b962668308aab5b39ad62c12"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"71292012e870e3db01ca9a55cc9bcb31b213cf9d","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        [--route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e]"},{"line_number":250,"context_line":"        \u003crouter\u003e"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":".. option:: --route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    Routes to be removed from the router"},{"line_number":255,"context_line":"    destination: destination subnet (in CIDR notation)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_bac87c23","line":252,"range":{"start_line":252,"start_character":20,"end_line":252,"end_character":61},"in_reply_to":"1a122d0e_bad19c59","updated":"2016-04-20 06:11:05.000000000","message":"Thats in the router_set ( see clear-routes)\nThis only clears one route of the set of routes","commit_id":"86dd82d7c206e300b962668308aab5b39ad62c12"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        [--route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e]"},{"line_number":254,"context_line":"        \u003crouter\u003e"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":".. option:: --route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    Routes to be removed from the router"},{"line_number":259,"context_line":"    destination: destination subnet (in CIDR notation)"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bab6814e_771fe9b6","line":256,"updated":"2016-05-23 18:41:43.000000000","message":"Please document that this option can be repeated.","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"28fd07c7db70316645ebe7331c96e595d03b3414","unresolved":false,"context_lines":[{"line_number":250,"context_line":".. code:: bash"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    os router unset"},{"line_number":253,"context_line":"        [--route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e]"},{"line_number":254,"context_line":"        \u003crouter\u003e"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":".. option:: --route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3aaa91ec_04eb8e79","line":253,"updated":"2016-06-28 12:11:27.000000000","message":"nits: repeatable options should be:\n\n    [--route destination\u003d\u003csubnet\u003e,gateway\u003d\u003cip-address\u003e [...]]","commit_id":"ed64788cf1a247ca03174770d43d8c7816cc0ad1"}],"openstackclient/network/v2/router.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            dest\u003d\u0027routes\u0027,"},{"line_number":467,"context_line":"            default\u003dNone,"},{"line_number":468,"context_line":"            required_keys\u003d[\u0027destination\u0027, \u0027gateway\u0027],"},{"line_number":469,"context_line":"            help\u003d\"Routes to be removed from the router \""},{"line_number":470,"context_line":"                 \"destination: destination subnet (in CIDR notation) \""},{"line_number":471,"context_line":"                 \"gateway: nexthop IP address \")"},{"line_number":472,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_f78119c4","line":469,"updated":"2016-05-23 18:41:43.000000000","message":"Please wrap help in _()","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        parser.add_argument("},{"line_number":473,"context_line":"            \u0027router\u0027,"},{"line_number":474,"context_line":"            metavar\u003d\"\u003crouter\u003e\","},{"line_number":475,"context_line":"            help\u003d\"Router to modify (name or ID)\""},{"line_number":476,"context_line":"        )"},{"line_number":477,"context_line":"        return parser"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_d784d5d3","line":475,"updated":"2016-05-23 18:41:43.000000000","message":"Please wrap help in _()","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":479,"context_line":"    def take_action(self, parsed_args):"},{"line_number":480,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":481,"context_line":"        obj \u003d client.find_router(parsed_args.router, ignore_missing\u003dFalse)"},{"line_number":482,"context_line":"        tmp_obj \u003d copy.deepcopy(obj)"},{"line_number":483,"context_line":"        attrs \u003d {}"},{"line_number":484,"context_line":"        if parsed_args.routes:"},{"line_number":485,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_f7cf5926","line":482,"range":{"start_line":482,"start_character":18,"end_line":482,"end_character":31},"updated":"2016-05-23 18:41:43.000000000","message":"I don\u0027t think the entire object should be deep copied.  This *may* not work after the pending SDK refactor.  Instead, I suggest that just the routes is deep copied.","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        if parsed_args.routes:"},{"line_number":485,"context_line":"            try:"},{"line_number":486,"context_line":"                for route in parsed_args.routes:"},{"line_number":487,"context_line":"                    tmp_obj.routes.remove(route)"},{"line_number":488,"context_line":"            except ValueError:"},{"line_number":489,"context_line":"                msg \u003d (_(\"%s not in routes\") % route)"},{"line_number":490,"context_line":"                raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_525c7318","line":487,"updated":"2016-05-23 18:41:43.000000000","message":"Doesn\u0027t this need to handle the mapping from gateway to nexthop?","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":486,"context_line":"                for route in parsed_args.routes:"},{"line_number":487,"context_line":"                    tmp_obj.routes.remove(route)"},{"line_number":488,"context_line":"            except ValueError:"},{"line_number":489,"context_line":"                msg \u003d (_(\"%s not in routes\") % route)"},{"line_number":490,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":491,"context_line":"            attrs[\u0027routes\u0027] \u003d tmp_obj.routes"},{"line_number":492,"context_line":"        if attrs \u003d\u003d {}:"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_3761e105","line":489,"updated":"2016-05-23 18:41:43.000000000","message":"I suggest \"Router does not contain route %s\"","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":490,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":491,"context_line":"            attrs[\u0027routes\u0027] \u003d tmp_obj.routes"},{"line_number":492,"context_line":"        if attrs \u003d\u003d {}:"},{"line_number":493,"context_line":"            msg \u003d \"Nothing specified to be unset\""},{"line_number":494,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":495,"context_line":"        client.update_router(obj, **attrs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_979a4d12","line":493,"updated":"2016-05-23 18:41:43.000000000","message":"Please wrap error in _()","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"70de9f6df7f22e8570b57b6f759f7bf83085f9d3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from osc_lib.command import command"},{"line_number":23,"context_line":"from osc_lib import utils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from openstackclient.common import exceptions"},{"line_number":26,"context_line":"from openstackclient.i18n import _"},{"line_number":27,"context_line":"from openstackclient.identity import common as identity_common"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_eef5b4ed","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":45},"updated":"2016-06-15 11:00:34.000000000","message":"We should use \"from osc_lib import exceptions\" now.","commit_id":"b376c8fd803be55fb176684e6da22bbdffb55671"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"debdefe08c0fffaf762941966aa2f8bf4a6eaac3","unresolved":false,"context_lines":[{"line_number":463,"context_line":"            dest\u003d\u0027routes\u0027,"},{"line_number":464,"context_line":"            default\u003dNone,"},{"line_number":465,"context_line":"            required_keys\u003d[\u0027destination\u0027, \u0027gateway\u0027],"},{"line_number":466,"context_line":"            help\u003d_(\"Routes to be removed from the router \""},{"line_number":467,"context_line":"                   \"destination: destination subnet (in CIDR notation) \""},{"line_number":468,"context_line":"                   \"gateway: nexthop IP address \"))"},{"line_number":469,"context_line":"        parser.add_argument("},{"line_number":470,"context_line":"            \u0027router\u0027,"},{"line_number":471,"context_line":"            metavar\u003d\"\u003crouter\u003e\","}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_1f0f8989","line":468,"range":{"start_line":466,"start_character":20,"end_line":468,"end_character":48},"updated":"2016-06-15 12:58:07.000000000","message":"Please update to match the documentation.","commit_id":"b376c8fd803be55fb176684e6da22bbdffb55671"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"debdefe08c0fffaf762941966aa2f8bf4a6eaac3","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        attrs \u003d {}"},{"line_number":481,"context_line":"        if parsed_args.routes:"},{"line_number":482,"context_line":"            try:"},{"line_number":483,"context_line":"                for route in parsed_args.routes:"},{"line_number":484,"context_line":"                    tmp_routes.remove(route)"},{"line_number":485,"context_line":"            except ValueError:"},{"line_number":486,"context_line":"                msg \u003d (_(\"Router does not contain route %s\") % route)"},{"line_number":487,"context_line":"                raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_9f725910","line":484,"range":{"start_line":483,"start_character":16,"end_line":484,"end_character":44},"updated":"2016-06-15 12:58:07.000000000","message":"Doesn\u0027t this need to handle the mapping from gateway to nexthop?","commit_id":"b376c8fd803be55fb176684e6da22bbdffb55671"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"70de9f6df7f22e8570b57b6f759f7bf83085f9d3","unresolved":false,"context_lines":[{"line_number":487,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":488,"context_line":"            attrs[\u0027routes\u0027] \u003d tmp_routes"},{"line_number":489,"context_line":"        if attrs \u003d\u003d {}:"},{"line_number":490,"context_line":"            msg \u003d _(\"Nothing specified to be unset\")"},{"line_number":491,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":492,"context_line":"        client.update_router(obj, **attrs)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_eb3da6de","line":491,"range":{"start_line":490,"start_character":0,"end_line":491,"end_character":46},"updated":"2016-06-15 11:00:34.000000000","message":"We have agreed on that all set/unset commands should not raise exception when nothing specified. Please refer to:\nhttps://bugs.launchpad.net/python-openstackclient/+bug/1588588","commit_id":"b376c8fd803be55fb176684e6da22bbdffb55671"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"30c34d73f6d5c44b138af21de633d381e3344c2b","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                    tmp_routes.remove(route)"},{"line_number":501,"context_line":"            except ValueError:"},{"line_number":502,"context_line":"                msg \u003d (_(\"Router does not contain route %s\") % route)"},{"line_number":503,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":504,"context_line":"            for route in tmp_routes:"},{"line_number":505,"context_line":"                route[\u0027nexthop\u0027] \u003d route.pop(\u0027gateway\u0027)"},{"line_number":506,"context_line":"            attrs[\u0027routes\u0027] \u003d tmp_routes"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_5087250f","line":503,"range":{"start_line":503,"start_character":16,"end_line":503,"end_character":50},"updated":"2016-06-22 09:14:21.000000000","message":"So, if we check msg and raise exception at last, should we remove this ?","commit_id":"1fed17a24d587fa57a7dcce555ad6d14ac546988"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"dc7548d9f231396738c7b455f6e99463cf109568","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        msg \u003d None"},{"line_number":496,"context_line":"        attrs \u003d {}"},{"line_number":497,"context_line":"        if parsed_args.routes:"},{"line_number":498,"context_line":"            try:"},{"line_number":499,"context_line":"                for route in parsed_args.routes:"},{"line_number":500,"context_line":"                    tmp_routes.remove(route)"},{"line_number":501,"context_line":"            except ValueError:"},{"line_number":502,"context_line":"                msg \u003d (_(\"Router does not contain route %s\") % route)"},{"line_number":503,"context_line":"            for route in tmp_routes:"},{"line_number":504,"context_line":"                route[\u0027nexthop\u0027] \u003d route.pop(\u0027gateway\u0027)"},{"line_number":505,"context_line":"            attrs[\u0027routes\u0027] \u003d tmp_routes"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_6181b54a","line":502,"range":{"start_line":498,"start_character":12,"end_line":502,"end_character":69},"updated":"2016-06-22 09:52:38.000000000","message":"This is a little wield.\n\nIf there are 3 routes, and it failed to remove the 2nd one. Then tmp_routes will still contain the 3rd one. \n\nOf course, in the end, since msg is not None, an exception will be raised, and nothing will be updated. But it is not good, I think. \n\nOn the other hand, I think it is not like the multiple API calls issue. In this loop, update_router() is not called. So, I think we can raise the exception directly here when we found the 1st non-exist route.\n\nI\u0027d also like to hear from other cores.","commit_id":"c234c199c20950daf91cc5479b27f1fb1d8e6964"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"cf01eaad4307d8ed7b5c90074a3805b8b3b3f6fb","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        msg \u003d None"},{"line_number":496,"context_line":"        attrs \u003d {}"},{"line_number":497,"context_line":"        if parsed_args.routes:"},{"line_number":498,"context_line":"            try:"},{"line_number":499,"context_line":"                for route in parsed_args.routes:"},{"line_number":500,"context_line":"                    tmp_routes.remove(route)"},{"line_number":501,"context_line":"            except ValueError:"},{"line_number":502,"context_line":"                msg \u003d (_(\"Router does not contain route %s\") % route)"},{"line_number":503,"context_line":"            for route in tmp_routes:"},{"line_number":504,"context_line":"                route[\u0027nexthop\u0027] \u003d route.pop(\u0027gateway\u0027)"},{"line_number":505,"context_line":"            attrs[\u0027routes\u0027] \u003d tmp_routes"}],"source_content_type":"text/x-python","patch_set":20,"id":"3aaa91ec_84277311","line":502,"range":{"start_line":498,"start_character":12,"end_line":502,"end_character":69},"in_reply_to":"3aaa91ec_6181b54a","updated":"2016-06-22 17:50:25.000000000","message":"I think we can raise the exception immediately.","commit_id":"c234c199c20950daf91cc5479b27f1fb1d8e6964"}],"openstackclient/tests/network/v2/test_router.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bd3bca5450abab25314333c605db2ba9d09193c0","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        # Get the command object to test"},{"line_number":624,"context_line":"        self.cmd \u003d router.UnsetRouter(self.app, self.namespace)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def test_set_this(self):"},{"line_number":627,"context_line":"        arglist \u003d ["},{"line_number":628,"context_line":"            \u0027--route\u0027, \u0027destination\u003d192.168.101.1/24,gateway\u003d172.24.4.3\u0027,"},{"line_number":629,"context_line":"            self._testrouter.name,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a122d0e_ba835c55","line":626,"range":{"start_line":626,"start_character":8,"end_line":626,"end_character":21},"updated":"2016-04-20 05:54:56.000000000","message":"test_unset(sefl)","commit_id":"86dd82d7c206e300b962668308aab5b39ad62c12"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"85889aff624fa311d47c4197d90270df79da8648","unresolved":false,"context_lines":[{"line_number":645,"context_line":"    def setUp(self):"},{"line_number":646,"context_line":"        super(TestUnsetRouter, self).setUp()"},{"line_number":647,"context_line":"        self._testrouter \u003d network_fakes.FakeRouter.create_one_router("},{"line_number":648,"context_line":"            {\u0027routes\u0027: [{\"destination\": \"192.168.101.1/24\","},{"line_number":649,"context_line":"                         \"gateway\": \"172.24.4.3\"}], })"},{"line_number":650,"context_line":"        self.network.find_port \u003d mock.Mock(return_value\u003dself._testrouter)"},{"line_number":651,"context_line":"        self.fake_subnet \u003d network_fakes.FakeSubnet.create_one_subnet()"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_d7133563","line":648,"updated":"2016-05-23 18:41:43.000000000","message":"I suggest including multiple routes to ensure only the specified route is removed.","commit_id":"3528596f6aa212f48cf56879d90b80a3f3c20b2c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"70de9f6df7f22e8570b57b6f759f7bf83085f9d3","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from osc_lib import utils as osc_utils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from openstackclient.common import exceptions"},{"line_number":19,"context_line":"from openstackclient.network.v2 import router"},{"line_number":20,"context_line":"from openstackclient.tests.network.v2 import fakes as network_fakes"},{"line_number":21,"context_line":"from openstackclient.tests import utils as tests_utils"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_aed28c59","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":45},"updated":"2016-06-15 11:00:34.000000000","message":"from osc_lib import exceptions","commit_id":"b376c8fd803be55fb176684e6da22bbdffb55671"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"debdefe08c0fffaf762941966aa2f8bf4a6eaac3","unresolved":false,"context_lines":[{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        attrs \u003d {"},{"line_number":682,"context_line":"            \u0027routes\u0027: [{\"destination\": \"192.168.101.2/24\","},{"line_number":683,"context_line":"                        \"gateway\": \"172.24.4.3\"}],"},{"line_number":684,"context_line":"        }"},{"line_number":685,"context_line":"        self.network.update_router.assert_called_once_with("},{"line_number":686,"context_line":"            self._testrouter, **attrs)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_bffab541","line":683,"range":{"start_line":683,"start_character":25,"end_line":683,"end_character":32},"updated":"2016-06-15 12:58:07.000000000","message":"Neutron understands nexthop, not gateway","commit_id":"b376c8fd803be55fb176684e6da22bbdffb55671"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"30c34d73f6d5c44b138af21de633d381e3344c2b","unresolved":false,"context_lines":[{"line_number":709,"context_line":"                         \"gateway\": \"172.24.4.3\"},"},{"line_number":710,"context_line":"                        {\"destination\": \"192.168.101.2/24\","},{"line_number":711,"context_line":"                         \"gateway\": \"172.24.4.3\"}], })"},{"line_number":712,"context_line":"        self.network.find_port \u003d mock.Mock(return_value\u003dself._testrouter)"},{"line_number":713,"context_line":"        self.fake_subnet \u003d network_fakes.FakeSubnet.create_one_subnet()"},{"line_number":714,"context_line":"        self.network.find_router \u003d mock.Mock(return_value\u003dself._testrouter)"},{"line_number":715,"context_line":"        self.network.update_router \u003d mock.Mock(return_value\u003dNone)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_d055d51d","line":712,"range":{"start_line":712,"start_character":8,"end_line":712,"end_character":73},"updated":"2016-06-22 09:14:21.000000000","message":"Remove this ?","commit_id":"1fed17a24d587fa57a7dcce555ad6d14ac546988"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"28fd07c7db70316645ebe7331c96e595d03b3414","unresolved":false,"context_lines":[{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    def test_unset_router_params(self):"},{"line_number":719,"context_line":"        arglist \u003d ["},{"line_number":720,"context_line":"            \u0027--route\u0027, \u0027destination\u003d192.168.101.1/24,gateway\u003d172.24.4.3\u0027,"},{"line_number":721,"context_line":"            self._testrouter.name,"},{"line_number":722,"context_line":"        ]"},{"line_number":723,"context_line":"        verifylist \u003d ["}],"source_content_type":"text/x-python","patch_set":23,"id":"3aaa91ec_276dec04","line":720,"updated":"2016-06-28 12:11:27.000000000","message":"Add a test case for multiple \"--route\u0027 input, that looks make sense.","commit_id":"ed64788cf1a247ca03174770d43d8c7816cc0ad1"}],"releasenotes/notes/unset-router-7b0cbd9518bb1de6.yaml":[{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"70de9f6df7f22e8570b57b6f759f7bf83085f9d3","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new command ``router unset`` to clear the information"},{"line_number":5,"context_line":"    of routes from the router."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7aa08908_8eefd0e8","line":6,"updated":"2016-06-15 11:00:34.000000000","message":"Please also link the BP here.","commit_id":"b376c8fd803be55fb176684e6da22bbdffb55671"}],"setup.cfg":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bd3bca5450abab25314333c605db2ba9d09193c0","unresolved":false,"context_lines":[{"line_number":336,"context_line":"    port_set \u003d openstackclient.network.v2.port:SetPort"},{"line_number":337,"context_line":"    port_show \u003d openstackclient.network.v2.port:ShowPort"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    router_add_port \u003d openstackclient.network.v2.router:AddPortToRouter"},{"line_number":341,"context_line":"    router_add_subnet \u003d openstackclient.network.v2.router:AddSubnetToRouter"},{"line_number":342,"context_line":"    router_create \u003d openstackclient.network.v2.router:CreateRouter"}],"source_content_type":"text/x-ttcn-cfg","patch_set":10,"id":"1a122d0e_ba9cfcc0","line":339,"updated":"2016-04-20 05:54:56.000000000","message":"why add a new line?","commit_id":"86dd82d7c206e300b962668308aab5b39ad62c12"}]}
