)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b6fdd09f6193fbdd4a4f5e86461fc4c59a489eac","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     John Griffith \u003cjohn.griffith8@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-06-14 15:34:18 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make migration completion work with Attach-V2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The old attach workflow let us do things that we probably shouldn\u0027t,"},{"line_number":10,"context_line":"like attaching a volume without actually going through Cinder and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f231b9d_1f29ebe4","line":7,"range":{"start_line":7,"start_character":43,"end_line":7,"end_character":45},"updated":"2017-06-15 14:41:28.000000000","message":"V3.27?","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b6fdd09f6193fbdd4a4f5e86461fc4c59a489eac","unresolved":false,"context_lines":[{"line_number":10,"context_line":"like attaching a volume without actually going through Cinder and"},{"line_number":11,"context_line":"running the attach cmd to set the status."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"With V2 API\u0027s we try and avoid a lot of the little special things"},{"line_number":14,"context_line":"by having everything go through an attachment object.  One challenge"},{"line_number":15,"context_line":"with this is things like retype of an in-use volume.  The way the"},{"line_number":16,"context_line":"flow used to work was to attach the new volume but not mark it as"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f231b9d_9f15fb9e","line":13,"range":{"start_line":13,"start_character":5,"end_line":13,"end_character":7},"updated":"2017-06-15 14:41:28.000000000","message":"V3?  The new attachment stuff is 3.27.","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b6fdd09f6193fbdd4a4f5e86461fc4c59a489eac","unresolved":false,"context_lines":[{"line_number":18,"context_line":"discourage this and set the volume to attached.. well, when you"},{"line_number":19,"context_line":"attach it."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The cleanest way to deal with this right now is first to actually"},{"line_number":22,"context_line":"check on the nova side if the swap was initiated by Cinder or not,"},{"line_number":23,"context_line":"and always (when using new attach API) have Nova delete the original"},{"line_number":24,"context_line":"attachment after the swap/copy."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f231b9d_1f6e8b2e","line":22,"range":{"start_line":21,"start_character":45,"end_line":22,"end_character":65},"updated":"2017-06-15 14:41:28.000000000","message":"As discussed in the June 8 nova/cinder meeting, Nova doesn\u0027t have any idea who/how the swap volume operation was initiated. By the time we get to the nova-compute service, we\u0027re just doing a swap volume. But we don\u0027t know if it\u0027s because an admin called the compute API directly to do this, or if Cinder called the API via a retype or volume migration.\n\nSo is this change/solution dependent on a change on the nova side?","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b6fdd09f6193fbdd4a4f5e86461fc4c59a489eac","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The cleanest way to deal with this right now is first to actually"},{"line_number":22,"context_line":"check on the nova side if the swap was initiated by Cinder or not,"},{"line_number":23,"context_line":"and always (when using new attach API) have Nova delete the original"},{"line_number":24,"context_line":"attachment after the swap/copy."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"On the cinder side in that case we only need to update the attachment"},{"line_number":27,"context_line":"object, so remember attachment-2 (destination) is a new volume but we"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f231b9d_5fce432d","line":24,"range":{"start_line":23,"start_character":39,"end_line":24,"end_character":31},"updated":"2017-06-15 14:41:28.000000000","message":"Yup, that\u0027s what we do here:\n\nhttps://review.openstack.org/#/c/456971/7/nova/compute/manager.py@5105","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"}],"cinder/volume/api.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"b9a6f6a427e4c69ecb600fa54f8e8d35d7d91df1","unresolved":false,"context_lines":[{"line_number":1448,"context_line":"            # When we\u0027re not migrating and haven\u0027t hit any errors, we issue"},{"line_number":1449,"context_line":"            # volume attach and detach requests so the volumes don\u0027t end in"},{"line_number":1450,"context_line":"            # \u0027attaching\u0027 and \u0027detaching\u0027 state"},{"line_number":1451,"context_line":"            if not error:"},{"line_number":1452,"context_line":"                attachments \u003d volume.volume_attachment"},{"line_number":1453,"context_line":"                for attachment in attachments:"},{"line_number":1454,"context_line":"                    self.detach(context, volume, attachment.id)"},{"line_number":1455,"context_line":""},{"line_number":1456,"context_line":"                    self.attach(context, new_volume,"},{"line_number":1457,"context_line":"                                attachment.instance_uuid,"},{"line_number":1458,"context_line":"                                attachment.attached_host,"},{"line_number":1459,"context_line":"                                attachment.mountpoint,"},{"line_number":1460,"context_line":"                                \u0027rw\u0027)"},{"line_number":1461,"context_line":""},{"line_number":1462,"context_line":"            return new_volume.id"},{"line_number":1463,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f231b9d_49fd7faf","line":1460,"range":{"start_line":1451,"start_character":12,"end_line":1460,"end_character":37},"updated":"2017-06-15 03:32:57.000000000","message":"Do we hit this with the new flow?","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d02b5c133e520bf1c71407fcf91547630b19dc0e","unresolved":false,"context_lines":[{"line_number":1448,"context_line":"            # When we\u0027re not migrating and haven\u0027t hit any errors, we issue"},{"line_number":1449,"context_line":"            # volume attach and detach requests so the volumes don\u0027t end in"},{"line_number":1450,"context_line":"            # \u0027attaching\u0027 and \u0027detaching\u0027 state"},{"line_number":1451,"context_line":"            if not error:"},{"line_number":1452,"context_line":"                attachments \u003d volume.volume_attachment"},{"line_number":1453,"context_line":"                for attachment in attachments:"},{"line_number":1454,"context_line":"                    self.detach(context, volume, attachment.id)"},{"line_number":1455,"context_line":""},{"line_number":1456,"context_line":"                    self.attach(context, new_volume,"},{"line_number":1457,"context_line":"                                attachment.instance_uuid,"},{"line_number":1458,"context_line":"                                attachment.attached_host,"},{"line_number":1459,"context_line":"                                attachment.mountpoint,"},{"line_number":1460,"context_line":"                                \u0027rw\u0027)"},{"line_number":1461,"context_line":""},{"line_number":1462,"context_line":"            return new_volume.id"},{"line_number":1463,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7f231b9d_c9c39a88","line":1460,"range":{"start_line":1451,"start_character":12,"end_line":1460,"end_character":37},"in_reply_to":"7f231b9d_49fd7faf","updated":"2017-06-16 14:58:17.000000000","message":"Yes,  we could still hit this which might be a problem.  I\u0027ll test it and can do a follow up patch depending on how it goes.","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"}],"cinder/volume/manager.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"cf826fbf0eae9945d3bad8b862308ca84d459e28","unresolved":false,"context_lines":[{"line_number":2110,"context_line":"            for attachment in volume_attachments:"},{"line_number":2111,"context_line":"                LOG.debug(\u0027Re-attaching: %s\u0027, attachment)"},{"line_number":2112,"context_line":"                # This is just a db state toggle, the volume is actually"},{"line_number":2113,"context_line":"                # already attach and in-use, new attachment flow won\u0027t allow"},{"line_number":2114,"context_line":"                # this"},{"line_number":2115,"context_line":"                rpcapi.attach_volume(ctxt, volume,"},{"line_number":2116,"context_line":"                                     attachment.instance_uuid,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f231b9d_37d4e447","line":2113,"range":{"start_line":2113,"start_character":26,"end_line":2113,"end_character":31},"updated":"2017-06-14 22:18:16.000000000","message":"attached","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"cf826fbf0eae9945d3bad8b862308ca84d459e28","unresolved":false,"context_lines":[{"line_number":2133,"context_line":"                      \u0027vol %(vol)s: %(err)s\u0027,"},{"line_number":2134,"context_line":"                      {\u0027vol\u0027: volume.id, \u0027err\u0027: ex})"},{"line_number":2135,"context_line":""},{"line_number":2136,"context_line":"        # For the new flow this is realy the key part.  We just use the"},{"line_number":2137,"context_line":"        # attachments to the worker/destination volumes that we created and"},{"line_number":2138,"context_line":"        # used for the libvirt migration and we\u0027ll just swap their volume_id"},{"line_number":2139,"context_line":"        # entries to coorespond with the volume.id swap we did"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f231b9d_d7f5b0ee","line":2136,"range":{"start_line":2136,"start_character":35,"end_line":2136,"end_character":40},"updated":"2017-06-14 22:18:16.000000000","message":"really","commit_id":"af9f5563ec4d748292b2fbd2b8820000dc9a9206"}]}
