)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d55cbe5659efaf48870c6111cafc81cc7cfc37a1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Added entry for connection_info in the block_device_mapping db table"},{"line_number":14,"context_line":"before setting volume status to \u0027in-use\u0027."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1430553"},{"line_number":17,"context_line":"Change-Id: Ie732a078ea004aa3fafd93d67668b2a1a37e556d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a80dd14_9c0a751e","line":16,"updated":"2015-03-19 13:43:10.000000000","message":"This should be bug 1327218 which is the one we\u0027re tracking in the gate:\n\nhttp://status.openstack.org/elastic-recheck/gate.html#1327218","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"}],"nova/tests/unit/virt/test_block_device.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3a15336aa7440a4e703e53a7a53684bddd42bb1","unresolved":false,"context_lines":[{"line_number":374,"context_line":"                        expected_conn_info).AndReturn(None)"},{"line_number":375,"context_line":"                return instance, expected_conn_info"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        driver_bdm._bdm_obj.save().AndReturn(None)"},{"line_number":378,"context_line":"        if volume_attach:"},{"line_number":379,"context_line":"            self.volume_api.attach(elevated_context, fake_volume[\u0027id\u0027],"},{"line_number":380,"context_line":"                                   \u0027fake_uuid\u0027, bdm_dict[\u0027device_name\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_5952cf13","line":377,"updated":"2015-03-19 13:42:30.000000000","message":"This is an unnecessary change, you don\u0027t need to move the mock around.","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"}],"nova/virt/block_device.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ab435bf8c0c933d952d0fd1ab2be097571accdb3","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                         connection_info[\u0027data\u0027][\u0027multipath_id\u0027])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    @update_db"},{"line_number":222,"context_line":"    def _do_pre_attach(self, context, volume, instance, volume_api,"},{"line_number":223,"context_line":"                       virt_driver, do_driver_attach):"},{"line_number":224,"context_line":"        volume_id \u003d volume[\u0027id\u0027]"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_31e8147c","line":222,"updated":"2015-03-18 11:31:40.000000000","message":"this method name is slightly confusing. the actual attachment is done within the method (line 242)","commit_id":"624732fbf73e3ef2c6672830f19cd6985f6c5eb2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79556eb98702f86880dc5ab989d67b3ab74b217d","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                         connection_info[\u0027data\u0027][\u0027multipath_id\u0027])"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    @update_db"},{"line_number":222,"context_line":"    def _do_pre_attach(self, context, volume, instance, volume_api,"},{"line_number":223,"context_line":"                       virt_driver, do_driver_attach):"},{"line_number":224,"context_line":"        volume_id \u003d volume[\u0027id\u0027]"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_972b54ea","line":222,"in_reply_to":"9a80dd14_31e8147c","updated":"2015-03-18 21:18:28.000000000","message":"I would have called this _do_driver_attach.","commit_id":"624732fbf73e3ef2c6672830f19cd6985f6c5eb2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3a15336aa7440a4e703e53a7a53684bddd42bb1","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    @update_db"},{"line_number":222,"context_line":"    def _do_driver_attach(self, context, volume, instance, volume_api,"},{"line_number":223,"context_line":"                       virt_driver, do_driver_attach):"},{"line_number":224,"context_line":"        volume_id \u003d volume[\u0027id\u0027]"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        connector \u003d virt_driver.get_volume_connector(instance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_b9258b0b","line":223,"updated":"2015-03-19 13:42:30.000000000","message":"nit: please align this with the arguments above.","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3a15336aa7440a4e703e53a7a53684bddd42bb1","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                                                           volume_id,"},{"line_number":229,"context_line":"                                                           connector)"},{"line_number":230,"context_line":"        if \u0027serial\u0027 not in connection_info:"},{"line_number":231,"context_line":"            connection_info[\u0027serial\u0027] \u003d volume_id"},{"line_number":232,"context_line":"        self._preserve_multipath_id(connection_info)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # If do_driver_attach is False, we will attach a volume to an"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_79cdd32f","line":231,"updated":"2015-03-19 13:42:30.000000000","message":"not sure why this line needed to change","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3a15336aa7440a4e703e53a7a53684bddd42bb1","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        self._preserve_multipath_id(connection_info)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # If do_driver_attach is False, we will attach a volume to an"},{"line_number":235,"context_line":"        # instance at boot time. So actual attach is done by instance"},{"line_number":236,"context_line":"        # creation code."},{"line_number":237,"context_line":"        if do_driver_attach:"},{"line_number":238,"context_line":"            encryption \u003d encryptors.get_encryption_metadata("}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_d9d79fbd","line":235,"updated":"2015-03-19 13:42:30.000000000","message":"don\u0027t know why this needed to change","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3a15336aa7440a4e703e53a7a53684bddd42bb1","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                virt_driver.attach_volume("},{"line_number":243,"context_line":"                        context, connection_info, instance,"},{"line_number":244,"context_line":"                        self[\u0027mount_device\u0027], disk_bus\u003dself[\u0027disk_bus\u0027],"},{"line_number":245,"context_line":"                        device_type\u003dself[\u0027device_type\u0027],"},{"line_number":246,"context_line":"                        encryption\u003dencryption)"},{"line_number":247,"context_line":"            except Exception:"},{"line_number":248,"context_line":"                with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_79e4f3a7","line":245,"updated":"2015-03-19 13:42:30.000000000","message":"this didn\u0027t need to change","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3a15336aa7440a4e703e53a7a53684bddd42bb1","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        if do_check_attach:"},{"line_number":263,"context_line":"            volume_api.check_attach(context, volume, instance\u003dinstance)"},{"line_number":264,"context_line":"        context \u003d context.elevated()"},{"line_number":265,"context_line":"        self._do_driver_attach(context, volume, instance, volume_api,"},{"line_number":266,"context_line":"                            virt_driver, do_driver_attach)"},{"line_number":267,"context_line":"        mode \u003d \u0027rw\u0027"},{"line_number":268,"context_line":"        if \u0027data\u0027 in self[\u0027connection_info\u0027]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_79b23397","line":265,"updated":"2015-03-19 13:42:30.000000000","message":"I\u0027d probably make a note here that _do_driver_attach will update the database and set connection_info on the bdm object and we need to do that before calling volume_api.attach to avoid the race with the volume status going to \u0027in-use\u0027 before bdm.connection_info is stored in the database, like what I have here:\n\nhttps://review.openstack.org/#/c/164330/2/nova/virt/block_device.py","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3a15336aa7440a4e703e53a7a53684bddd42bb1","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            volume_api.check_attach(context, volume, instance\u003dinstance)"},{"line_number":264,"context_line":"        context \u003d context.elevated()"},{"line_number":265,"context_line":"        self._do_driver_attach(context, volume, instance, volume_api,"},{"line_number":266,"context_line":"                            virt_driver, do_driver_attach)"},{"line_number":267,"context_line":"        mode \u003d \u0027rw\u0027"},{"line_number":268,"context_line":"        if \u0027data\u0027 in self[\u0027connection_info\u0027]:"},{"line_number":269,"context_line":"            mode \u003d self[\u0027connection_info\u0027][\u0027data\u0027].get(\u0027access_mode\u0027, \u0027rw\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_993c47e3","line":266,"updated":"2015-03-19 13:42:30.000000000","message":"nit: align this with the args above.","commit_id":"d6ae9ffd72fcfd432f2a7e468436dcfcad08feb0"}]}
