)]}'
{"openstack/network/v2/_proxy.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"7ace272a61efc45b860341f06378c12a5e1e7dde","unresolved":false,"context_lines":[{"line_number":1949,"context_line":"        \"\"\""},{"line_number":1950,"context_line":"        return self._update(_router.Router, router, **attrs)"},{"line_number":1951,"context_line":""},{"line_number":1952,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":1953,"context_line":"        try:"},{"line_number":1954,"context_line":"            return super(Proxy, self)._update(*args, **kwargs)"},{"line_number":1955,"context_line":"        except exceptions.HttpException as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_cf9ca8c2","line":1952,"updated":"2016-10-14 11:00:58.000000000","message":"Why is this only done on update?","commit_id":"ee140f9196eebee65fe6c59301029e9dfc68f897"},{"author":{"_account_id":5003,"name":"Choe, Cheng-Dae","email":"whitekid@gmail.com","username":"whitekid"},"change_message_id":"96c923cb5acede1ff4ac175ffc3cdb299c097066","unresolved":false,"context_lines":[{"line_number":1949,"context_line":"        \"\"\""},{"line_number":1950,"context_line":"        return self._update(_router.Router, router, **attrs)"},{"line_number":1951,"context_line":""},{"line_number":1952,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":1953,"context_line":"        try:"},{"line_number":1954,"context_line":"            return super(Proxy, self)._update(*args, **kwargs)"},{"line_number":1955,"context_line":"        except exceptions.HttpException as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_4574f766","line":1952,"in_reply_to":"fa6399be_cf9ca8c2","updated":"2016-10-14 11:53:52.000000000","message":"In my case.. _update cause error :D\n\nto cover all neutron exception in _proxy.py , we should override _create, _delete, _find, _get, _list, _update.. and so on..\n\nthe cleaner way I think is handle error in map_exceptions decorator. but It\u0027s wired that neutron error comes here.","commit_id":"ee140f9196eebee65fe6c59301029e9dfc68f897"}],"openstack/session.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c2fb0cbf1e63b53e58fe7b4b7e72c704e0a47401","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    url\u003de.url, method\u003de.method,"},{"line_number":46,"context_line":"                    http_status\u003de.http_status, cause\u003de)"},{"line_number":47,"context_line":"            else:"},{"line_number":48,"context_line":"                message \u003d e.message"},{"line_number":49,"context_line":"                details \u003d e.details"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"                if e.response is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_1976e4d6","line":48,"updated":"2016-10-14 15:54:09.000000000","message":"Please add unit and functional some tests for this.","commit_id":"21cf55015ab9c70cb354bb261cf0f84f06e885e6"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"ccba271a0016f7a59c7691eaa25e3f685708a72b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                if e.response is not None:"},{"line_number":52,"context_line":"                    body \u003d e.response.json()"},{"line_number":53,"context_line":"                    if \u0027NeutronError\u0027 in body:"},{"line_number":54,"context_line":"                        message \u003d body[\u0027NeutronError\u0027].get(\u0027message\u0027)"},{"line_number":55,"context_line":"                        details \u003d body[\u0027NeutronError\u0027].get(\u0027details\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"                raise exceptions.HttpException("},{"line_number":58,"context_line":"                    message\u003dmessage, details\u003ddetails,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_fce80cb5","line":55,"range":{"start_line":54,"start_character":0,"end_line":55,"end_character":69},"updated":"2016-10-17 12:30:59.000000000","message":"Is it possible for the message or details to be empty or none such that it would be better to return e.message or e.details?","commit_id":"2240224202fbc0f60abbd50a895cb85163ae6f67"},{"author":{"_account_id":5003,"name":"Choe, Cheng-Dae","email":"whitekid@gmail.com","username":"whitekid"},"change_message_id":"1ba44cf1e515b7e245cc9783fbd15a5d5fa8eb02","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                if e.response is not None:"},{"line_number":52,"context_line":"                    body \u003d e.response.json()"},{"line_number":53,"context_line":"                    if \u0027NeutronError\u0027 in body:"},{"line_number":54,"context_line":"                        message \u003d body[\u0027NeutronError\u0027].get(\u0027message\u0027)"},{"line_number":55,"context_line":"                        details \u003d body[\u0027NeutronError\u0027].get(\u0027details\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"                raise exceptions.HttpException("},{"line_number":58,"context_line":"                    message\u003dmessage, details\u003ddetails,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_2dd96cf3","line":55,"range":{"start_line":54,"start_character":0,"end_line":55,"end_character":69},"in_reply_to":"fa6399be_fce80cb5","updated":"2016-10-17 13:35:53.000000000","message":"according to the server side error handing https://github.com/openstack/neutron/blob/master/neutron/api/api_common.py#L345 NeutronError[\u0027message\u0027] is the exception message. if MultipleException raised then detail(not details) key does not exists.\n\nYes. details can be None. I will set details to e.details if NeutronError.detail is None","commit_id":"2240224202fbc0f60abbd50a895cb85163ae6f67"}],"openstack/tests/functional/network/v2/test_router.py":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"a7cc3128c82482fa98b2e6534be1782f0eedfe7f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            }"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            self.conn.network.update_router(self.ID, routes\u003droutes)"},{"line_number":67,"context_line":"        self.assertNotEqual(\u0027HttpException: Bad Request\u0027, cm.exception.message)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_5e4613c0","line":67,"updated":"2016-10-18 15:40:38.000000000","message":"Should we assert this is a neutron exception?","commit_id":"63ff158570d1c23aef3e335f59947429542bb0fe"},{"author":{"_account_id":5003,"name":"Choe, Cheng-Dae","email":"whitekid@gmail.com","username":"whitekid"},"change_message_id":"f964969db6e9ff29575764ed413bf4d0c453a5e7","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            }"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            self.conn.network.update_router(self.ID, routes\u003droutes)"},{"line_number":67,"context_line":"        self.assertNotEqual(\u0027HttpException: Bad Request\u0027, cm.exception.message)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_cce7c83e","line":67,"in_reply_to":"fa6399be_5e4613c0","updated":"2016-10-19 02:25:06.000000000","message":"Hmm... You means that we need to declare NeutronError exception and raise NeutronError in map_exception?\n\nin exceptions.py:\n\nclass NeutronError(SDKException):\n    \"\"\"Neutron api call failure\"\"\"\n    pass\n\n.... \n\nin map_exception:\n  if \u0027NeutronError\u0027 in body:\n     raise NeutronError(message, details)\n\nBTW. when server response status 400. sdk raise HttpException. and there is no neutron exception declared in openstacksdk.","commit_id":"63ff158570d1c23aef3e335f59947429542bb0fe"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"7d6f7237935f636e34b39c5a7c4d84091301f3d9","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            }"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            self.conn.network.update_router(self.ID, routes\u003droutes)"},{"line_number":67,"context_line":"        self.assertNotEqual(\u0027HttpException: Bad Request\u0027, cm.exception.message)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_70775f3b","line":67,"in_reply_to":"fa6399be_cce7c83e","updated":"2016-10-19 11:06:16.000000000","message":"No.  I mean assert what we expect the error to be and not just what we expect it not to be.","commit_id":"63ff158570d1c23aef3e335f59947429542bb0fe"}]}
