)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"ba684e183fb543a2f3112517d151806f140fbbd0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  the values argument,"},{"line_number":12,"context_line":"* the inability to remove the name or description, and"},{"line_number":13,"context_line":"* not persisting changes before retrieving the volume type."},{"line_number":14,"context_line":"The possibility for a KeyError is avoiding by checking that the key"},{"line_number":15,"context_line":"exists rather than assuming that it does. This change also allows the"},{"line_number":16,"context_line":"volume type\u0027s name and description to be removed by setting it to"},{"line_number":17,"context_line":"None. Several new unit tests cover both the existing functionality"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_d9f616d7","line":14,"updated":"2015-08-17 22:05:38.000000000","message":"avoiding - \u003e avoided","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"e6228d1bf5ac96d0a5204263e2ba386a38b3de16","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  the values argument,"},{"line_number":12,"context_line":"* the inability to remove the name or description, and"},{"line_number":13,"context_line":"* not persisting changes before retrieving the volume type."},{"line_number":14,"context_line":"The possibility for a KeyError is avoiding by checking that the key"},{"line_number":15,"context_line":"exists rather than assuming that it does. This change also allows the"},{"line_number":16,"context_line":"volume type\u0027s name and description to be removed by setting it to"},{"line_number":17,"context_line":"None. Several new unit tests cover both the existing functionality"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_9862673d","line":14,"in_reply_to":"fa1b9901_d9f616d7","updated":"2015-08-19 20:12:10.000000000","message":"Done","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"ba684e183fb543a2f3112517d151806f140fbbd0","unresolved":false,"context_lines":[{"line_number":12,"context_line":"* the inability to remove the name or description, and"},{"line_number":13,"context_line":"* not persisting changes before retrieving the volume type."},{"line_number":14,"context_line":"The possibility for a KeyError is avoiding by checking that the key"},{"line_number":15,"context_line":"exists rather than assuming that it does. This change also allows the"},{"line_number":16,"context_line":"volume type\u0027s name and description to be removed by setting it to"},{"line_number":17,"context_line":"None. Several new unit tests cover both the existing functionality"},{"line_number":18,"context_line":"and these modifications."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_19b56ecc","line":15,"updated":"2015-08-17 22:05:38.000000000","message":"that it does -\u003e that it does not.","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"e6228d1bf5ac96d0a5204263e2ba386a38b3de16","unresolved":false,"context_lines":[{"line_number":12,"context_line":"* the inability to remove the name or description, and"},{"line_number":13,"context_line":"* not persisting changes before retrieving the volume type."},{"line_number":14,"context_line":"The possibility for a KeyError is avoiding by checking that the key"},{"line_number":15,"context_line":"exists rather than assuming that it does. This change also allows the"},{"line_number":16,"context_line":"volume type\u0027s name and description to be removed by setting it to"},{"line_number":17,"context_line":"None. Several new unit tests cover both the existing functionality"},{"line_number":18,"context_line":"and these modifications."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_18573759","line":15,"in_reply_to":"fa1b9901_19b56ecc","updated":"2015-08-19 20:12:10.000000000","message":"I believe the original wording is correct.","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"},{"author":{"_account_id":8202,"name":"chenzongliang","email":"chenzongliang@huawei.com","username":"zongliang"},"change_message_id":"8218cc30fcb23bf639b34c55d3bf6d09a13d5e0f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"commit d275831. (Some of the behavior specified in the aforementioned"},{"line_number":25,"context_line":"commit message is enforced by the API rather than the database; these"},{"line_number":26,"context_line":"constraints properly belong at the database as part of a future"},{"line_number":27,"context_line":"change.)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: I3707e383e1b6a5b65f4d61eef13d984f624848eb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_503bb0eb","line":27,"updated":"2015-08-18 01:41:40.000000000","message":") it is not necessary to","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"e6228d1bf5ac96d0a5204263e2ba386a38b3de16","unresolved":false,"context_lines":[{"line_number":24,"context_line":"commit d275831. (Some of the behavior specified in the aforementioned"},{"line_number":25,"context_line":"commit message is enforced by the API rather than the database; these"},{"line_number":26,"context_line":"constraints properly belong at the database as part of a future"},{"line_number":27,"context_line":"change.)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: I3707e383e1b6a5b65f4d61eef13d984f624848eb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_9897c7eb","line":27,"in_reply_to":"fa1b9901_503bb0eb","updated":"2015-08-19 20:12:10.000000000","message":"I don\u0027t understand this comment, as appending \"it is not necessary to\" after the closing parenthesis doesn\u0027t make sense to me.","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"ba684e183fb543a2f3112517d151806f140fbbd0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"commit message is enforced by the API rather than the database; these"},{"line_number":26,"context_line":"constraints properly belong at the database as part of a future"},{"line_number":27,"context_line":"change.)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: I3707e383e1b6a5b65f4d61eef13d984f624848eb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_34887722","line":28,"updated":"2015-08-17 22:05:38.000000000","message":"Could you open a bug for this issue, if there already isn\u0027t one, and have it stated that this patch is related to the bug? That way we can address the bug in the future.","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"e6228d1bf5ac96d0a5204263e2ba386a38b3de16","unresolved":false,"context_lines":[{"line_number":25,"context_line":"commit message is enforced by the API rather than the database; these"},{"line_number":26,"context_line":"constraints properly belong at the database as part of a future"},{"line_number":27,"context_line":"change.)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: I3707e383e1b6a5b65f4d61eef13d984f624848eb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa1b9901_589daf08","line":28,"in_reply_to":"fa1b9901_34887722","updated":"2015-08-19 20:12:10.000000000","message":"Done","commit_id":"1a243c69eb960d573814ef99123784f56d8d68b2"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"b1b41b12321a05a219b3ef1603df8284af6301be","unresolved":false,"context_lines":[{"line_number":2432,"context_line":"        if not volume_type_ref:"},{"line_number":2433,"context_line":"            raise exception.VolumeTypeNotFound(type_id\u003dvolume_type_id)"},{"line_number":2434,"context_line":""},{"line_number":2435,"context_line":"        if \u0027name\u0027 in values and values[\u0027name\u0027] is not None:"},{"line_number":2436,"context_line":"            # Volume type name is unique. If change to a name that belongs to"},{"line_number":2437,"context_line":"            # a different volume_type , it should be prevented."},{"line_number":2438,"context_line":"            check_vol_type \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_ce96e74b","line":2435,"updated":"2015-09-23 02:44:19.000000000","message":"Can it use values.get(\u0027name\u0027) is not None instead?","commit_id":"04d26881b8385010efb9e34b549ace0299090f0f"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"73df816bd716c60409c9a74c6fc065b85e411c06","unresolved":false,"context_lines":[{"line_number":2432,"context_line":"        if not volume_type_ref:"},{"line_number":2433,"context_line":"            raise exception.VolumeTypeNotFound(type_id\u003dvolume_type_id)"},{"line_number":2434,"context_line":""},{"line_number":2435,"context_line":"        if \u0027name\u0027 in values and values[\u0027name\u0027] is not None:"},{"line_number":2436,"context_line":"            # Volume type name is unique. If change to a name that belongs to"},{"line_number":2437,"context_line":"            # a different volume_type , it should be prevented."},{"line_number":2438,"context_line":"            check_vol_type \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_72df5a69","line":2435,"in_reply_to":"ba15a1d1_ce96e74b","updated":"2015-09-29 15:28:21.000000000","message":"Done","commit_id":"04d26881b8385010efb9e34b549ace0299090f0f"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"b1b41b12321a05a219b3ef1603df8284af6301be","unresolved":false,"context_lines":[{"line_number":2447,"context_line":"                if check_vol_type.get(\u0027id\u0027) !\u003d volume_type_id:"},{"line_number":2448,"context_line":"                    raise exception.VolumeTypeExists(id\u003dvalues[\u0027name\u0027])"},{"line_number":2449,"context_line":""},{"line_number":2450,"context_line":"        volume_type_ref.update(values)"},{"line_number":2451,"context_line":"        volume_type_ref.save(session\u003dsession)"},{"line_number":2452,"context_line":""},{"line_number":2453,"context_line":"    volume_type \u003d volume_type_get(context, volume_type_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_8e730f4e","line":2450,"updated":"2015-09-23 02:44:19.000000000","message":"If don\u0027t delete values[\u0027description\u0027] whose value is None, description of volume_type in db may be changed to None. Are you sure that the change will not occur?","commit_id":"04d26881b8385010efb9e34b549ace0299090f0f"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"73df816bd716c60409c9a74c6fc065b85e411c06","unresolved":false,"context_lines":[{"line_number":2447,"context_line":"                if check_vol_type.get(\u0027id\u0027) !\u003d volume_type_id:"},{"line_number":2448,"context_line":"                    raise exception.VolumeTypeExists(id\u003dvalues[\u0027name\u0027])"},{"line_number":2449,"context_line":""},{"line_number":2450,"context_line":"        volume_type_ref.update(values)"},{"line_number":2451,"context_line":"        volume_type_ref.save(session\u003dsession)"},{"line_number":2452,"context_line":""},{"line_number":2453,"context_line":"    volume_type \u003d volume_type_get(context, volume_type_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a1a9d01_329d6266","line":2450,"in_reply_to":"ba15a1d1_8e730f4e","updated":"2015-09-29 15:28:21.000000000","message":"If values[\u0027description\u0027] is None, then the attribute value in the database will become NULL.\n\nThe original code\n\n  if values[\u0027description\u0027] is None:\n    del values[\u0027description\u0027]\n\nmeans that the description can never be removed. It can be set to the empty string, but it cannot be removed entirely (i.e., NULL in the database). That behavior is inconsistent with the database schema, which allows NULL for the description.","commit_id":"04d26881b8385010efb9e34b549ace0299090f0f"}]}
