)]}'
{"nova/api/openstack/compute/attach_interfaces.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ac1ff1234ccc80b1e49593aba0c29fe75831ce16","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                exception.PortNotUsable,"},{"line_number":139,"context_line":"                exception.AttachInterfaceNotSupported,"},{"line_number":140,"context_line":"                exception.SecurityGroupCannotBeApplied,"},{"line_number":141,"context_line":"                exception.NeutronClientReqError,"},{"line_number":142,"context_line":"                exception.TaggedAttachmentNotSupported) as e:"},{"line_number":143,"context_line":"            raise exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":144,"context_line":"        except (exception.InstanceIsLocked,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c0eae60c","line":141,"updated":"2019-10-22 18:51:03.000000000","message":"This is being used as a translation for a generic NeutronClientException which could be anything - we don\u0027t necessarily know that it\u0027s a 400. What if we\u0027re getting that because neutron is down or something failed in the neutron server? Returning a 400 in that case isn\u0027t correct since it should be a 500. I think we likely need some more specific error handling in the code that is raising this exception to determine if it\u0027s a 400 or what.","commit_id":"bfc7d5fdae02ed9cad9a3fce5d9c093208152865"}],"nova/exception.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76421f1e50a83119fb0bcc9bf9fbce75b3fd0f7a","unresolved":false,"context_lines":[{"line_number":2034,"context_line":"                \"%(os_name)s\")"},{"line_number":2035,"context_line":""},{"line_number":2036,"context_line":""},{"line_number":2037,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":2038,"context_line":"class BuildRequestNotFound(NotFound):"},{"line_number":2039,"context_line":"    msg_fmt \u003d _(\"BuildRequest not found for instance %(uuid)s\")"},{"line_number":2040,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df3967d1_591ef20c","line":2037,"updated":"2017-07-31 12:44:06.000000000","message":"You missed to remove this.","commit_id":"bfc7d5fdae02ed9cad9a3fce5d9c093208152865"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76421f1e50a83119fb0bcc9bf9fbce75b3fd0f7a","unresolved":false,"context_lines":[{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":""},{"line_number":2147,"context_line":"class NeutronClientReqError(Invalid):"},{"line_number":2148,"context_line":"    msg_fmt \u003d _(\"Neutron error creating port on network \""},{"line_number":2149,"context_line":"                \"%(network_id)s. %(reason)s\")"},{"line_number":2150,"context_line":""},{"line_number":2151,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df3967d1_992c5a48","line":2148,"updated":"2017-07-31 12:44:06.000000000","message":"The error raised by Neutron is an general exception, nothing specific to the creation of a port","commit_id":"bfc7d5fdae02ed9cad9a3fce5d9c093208152865"}],"nova/network/neutronv2/api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"da89763d2e693bb6332bdaaff9f5d56303831bc4","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                            \u0027network %(network)s.\u0027),"},{"line_number":449,"context_line":"                        {\u0027network\u0027: network_id}, instance\u003dinstance)"},{"line_number":450,"context_line":"            raise exception.FixedIpInvalidOnHost(port_id\u003dport_id)"},{"line_number":451,"context_line":"        except neutron_client_exc.NeutronClientException as exc:"},{"line_number":452,"context_line":"            raise exception.NeutronClientReqError(network_id\u003dnetwork_id,"},{"line_number":453,"context_line":"                                                  reason\u003dexc.message)"},{"line_number":454,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_00fc7eb3","line":451,"range":{"start_line":451,"start_character":34,"end_line":451,"end_character":56},"updated":"2019-10-22 18:53:32.000000000","message":"This is too broad to be translated to what is handled as a 400 response in the API. Couldn\u0027t this be handling some kind of BadRequest exception or checking the code in the exception to determine if a BadRequest should be raised? In the bug the error from neutron is \"BadRequest Bad request: VM with ports belonging to subnets across enter prises is not allowed in VSP\" so is that a 400 from neutronclient?","commit_id":"bfc7d5fdae02ed9cad9a3fce5d9c093208152865"}]}
