)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36bb05a9f690f8f7da9acbde7a83118ee4831f76","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"We *do* want users to have the ability to change the delete on"},{"line_number":22,"context_line":"termination behavior though, so that\u0027s what we expose."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"[1] https://docs.openstack.org/api-ref/compute/?expanded\u003dupdate-a-volume-attachment-detail#update-a-volume-attachment"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I50938e1237b4d298521b26a5f9cb90c018dfebaf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"bda5ca27_5b82353a","line":23,"updated":"2021-01-12 15:10:52.000000000","message":"+1","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36bb05a9f690f8f7da9acbde7a83118ee4831f76","unresolved":true,"context_lines":[{"line_number":513,"context_line":"            \u0027--tag\u0027,"},{"line_number":514,"context_line":"            metavar\u003d\u0027\u003ctag\u003e\u0027,"},{"line_number":515,"context_line":"            help\u003d_("},{"line_number":516,"context_line":"                \"Tag for the attached volume. \""},{"line_number":517,"context_line":"                \"(Supported by API versions \u00272.49\u0027 - \u00272.latest\u0027)\""},{"line_number":518,"context_line":"            ),"},{"line_number":519,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"b12f57aa_6f217451","side":"PARENT","line":516,"range":{"start_line":516,"start_character":44,"end_line":516,"end_character":45},"updated":"2021-01-12 15:10:52.000000000","message":"im fine with this but just for future reference is the preference to not end with at .","commit_id":"d33eb3e1da5730f13a539b70bd6eea04725b12e1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"df4e2d7a9fca41e45850487438b04f368af2b753","unresolved":false,"context_lines":[{"line_number":513,"context_line":"            \u0027--tag\u0027,"},{"line_number":514,"context_line":"            metavar\u003d\u0027\u003ctag\u003e\u0027,"},{"line_number":515,"context_line":"            help\u003d_("},{"line_number":516,"context_line":"                \"Tag for the attached volume. \""},{"line_number":517,"context_line":"                \"(Supported by API versions \u00272.49\u0027 - \u00272.latest\u0027)\""},{"line_number":518,"context_line":"            ),"},{"line_number":519,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"50d49400_98060166","side":"PARENT","line":516,"range":{"start_line":516,"start_character":44,"end_line":516,"end_character":45},"in_reply_to":"b12f57aa_6f217451","updated":"2021-01-12 16:29:52.000000000","message":"Yes, these are generally single sentences with optional extra information included in brackets. If you search the rest of this file you\u0027ll see plenty of examples of this","commit_id":"d33eb3e1da5730f13a539b70bd6eea04725b12e1"}],"openstackclient/compute/v2/server_volume.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1a2e8f8a60c4fd0e3fce166113f7bcc7acd9f37d","unresolved":true,"context_lines":[{"line_number":25,"context_line":"class UpdateServerVolume(command.Command):"},{"line_number":26,"context_line":"    \"\"\"Update the attachment on the server."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    If dest_volume is the same as the src_volume then the command migrates the"},{"line_number":29,"context_line":"    data from the attached volume to the specified available volume and swaps"},{"line_number":30,"context_line":"    out the active attachment to the new volume. Otherwise it only updates the"},{"line_number":31,"context_line":"    parameters of the existing attachment."}],"source_content_type":"text/x-python","patch_set":3,"id":"8f877673_e9b7eeff","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":30},"updated":"2020-12-09 15:35:13.000000000","message":"not the same?","commit_id":"800762b9c41b00ee980ec6171d5db1daa8f06535"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a85b20699df4523ed801a71a060a6f7bddf49117","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class UpdateServerVolume(command.Command):"},{"line_number":26,"context_line":"    \"\"\"Update the attachment on the server."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    If dest_volume is the same as the src_volume then the command migrates the"},{"line_number":29,"context_line":"    data from the attached volume to the specified available volume and swaps"},{"line_number":30,"context_line":"    out the active attachment to the new volume. Otherwise it only updates the"},{"line_number":31,"context_line":"    parameters of the existing attachment."}],"source_content_type":"text/x-python","patch_set":3,"id":"8d732fc0_ca0aaf92","line":28,"range":{"start_line":28,"start_character":22,"end_line":28,"end_character":30},"in_reply_to":"8f877673_e9b7eeff","updated":"2020-12-09 18:44:41.000000000","message":"Dropped this so no longer relevant","commit_id":"800762b9c41b00ee980ec6171d5db1daa8f06535"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1a2e8f8a60c4fd0e3fce166113f7bcc7acd9f37d","unresolved":true,"context_lines":[{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        return parser"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def take_action(self, parsed_args):"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1e093485_c6b734d9","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":39},"updated":"2020-12-09 15:35:13.000000000","message":"Can we log the warning from the docs when a caller uses this to swap volumes?\n\nhttps://docs.openstack.org/api-ref/compute/?expanded\u003dupdate-a-volume-attachment-detail#update-a-volume-attachment\n\n\"When updating volumeId, this API is typically meant to only be used as part of a larger orchestrated volume migration operation initiated in the block storage service via the os-retype or os-migrate_volume volume actions. Direct usage of this API to update volumeId is not recommended and may result in needing to hard reboot the server to update details within the guest such as block storage serial IDs. Furthermore, updating volumeId via this API is only implemented by certain compute drivers.\"","commit_id":"800762b9c41b00ee980ec6171d5db1daa8f06535"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a85b20699df4523ed801a71a060a6f7bddf49117","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        return parser"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def take_action(self, parsed_args):"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"47f44226_06a4a05c","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":39},"in_reply_to":"1e093485_c6b734d9","updated":"2020-12-09 18:44:41.000000000","message":"As discussed on IRC, I\u0027ve dropped this an only retained the updating of the delete-on-termination flag.\n\nEither novaclient or nova itself could do with some work though. It seems silly to have to provide the volume ID twice now. Potential future microversion","commit_id":"800762b9c41b00ee980ec6171d5db1daa8f06535"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36bb05a9f690f8f7da9acbde7a83118ee4831f76","unresolved":true,"context_lines":[{"line_number":86,"context_line":"        parser.add_argument("},{"line_number":87,"context_line":"            \u0027volume\u0027,"},{"line_number":88,"context_line":"            help\u003d_(\u0027Volume (ID)\u0027),"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        termination_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":91,"context_line":"        termination_group.add_argument("},{"line_number":92,"context_line":"            \u0027--delete-on-termination\u0027,"},{"line_number":93,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":94,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":95,"context_line":"            default\u003dNone,"},{"line_number":96,"context_line":"            help\u003d_("},{"line_number":97,"context_line":"                \u0027Delete the new volume when the server is destroyed \u0027"},{"line_number":98,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":99,"context_line":"            ),"},{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":"        termination_group.add_argument("},{"line_number":102,"context_line":"            \u0027--no-delete-on-termination\u0027,"},{"line_number":103,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":104,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":105,"context_line":"            help\u003d_("},{"line_number":106,"context_line":"                \u0027Do not delete the new volume when the server is destroyed \u0027"},{"line_number":107,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":108,"context_line":"            ),"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        return parser"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":8,"id":"0de906f6_c612151e","line":109,"range":{"start_line":89,"start_character":3,"end_line":109,"end_character":9},"updated":"2021-01-12 15:10:52.000000000","message":"can we do this as a boolean instead\n\n--delete-on-termination\u003dTrue|False default None/unset\n\ni dont really like apis that use --no* for negation\nthe normally dont read correctly.\n\n\"delete on termination\" is an imperative statement\n\n\"no delete on termination\" is not and is grammatically incorrect, it should be\n\n\"no deletetion on termination\", \"preserve on termination\" or  \"do not delete on termination\"\n\nhence my preference to have it be a boolean so that it becomes a question.\nThe no prefix is a common cisco idiom so its well know but that does not make it a good experence.\n\nif you want to key it as too independent flags i would use \"--preserve-on-termination\" instead.","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"df4e2d7a9fca41e45850487438b04f368af2b753","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        parser.add_argument("},{"line_number":87,"context_line":"            \u0027volume\u0027,"},{"line_number":88,"context_line":"            help\u003d_(\u0027Volume (ID)\u0027),"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        termination_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":91,"context_line":"        termination_group.add_argument("},{"line_number":92,"context_line":"            \u0027--delete-on-termination\u0027,"},{"line_number":93,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":94,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":95,"context_line":"            default\u003dNone,"},{"line_number":96,"context_line":"            help\u003d_("},{"line_number":97,"context_line":"                \u0027Delete the new volume when the server is destroyed \u0027"},{"line_number":98,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":99,"context_line":"            ),"},{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":"        termination_group.add_argument("},{"line_number":102,"context_line":"            \u0027--no-delete-on-termination\u0027,"},{"line_number":103,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":104,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":105,"context_line":"            help\u003d_("},{"line_number":106,"context_line":"                \u0027Do not delete the new volume when the server is destroyed \u0027"},{"line_number":107,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":108,"context_line":"            ),"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        return parser"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":8,"id":"2041efe6_49afd63f","line":109,"range":{"start_line":89,"start_character":3,"end_line":109,"end_character":9},"in_reply_to":"0de906f6_c612151e","updated":"2021-01-12 16:29:52.000000000","message":"Definitely not a fan of doing a boolean option. \u0027--foo True\u0027 is considered bad UX and not something we allow in OSC. However, the \u0027--preserve-on-termination\u0027 is a good idea. I\u0027ll use that.","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a388cb87d8348f7fe566ed10bf352064d3beaeae","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        parser.add_argument("},{"line_number":87,"context_line":"            \u0027volume\u0027,"},{"line_number":88,"context_line":"            help\u003d_(\u0027Volume (ID)\u0027),"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        termination_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":91,"context_line":"        termination_group.add_argument("},{"line_number":92,"context_line":"            \u0027--delete-on-termination\u0027,"},{"line_number":93,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":94,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":95,"context_line":"            default\u003dNone,"},{"line_number":96,"context_line":"            help\u003d_("},{"line_number":97,"context_line":"                \u0027Delete the new volume when the server is destroyed \u0027"},{"line_number":98,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":99,"context_line":"            ),"},{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":"        termination_group.add_argument("},{"line_number":102,"context_line":"            \u0027--no-delete-on-termination\u0027,"},{"line_number":103,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":104,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":105,"context_line":"            help\u003d_("},{"line_number":106,"context_line":"                \u0027Do not delete the new volume when the server is destroyed \u0027"},{"line_number":107,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":108,"context_line":"            ),"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        return parser"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":8,"id":"8bce18f4_cfe1e747","line":109,"range":{"start_line":89,"start_character":3,"end_line":109,"end_character":9},"in_reply_to":"2041efe6_49afd63f","updated":"2021-01-12 17:17:43.000000000","message":"well that is subjective i consider having two independ parmaters bad ux espaically from a scripting point of view but since we are both ok with --preserve-on-termination we are all good.","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8989cbcb41d6fd45570a29ac934430f019251f21","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        parser.add_argument("},{"line_number":87,"context_line":"            \u0027volume\u0027,"},{"line_number":88,"context_line":"            help\u003d_(\u0027Volume (ID)\u0027),"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        termination_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":91,"context_line":"        termination_group.add_argument("},{"line_number":92,"context_line":"            \u0027--delete-on-termination\u0027,"},{"line_number":93,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":94,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":95,"context_line":"            default\u003dNone,"},{"line_number":96,"context_line":"            help\u003d_("},{"line_number":97,"context_line":"                \u0027Delete the new volume when the server is destroyed \u0027"},{"line_number":98,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":99,"context_line":"            ),"},{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":"        termination_group.add_argument("},{"line_number":102,"context_line":"            \u0027--no-delete-on-termination\u0027,"},{"line_number":103,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":104,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":105,"context_line":"            help\u003d_("},{"line_number":106,"context_line":"                \u0027Do not delete the new volume when the server is destroyed \u0027"},{"line_number":107,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":108,"context_line":"            ),"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        return parser"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":8,"id":"c361e262_c7e40467","line":109,"range":{"start_line":89,"start_character":3,"end_line":109,"end_character":9},"in_reply_to":"8bce18f4_cfe1e747","updated":"2021-01-12 18:29:14.000000000","message":"Well there\u0027s your mistake 😊 OSC is intended for humans, not scripting. It can do that, but openstacksdk and novaclient are better suited for programmatic interactions.","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cd9e266e848557ea8c55a5e559975597b4bfb406","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        parser.add_argument("},{"line_number":87,"context_line":"            \u0027volume\u0027,"},{"line_number":88,"context_line":"            help\u003d_(\u0027Volume (ID)\u0027),"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        termination_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":91,"context_line":"        termination_group.add_argument("},{"line_number":92,"context_line":"            \u0027--delete-on-termination\u0027,"},{"line_number":93,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":94,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":95,"context_line":"            default\u003dNone,"},{"line_number":96,"context_line":"            help\u003d_("},{"line_number":97,"context_line":"                \u0027Delete the new volume when the server is destroyed \u0027"},{"line_number":98,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":99,"context_line":"            ),"},{"line_number":100,"context_line":"        )"},{"line_number":101,"context_line":"        termination_group.add_argument("},{"line_number":102,"context_line":"            \u0027--no-delete-on-termination\u0027,"},{"line_number":103,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":104,"context_line":"            dest\u003d\u0027delete_on_termination\u0027,"},{"line_number":105,"context_line":"            help\u003d_("},{"line_number":106,"context_line":"                \u0027Do not delete the new volume when the server is destroyed \u0027"},{"line_number":107,"context_line":"                \u0027(supported by --os-compute-api-version 2.85 or above)\u0027"},{"line_number":108,"context_line":"            ),"},{"line_number":109,"context_line":"        )"},{"line_number":110,"context_line":"        return parser"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":8,"id":"dba4d4a5_f9aedf4e","line":109,"range":{"start_line":89,"start_character":3,"end_line":109,"end_character":9},"in_reply_to":"c361e262_c7e40467","updated":"2021-01-12 18:38:31.000000000","message":"no that was the point of osc\u0027s stance on microverions\nit was intened to proved a stable sriptable cli.\n\nthe approch taken by the python client is for better or worse more human friendly.\nosc was always intened to be scripting friendly.","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"}],"releasenotes/notes/add-server-volume-update-89740dca61596dd1.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36bb05a9f690f8f7da9acbde7a83118ee4831f76","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``server volume list`` command, to list the volumes attached to an"},{"line_number":5,"context_line":"    instance."},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Add ``server volume update`` command, to update the volumes attached to"},{"line_number":8,"context_line":"    an instance."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"b77ee26f_2dd08ecb","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":13},"updated":"2021-01-12 15:10:52.000000000","message":"is this form the same release?\nreusing release notes is fine but only within the same release","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a388cb87d8348f7fe566ed10bf352064d3beaeae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``server volume list`` command, to list the volumes attached to an"},{"line_number":5,"context_line":"    instance."},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Add ``server volume update`` command, to update the volumes attached to"},{"line_number":8,"context_line":"    an instance."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"2cc2c0de_99222f01","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":13},"in_reply_to":"93474312_9effc031","updated":"2021-01-12 17:17:43.000000000","message":"ack","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"df4e2d7a9fca41e45850487438b04f368af2b753","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``server volume list`` command, to list the volumes attached to an"},{"line_number":5,"context_line":"    instance."},{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    Add ``server volume update`` command, to update the volumes attached to"},{"line_number":8,"context_line":"    an instance."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"93474312_9effc031","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":13},"in_reply_to":"b77ee26f_2dd08ecb","updated":"2021-01-12 16:29:52.000000000","message":"Yes, we haven\u0027t had a release in a while.\n\n  $ git log --oneline -- releasenotes/notes/add-server-volume-update-89740dca61596dd1.yaml\n  2306d563 (HEAD) compute: Add \u0027server volume update\u0027 command\n  d5026278 compute: Add \u0027server volume list\u0027 command\n  $ git tag --contains d5026278\n  $","commit_id":"2306d56344aa14bb68f111bf041cbcae86014c17"}]}
