)]}'
{"specs/ussuri/approved/on-demand-vm-quiescence.rst":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a4a03268d9b824b285e724fa4591510c1b2ac884","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Cinder, the filesystem of that server isn\u0027t frozen beforehand. This means that"},{"line_number":29,"context_line":"the newly created snapshot is potentially out of date at the time of creation."},{"line_number":30,"context_line":"Allowing Cinder to tell Nova to quiesce the server would fix this issue."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_5a25ba5a","line":31,"updated":"2020-01-30 16:46:33.000000000","message":"emm...https://docs.openstack.org/api-ref/compute/?expanded\u003dcreate-assisted-volume-snapshots-detail#assisted-volume-snapshots-os-assisted-volume-snapshots, this sounds like only for NFS backend.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Cinder, the filesystem of that server isn\u0027t frozen beforehand. This means that"},{"line_number":29,"context_line":"the newly created snapshot is potentially out of date at the time of creation."},{"line_number":30,"context_line":"Allowing Cinder to tell Nova to quiesce the server would fix this issue."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1fa4df85_421a8e7d","line":31,"in_reply_to":"3fa7e38b_5a25ba5a","updated":"2020-06-11 07:24:37.000000000","message":"I\u0027m not sure what you mean. Looking through [1], any volume backed instance snapshot invokes a quiescing operation. If a snapshot is made through cinder directly, this does not happen.\n\n[1]https://github.com/openstack/nova/blob/a83d853610b1d9c57bb6c672cc20b07db189cc10/nova/compute/api.py#L3168","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b196f4d25c4b8055412c790ebef9d76bd0cfd0c9","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"To track if an instance is quiesced or unquiesced [#fsfreezestatus]_, a new"},{"line_number":46,"context_line":"Task State, ``Quiescing``, will be introduced into the Nova state machine. This"},{"line_number":47,"context_line":"state will be set once the instance has been successfully quiesced and cleared"},{"line_number":48,"context_line":"on a successful unquiescing. Any quiescing and unquiescing operation will have"},{"line_number":49,"context_line":"an action log entry."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_7afd16b7","line":47,"range":{"start_line":47,"start_character":36,"end_line":47,"end_character":66},"updated":"2020-01-30 16:44:06.000000000","message":"We want to show \u0027quiesced\u0027, but the task state is \u0027ing\u0027, that is strange. Maybe we need to new state to vm_state.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"To track if an instance is quiesced or unquiesced [#fsfreezestatus]_, a new"},{"line_number":46,"context_line":"Task State, ``Quiescing``, will be introduced into the Nova state machine. This"},{"line_number":47,"context_line":"state will be set once the instance has been successfully quiesced and cleared"},{"line_number":48,"context_line":"on a successful unquiescing. Any quiescing and unquiescing operation will have"},{"line_number":49,"context_line":"an action log entry."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_fd867215","line":47,"range":{"start_line":47,"start_character":36,"end_line":47,"end_character":66},"in_reply_to":"3fa7e38b_7afd16b7","updated":"2020-06-11 07:24:37.000000000","message":"The idea here was to modify the State machine as little as possible. Grammatical oddity aside, the whole quiescence/unquiescence cycle would be understood as a single operation by openstack under this scheme.\n\nA more comprehensive (and complicated) version of state tracking for quiescence has been outlined in the Alternatives section.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1838aeb062c5a4152fab0136bc5643de354ab1b6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"be introduced. A periodic clean up task will then unquiesce any instances that"},{"line_number":56,"context_line":"exceed this duration, identifying them by analysing action log entries for"},{"line_number":57,"context_line":"instances with the ``Quiescing`` task state."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. [#fsfreezestatus] This could potentially be done for LibVirt Vms using the"},{"line_number":60,"context_line":"   ``guest-fsfreeze-status`` command of the Quemu Guest Agent, but LibVirts"},{"line_number":61,"context_line":"   python binding does not expose this functionality."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_61ca51a4","line":58,"updated":"2020-01-30 17:11:18.000000000","message":"For me the state transitions are not clear based on this description. Could you please specify what task state transition will happen when\na) the new os-server-external-events arrives to freeze the instance\nb) when qemu-agent finished freezing the instance\nc) when the os-server-external-events arrives to unfreeze the instance (or the periodic tasks hits)\nd) when unfreezing is finished","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":55,"context_line":"be introduced. A periodic clean up task will then unquiesce any instances that"},{"line_number":56,"context_line":"exceed this duration, identifying them by analysing action log entries for"},{"line_number":57,"context_line":"instances with the ``Quiescing`` task state."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. [#fsfreezestatus] This could potentially be done for LibVirt Vms using the"},{"line_number":60,"context_line":"   ``guest-fsfreeze-status`` command of the Quemu Guest Agent, but LibVirts"},{"line_number":61,"context_line":"   python binding does not expose this functionality."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_bd74e09d","line":58,"in_reply_to":"3fa7e38b_1dd4aee9","updated":"2020-06-11 12:32:14.000000000","message":"I see. The please change the sentences:\n\n\"This state will be set once the instance has been successfully quiesced and cleared on a successful unquiescing\" \n\nto something like\n\n\"This state will be set once the quiesce os-server-external-event is received and cleared on a successful or failed handling of unquiesce os-server-external-event.\"\n\nso it reflects that actual step when the task_state is set and unset","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":55,"context_line":"be introduced. A periodic clean up task will then unquiesce any instances that"},{"line_number":56,"context_line":"exceed this duration, identifying them by analysing action log entries for"},{"line_number":57,"context_line":"instances with the ``Quiescing`` task state."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. [#fsfreezestatus] This could potentially be done for LibVirt Vms using the"},{"line_number":60,"context_line":"   ``guest-fsfreeze-status`` command of the Quemu Guest Agent, but LibVirts"},{"line_number":61,"context_line":"   python binding does not expose this functionality."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_1dd4aee9","line":58,"in_reply_to":"3fa7e38b_61ca51a4","updated":"2020-06-11 07:24:37.000000000","message":"Only two transitions for task_state are proposed in this section:\n* None -\u003e Quiescing after the event is received\n* Quiescing -\u003e None if the operation fails or if unquiescing finishes.\n\nThis is meant as a very minimalist version of quiescence tracking. A more complex version has been described in the alternatives section.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"be introduced. A periodic clean up task will then unquiesce any instances that"},{"line_number":56,"context_line":"exceed this duration, identifying them by analysing action log entries for"},{"line_number":57,"context_line":"instances with the ``Quiescing`` task state."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. [#fsfreezestatus] This could potentially be done for LibVirt Vms using the"},{"line_number":60,"context_line":"   ``guest-fsfreeze-status`` command of the Quemu Guest Agent, but LibVirts"},{"line_number":61,"context_line":"   python binding does not expose this functionality."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_0eb2c6e6","line":58,"in_reply_to":"ff570b3c_bd74e09d","updated":"2020-07-08 13:46:07.000000000","message":"Actually, that\u0027s a mistake on my part. A generic failure to process and execute an unquiescing operation can\u0027t automatically clear the task state, since it\u0027s unclear if the actual state of the VMs FS has changed at that point; the original spec is correct.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b196f4d25c4b8055412c790ebef9d76bd0cfd0c9","unresolved":false,"context_lines":[{"line_number":104,"context_line":"REST API impact"},{"line_number":105,"context_line":"---------------"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"There are two new proposed event requests for the ``os-server-external-events``"},{"line_number":108,"context_line":"endpoint:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. code-block:: json"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_9a3492ad","line":107,"range":{"start_line":107,"start_character":52,"end_line":107,"end_character":78},"updated":"2020-01-30 16:44:06.000000000","message":"not sure we should use this API. Since we add an action instead of an event to this API.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":104,"context_line":"REST API impact"},{"line_number":105,"context_line":"---------------"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"There are two new proposed event requests for the ``os-server-external-events``"},{"line_number":108,"context_line":"endpoint:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. code-block:: json"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_9d9c7cc0","line":107,"range":{"start_line":107,"start_character":52,"end_line":107,"end_character":78},"in_reply_to":"3fa7e38b_3d6baa1c","updated":"2020-06-11 12:32:14.000000000","message":"If it is Cinder who requests the quiescence then I\u0027m OK to have this as new event on os-serverexternal-events API","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":104,"context_line":"REST API impact"},{"line_number":105,"context_line":"---------------"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"There are two new proposed event requests for the ``os-server-external-events``"},{"line_number":108,"context_line":"endpoint:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. code-block:: json"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_3d6baa1c","line":107,"range":{"start_line":107,"start_character":52,"end_line":107,"end_character":78},"in_reply_to":"3fa7e38b_9a3492ad","updated":"2020-06-11 07:24:37.000000000","message":"We could add an API endpoint instead as described in the Alternatives section. The os-server-external-events method came out of a discussion I had with mriedem on the topic. \n\nEither way seems fine to me.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"03b4523a48f960696acb35fbc55f7e03cb335b45","unresolved":false,"context_lines":[{"line_number":125,"context_line":"      * quiesce"},{"line_number":126,"context_line":"      * unquiesce"},{"line_number":127,"context_line":"server_uuid:"},{"line_number":128,"context_line":"    Server UUID of the instance which si to be quiesced."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The proposed responses to these two events:"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ae0711c8","line":128,"range":{"start_line":128,"start_character":38,"end_line":128,"end_character":40},"updated":"2020-01-27 12:54:53.000000000","message":"is","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":125,"context_line":"      * quiesce"},{"line_number":126,"context_line":"      * unquiesce"},{"line_number":127,"context_line":"server_uuid:"},{"line_number":128,"context_line":"    Server UUID of the instance which si to be quiesced."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The proposed responses to these two events:"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1fa4df85_cd70ef75","line":128,"range":{"start_line":128,"start_character":38,"end_line":128,"end_character":40},"in_reply_to":"3fa7e38b_ae0711c8","updated":"2020-06-11 07:24:37.000000000","message":"Fixed, thanks.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1838aeb062c5a4152fab0136bc5643de354ab1b6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The HTTP response code 401 is returned if request is unauthorized. (keystone)"},{"line_number":166,"context_line":"* The HTTP response code 403 is returned if request is forbidden. (policy)"},{"line_number":167,"context_line":"* The HTTP response code 404 is returned if no server could be found."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Security impact"},{"line_number":170,"context_line":"---------------"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_da6bea19","line":168,"updated":"2020-01-30 17:11:18.000000000","message":"What will happen if \"quiesce\" is requested but the virt driver does not support that action or if there is no qemu agent in the guest in case of libvirt driver. What will be the error code? What will be the instance state transition?","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b196f4d25c4b8055412c790ebef9d76bd0cfd0c9","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The HTTP response code 401 is returned if request is unauthorized. (keystone)"},{"line_number":166,"context_line":"* The HTTP response code 403 is returned if request is forbidden. (policy)"},{"line_number":167,"context_line":"* The HTTP response code 404 is returned if no server could be found."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Security impact"},{"line_number":170,"context_line":"---------------"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_fa6b4684","line":168,"updated":"2020-01-30 16:44:06.000000000","message":"you forget to mention the new task state in this action.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The HTTP response code 401 is returned if request is unauthorized. (keystone)"},{"line_number":166,"context_line":"* The HTTP response code 403 is returned if request is forbidden. (policy)"},{"line_number":167,"context_line":"* The HTTP response code 404 is returned if no server could be found."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Security impact"},{"line_number":170,"context_line":"---------------"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_fdf13803","line":168,"in_reply_to":"1fa4df85_884c25c8","updated":"2020-06-11 12:32:14.000000000","message":"\u003e As for the task transition on failure, as currently designed, no\n \u003e transition would take place until the instance was successfully\n \u003e quiesced. Failure during the operation would not change the task\n \u003e state.\n\nThis is now contradict with your comment on L58 where you state that the None -\u003e Quiescence transition happens when the event is received not when the driver freezed the instance.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The HTTP response code 401 is returned if request is unauthorized. (keystone)"},{"line_number":166,"context_line":"* The HTTP response code 403 is returned if request is forbidden. (policy)"},{"line_number":167,"context_line":"* The HTTP response code 404 is returned if no server could be found."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Security impact"},{"line_number":170,"context_line":"---------------"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1fa4df85_884c25c8","line":168,"in_reply_to":"3fa7e38b_da6bea19","updated":"2020-06-11 07:24:37.000000000","message":"I\u0027ve added a 501 code for unimplemented to the spec. \n\nAs for the task transition on failure, as currently designed, no transition would take place until the instance was successfully quiesced. Failure during the operation would not change the task state.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* The HTTP response code 401 is returned if request is unauthorized. (keystone)"},{"line_number":166,"context_line":"* The HTTP response code 403 is returned if request is forbidden. (policy)"},{"line_number":167,"context_line":"* The HTTP response code 404 is returned if no server could be found."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Security impact"},{"line_number":170,"context_line":"---------------"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_ceef2e85","line":168,"in_reply_to":"ff570b3c_fdf13803","updated":"2020-07-08 13:46:07.000000000","message":"Yeah, that\u0027s clearly wrong. The os state can\u0027t change until the driver successfully changes the actual state of the VM (ie. quiesces it). The spec is correct, my reply on L58 is wrong.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1838aeb062c5a4152fab0136bc5643de354ab1b6","unresolved":false,"context_lines":[{"line_number":174,"context_line":"Notifications impact"},{"line_number":175,"context_line":"--------------------"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"None"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Other end user impact"},{"line_number":180,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ba470ea5","line":177,"updated":"2020-01-30 17:11:18.000000000","message":"We might want to consider sending instance.update notification due to task state transition.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":174,"context_line":"Notifications impact"},{"line_number":175,"context_line":"--------------------"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"None"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Other end user impact"},{"line_number":180,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1fa4df85_2d0503c3","line":177,"in_reply_to":"3fa7e38b_ba470ea5","updated":"2020-06-11 07:24:37.000000000","message":"This sounds reasonable, I\u0027ve added it to the spec.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1838aeb062c5a4152fab0136bc5643de354ab1b6","unresolved":false,"context_lines":[{"line_number":180,"context_line":"---------------------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Nova client should be extended to utilize the new API operations and thus"},{"line_number":183,"context_line":"expose the functionality to cloud users."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Performance Impact"},{"line_number":186,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_5ae7faac","line":183,"range":{"start_line":183,"start_character":28,"end_line":183,"end_character":39},"updated":"2020-01-30 17:11:18.000000000","message":"can we be more specific? I think the build this feature based on os-sever-external-events as we only want to expose this functionality to cinder and not for the general cloud user","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":180,"context_line":"---------------------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Nova client should be extended to utilize the new API operations and thus"},{"line_number":183,"context_line":"expose the functionality to cloud users."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Performance Impact"},{"line_number":186,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_5dab061e","line":183,"range":{"start_line":183,"start_character":28,"end_line":183,"end_character":39},"in_reply_to":"3fa7e38b_5ae7faac","updated":"2020-06-11 07:24:37.000000000","message":"\u0027Cloud users\u0027 is probably the wrong term to use here; \u0027API consumer\u0027 or something along those lines would be more accurate.\n\nWhile the motivating use case is indeed Cinder-centric, the functionality could, potentially, be used by other actors or services (an external DR system of some kind for example), which is why it was conceived as a general admin level operation with access control through policies.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":180,"context_line":"---------------------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Nova client should be extended to utilize the new API operations and thus"},{"line_number":183,"context_line":"expose the functionality to cloud users."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Performance Impact"},{"line_number":186,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_fdcad89e","line":183,"range":{"start_line":183,"start_character":28,"end_line":183,"end_character":39},"in_reply_to":"3fa7e38b_5dab061e","updated":"2020-06-11 12:32:14.000000000","message":"I agree that API consumer is better term here than Cloud user. Still I would even mention Cinder as an example.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":180,"context_line":"---------------------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Nova client should be extended to utilize the new API operations and thus"},{"line_number":183,"context_line":"expose the functionality to cloud users."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Performance Impact"},{"line_number":186,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_4912f859","line":183,"range":{"start_line":183,"start_character":28,"end_line":183,"end_character":39},"in_reply_to":"ff570b3c_fdcad89e","updated":"2020-07-08 13:46:07.000000000","message":"Feels a little redundant, since Cinder is mentioned in use cases, but I\u0027ve added it anyways.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b196f4d25c4b8055412c790ebef9d76bd0cfd0c9","unresolved":false,"context_lines":[{"line_number":206,"context_line":"Upgrade impact"},{"line_number":207,"context_line":"--------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"None, unless one of the above described alternatives is chosen."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Implementation"},{"line_number":212,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_3a523edc","line":209,"updated":"2020-01-30 16:44:06.000000000","message":"In the middle of the upgrade, the old node can\u0027t do this action. I guess we should reject this action before the while cluster upgraded. That means we need to bump service version to detect that.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":206,"context_line":"Upgrade impact"},{"line_number":207,"context_line":"--------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"None, unless one of the above described alternatives is chosen."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Implementation"},{"line_number":212,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_97ee1e89","line":209,"in_reply_to":"3fa7e38b_3a523edc","updated":"2020-06-11 07:24:37.000000000","message":"Noted and addressed.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":206,"context_line":"Upgrade impact"},{"line_number":207,"context_line":"--------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"None, unless one of the above described alternatives is chosen."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Implementation"},{"line_number":212,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_e924acb1","line":209,"in_reply_to":"ff570b3c_3dca904e","updated":"2020-07-08 13:46:07.000000000","message":"You\u0027re right, my bad. I\u0027ve removed it from the spec.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":206,"context_line":"Upgrade impact"},{"line_number":207,"context_line":"--------------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"None, unless one of the above described alternatives is chosen."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Implementation"},{"line_number":212,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_3dca904e","line":209,"in_reply_to":"ff570b3c_97ee1e89","updated":"2020-06-11 12:32:14.000000000","message":"Hm, if this reuses the existing quiesce_instance and unquiesce_instance compute RPC methods then I don\u0027t see an upgrade impact here.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1838aeb062c5a4152fab0136bc5643de354ab1b6","unresolved":false,"context_lines":[{"line_number":242,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"Tempest testing of new REST API endpoints needs to be introduced as well as"},{"line_number":245,"context_line":"tests for the above described automated clean up routine."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Documentation Impact"},{"line_number":248,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_9a9252fb","line":245,"updated":"2020-01-30 17:11:18.000000000","message":"Can we have an integration test where volume snapshot is triggered in cinder in a way that leads to a successfull freezing and unfreezing of the instance?","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":242,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"Tempest testing of new REST API endpoints needs to be introduced as well as"},{"line_number":245,"context_line":"tests for the above described automated clean up routine."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Documentation Impact"},{"line_number":248,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_f7fcba40","line":245,"in_reply_to":"3fa7e38b_9a9252fb","updated":"2020-06-11 07:24:37.000000000","message":"I\u0027m not sure that\u0027s entirely needed. The proposed changes are envisioned as independent API extensions independent of other services even though cinder is the motivating use case.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":242,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"Tempest testing of new REST API endpoints needs to be introduced as well as"},{"line_number":245,"context_line":"tests for the above described automated clean up routine."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Documentation Impact"},{"line_number":248,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_49ae78e7","line":245,"in_reply_to":"ff570b3c_1dca2c45","updated":"2020-07-08 13:46:07.000000000","message":"Not that I know of. I was going to make that proposal myself once the Nova blueprint was approved.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":242,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"Tempest testing of new REST API endpoints needs to be introduced as well as"},{"line_number":245,"context_line":"tests for the above described automated clean up routine."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Documentation Impact"},{"line_number":248,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_1dca2c45","line":245,"in_reply_to":"ff570b3c_f7fcba40","updated":"2020-06-11 12:32:14.000000000","message":"If cinder will implement the usage of this API which is I really hope then I would like to see an integration test that uses Cinder to trigger the whole sequence. Do you know if Cinder is planning such implementation?","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a4a03268d9b824b285e724fa4591510c1b2ac884","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"References"},{"line_number":254,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_1a1742f2","line":255,"updated":"2020-01-30 16:46:33.000000000","message":"There should be cinder side change, do you have any spec for cinder side?","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"6242c345d56a99cec13c6d185e327abc1881eb78","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"References"},{"line_number":254,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_fd167257","line":255,"in_reply_to":"3fa7e38b_1a1742f2","updated":"2020-06-11 07:24:37.000000000","message":"What cinder changes did you have in mind? This spec is designed as an independent change in nova. The result is a new API functionality, potentially usable by anyone, not just cinder.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"References"},{"line_number":254,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff570b3c_223d4b2c","line":255,"in_reply_to":"3fa7e38b_fd167257","updated":"2020-06-11 12:32:14.000000000","message":"Nova exposes os-server-external-events api to be used by other OpenStack services (neutron, cinder, cyborg, ironic). So if the proposal is to extend os-server-external-events then it means there should be another OpenStack service that needs such extension. \n\nI guess one of the possible use case is that the end user requests volume snapshot on the Cinder API and then Cinder calls Nova to quiescence the volume that is attached to a Nova server before Cinder calls the volume backend to do the snapshot. In this scenario using os-server-external-events API is the proper choice. We just need acknowledgement from the Cinder team that they are OK with the proposed os-server-external-events change as they will be (one of) the client of this new API.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"References"},{"line_number":254,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf51134e_e9802c49","line":255,"in_reply_to":"ff570b3c_223d4b2c","updated":"2020-07-08 13:46:07.000000000","message":"I was planning on putting up a Cinder proposal for API consuming this API once this Nova spec was (at least) approved, but I\u0027ll see if I can get someone form Cinder to look it over.","commit_id":"5be495335922dc67b52067af0be03000f9e8d30c"}],"specs/victoria/approved/on-demand-vm-quiescence.rst":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"288e49e50e14aa1efef46473e6d4f50049a6042c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"When creating a snapshot of a Cinder volume attached to a nova vm through"},{"line_number":28,"context_line":"Cinder, the filesystem of that server isn\u0027t frozen beforehand. This means that"},{"line_number":29,"context_line":"the newly created snapshot is potentially out of date at the time of creation."},{"line_number":30,"context_line":"Allowing Cinder to tell Nova to quiesce the server would fix this issue."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf51134e_be6b811d","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":72},"updated":"2020-06-13 15:36:33.000000000","message":"https://docs.openstack.org/api-ref/compute/#assisted-volume-snapshots-os-assisted-volume-snapshots - That isn\u0027t true for NFS / remoteFS based volumes where c-api calls the os-assisted-volume-snapshots API. Honestly I\u0027d like to see this API extended to also support other backends.","commit_id":"972210bd55809c9e9b0a5e872df81a3f2766b519"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"When creating a snapshot of a Cinder volume attached to a nova vm through"},{"line_number":28,"context_line":"Cinder, the filesystem of that server isn\u0027t frozen beforehand. This means that"},{"line_number":29,"context_line":"the newly created snapshot is potentially out of date at the time of creation."},{"line_number":30,"context_line":"Allowing Cinder to tell Nova to quiesce the server would fix this issue."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf51134e_fa63b718","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":72},"in_reply_to":"bf51134e_8e91b69c","updated":"2020-07-09 12:28:33.000000000","message":"Yeah that\u0027s used when Cinder has been requested to snapshot an individual volume.\n\nAre you specifically targeting this work at the createImage action use case for creating entire instance snapshots? If so you might want to make that clear here.\n\nYes, I was suggesting that when directly requested to snapshot a volume Cinder should always use a modified version of that API capable of handling any volume backend.","commit_id":"972210bd55809c9e9b0a5e872df81a3f2766b519"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"When creating a snapshot of a Cinder volume attached to a nova vm through"},{"line_number":28,"context_line":"Cinder, the filesystem of that server isn\u0027t frozen beforehand. This means that"},{"line_number":29,"context_line":"the newly created snapshot is potentially out of date at the time of creation."},{"line_number":30,"context_line":"Allowing Cinder to tell Nova to quiesce the server would fix this issue."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf51134e_8e91b69c","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":72},"in_reply_to":"bf51134e_be6b811d","updated":"2020-07-08 13:46:07.000000000","message":"This is true, though the mechanism through which it is achieved is different to the one used when creating an instance snapshot through Nova.\n\nI\u0027m not entirely sure how os-assisted-volume-snapshot would be utilized to achieve the goals of this spec. Are you saying that Cinder should call nova to create snapshots whenever it receives a volume snapshot request regardless of the actual storage backend?","commit_id":"972210bd55809c9e9b0a5e872df81a3f2766b519"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"abb0bef1b42c4f4d16249436fccffabefc3f0e64","unresolved":false,"context_lines":[{"line_number":211,"context_line":"--------------"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"#. API microversion needs to be bumped for client compatibility [#apimicrp]_."},{"line_number":214,"context_line":"#. RPC api version needs to be raised for controller-compute compatibility"},{"line_number":215,"context_line":"   [#rpcapi]_."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":".. [#apimicrp] `\u003chttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff570b3c_9d075c82","line":214,"updated":"2020-06-11 12:32:14.000000000","message":"Do you really need this? See my comment reply in PS5.","commit_id":"972210bd55809c9e9b0a5e872df81a3f2766b519"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"842d07f0a87378a6ad88538e1396e9992a5270f8","unresolved":false,"context_lines":[{"line_number":211,"context_line":"--------------"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"#. API microversion needs to be bumped for client compatibility [#apimicrp]_."},{"line_number":214,"context_line":"#. RPC api version needs to be raised for controller-compute compatibility"},{"line_number":215,"context_line":"   [#rpcapi]_."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":".. [#apimicrp] `\u003chttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html\u003e`_"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf51134e_5e300808","line":214,"in_reply_to":"ff570b3c_9d075c82","updated":"2020-07-08 13:46:07.000000000","message":"Correct, my bad. I\u0027ve removed it from the spec.","commit_id":"972210bd55809c9e9b0a5e872df81a3f2766b519"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9701fbcc30aee2a977a70f5f80f1c3df431b646f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"On Demand VM Quiescence"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/on-demand-vm-quiescence"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec aims to allow the quiescing of VMs on demand by actors other"},{"line_number":14,"context_line":"than nova itself."}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_892fd786","line":11,"updated":"2020-07-09 15:24:12.000000000","message":"We already approved this spec:\nhttps://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/expose-quiesce-unquiesce-api.html\n\nI see you note that in the alternatives, but its not clear why we should do this more cinder specific approach?","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"7a0c86aea421c168b2c6fbe9d24c2c3ca57d019b","unresolved":false,"context_lines":[{"line_number":8,"context_line":"On Demand VM Quiescence"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/on-demand-vm-quiescence"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec aims to allow the quiescing of VMs on demand by actors other"},{"line_number":14,"context_line":"than nova itself."}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_810f752c","line":11,"in_reply_to":"bf51134e_892fd786","updated":"2020-07-14 13:21:22.000000000","message":"I\u0027m not sure where this Cinder-centric idea comes from. This spec isn\u0027t meant to be that. In fact, the scope and aim is very similar to the old one (if not the same).","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/on-demand-vm-quiescence"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec aims to allow the quiescing of VMs on demand by actors other"},{"line_number":14,"context_line":"than nova itself."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_7accc769","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":17},"updated":"2020-07-09 12:28:33.000000000","message":"Do you have a corresponding spec detailing how cinder is going to use this API? If so could you list it somewhere?","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"7a0c86aea421c168b2c6fbe9d24c2c3ca57d019b","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/on-demand-vm-quiescence"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec aims to allow the quiescing of VMs on demand by actors other"},{"line_number":14,"context_line":"than nova itself."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_e11ab16c","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":17},"in_reply_to":"bf51134e_7accc769","updated":"2020-07-14 13:21:22.000000000","message":"See L11.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"When creating a snapshot of a Cinder volume attached to a nova vm through"},{"line_number":28,"context_line":"Cinder, the filesystem of that server isn\u0027t frozen beforehand. This means that"},{"line_number":29,"context_line":"the newly created snapshot is potentially out of date at the time of creation."},{"line_number":30,"context_line":"Allowing Cinder to tell Nova to quiesce the server would fix this issue."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_fa061786","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":72},"updated":"2020-07-09 12:28:33.000000000","message":"Again, os-assisted-volume-snapshots does this:\n\nhttps://docs.openstack.org/api-ref/compute/#assisted-volume-snapshots-os-assisted-volume-snapshots\n\nCan you update this and reference that API?\n\nAs I said before we *could* extend that API to support other volume backends instead of exposing this new quiescing API.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"7a0c86aea421c168b2c6fbe9d24c2c3ca57d019b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"When creating a snapshot of a Cinder volume attached to a nova vm through"},{"line_number":28,"context_line":"Cinder, the filesystem of that server isn\u0027t frozen beforehand. This means that"},{"line_number":29,"context_line":"the newly created snapshot is potentially out of date at the time of creation."},{"line_number":30,"context_line":"Allowing Cinder to tell Nova to quiesce the server would fix this issue."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_c115ed3e","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":72},"in_reply_to":"bf51134e_fa061786","updated":"2020-07-14 13:21:22.000000000","message":"The aim of the spec isn\u0027t to create a backup mechansim but a quiescing mechanism for use by other tools - probably backup tools.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"To this end, this functionality will be exposed in the REST API using the"},{"line_number":39,"context_line":"existing ``os-server-external-events`` endpoint with two new named events"},{"line_number":40,"context_line":"for quiescing and unquiescing instances. The Nova API will then process the"},{"line_number":41,"context_line":"request as usual, resending it to the appropriate compute node via RPC which"},{"line_number":42,"context_line":"will then attempt to quiesce (or unquiesce) the given VM. Access to these new"},{"line_number":43,"context_line":"operations will be controlled through a new policy rule: ``compute:quiesce``."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_3aa88f8a","line":41,"updated":"2020-07-09 12:28:33.000000000","message":"might want to add that this is a cast and thus async.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"operations will be controlled through a new policy rule: ``compute:quiesce``."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"To track if an instance is quiesced or unquiesced [#fsfreezestatus]_, a new"},{"line_number":46,"context_line":"Task State, ``Quiescing``, will be introduced into the Nova state machine. This"},{"line_number":47,"context_line":"state will be set once the instance has been successfully quiesced and cleared"},{"line_number":48,"context_line":"on a successful unquiescing. Any quiescing and unquiescing operation will have"},{"line_number":49,"context_line":"an action log entry."}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_5a710376","line":46,"range":{"start_line":46,"start_character":14,"end_line":46,"end_character":23},"updated":"2020-07-09 12:28:33.000000000","message":"Why not ``Quiesced`` given we are trying to indicate when the instance has actually been successfully quiesced?","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"7a0c86aea421c168b2c6fbe9d24c2c3ca57d019b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"operations will be controlled through a new policy rule: ``compute:quiesce``."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"To track if an instance is quiesced or unquiesced [#fsfreezestatus]_, a new"},{"line_number":46,"context_line":"Task State, ``Quiescing``, will be introduced into the Nova state machine. This"},{"line_number":47,"context_line":"state will be set once the instance has been successfully quiesced and cleared"},{"line_number":48,"context_line":"on a successful unquiescing. Any quiescing and unquiescing operation will have"},{"line_number":49,"context_line":"an action log entry."}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_212ae97d","line":46,"range":{"start_line":46,"start_character":14,"end_line":46,"end_character":23},"in_reply_to":"bf51134e_5a710376","updated":"2020-07-14 13:21:22.000000000","message":"As mentioned above, the operation is treated as a synchronous one, which is why only the Task State is used to track it with the -ing suffix denoting the transitional nature of the quiescing operation/state. Additionally, it preempts any naming conflicts and confusions should the full VM state transitions (as described in the alternatives section) be implemented at a future date.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"f070d6aa4fc9bd0c36c09723ce784dc3ed04c5c1","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* A potential third REST API operation could also be introduced to query the"},{"line_number":67,"context_line":"  state  of instance quiescence."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* Rather then using the ``os-server-external-events`` endpoint with different"},{"line_number":70,"context_line":"  operations to access the quiescence functionality, separate endpoints could"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_c3f53559","line":67,"range":{"start_line":66,"start_character":0,"end_line":67,"end_character":32},"updated":"2020-07-09 09:14:57.000000000","message":"-1: We either make the `os-server-external-events` synchronous for this specific message so it doesn\u0027t return until the quiesque is complete (which probably goes against the basis Nova\u0027s async messaging API), or we make this API part of the spec and not an alternative.\n\nOtherwise Cinder won\u0027t have any way to use this new functionality in any meaningful way.\n\nOnce the call is sync or we have the query state call, Cinder\u0027s snapshot will be able to:\n\n- Check if volume is attached\n- Call Nova to quiesce\n- Wait until it is quiesced\n- Make the snapshot\n- Unquiesque it","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* A potential third REST API operation could also be introduced to query the"},{"line_number":67,"context_line":"  state  of instance quiescence."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* Rather then using the ``os-server-external-events`` endpoint with different"},{"line_number":70,"context_line":"  operations to access the quiescence functionality, separate endpoints could"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_fa0577c3","line":67,"range":{"start_line":66,"start_character":0,"end_line":67,"end_character":32},"in_reply_to":"bf51134e_c3f53559","updated":"2020-07-09 12:28:33.000000000","message":"Yeah the os-server-external-events RPC API is async, what\u0027s stopping c-api from probing the task state of the instance?","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"7a0c86aea421c168b2c6fbe9d24c2c3ca57d019b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* A potential third REST API operation could also be introduced to query the"},{"line_number":67,"context_line":"  state  of instance quiescence."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* Rather then using the ``os-server-external-events`` endpoint with different"},{"line_number":70,"context_line":"  operations to access the quiescence functionality, separate endpoints could"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_e133d1f4","line":67,"range":{"start_line":66,"start_character":0,"end_line":67,"end_character":32},"in_reply_to":"bf51134e_fa0577c3","updated":"2020-07-14 13:21:22.000000000","message":"See above for my thinking on synchronicity. As far as polling the state goes, c-api can obviously query the database, but I\u0027ll just note for completeness\u0027 sake that the LibVirt python wrapper doesn\u0027t offer a way to query the QGA itself.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9701fbcc30aee2a977a70f5f80f1c3df431b646f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"* Rather then using the ``os-server-external-events`` endpoint with different"},{"line_number":70,"context_line":"  operations to access the quiescence functionality, separate endpoints could"},{"line_number":71,"context_line":"  be introduced instead. This has been proposed in the past, but failed to make"},{"line_number":72,"context_line":"  it through the review process [#previousattempt]_."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* For a more detailed monitoring of the quiescing process, a more complex set"},{"line_number":75,"context_line":"  of states could be added to the Nova VM:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_0972a7ad","line":72,"updated":"2020-07-09 15:24:12.000000000","message":"We did approve the spec, did you find out why it failed?\n\nThat spec, I think, is my prefered approach, as its more general.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"7a0c86aea421c168b2c6fbe9d24c2c3ca57d019b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"* Rather then using the ``os-server-external-events`` endpoint with different"},{"line_number":70,"context_line":"  operations to access the quiescence functionality, separate endpoints could"},{"line_number":71,"context_line":"  be introduced instead. This has been proposed in the past, but failed to make"},{"line_number":72,"context_line":"  it through the review process [#previousattempt]_."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* For a more detailed monitoring of the quiescing process, a more complex set"},{"line_number":75,"context_line":"  of states could be added to the Nova VM:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_01524513","line":72,"in_reply_to":"bf51134e_0972a7ad","updated":"2020-07-14 13:21:22.000000000","message":"As far as I can tell, the spec just fizzled out on review. What exactly is more general about the older spec though? It seems to me that the two only differ in motivation and approach to implementation/implementation details.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":78,"context_line":"  | Name        | Type  | Description                                         |"},{"line_number":79,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":80,"context_line":"  | QUIESCED    | VM    | Marks a quiesced instance                           |"},{"line_number":81,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":82,"context_line":"  | Quiescing   | Task  | Signifies that an instance is transitioning from    |"},{"line_number":83,"context_line":"  |             |       | ``ACTIVE`` to ``QUIESCED``                          |"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_9a98bb75","line":80,"range":{"start_line":80,"start_character":18,"end_line":80,"end_character":20},"updated":"2020-07-09 12:28:33.000000000","message":"Status?","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  be introduced instead. This has been proposed in the past, but failed to make"},{"line_number":72,"context_line":"  it through the review process [#previousattempt]_."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* For a more detailed monitoring of the quiescing process, a more complex set"},{"line_number":75,"context_line":"  of states could be added to the Nova VM:"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":78,"context_line":"  | Name        | Type  | Description                                         |"},{"line_number":79,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":80,"context_line":"  | QUIESCED    | VM    | Marks a quiesced instance                           |"},{"line_number":81,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":82,"context_line":"  | Quiescing   | Task  | Signifies that an instance is transitioning from    |"},{"line_number":83,"context_line":"  |             |       | ``ACTIVE`` to ``QUIESCED``                          |"},{"line_number":84,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":85,"context_line":"  | Unquiescing | Task  | Signifies that an instance is transitioning from    |"},{"line_number":86,"context_line":"  |             |       | ``QUIESCED`` to ``ACTIVE``                          |"},{"line_number":87,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Alternatively, addition of Task and/or Virtual Machine states could be"},{"line_number":90,"context_line":"  avoided by adding a ``quiesced`` field to the Instance model. Similarly, the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_3a81affc","line":87,"range":{"start_line":74,"start_character":0,"end_line":87,"end_character":79},"updated":"2020-07-09 12:28:33.000000000","message":"I\u0027d actually love to see this included if we do go this way.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":26546,"name":"Marek Lyčka","email":"marek.lycka@ultimum.io","username":"mareklycka"},"change_message_id":"7a0c86aea421c168b2c6fbe9d24c2c3ca57d019b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  be introduced instead. This has been proposed in the past, but failed to make"},{"line_number":72,"context_line":"  it through the review process [#previousattempt]_."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* For a more detailed monitoring of the quiescing process, a more complex set"},{"line_number":75,"context_line":"  of states could be added to the Nova VM:"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":78,"context_line":"  | Name        | Type  | Description                                         |"},{"line_number":79,"context_line":"  +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":80,"context_line":"  | QUIESCED    | VM    | Marks a quiesced instance                           |"},{"line_number":81,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":82,"context_line":"  | Quiescing   | Task  | Signifies that an instance is transitioning from    |"},{"line_number":83,"context_line":"  |             |       | ``ACTIVE`` to ``QUIESCED``                          |"},{"line_number":84,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":85,"context_line":"  | Unquiescing | Task  | Signifies that an instance is transitioning from    |"},{"line_number":86,"context_line":"  |             |       | ``QUIESCED`` to ``ACTIVE``                          |"},{"line_number":87,"context_line":"  +-------------+-------+-----------------------------------------------------+"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Alternatively, addition of Task and/or Virtual Machine states could be"},{"line_number":90,"context_line":"  avoided by adding a ``quiesced`` field to the Instance model. Similarly, the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_813db5bc","line":87,"range":{"start_line":74,"start_character":0,"end_line":87,"end_character":79},"in_reply_to":"bf51134e_3a81affc","updated":"2020-07-14 13:21:22.000000000","message":"I\u0027m not oposed to this, but it is the more complicated implementation. Is the complexity worth it?","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"1322cf93255c8150272ebcbf950f2f2e3561ac8f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    * unquiesce"},{"line_number":149,"context_line":"status"},{"line_number":150,"context_line":"  Event status. Possible values:"},{"line_number":151,"context_line":"    * \"completed\" if accepted by Nova"},{"line_number":152,"context_line":"    * \"failed\" if a failure is encountered"},{"line_number":153,"context_line":"code"},{"line_number":154,"context_line":"  Event result code. Possible values:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bf51134e_ba749f37","line":151,"range":{"start_line":151,"start_character":0,"end_line":151,"end_character":37},"updated":"2020-07-09 12:28:33.000000000","message":"This is pretty misleading, I wouldn\u0027t include this given the RPC API is async and just have callers rely on the return code and instance task state and/or status.","commit_id":"bb31ecd6951f1ba5543222476c0f8de160c3fb25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e0f88f99f4a61ef08980579259d95087338a5b31","unresolved":false,"context_lines":[{"line_number":36,"context_line":"instances on demand to non-nova actors."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"To this end, this functionality will be exposed in the REST API using the"},{"line_number":39,"context_line":"existing ``os-server-external-events`` endpoint with two new named events"},{"line_number":40,"context_line":"for quiescing and unquiescing instances. The Nova API will then process the"},{"line_number":41,"context_line":"request as usual, resending it to the appropriate compute node via RPC which"},{"line_number":42,"context_line":"will then attempt to quiesce (or unquiesce) the given VM. Access to these new"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f560f44_9e5d1917","line":39,"range":{"start_line":39,"start_character":9,"end_line":39,"end_character":38},"updated":"2020-08-06 11:02:02.000000000","message":"as noted in the api ref this is an admin only api designed to be used by other OpenStack services.\n\nhttps://docs.openstack.org/api-ref/compute/?expanded\u003dadd-associate-floating-ip-addfloatingip-action-deprecated-detail#create-external-events-os-server-external-events\n\nas the warnign clearly states \n\nUnless you are writing Neutron, Cinder or Ironic code you should not be using this API.\n\nfrom a down stream perspective we do not provide supout to customes that call this api driectly and we also dont\nsuppot sending these event form the openstack client.","commit_id":"d8bdb6d7fead53e8b250285bc56b4892e547e035"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b1c59d1c62518c6a1477720e6874dba9dee3ac3f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"instances on demand to non-nova actors."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"To this end, this functionality will be exposed in the REST API using the"},{"line_number":39,"context_line":"existing ``os-server-external-events`` endpoint with two new named events"},{"line_number":40,"context_line":"for quiescing and unquiescing instances. The Nova API will then process the"},{"line_number":41,"context_line":"request as usual, resending it to the appropriate compute node via RPC which"},{"line_number":42,"context_line":"will then attempt to quiesce (or unquiesce) the given VM. Access to these new"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f560f44_38486085","line":39,"range":{"start_line":39,"start_character":9,"end_line":39,"end_character":38},"in_reply_to":"9f560f44_9e5d1917","updated":"2020-08-06 14:56:13.000000000","message":"The use case currently state that \"When creating a snapshot of a Cinder volume\" so I assume that such snapshot is created by calling the Cinder API and the Cinder calls Nova to quiescence the volume in question.\n\nIn this case using os-server-external-events totally make sense. \n\nIs there any other supported way to make a snapshot of a Cinder volume that is not going through the Cinder API?","commit_id":"d8bdb6d7fead53e8b250285bc56b4892e547e035"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e0f88f99f4a61ef08980579259d95087338a5b31","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"REST API impact"},{"line_number":105,"context_line":"---------------"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"There are two new proposed event requests for the ``os-server-external-events``"},{"line_number":108,"context_line":"endpoint:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. code-block:: json"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f560f44_5e39c1d4","line":108,"range":{"start_line":106,"start_character":0,"end_line":108,"end_character":9},"updated":"2020-08-06 11:02:02.000000000","message":"this api is not intended for use by endusers.\nit exitis only for inter service commnutition when synconising cross project operations.\n\nthis should be a new server action instead\n\n/servers/{server_id}/action","commit_id":"d8bdb6d7fead53e8b250285bc56b4892e547e035"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e0f88f99f4a61ef08980579259d95087338a5b31","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. code-block:: json"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"    \"events\": ["},{"line_number":114,"context_line":"      {"},{"line_number":115,"context_line":"        \"name\": \"quiesce/unquiesce\","},{"line_number":116,"context_line":"        \"server_uuid\": \"3df201cf-2451-44f2-8d25-a4ca826fc1f3\""},{"line_number":117,"context_line":"      }"},{"line_number":118,"context_line":"    ]"},{"line_number":119,"context_line":"  }"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Field definitions:"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f560f44_7e43e542","line":119,"range":{"start_line":112,"start_character":2,"end_line":119,"end_character":3},"updated":"2020-08-06 11:02:02.000000000","message":"so this would be \n\n{\n    \"quiesce\" : {\n    }\n}\n\nand \n\n{\n    \"unquiesce\" : {\n    }\n}","commit_id":"d8bdb6d7fead53e8b250285bc56b4892e547e035"}]}
