)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0c676481c19aed3922ea710f5b84828a2de49c3c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-10-21 02:16:50 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"reject attach and detach volume while task_state is not None"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I2c07f5e47ee890460aa68d901d35c7eff9abe242"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Related-Bug: #1897424"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f65232a_1a88bd6f","line":8,"updated":"2020-10-21 06:03:01.000000000","message":"Add more details for this chage.","commit_id":"9cc1686451503fccb48c31b29f03fdb4912a4cb2"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"0c676481c19aed3922ea710f5b84828a2de49c3c","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Related-Bug: #1897424"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements: blueprint ensure-volume-attachment-successful"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f65232a_ba96e993","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":12},"updated":"2020-10-21 06:03:01.000000000","message":"Part of ...","commit_id":"9cc1686451503fccb48c31b29f03fdb4912a4cb2"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"31a9057dbc92e3100394324f9b7ae2824fe3a3b3","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     dengzhaosen \u003cdengzhaosen@inspur.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-02-19 17:21:50 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reject to attach and detach volume while task_state is not None"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is no restriction for attach and detach volumes while the instance\u0027s"},{"line_number":10,"context_line":"task_state is not None, like rebuiding, migrating etc. And in this case,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"e29f34d6_a975d33d","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":34},"updated":"2021-02-19 10:20:39.000000000","message":"requests to attach, detach and swap volumes","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"31a9057dbc92e3100394324f9b7ae2824fe3a3b3","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reject to attach and detach volume while task_state is not None"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is no restriction for attach and detach volumes while the instance\u0027s"},{"line_number":10,"context_line":"task_state is not None, like rebuiding, migrating etc. And in this case,"},{"line_number":11,"context_line":"it will be conflicting."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Related-Bug: #1897424"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"f057369a_995e3a9e","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":23},"updated":"2021-02-19 10:20:39.000000000","message":"Wrap at 72 characters please.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"31a9057dbc92e3100394324f9b7ae2824fe3a3b3","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Related-Bug: #1897424"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Part of blueprint ensure-volume-attachment-successful"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I2c07f5e47ee890460aa68d901d35c7eff9abe242"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"dec6b0a2_2410c0c1","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":53},"updated":"2021-02-19 10:20:39.000000000","message":"I don\u0027t see this anywhere?","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"},{"author":{"_account_id":31827,"name":"Jorhson Deng","email":"jorhson_deng@163.com","username":"dengzhaosen"},"change_message_id":"fd47c585c1e0ca0fb4e30dee444d27d29adf2915","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Related-Bug: #1897424"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Part of blueprint ensure-volume-attachment-successful"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I2c07f5e47ee890460aa68d901d35c7eff9abe242"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"4e095ac3_7c371109","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":53},"in_reply_to":"dec6b0a2_2410c0c1","updated":"2021-02-20 01:37:20.000000000","message":"this URL is https://blueprints.launchpad.net/nova/+spec/ensure-volume-attachment-successful\nThis is just a partition to enhance the rubustness of the volumes\u0027 operation. \nAs just previos said, you will help to write the spec about the attaching volume continously, https://review.opendev.org/c/openstack/nova-specs/+/765097\nIn fact, this commit is not tight with that spec.","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"}],"api-ref/source/os-volume-attachments.inc":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"31a9057dbc92e3100394324f9b7ae2824fe3a3b3","unresolved":true,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":".. rest_method:: POST /servers/{server_id}/os-volume_attachments"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Attach a volume to an instance."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Normal response codes: 200"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note:: From v2.20 attach a volume to an instance in SHELVED or SHELVED_OFFLOADED"},{"line_number":66,"context_line":"          state is allowed."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. note:: From v2.60, attaching a multiattach volume to multiple instances is"},{"line_number":69,"context_line":"          supported for instances that are not SHELVED_OFFLOADED. The ability"},{"line_number":70,"context_line":"          to actually support a multiattach volume depends on the volume type"},{"line_number":71,"context_line":"          and compute hosting the instance."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Request"},{"line_number":74,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"b049dc0f_a0c1fc6a","line":71,"range":{"start_line":59,"start_character":0,"end_line":71,"end_character":43},"updated":"2021-02-19 10:20:39.000000000","message":"We should call out this new prerequisite here somehow.","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"},{"author":{"_account_id":31827,"name":"Jorhson Deng","email":"jorhson_deng@163.com","username":"dengzhaosen"},"change_message_id":"0eefbfae524400d95d6145ffb3f4ca97ea177165","unresolved":true,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":".. rest_method:: POST /servers/{server_id}/os-volume_attachments"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Attach a volume to an instance."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Normal response codes: 200"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note:: From v2.20 attach a volume to an instance in SHELVED or SHELVED_OFFLOADED"},{"line_number":66,"context_line":"          state is allowed."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. note:: From v2.60, attaching a multiattach volume to multiple instances is"},{"line_number":69,"context_line":"          supported for instances that are not SHELVED_OFFLOADED. The ability"},{"line_number":70,"context_line":"          to actually support a multiattach volume depends on the volume type"},{"line_number":71,"context_line":"          and compute hosting the instance."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Request"},{"line_number":74,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":9,"id":"7e056044_9898aa59","line":71,"range":{"start_line":59,"start_character":0,"end_line":71,"end_character":43},"in_reply_to":"b049dc0f_a0c1fc6a","updated":"2021-02-20 01:48:53.000000000","message":"should I add a new microversion or just add this in v2.60?","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"}],"nova/compute/api.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"31a9057dbc92e3100394324f9b7ae2824fe3a3b3","unresolved":true,"context_lines":[{"line_number":4884,"context_line":""},{"line_number":4885,"context_line":"        return count"},{"line_number":4886,"context_line":""},{"line_number":4887,"context_line":"    @check_instance_lock"},{"line_number":4888,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED,"},{"line_number":4889,"context_line":"                                    vm_states.RESIZED],"},{"line_number":4890,"context_line":"                          task_state\u003d[None])"},{"line_number":4891,"context_line":"    def swap_volume(self, context, instance, old_volume, new_volume):"},{"line_number":4892,"context_line":"        \"\"\"Swap volume attached to an instance.\"\"\""},{"line_number":4893,"context_line":"        # The caller likely got the instance from volume[\u0027attachments\u0027]"},{"line_number":4894,"context_line":"        # in the first place, but let\u0027s sanity check."}],"source_content_type":"text/x-python","patch_set":9,"id":"e9a6581f_c79f3ef5","line":4891,"range":{"start_line":4887,"start_character":0,"end_line":4891,"end_character":69},"updated":"2021-02-19 10:20:39.000000000","message":"Okay this is a different API to attach and detach.","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"},{"author":{"_account_id":31827,"name":"Jorhson Deng","email":"jorhson_deng@163.com","username":"dengzhaosen"},"change_message_id":"fd47c585c1e0ca0fb4e30dee444d27d29adf2915","unresolved":true,"context_lines":[{"line_number":4884,"context_line":""},{"line_number":4885,"context_line":"        return count"},{"line_number":4886,"context_line":""},{"line_number":4887,"context_line":"    @check_instance_lock"},{"line_number":4888,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED,"},{"line_number":4889,"context_line":"                                    vm_states.RESIZED],"},{"line_number":4890,"context_line":"                          task_state\u003d[None])"},{"line_number":4891,"context_line":"    def swap_volume(self, context, instance, old_volume, new_volume):"},{"line_number":4892,"context_line":"        \"\"\"Swap volume attached to an instance.\"\"\""},{"line_number":4893,"context_line":"        # The caller likely got the instance from volume[\u0027attachments\u0027]"},{"line_number":4894,"context_line":"        # in the first place, but let\u0027s sanity check."}],"source_content_type":"text/x-python","patch_set":9,"id":"37e2c490_27fe766d","line":4891,"range":{"start_line":4887,"start_character":0,"end_line":4891,"end_character":69},"in_reply_to":"e9a6581f_c79f3ef5","updated":"2021-02-20 01:37:20.000000000","message":"Yeah, but it also maybe cause some unexpected errors when instance has some other tasks.","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"}],"releasenotes/notes/limit-volume-operation-while-task_state-not-none-a755ea1484bfe7bf.yaml":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3d65e14aa4626b4908ce5d56d39c17564569d929","unresolved":true,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"features:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    There is no restriction for attach and detach volumes while the instance\u0027s"},{"line_number":6,"context_line":"    task_state is not None, like rebuiding, migrating etc. And in this case,"},{"line_number":7,"context_line":"    it will be conflicting. So we will check the task_state before the execute"},{"line_number":8,"context_line":"    operation."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"be5eba6e_0e6290dd","line":5,"updated":"2021-02-19 06:50:00.000000000","message":"There is no restriction for attaching or detaching volumes while the\n    server\u0027s ``task_state`` is not None, e.g. rebuiding, migrating etc.\n    And in these case, it will be conflict if we want to attach or\n    detach volumes from the server. So we need to check the ``task_state``\n    in compute api before the execute operation.","commit_id":"3a676e48562683df217ca8c8bd38cb87b4865e24"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"3d65e14aa4626b4908ce5d56d39c17564569d929","unresolved":true,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"features:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    There is no restriction for attach and detach volumes while the instance\u0027s"},{"line_number":6,"context_line":"    task_state is not None, like rebuiding, migrating etc. And in this case,"},{"line_number":7,"context_line":"    it will be conflicting. So we will check the task_state before the execute"},{"line_number":8,"context_line":"    operation."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"f459e6cc_390eac1e","line":5,"range":{"start_line":5,"start_character":32,"end_line":5,"end_character":49},"updated":"2021-02-19 06:50:00.000000000","message":"attaching or detaching","commit_id":"3a676e48562683df217ca8c8bd38cb87b4865e24"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"31a9057dbc92e3100394324f9b7ae2824fe3a3b3","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"features:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    There is no restriction for attach and detach volumes while the instance\u0027s"},{"line_number":6,"context_line":"    ``task_state`` is not None, e.g. rebuiding, migrating etc. And in this"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"d7f680ef_40c75870","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":8},"updated":"2021-02-19 10:20:39.000000000","message":"fixes","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"31a9057dbc92e3100394324f9b7ae2824fe3a3b3","unresolved":true,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"features:"},{"line_number":4,"context_line":"  - |"},{"line_number":5,"context_line":"    There is no restriction for attach and detach volumes while the instance\u0027s"},{"line_number":6,"context_line":"    ``task_state`` is not None, e.g. rebuiding, migrating etc. And in this"},{"line_number":7,"context_line":"    case, it will be conflict if we want to attach or detach volumes from the"},{"line_number":8,"context_line":"    server. So we will check the ``task_state`` before the execute operation."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"d20387b2_4eeee308","line":8,"range":{"start_line":5,"start_character":1,"end_line":8,"end_character":77},"updated":"2021-02-19 10:20:39.000000000","message":"How about..\n\nPreviously attempts to attach or detach volumes while an instance had a non ``None`` ``task_state``, such as ``rebuilding`` or ``migrating`` were allowed. Such attempts are now rejected to avoid complications arising from parallel requests.\n\n*later*\n\nYou also need to call out the changes to swap_volume in here.","commit_id":"fbe377821df0fddc6e237138fd8bddeb1923723c"}]}
