)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8921501743d019752f4a130eda5804c3a7333371","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Many compute drivers override the driver capabilities dict [1]. The"},{"line_number":10,"context_line":"code should be using dict.get() to avoid throwing KeyErrors if the"},{"line_number":11,"context_line":"overriding dictionaries do not have the corresponding keys. They should"},{"line_number":12,"context_line":"default instead."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[1] https://github.com/openstack/nova/blob/5251f18d87/nova/virt/driver.py#L124-L134"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f93b717_85c80aa6","line":12,"updated":"2018-01-31 22:40:42.000000000","message":"Things possibly worth mentioning, for clarity:\n\n- This is so that, when new capabilities are added, drivers aren\u0027t automatically broken until they add \u003ccapability\u003e: False\n- The assumption is that a driver lacking a given capabilities key does not support that capability.","commit_id":"c599caed266c1fe8fa95b62bf2f671455eb6d075"}],"nova/compute/manager.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f8512b637ae8995d51a7029f897b90b2250c59e3","unresolved":false,"context_lines":[{"line_number":5194,"context_line":"                                  multiattach):"},{"line_number":5195,"context_line":"        if (tag and not"},{"line_number":5196,"context_line":"                self.driver.capabilities.get(\u0027supports_tagged_attach_volume\u0027,"},{"line_number":5197,"context_line":"                                             False)):"},{"line_number":5198,"context_line":"            raise exception.VolumeTaggedAttachNotSupported()"},{"line_number":5199,"context_line":""},{"line_number":5200,"context_line":"        if (multiattach and not"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_e545ee18","line":5197,"updated":"2018-02-28 23:46:01.000000000","message":"Here is already implemented with the same way, so LGTM","commit_id":"2dd322a64291c20da33f28fd5c302ff27e70eae4"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f8512b637ae8995d51a7029f897b90b2250c59e3","unresolved":false,"context_lines":[{"line_number":5198,"context_line":"            raise exception.VolumeTaggedAttachNotSupported()"},{"line_number":5199,"context_line":""},{"line_number":5200,"context_line":"        if (multiattach and not"},{"line_number":5201,"context_line":"                self.driver.capabilities.get(\u0027supports_multiattach\u0027, False)):"},{"line_number":5202,"context_line":"            raise exception.MultiattachNotSupportedByVirtDriver("},{"line_number":5203,"context_line":"                volume_id\u003dvolume_id)"},{"line_number":5204,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f9dbf25_854aea24","line":5201,"updated":"2018-02-28 23:46:01.000000000","message":"ditto","commit_id":"2dd322a64291c20da33f28fd5c302ff27e70eae4"}]}
