)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"ab72f535203a6bcb077482c4c71e8259433a2d9b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Raise invalid input if use invalid ip for network to attach interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When posting an \u0027attach interface\u0027 request to Nova with network id and a fixed"},{"line_number":10,"context_line":"ip which does not belongs to this network, Nova need to raise invalid input"},{"line_number":11,"context_line":"exception, instead of HTTP 500, in order to inform the user to correct the"},{"line_number":12,"context_line":"request. This code change will take effect with Neutron only."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da9b358b_126d6c04","line":10,"updated":"2015-03-29 11:35:15.000000000","message":"belong instead of belongs\n\nneeds instead of needs","commit_id":"a2bc8ddd290694daf494b122bba116cd92f76aaf"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"9e5c6acaaa89337d43a6dd2687b40e12e675d335","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Raise invalid input if use invalid ip for network to attach interface"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When posting an \u0027attach interface\u0027 request to Nova with network id and a fixed"},{"line_number":10,"context_line":"ip which does not belongs to this network, Nova need to raise invalid input"},{"line_number":11,"context_line":"exception, instead of HTTP 500, in order to inform the user to correct the"},{"line_number":12,"context_line":"request. This code change will take effect with Neutron only."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baa041b7_1e8328ce","line":10,"in_reply_to":"da9b358b_126d6c04","updated":"2015-04-02 06:45:58.000000000","message":"Done","commit_id":"a2bc8ddd290694daf494b122bba116cd92f76aaf"}],"nova/network/neutronv2/api.py":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"976b06cbe3dc0cdc7337bf80b631857a4ac35115","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                      instance\u003dinstance)"},{"line_number":278,"context_line":"            return port_id"},{"line_number":279,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":280,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":281,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":282,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"},{"line_number":283,"context_line":"                            \u0027already in use.\u0027), fixed_ip)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_ec1b6c70","line":280,"updated":"2015-03-10 12:03:38.000000000","message":"I wonder if it worthy to give a log warning before raise exception?\njust like other exception handling do.","commit_id":"e08f5141129a38a520041eb105258650e8e3f873"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"fb7c7209ffd290e84f3a1c441e321feffec3e6a4","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                      instance\u003dinstance)"},{"line_number":278,"context_line":"            return port_id"},{"line_number":279,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":280,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":281,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":282,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"},{"line_number":283,"context_line":"                            \u0027already in use.\u0027), fixed_ip)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_98c03d2c","line":280,"in_reply_to":"9a80dd14_7d053b13","updated":"2015-03-11 07:59:32.000000000","message":"yeah, I am with you.","commit_id":"e08f5141129a38a520041eb105258650e8e3f873"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"0e44c0c3691025e6d1bd9bca1f50b8aa18200f88","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                      instance\u003dinstance)"},{"line_number":278,"context_line":"            return port_id"},{"line_number":279,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":280,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":281,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":282,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"},{"line_number":283,"context_line":"                            \u0027already in use.\u0027), fixed_ip)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_b81181b1","line":280,"in_reply_to":"9a80dd14_98c03d2c","updated":"2015-03-11 08:02:21.000000000","message":"Thanks. But I just add the warning per your request in patch set 2... That is fine.","commit_id":"e08f5141129a38a520041eb105258650e8e3f873"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"cdf6578ae1021150459845bae6654bd89db82158","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                      instance\u003dinstance)"},{"line_number":278,"context_line":"            return port_id"},{"line_number":279,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":280,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":281,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":282,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"},{"line_number":283,"context_line":"                            \u0027already in use.\u0027), fixed_ip)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_7d053b13","line":280,"in_reply_to":"9a80dd14_ec1b6c70","updated":"2015-03-11 07:34:31.000000000","message":"In fact, I feel if one can open nova-compute log file, he will see this exception in log file. Add warning here just make us feel the code looks uniform.","commit_id":"e08f5141129a38a520041eb105258650e8e3f873"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5ea3ccf79a5c2dd6e8745cc8b6a052a0aa63c120","unresolved":false,"context_lines":[{"line_number":303,"context_line":"            port_id \u003d port_client.create_port(port_req_body)[\u0027port\u0027][\u0027id\u0027]"},{"line_number":304,"context_line":"            LOG.debug(\u0027Successfully created port: %s\u0027, port_id,"},{"line_number":305,"context_line":"                      instance\u003dinstance)"},{"line_number":306,"context_line":"            return port_id"},{"line_number":307,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":308,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":309,"context_line":"                            \u0027for network %(network_id)s.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da9b358b_0f09c32c","line":306,"updated":"2015-03-29 05:32:41.000000000","message":"This exception is support in https://github.com/openstack/python-neutronclient/blob/2.3.11/neutronclient/common/exceptions.py#L143\nSo this is good!","commit_id":"a2bc8ddd290694daf494b122bba116cd92f76aaf"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"9e5c6acaaa89337d43a6dd2687b40e12e675d335","unresolved":false,"context_lines":[{"line_number":303,"context_line":"            port_id \u003d port_client.create_port(port_req_body)[\u0027port\u0027][\u0027id\u0027]"},{"line_number":304,"context_line":"            LOG.debug(\u0027Successfully created port: %s\u0027, port_id,"},{"line_number":305,"context_line":"                      instance\u003dinstance)"},{"line_number":306,"context_line":"            return port_id"},{"line_number":307,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":308,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":309,"context_line":"                            \u0027for network %(network_id)s.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"baa041b7_1ed1e8cd","line":306,"in_reply_to":"da9b358b_0f09c32c","updated":"2015-04-02 06:45:58.000000000","message":"Thank you, Gary!","commit_id":"a2bc8ddd290694daf494b122bba116cd92f76aaf"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"4e835fcd225e3651155a98602e73479bbd72b5ba","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                      instance\u003dinstance)"},{"line_number":278,"context_line":"            return port_id"},{"line_number":279,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":280,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":281,"context_line":"                            \u0027for network %(network_id)s.\u0027),"},{"line_number":282,"context_line":"                        {\u0027ip\u0027: str(fixed_ip), \u0027network_id\u0027: network_id})"},{"line_number":283,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa53dc9_f64cb4c9","line":280,"updated":"2015-04-09 14:22:26.000000000","message":"We\u0027re currently in String Freeze, which means this is not acceptable for now.\n\nYou could request a String Freeze exception on the mailing list.\n\nor\n\nuse instead:\n\n    LOG.warning(\u0027Neutron error: ....\"...)\n\n(basically, no _LW). Also, add a TODO to add the _LW after Kilo is released.","commit_id":"099d7ff4aacd2b722247a6f5ac26884e07686c62"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c8bcdea44f75d96178d38154949a432e2346ae41","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":309,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":310,"context_line":"                            \u0027for network %(network_id)s.\u0027),"},{"line_number":311,"context_line":"                        {\u0027ip\u0027: str(fixed_ip), \u0027network_id\u0027: network_id})"},{"line_number":312,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":313,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":314,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_8446974d","line":311,"updated":"2015-05-27 15:05:11.000000000","message":"Is this \"str()\" necessary?\n\nThat is not python3 support and we are trying to support python3.\nin addition, following line 315 uses fixed_ip without str().","commit_id":"62d268aea8fa8cb57083e038e125cd9ffa65e969"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"323c65bb9d83edf78f25e80a7ecc3485230b4333","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        except neutron_client_exc.InvalidIpForNetworkClient as exc:"},{"line_number":309,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":310,"context_line":"                            \u0027for network %(network_id)s.\u0027),"},{"line_number":311,"context_line":"                        {\u0027ip\u0027: str(fixed_ip), \u0027network_id\u0027: network_id})"},{"line_number":312,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":313,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":314,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_e4ff64a8","line":311,"in_reply_to":"7a016987_8446974d","updated":"2015-06-16 15:18:01.000000000","message":"Done","commit_id":"62d268aea8fa8cb57083e038e125cd9ffa65e969"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c8bcdea44f75d96178d38154949a432e2346ae41","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":310,"context_line":"                            \u0027for network %(network_id)s.\u0027),"},{"line_number":311,"context_line":"                        {\u0027ip\u0027: str(fixed_ip), \u0027network_id\u0027: network_id})"},{"line_number":312,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":313,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":314,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"},{"line_number":315,"context_line":"                            \u0027already in use.\u0027), fixed_ip)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_e4542b55","line":312,"updated":"2015-05-27 15:05:11.000000000","message":"How about defining error message here instead of passing neutroncilent exception message like line 316?\n\nNeutronclient code seems difficult to check exception message and it is better to manage error message on nova side.","commit_id":"62d268aea8fa8cb57083e038e125cd9ffa65e969"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"323c65bb9d83edf78f25e80a7ecc3485230b4333","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":310,"context_line":"                            \u0027for network %(network_id)s.\u0027),"},{"line_number":311,"context_line":"                        {\u0027ip\u0027: str(fixed_ip), \u0027network_id\u0027: network_id})"},{"line_number":312,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":313,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":314,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"},{"line_number":315,"context_line":"                            \u0027already in use.\u0027), fixed_ip)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_a4307c9f","line":312,"in_reply_to":"7a016987_e4542b55","updated":"2015-06-16 15:18:01.000000000","message":"Done","commit_id":"62d268aea8fa8cb57083e038e125cd9ffa65e969"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c5a672ec8890527b0167db22c263a22e43545f2b","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            LOG.warning(_LW(\u0027Neutron error: %(ip)s is not a valid ip address \u0027"},{"line_number":310,"context_line":"                            \u0027for network %(network_id)s.\u0027),"},{"line_number":311,"context_line":"                        {\u0027ip\u0027: str(fixed_ip), \u0027network_id\u0027: network_id})"},{"line_number":312,"context_line":"            raise exception.InvalidInput(reason\u003dexc.message)"},{"line_number":313,"context_line":"        except neutron_client_exc.IpAddressInUseClient:"},{"line_number":314,"context_line":"            LOG.warning(_LW(\u0027Neutron error: Fixed IP %s is \u0027"},{"line_number":315,"context_line":"                            \u0027already in use.\u0027), fixed_ip)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_dfa33c9d","line":312,"in_reply_to":"7a016987_e4542b55","updated":"2015-05-27 15:16:55.000000000","message":"we do have several kinds of process in this file\ne.g below marked place ....\n\nand I agree better use nova side error info","commit_id":"62d268aea8fa8cb57083e038e125cd9ffa65e969"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c5a672ec8890527b0167db22c263a22e43545f2b","unresolved":false,"context_lines":[{"line_number":1394,"context_line":"        except (neutron_client_exc.IpAddressGenerationFailureClient,"},{"line_number":1395,"context_line":"                neutron_client_exc.ExternalIpAddressExhaustedClient) as e:"},{"line_number":1396,"context_line":"            raise exception.NoMoreFloatingIps(six.text_type(e))"},{"line_number":1397,"context_line":"        except neutron_client_exc.OverQuotaClient as e:"},{"line_number":1398,"context_line":"            raise exception.FloatingIpLimitExceeded(six.text_type(e))"},{"line_number":1399,"context_line":""},{"line_number":1400,"context_line":"        return fip[\u0027floatingip\u0027][\u0027floating_ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_bfe2c0ff","line":1397,"updated":"2015-05-27 15:16:55.000000000","message":"here","commit_id":"62d268aea8fa8cb57083e038e125cd9ffa65e969"}]}
