)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":10210,"name":"Chinmaya Bharadwaj","email":"chinmaya-bharadwaj.a@hpe.com","username":"chinmay"},"change_message_id":"ac24cb2682a69bb3fae60bc367adb86cc648d088","unresolved":false,"context_lines":[{"line_number":4085,"context_line":"                    \u0027Description\u003d\u0027+ values[\u0027description\u0027]+\u0027.\u0027)"},{"line_number":4086,"context_line":"            raise exception.Invalid(msg)"},{"line_number":4087,"context_line":"        else:"},{"line_number":4088,"context_line":"            raise exception.Invalid()"},{"line_number":4089,"context_line":"    return security_group_ref"},{"line_number":4090,"context_line":""},{"line_number":4091,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_f67f0b64","line":4088,"range":{"start_line":4088,"start_character":28,"end_line":4088,"end_character":35},"updated":"2016-02-22 07:29:54.000000000","message":"Instead of Invalid, just \"raise\" in else case ?  or you want to add some valid messages ?","commit_id":"55948c8b136dba0eb534239ab637f2a9ed0ce48b"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"b2f048809b76ca96f4d36feb299bd15c9c971836","unresolved":false,"context_lines":[{"line_number":4085,"context_line":"                    \u0027Description\u003d\u0027+ values[\u0027description\u0027]+\u0027.\u0027)"},{"line_number":4086,"context_line":"            raise exception.Invalid(msg)"},{"line_number":4087,"context_line":"        else:"},{"line_number":4088,"context_line":"            raise exception.Invalid()"},{"line_number":4089,"context_line":"    return security_group_ref"},{"line_number":4090,"context_line":""},{"line_number":4091,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_0ea0938f","line":4088,"range":{"start_line":4088,"start_character":28,"end_line":4088,"end_character":35},"in_reply_to":"bae84128_f67f0b64","updated":"2016-02-22 10:39:56.000000000","message":"Invalid itself has message with it: invalid parameters.","commit_id":"55948c8b136dba0eb534239ab637f2a9ed0ce48b"},{"author":{"_account_id":10210,"name":"Chinmaya Bharadwaj","email":"chinmaya-bharadwaj.a@hpe.com","username":"chinmay"},"change_message_id":"ac24cb2682a69bb3fae60bc367adb86cc648d088","unresolved":false,"context_lines":[{"line_number":4231,"context_line":"    except db_exc.DBDataError:"},{"line_number":4232,"context_line":"        if (unicode_check_4byte(values[\u0027name\u0027]) or"},{"line_number":4233,"context_line":"            unicode_check_4byte(values[\u0027description\u0027])):"},{"line_number":4234,"context_line":"            msg \u003d _(\u0027Invalid parameters- 4 byte unicode \u0027\\"},{"line_number":4235,"context_line":"                    \u0027characters used in Name\u003d\u0027+ values[\u0027name\u0027] +\\"},{"line_number":4236,"context_line":"                    \u0027 or Description\u003d\u0027+ values[\u0027description\u0027]+\u0027.\u0027)"},{"line_number":4237,"context_line":"            raise exception.Invalid(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_7b02c60c","line":4234,"range":{"start_line":4234,"start_character":56,"end_line":4234,"end_character":58},"updated":"2016-02-22 07:29:54.000000000","message":"backslash is redundant between brackets. E502","commit_id":"55948c8b136dba0eb534239ab637f2a9ed0ce48b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be11bfe9178857b7456e92f7ef514ff4df65290b","unresolved":false,"context_lines":[{"line_number":4078,"context_line":"        raise exception.SecurityGroupExists("},{"line_number":4079,"context_line":"                project_id\u003dvalues[\u0027project_id\u0027],"},{"line_number":4080,"context_line":"                security_group_name\u003dvalues[\u0027name\u0027])"},{"line_number":4081,"context_line":"    except db_exc.DBDataError:"},{"line_number":4082,"context_line":"        if (unicode_check_4byte(values[\u0027name\u0027]) or"},{"line_number":4083,"context_line":"            unicode_check_4byte(values[\u0027description\u0027])):"},{"line_number":4084,"context_line":"            msg \u003d _(\u0027Invalid parameters - 4 byte unicode characters \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_48f953c8","line":4081,"range":{"start_line":4081,"start_character":4,"end_line":4081,"end_character":30},"updated":"2016-02-25 17:38:50.000000000","message":"Doesn\u0027t this require https://review.openstack.org/#/c/265921/4/oslo_db/sqlalchemy/exc_filters.py which went into oslo.db 4.4.0 which is not the minimum required version that we need in global-requirements:\n\nhttps://github.com/openstack/requirements/blob/master/global-requirements.txt#L100","commit_id":"50bfa69ea5715d18e6ddfa9ccd78658057c0f41e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6f5fbdf22a6e581108c522278fb13c10f9ddbd93","unresolved":false,"context_lines":[{"line_number":4079,"context_line":"                project_id\u003dvalues[\u0027project_id\u0027],"},{"line_number":4080,"context_line":"                security_group_name\u003dvalues[\u0027name\u0027])"},{"line_number":4081,"context_line":"    except db_exc.DBDataError:"},{"line_number":4082,"context_line":"        if (unicode_check_4byte(values[\u0027name\u0027]) or"},{"line_number":4083,"context_line":"            unicode_check_4byte(values[\u0027description\u0027])):"},{"line_number":4084,"context_line":"            msg \u003d _(\u0027Invalid parameters - 4 byte unicode characters \u0027"},{"line_number":4085,"context_line":"                    \u0027used in Name \u003d %(name)s  or Description \u003d \u0027"},{"line_number":4086,"context_line":"                    \u0027%(desc)s \u0027) % {\u0027name\u0027: values[\u0027name\u0027],"},{"line_number":4087,"context_line":"                    \u0027desc\u0027: values[\u0027description\u0027]}"},{"line_number":4088,"context_line":"            raise exception.Invalid(msg)"},{"line_number":4089,"context_line":"        else:"},{"line_number":4090,"context_line":"            raise exception.Invalid()"},{"line_number":4091,"context_line":"    return security_group_ref"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_e5169254","line":4088,"range":{"start_line":4082,"start_character":8,"end_line":4088,"end_character":40},"updated":"2016-02-25 17:34:07.000000000","message":"I\u0027d prefer if this could be handled more generically in the REST API\u0027s fault handling code, maybe something in here?\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/wsgi.py#L1037\n\nIf not in the API though, I\u0027d prefer to see a wrapper method that can decorate certain DB API create methods so we don\u0027t have to copy/paste this code all over.","commit_id":"50bfa69ea5715d18e6ddfa9ccd78658057c0f41e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77bc692506bc644370f58404a864605dff461ba2","unresolved":false,"context_lines":[{"line_number":4079,"context_line":"                project_id\u003dvalues[\u0027project_id\u0027],"},{"line_number":4080,"context_line":"                security_group_name\u003dvalues[\u0027name\u0027])"},{"line_number":4081,"context_line":"    except db_exc.DBDataError:"},{"line_number":4082,"context_line":"        if (unicode_check_4byte(values[\u0027name\u0027]) or"},{"line_number":4083,"context_line":"            unicode_check_4byte(values[\u0027description\u0027])):"},{"line_number":4084,"context_line":"            msg \u003d _(\u0027Invalid parameters - 4 byte unicode characters \u0027"},{"line_number":4085,"context_line":"                    \u0027used in Name \u003d %(name)s  or Description \u003d \u0027"},{"line_number":4086,"context_line":"                    \u0027%(desc)s \u0027) % {\u0027name\u0027: values[\u0027name\u0027],"},{"line_number":4087,"context_line":"                    \u0027desc\u0027: values[\u0027description\u0027]}"},{"line_number":4088,"context_line":"            raise exception.Invalid(msg)"},{"line_number":4089,"context_line":"        else:"},{"line_number":4090,"context_line":"            raise exception.Invalid()"},{"line_number":4091,"context_line":"    return security_group_ref"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_283e8fb8","line":4088,"range":{"start_line":4082,"start_character":8,"end_line":4088,"end_character":40},"in_reply_to":"9aed3d3a_e5169254","updated":"2016-02-25 17:35:58.000000000","message":"Long-term I feel like the check and wrapper should live in oslo.db, but Nova would still have to handle that and raise a 400.","commit_id":"50bfa69ea5715d18e6ddfa9ccd78658057c0f41e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"732d2fbd446a165e16d5ca4f1507996ad17c625e","unresolved":false,"context_lines":[{"line_number":4087,"context_line":"                    \u0027desc\u0027: values[\u0027description\u0027]}"},{"line_number":4088,"context_line":"            raise exception.Invalid(msg)"},{"line_number":4089,"context_line":"        else:"},{"line_number":4090,"context_line":"            raise exception.Invalid()"},{"line_number":4091,"context_line":"    return security_group_ref"},{"line_number":4092,"context_line":""},{"line_number":4093,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_85fce63f","line":4090,"range":{"start_line":4090,"start_character":12,"end_line":4090,"end_character":37},"updated":"2016-02-25 17:31:54.000000000","message":"Why not re-raise the DataError?","commit_id":"50bfa69ea5715d18e6ddfa9ccd78658057c0f41e"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"041f21923627e70fde8665f2b695f9d9687d47c3","unresolved":false,"context_lines":[{"line_number":4087,"context_line":"                    \u0027desc\u0027: values[\u0027description\u0027]}"},{"line_number":4088,"context_line":"            raise exception.Invalid(msg)"},{"line_number":4089,"context_line":"        else:"},{"line_number":4090,"context_line":"            raise exception.Invalid()"},{"line_number":4091,"context_line":"    return security_group_ref"},{"line_number":4092,"context_line":""},{"line_number":4093,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_48415339","line":4090,"range":{"start_line":4090,"start_character":12,"end_line":4090,"end_character":37},"in_reply_to":"9aed3d3a_85fce63f","updated":"2016-02-29 16:57:29.000000000","message":"If we re-raise DataError, I think some weird db error will be displayed to user.. So, moved this to specifically","commit_id":"50bfa69ea5715d18e6ddfa9ccd78658057c0f41e"}]}
