)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4c7cd4626604f1eae789a92fdc8bf4a8ae88f38e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is a minor tidy-up in current code, as it allows volume_id and"},{"line_number":10,"context_line":"volume_size to be inherited by all subclasses of"},{"line_number":11,"context_line":"DriverVolumeBlockDevice. However, it\u0027s primary purpose it to make it"},{"line_number":12,"context_line":"cleaner to add uuid to all DriverBlockDevice subclasses in a subsequent"},{"line_number":13,"context_line":"patch."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"bf8cb3f7_0ce25f30","line":11,"range":{"start_line":11,"start_character":34,"end_line":11,"end_character":38},"updated":"2017-12-24 11:59:00.000000000","message":"its","commit_id":"d2fdc91d1ecef1abc6cd4c7f234f7171213024b4"}],"nova/tests/unit/virt/test_block_device.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4c7cd4626604f1eae789a92fdc8bf4a8ae88f38e","unresolved":false,"context_lines":[{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"    def test_proxy_as_attr(self):"},{"line_number":1160,"context_line":"        class A(driver_block_device.DriverBlockDevice):"},{"line_number":1161,"context_line":"            pass"},{"line_number":1162,"context_line":""},{"line_number":1163,"context_line":"            def _transform(self):"},{"line_number":1164,"context_line":"                pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf8cb3f7_4cc14780","line":1161,"range":{"start_line":1161,"start_character":0,"end_line":1161,"end_character":16},"updated":"2017-12-24 11:59:00.000000000","message":"not necessary","commit_id":"d2fdc91d1ecef1abc6cd4c7f234f7171213024b4"}],"nova/virt/block_device.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4c7cd4626604f1eae789a92fdc8bf4a8ae88f38e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            for cls in self.__class__.mro():"},{"line_number":132,"context_line":"                attr_one \u003d getattr(cls, \u0027_proxy_as_attr_inherited\u0027, None)"},{"line_number":133,"context_line":"                if attr_one is not None:"},{"line_number":134,"context_line":"                    attr_all \u003d attr_all | attr_one"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"            # We don\u0027t need to lock here because as long as insertion into a"},{"line_number":137,"context_line":"            # dict is threadsafe, the only consequence of a race is calculating"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf8cb3f7_2cc6439c","line":134,"range":{"start_line":134,"start_character":20,"end_line":134,"end_character":41},"updated":"2017-12-24 11:59:00.000000000","message":"can also do:\n\n attr_all |\u003d attr_one","commit_id":"d2fdc91d1ecef1abc6cd4c7f234f7171213024b4"}]}
