)]}'
{"cinder/volume/manager.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f498fa74117361a3f7e7498a898b2a10bcb9e69e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                    volume_ref,"},{"line_number":176,"context_line":"                    snapshot_ref)"},{"line_number":177,"context_line":"            elif source_volid is not None:"},{"line_number":178,"context_line":"                src_vref \u003d self.db.volume_get(context, source_volid)"},{"line_number":179,"context_line":"                self.db.volume_update(context, src_vref[\u0027id\u0027],"},{"line_number":180,"context_line":"                                      {\u0027status\u0027: \u0027in use\u0027})"},{"line_number":181,"context_line":"                model_update \u003d self.driver.create_cloned_volume(volume_ref,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FSV4%3D","line":178,"updated":"2013-01-30 07:28:51.000000000","message":"This should be done in cinder.volume.api so we can reserve then instead of after getting picked up in a queue. This is also what we do with things like attaching for example. Also we can then raise to the user immediately if the device is busy.","commit_id":"54448d5bf8f7ce06f0fb8ffd8c53f8b4cef67f25"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"286f957310feedd1ff0cd9912f47fe72c1f2b3cd","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                    volume_ref,"},{"line_number":176,"context_line":"                    snapshot_ref)"},{"line_number":177,"context_line":"            elif source_volid is not None:"},{"line_number":178,"context_line":"                src_vref \u003d self.db.volume_get(context, source_volid)"},{"line_number":179,"context_line":"                self.db.volume_update(context, src_vref[\u0027id\u0027],"},{"line_number":180,"context_line":"                                      {\u0027status\u0027: \u0027in use\u0027})"},{"line_number":181,"context_line":"                model_update \u003d self.driver.create_cloned_volume(volume_ref,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FRlw%3D","line":178,"in_reply_to":"AAAAM3%2F%2FSV4%3D","updated":"2013-01-30 17:33:39.000000000","message":"We can\u0027t move this to the api because the api simply shoves a message in the queue and exits, so the status will not be \u0027in use\u0027  when the actual cloning takes place.   We\u0027ll need a state machine to do this properly in the api.\n\nWe don\u0027t have this problem here in the manager because the driver\u0027s create_cloned_volume() can block internally until the clone/copy is complete.  So the status on the source volume will be \u0027in use\u0027 the entire clone/copy operation.","commit_id":"54448d5bf8f7ce06f0fb8ffd8c53f8b4cef67f25"}]}
