)]}'
{"specs/rocky/approved/introduce-pending-vm-state.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1c7e9bd138fc9448c05875023d3cc144e2239f94","unresolved":false,"context_lines":[{"line_number":25,"context_line":"the external service will try to free up the requested resources. In order to"},{"line_number":26,"context_line":"achieve that, transparently to the user, the instance should not be set to the"},{"line_number":27,"context_line":"ERROR state but to the new PENDING state."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_e8e9d619","line":28,"updated":"2018-03-22 17:34:41.000000000","message":"We should be clear on what this is signalling to the user here.\n\nI think it means the operator will try and rebuild at a point where the operator thinks it might succeed. If that fails, they will usually move the instance into the ERROR state (via reset-state).\n\nHowever the user is free to delete the instance at any time, as they see fit, just as they are at any time.","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"26610439270e85b19d61871b98995724cc9ed8c4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"the external service will try to free up the requested resources. In order to"},{"line_number":26,"context_line":"achieve that, transparently to the user, the instance should not be set to the"},{"line_number":27,"context_line":"ERROR state but to the new PENDING state."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_3ddd1070","line":28,"in_reply_to":"bf659307_1882e5c9","updated":"2018-03-27 09:15:22.000000000","message":"This shouldn\u0027t be handled by Nova. The external service should use reset-state instead.","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"35837f5614f3e2938beab26f66d45f46f0aa7364","unresolved":false,"context_lines":[{"line_number":25,"context_line":"the external service will try to free up the requested resources. In order to"},{"line_number":26,"context_line":"achieve that, transparently to the user, the instance should not be set to the"},{"line_number":27,"context_line":"ERROR state but to the new PENDING state."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_1882e5c9","line":28,"in_reply_to":"df7087c5_e8e9d619","updated":"2018-03-23 16:20:53.000000000","message":"Instead, can we have a timeout for instances in pending state?\nAfter the timeout they move to error.","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1c7e9bd138fc9448c05875023d3cc144e2239f94","unresolved":false,"context_lines":[{"line_number":56,"context_line":"#. Add an `obj_make_compatible` method in the instance object, mapping the"},{"line_number":57,"context_line":"   PENDING state to ERROR."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"#. Add a new vensioned notification ``nova.error.build_failed`` (naming?)."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Emit the new versioned notification from the ``_bury_in_cell0`` method."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_686aa6b3","line":59,"updated":"2018-03-22 17:34:41.000000000","message":"Lets be very clear about the new versioned object and its proposed structure here.\n\nI think you wanted to send something like what is sent to placement, rather than the instance object that is normally sent. Either way, I think its good to be clear about that here.","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"26610439270e85b19d61871b98995724cc9ed8c4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"#. Add an `obj_make_compatible` method in the instance object, mapping the"},{"line_number":57,"context_line":"   PENDING state to ERROR."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"#. Add a new vensioned notification ``nova.error.build_failed`` (naming?)."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Emit the new versioned notification from the ``_bury_in_cell0`` method."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_1d504cd4","line":59,"in_reply_to":"df7087c5_686aa6b3","updated":"2018-03-27 09:15:22.000000000","message":"Added more details in the Notifications impact section","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1c7e9bd138fc9448c05875023d3cc144e2239f94","unresolved":false,"context_lines":[{"line_number":80,"context_line":"REST API impact"},{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"None."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Security impact"},{"line_number":86,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_c8589232","line":83,"updated":"2018-03-22 17:34:41.000000000","message":"Need to be clear on the microversion usage here, this needs to be hidden from older microversions.","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"26610439270e85b19d61871b98995724cc9ed8c4","unresolved":false,"context_lines":[{"line_number":80,"context_line":"REST API impact"},{"line_number":81,"context_line":"---------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"None."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Security impact"},{"line_number":86,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_bdd2805b","line":83,"in_reply_to":"df7087c5_c8589232","updated":"2018-03-27 09:15:22.000000000","message":"Done","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1c7e9bd138fc9448c05875023d3cc144e2239f94","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"A new versioned notification is needed in order to inform other services that"},{"line_number":94,"context_line":"the server\u0027s build failed and that it is mapped to cell0. The proposed name"},{"line_number":95,"context_line":"for the notification is ``nova.error.build_failed``."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Other end user impact"},{"line_number":98,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_08a1aaf8","line":95,"updated":"2018-03-22 17:34:41.000000000","message":"Yeah, I guess here we should spec out the object and what is in it, at least roughly speaking.","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"26610439270e85b19d61871b98995724cc9ed8c4","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"A new versioned notification is needed in order to inform other services that"},{"line_number":94,"context_line":"the server\u0027s build failed and that it is mapped to cell0. The proposed name"},{"line_number":95,"context_line":"for the notification is ``nova.error.build_failed``."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Other end user impact"},{"line_number":98,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_1d692c8a","line":95,"in_reply_to":"df7087c5_08a1aaf8","updated":"2018-03-27 09:15:22.000000000","message":"I tried to summarize what info should be included in the notification here.","commit_id":"3cc2e98cc50c9673bd3f484abbd153818f9ef08c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c48ff8e9228dff4b4f32abd0b7e95cc34005522f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"---------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"As an operator, I want to provide preemptible servers using an external -to"},{"line_number":24,"context_line":"Nova- service. As soon as a server\u0027s build request fails due to NoValidHosts,"},{"line_number":25,"context_line":"the external service will try to free up the requested resources."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"If the outcome of the follow up actions is:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_9f877610","line":24,"range":{"start_line":24,"start_character":52,"end_line":24,"end_character":76},"updated":"2018-05-08 07:19:53.000000000","message":"don\u0027t know this is accurate enough\ne.g I boot some server but with some errors occurs, I might still get NoValidHost response, this situation should not lead to free","commit_id":"0be6a0bba0dc689ebb6508aea4f07499e7807344"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"2f737bfac55fbc996803fe085935376da9b2ceee","unresolved":false,"context_lines":[{"line_number":21,"context_line":"---------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"As an operator, I want to provide preemptible servers using an external -to"},{"line_number":24,"context_line":"Nova- service. As soon as a server\u0027s build request fails due to NoValidHosts,"},{"line_number":25,"context_line":"the external service will try to free up the requested resources."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"If the outcome of the follow up actions is:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_b0f621f9","line":24,"range":{"start_line":24,"start_character":52,"end_line":24,"end_character":76},"in_reply_to":"5f7c97a3_9f877610","updated":"2018-05-08 09:16:11.000000000","message":"IMO, the external service should be able to distinguish if it should free resources or not.","commit_id":"0be6a0bba0dc689ebb6508aea4f07499e7807344"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c48ff8e9228dff4b4f32abd0b7e95cc34005522f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"REST API impact"},{"line_number":95,"context_line":"---------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"A new API microversion is needed for this change. For the older microversions"},{"line_number":98,"context_line":"the PENDING state will be mapped to the ERROR state."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Security impact"},{"line_number":101,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_ffc54a3d","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":52},"updated":"2018-05-08 07:19:53.000000000","message":"maybe add basic sample here","commit_id":"0be6a0bba0dc689ebb6508aea4f07499e7807344"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"2f737bfac55fbc996803fe085935376da9b2ceee","unresolved":false,"context_lines":[{"line_number":94,"context_line":"REST API impact"},{"line_number":95,"context_line":"---------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"A new API microversion is needed for this change. For the older microversions"},{"line_number":98,"context_line":"the PENDING state will be mapped to the ERROR state."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Security impact"},{"line_number":101,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_50dd4d6e","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":52},"in_reply_to":"5f7c97a3_ffc54a3d","updated":"2018-05-08 09:16:11.000000000","message":"Done","commit_id":"0be6a0bba0dc689ebb6508aea4f07499e7807344"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c5d1e61d74c66d367deca29662d12b909386886e","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Since the Placement prefiltering mechanism will be a thing, the list of"},{"line_number":127,"context_line":"resulting aggregates could be included in the notification also."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Other end user impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_1ba4f156","line":128,"updated":"2018-05-07 08:12:59.000000000","message":"There is a list of viable alternative from the PTG etherpad [1]. Why does those possible solutions are ignored here?\n\nhttps://etherpad.openstack.org/p/nova-ptg-rocky L472","commit_id":"0be6a0bba0dc689ebb6508aea4f07499e7807344"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"2f737bfac55fbc996803fe085935376da9b2ceee","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Since the Placement prefiltering mechanism will be a thing, the list of"},{"line_number":127,"context_line":"resulting aggregates could be included in the notification also."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Other end user impact"},{"line_number":130,"context_line":"---------------------"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f7c97a3_90cc45bd","line":128,"in_reply_to":"5f7c97a3_1ba4f156","updated":"2018-05-08 09:16:11.000000000","message":"Added the alternatives.","commit_id":"0be6a0bba0dc689ebb6508aea4f07499e7807344"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a1de505a56f1a9825424cfaf4a0d16c6dee23751","unresolved":false,"context_lines":[{"line_number":21,"context_line":"---------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"As an operator, I want to provide preemptible servers using an external -to"},{"line_number":24,"context_line":"Nova- service. As soon as a server\u0027s build request fails due to NoValidHosts,"},{"line_number":25,"context_line":"the external service will try to free up the requested resources."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"If the outcome of the follow up actions is:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_c77d0e1d","line":24,"range":{"start_line":24,"start_character":27,"end_line":24,"end_character":50},"updated":"2018-05-22 21:36:32.000000000","message":"the rebuild API has to be modified to accept past the microversion the fact that we\u0027re going to rebalance an instance that never went to a host.\n\nThe above assumes that Reaper will initiate a rebuild call for the instance of course.","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"133832cc2c5e089ddf58d7e6e7d278803814e026","unresolved":false,"context_lines":[{"line_number":21,"context_line":"---------"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"As an operator, I want to provide preemptible servers using an external -to"},{"line_number":24,"context_line":"Nova- service. As soon as a server\u0027s build request fails due to NoValidHosts,"},{"line_number":25,"context_line":"the external service will try to free up the requested resources."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"If the outcome of the follow up actions is:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_1e81084b","line":24,"range":{"start_line":24,"start_character":27,"end_line":24,"end_character":50},"in_reply_to":"5f7c97a3_c77d0e1d","updated":"2018-05-23 14:04:09.000000000","message":"This change tries to address the change in the rebuild API:\nhttps://review.openstack.org/#/c/554218/","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f140b31b8a6b8b4ebfa6ca1a75862742acf5b7e3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"be set to the ERROR state but to the new PENDING state."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"We need to clarify here that, as for all the other VM states, the end user"},{"line_number":38,"context_line":"will be able to delete instances set to the PENDING state. Failures to the"},{"line_number":39,"context_line":"follow up actions, caused by the deletion of instances in the new state, have"},{"line_number":40,"context_line":"to be handled by the external service."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Proposed change"},{"line_number":43,"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":4,"id":"5f7c97a3_07f3060c","line":40,"range":{"start_line":38,"start_character":58,"end_line":40,"end_character":38},"updated":"2018-05-22 21:14:18.000000000","message":"Ideally, I\u0027d love to know the Nova API calls that would be made for handling failures to place those PENDING instances (we just discussed at the Summit session about a possible reset-state). I do understand this doesn\u0027t require any nova modification for that tho.","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cdc6cda609da26aebf079b900d0382fcb0fa415","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_7a7cdfea","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"updated":"2018-05-08 15:33:47.000000000","message":"I think the purpose of this notification is to notify the external service when a server ended up in PENDING state. For that the already existing instance.update versioned notification is enough. I pulled down your implementation in a devstack. Configured nova to use the PENDING state, also configured nova to emit instance.update on vm_state change ([notification].notify_on_state_change \u003d vm_and_task_state) then tried to boot a server asking for too much resources. I got the following instance.update notification [1]. The payload at the L23-L24 describes a state transition from \u0027building\u0027 to \u0027pending\u0027. I think that is what you need.\n\n[1]http://paste.openstack.org/show/720572/","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a2fc8aec2809b86652abb6f8905966d439e34935","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_52597e32","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_0f5b102e","updated":"2018-05-11 15:16:00.000000000","message":"I think you need to be specific about what details are missing and can\u0027t be fetched via the API after you get the notification.\n\nMy original preference for a new notification was more around the filtering, although you can filter for anything with state\u003dpending in a very similar way to checking the type of notification.","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fd71e7ca0065d6f05ee7a3599f71529ee3a00494","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_fedc1175","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_1eac6deb","updated":"2018-05-29 10:46:39.000000000","message":"\u003e On the summit somebody mentioned that this information might be\n \u003e used to query placement. There I responded that it is technically\n \u003e possible to include the whole placement query into the notification\n \u003e that resulted in an empty placement response.\n \u003e \n\nI\u0027ve just forget the last sentence :). So If we move the notification to be emitted from the manager then we cannot have placement query in the payload in every cases (i.e. ChanceScheduler diver case).","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"580fd927de2bc6f6558eef9ac17f137263115c63","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_c7dc2e76","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_3ca115f9","updated":"2018-05-22 21:13:26.000000000","message":"Let\u0027s try to transform the scheduler.select_destinations.start / end notification to a versioned notification and add the missing pieces there.","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"974701268a087eb825473f82b05a457ca4156fc7","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_3ca115f9","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_52597e32","updated":"2018-05-14 14:55:05.000000000","message":"@Theodoros: The flavor the user used for the boot is visible in the instance.update notification. You are correct that the scheduler hints are not in the notification and not visible on the nova REST API either. \n\nThere were proposals in the past to add scheduler hints to the notifications [1] or add scheduler hints to the GET /servers/\u003cuuid\u003e/details API response [2]. But both proposals were rejected as scheduler hints are something nova wants to get rid of.\n\n[1] https://review.openstack.org/#/c/312169/\n[2] https://review.openstack.org/#/c/440580/","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"18c255e60b62cb240a45d89384d80fc170558f89","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_1eac6deb","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_71a3739f","updated":"2018-05-29 10:42:08.000000000","message":"\u003e @gibi: The transformation of the select_destination is even better.\n \u003e  So I am updating the spec, but I wanted to ask you first. As I see\n \u003e it:\n \u003e \n \u003e 1. The start/end  should be emitted by the scheduler manager in\n \u003e select_destinations instead of the filter_scheduler because in case\n \u003e Placement returns an empty list, we won\u0027t reach the call to the\n \u003e driver.\n\nI agree.\n\n \u003e \n \u003e 2. The error should be emitted by both manager and filter_scheduler\n \u003e since both of them can raise a NoValidHost exception.\n \u003e \n\nI agree that we have to send notifications for both error cases. I think technically it should be possible to emit the notification from the manager in both case. But this is a small implementation detail we can discuss in the code review.\n\n \u003e Would that be ok with you?\n\nSure. Please try to describe in the spec what information you would need in that notification. The legacy scheduler notification contains a dict form of the RequestSpec object [1]. So I\u0027m not against creating the versioned payload based on the RequestSpec object. There is a WIP patch that started doing that [2].\n\nOn the summit somebody mentioned that this information might be used to query placement. There I responded that it is technically possible to include the whole placement query into the notification that resulted in an empty placement response. \n\n[1] https://github.com/openstack/nova/blob/master/nova/scheduler/filter_scheduler.py#L87\n[2] https://review.openstack.org/#/c/508506","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"ed6665c8027435b59878b95cdf2628301a05bd92","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_0f5b102e","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_7a7cdfea","updated":"2018-05-09 14:16:32.000000000","message":"\u003e I think the purpose of this notification is to notify the external\n \u003e service when a server ended up in PENDING state. For that the\n \u003e already existing instance.update versioned notification is enough.\n \u003e I pulled down your implementation in a devstack. Configured nova to\n \u003e use the PENDING state, also configured nova to emit instance.update\n \u003e on vm_state change ([notification].notify_on_state_change \u003d\n \u003e vm_and_task_state) then tried to boot a server asking for too much\n \u003e resources. I got the following instance.update notification [1].\n \u003e The payload at the L23-L24 describes a state transition from\n \u003e \u0027building\u0027 to \u0027pending\u0027. I think that is what you need.\n \u003e \n \u003e [1]http://paste.openstack.org/show/720572/\n\nThe reason we proposed the notification that contains the request_spec, is that the external service should know what the user requested so that it knows where to free resources. \n\nI agree that most of the information needed is included in the instance.update notification. \n\nBut we are missing on info that could have an effect on the scheduling of the resulting instance. Such information could be the forced hosts/nodes, scheduler hints, etc. that are included only in the request_spec.\n\nIf we use the the instance.update notification is there any way to retrieve this info also?","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96ef029c8a009efec702d2d98efcf07fe2a2e967","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_b4984b1b","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_7a7cdfea","updated":"2018-05-08 17:24:24.000000000","message":"Agree with gibi, this looks like all you need:\n\n            \"nova_object.data\":{  \n               \"old_state\":\"building\",\n               \"state\":\"pending\",\n               \"old_task_state\":\"scheduling\",\n               \"new_task_state\":null\n            },","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"9d944ab0b0635714e702cce6c0864edae2f75ba3","unresolved":false,"context_lines":[{"line_number":83,"context_line":"performance impact."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For the part of notification, alternatively, we could use some of the existing"},{"line_number":86,"context_line":"ones. The purpose of this would be to detect a NoValidHost exception and this"},{"line_number":87,"context_line":"is the reason why we propose the new notification."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Data model impact"},{"line_number":90,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_71a3739f","line":87,"range":{"start_line":86,"start_character":5,"end_line":87,"end_character":50},"in_reply_to":"5f7c97a3_c7dc2e76","updated":"2018-05-25 12:18:19.000000000","message":"@gibi: The transformation of the select_destination is even better.  So I am updating the spec, but I wanted to ask you first. As I see it:\n\n1. The start/end  should be emitted by the scheduler manager in select_destinations instead of the filter_scheduler because in case Placement returns an empty list, we won\u0027t reach the call to the driver.\n\n2. The error should be emitted by both manager and filter_scheduler since both of them can raise a NoValidHost exception.\n\nWould that be ok with you?","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cdc6cda609da26aebf079b900d0382fcb0fa415","unresolved":false,"context_lines":[{"line_number":126,"context_line":"          }"},{"line_number":127,"context_line":"       ]"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Security impact"},{"line_number":132,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_116fd692","line":129,"updated":"2018-05-08 15:33:47.000000000","message":"What will be the value of OS-EXT-STS:vm_state? Will it also be \"PENDING\"?\nBTW the current code proposed for this spec causes that the instance will have the following statuses on the REST API after NoValidHost:\n| OS-EXT-STS:power_state               | 0 \n| OS-EXT-STS:task_state                | - \n| OS-EXT-STS:vm_state                  | pending \n| status                               | ERROR","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a2fc8aec2809b86652abb6f8905966d439e34935","unresolved":false,"context_lines":[{"line_number":126,"context_line":"          }"},{"line_number":127,"context_line":"       ]"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Security impact"},{"line_number":132,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_d2e02e29","line":129,"in_reply_to":"5f7c97a3_116fd692","updated":"2018-05-11 15:16:00.000000000","message":"I think the spec is better here, although I would be tempted by error / PENDING, pending/ PENDING is consistent with the error state I think?","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"974701268a087eb825473f82b05a457ca4156fc7","unresolved":false,"context_lines":[{"line_number":126,"context_line":"          }"},{"line_number":127,"context_line":"       ]"},{"line_number":128,"context_line":"    }"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Security impact"},{"line_number":132,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_9c4dc93f","line":129,"in_reply_to":"5f7c97a3_d2e02e29","updated":"2018-05-14 14:55:05.000000000","message":"@John: I agree that the implementation should follow the proposal in the spec.  For me PENDING/pending looks OK.","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cdc6cda609da26aebf079b900d0382fcb0fa415","unresolved":false,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"A new notification is needed in order to inform other services that the"},{"line_number":140,"context_line":"server\u0027s build failed while scheduling and that it is mapped to cell0."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"The plan is to use the notification to trigger an external service in order to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_85ecfc29","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":28},"updated":"2018-05-08 15:33:47.000000000","message":"I tend to disagree please see my comment at L87.","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f140b31b8a6b8b4ebfa6ca1a75862742acf5b7e3","unresolved":false,"context_lines":[{"line_number":288,"context_line":"#. Update the allowed state transitions documentation to include::"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        BUILD to PENDING"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"References"},{"line_number":293,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f7c97a3_87e63644","line":291,"updated":"2018-05-22 21:14:18.000000000","message":"Here we should document the transfer of responsibility we make on managing the instance lifecycle to the \"Reaper\" service once the instance is in PENDING state.","commit_id":"1516873af4d68bd90eb8f6d8bbe5f2c7a44dee32"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        NOTE::"},{"line_number":40,"context_line":"        The rebuild api needs to be adapted to take care of instances that fail"},{"line_number":41,"context_line":"        while building and are mapped to cell0. This change is considered out"},{"line_number":42,"context_line":"        of scope for this spec."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"#. failure, the external service will set the state of the instance to ERROR"},{"line_number":45,"context_line":"   (using reset-state)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_888683ba","line":42,"updated":"2018-06-05 11:40:44.000000000","message":"If this is out of scope then how the external service will rebuild a PENDING instance? Or a PENDING instance will not be mapped to the cell0?","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        NOTE::"},{"line_number":40,"context_line":"        The rebuild api needs to be adapted to take care of instances that fail"},{"line_number":41,"context_line":"        while building and are mapped to cell0. This change is considered out"},{"line_number":42,"context_line":"        of scope for this spec."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"#. failure, the external service will set the state of the instance to ERROR"},{"line_number":45,"context_line":"   (using reset-state)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_1602910a","line":42,"in_reply_to":"5f7c97a3_38fd3cb1","updated":"2018-06-05 15:19:00.000000000","message":"Done","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"988cfe55b7ca714cfe1a1af1c017cf1da328f360","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        NOTE::"},{"line_number":40,"context_line":"        The rebuild api needs to be adapted to take care of instances that fail"},{"line_number":41,"context_line":"        while building and are mapped to cell0. This change is considered out"},{"line_number":42,"context_line":"        of scope for this spec."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"#. failure, the external service will set the state of the instance to ERROR"},{"line_number":45,"context_line":"   (using reset-state)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_38fd3cb1","line":42,"in_reply_to":"5f7c97a3_888683ba","updated":"2018-06-05 14:22:24.000000000","message":"Could you please provide the spec here, ie. https://review.openstack.org/#/c/554218/ ?","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":178,"context_line":"   Information about the instance(s) that failed to be scheduled has to be"},{"line_number":179,"context_line":"   included in the payload of the notification."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"#. Number of Instances"},{"line_number":182,"context_line":"   The external service has to know how many \"slots\" it has to free up."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"#. Flavor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_a81fbf6e","line":181,"range":{"start_line":181,"start_character":0,"end_line":181,"end_character":22},"updated":"2018-06-05 11:40:44.000000000","message":"Would number of instances ever differ from len(instances)?","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":178,"context_line":"   Information about the instance(s) that failed to be scheduled has to be"},{"line_number":179,"context_line":"   included in the payload of the notification."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"#. Number of Instances"},{"line_number":182,"context_line":"   The external service has to know how many \"slots\" it has to free up."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"#. Flavor"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_9353186d","line":181,"range":{"start_line":181,"start_character":0,"end_line":181,"end_character":22},"in_reply_to":"5f7c97a3_a81fbf6e","updated":"2018-06-05 15:19:00.000000000","message":"Correct!","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"#. Image (Meta?)"},{"line_number":190,"context_line":"   Information about the requested image that are already included in the"},{"line_number":191,"context_line":"   RequestSpec should also be included in the payload."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"#. Project (uuid):"},{"line_number":194,"context_line":"   As the instance(s) uuid(s), the project uuid has to be know to the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_a8081f2d","line":191,"updated":"2018-06-05 11:40:44.000000000","message":"The image_meta could contain similar scheduling fine-tuning  information that the flavor extra_spec.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"#. Image (Meta?)"},{"line_number":190,"context_line":"   Information about the requested image that are already included in the"},{"line_number":191,"context_line":"   RequestSpec should also be included in the payload."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"#. Project (uuid):"},{"line_number":194,"context_line":"   As the instance(s) uuid(s), the project uuid has to be know to the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_c23d37de","line":191,"in_reply_to":"5f7c97a3_a8081f2d","updated":"2018-06-05 15:19:00.000000000","message":"Correct!","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":203,"context_line":"   Again enabling the external service to target only preemptible resources in"},{"line_number":204,"context_line":"   the relevant hypervisors, the availability zone has to be included."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"#. Fault"},{"line_number":207,"context_line":"   A fault field containing the exception that led to the error (in case of"},{"line_number":208,"context_line":"   failure)."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"NOTE::"},{"line_number":211,"context_line":"    The scheduler hints could be included since they can affect the scheduling"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_f30b6c21","line":208,"range":{"start_line":206,"start_character":0,"end_line":208,"end_character":12},"updated":"2018-06-05 11:40:44.000000000","message":"Why do you need this? What kind of faults the Reaper service expects here? Do you just want to know that the scheduler was able to select destination or not?","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":203,"context_line":"   Again enabling the external service to target only preemptible resources in"},{"line_number":204,"context_line":"   the relevant hypervisors, the availability zone has to be included."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"#. Fault"},{"line_number":207,"context_line":"   A fault field containing the exception that led to the error (in case of"},{"line_number":208,"context_line":"   failure)."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"NOTE::"},{"line_number":211,"context_line":"    The scheduler hints could be included since they can affect the scheduling"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_3366c42b","line":208,"range":{"start_line":206,"start_character":0,"end_line":208,"end_character":12},"in_reply_to":"5f7c97a3_f30b6c21","updated":"2018-06-05 15:19:00.000000000","message":"This is just added for the completeness of the fwk.. Since there is going to be an ERROR phase, it would be nice to include the reason that led to the failure. If you think that it\u0027s not needed we can skip it.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":208,"context_line":"   failure)."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"NOTE::"},{"line_number":211,"context_line":"    The scheduler hints could be included since they can affect the scheduling"},{"line_number":212,"context_line":"    of an instance, but since they are going to be obsolete, they can be"},{"line_number":213,"context_line":"    ignored for now."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"The information mentioned above, is included in the RequestSpec. The existing"},{"line_number":216,"context_line":"legacy notifications scheduler.select_destinations.start/end, already contain"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_b33654e7","line":213,"range":{"start_line":211,"start_character":0,"end_line":213,"end_character":20},"updated":"2018-06-05 11:40:44.000000000","message":"E.g. force_host hint has a similar effect that the Requested Destination you propose to add to the notification. So the same reasoning could be applied for force_host as well.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":215,"context_line":"The information mentioned above, is included in the RequestSpec. The existing"},{"line_number":216,"context_line":"legacy notifications scheduler.select_destinations.start/end, already contain"},{"line_number":217,"context_line":"the RequestSpec so, a reasonable change would be to transform them to be"},{"line_number":218,"context_line":"versioned."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"The notification would contain the following payload::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_7330bce9","line":218,"updated":"2018-06-05 11:40:44.000000000","message":"OK, let\u0027s include the RequestSpec to the payload.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":215,"context_line":"The information mentioned above, is included in the RequestSpec. The existing"},{"line_number":216,"context_line":"legacy notifications scheduler.select_destinations.start/end, already contain"},{"line_number":217,"context_line":"the RequestSpec so, a reasonable change would be to transform them to be"},{"line_number":218,"context_line":"versioned."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"The notification would contain the following payload::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_b31f346f","line":218,"in_reply_to":"5f7c97a3_7330bce9","updated":"2018-06-05 15:19:00.000000000","message":"Awesome!","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"988cfe55b7ca714cfe1a1af1c017cf1da328f360","unresolved":false,"context_lines":[{"line_number":215,"context_line":"The information mentioned above, is included in the RequestSpec. The existing"},{"line_number":216,"context_line":"legacy notifications scheduler.select_destinations.start/end, already contain"},{"line_number":217,"context_line":"the RequestSpec so, a reasonable change would be to transform them to be"},{"line_number":218,"context_line":"versioned."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"The notification would contain the following payload::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_789df455","line":218,"in_reply_to":"5f7c97a3_7330bce9","updated":"2018-06-05 14:22:24.000000000","message":"Yup, instead of explaining which things you need to have, you should just explain which notification you would like to change.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":215,"context_line":"The information mentioned above, is included in the RequestSpec. The existing"},{"line_number":216,"context_line":"legacy notifications scheduler.select_destinations.start/end, already contain"},{"line_number":217,"context_line":"the RequestSpec so, a reasonable change would be to transform them to be"},{"line_number":218,"context_line":"versioned."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"The notification would contain the following payload::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_3bba160a","line":218,"in_reply_to":"5f7c97a3_789df455","updated":"2018-06-05 15:19:00.000000000","message":"The things that are needed are listed above to explain that a reasonable change would be to transform the existing legacy notification to a versioned one.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                \"nova_object.namespace\":\"nova\","},{"line_number":230,"context_line":"                \"nova_object.name\":\"RequestSpecPayload\","},{"line_number":231,"context_line":"                \"nova_object.data\":{"},{"line_number":232,"context_line":"                    \"force_nodes\":null,"},{"line_number":233,"context_line":"                    \"ignore_hosts\":null,"},{"line_number":234,"context_line":"                    \"image\":{"},{"line_number":235,"context_line":"                        \"nova_object.version\":\"1.0\","},{"line_number":236,"context_line":"                        \"nova_object.namespace\":\"nova\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_536100d3","line":233,"range":{"start_line":232,"start_character":1,"end_line":233,"end_character":40},"updated":"2018-06-05 11:40:44.000000000","message":"these are coming from the force_nodes and ignore_hosts scheduler hints. So here your payload is not consistent with the description at L210","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                    \"image\":{"},{"line_number":235,"context_line":"                        \"nova_object.version\":\"1.0\","},{"line_number":236,"context_line":"                        \"nova_object.namespace\":\"nova\","},{"line_number":237,"context_line":"                        \"nova_object.name\":\"ImageMetaPayload\","},{"line_number":238,"context_line":"                        \"nova_object.data\":{"},{"line_number":239,"context_line":"                        ...."},{"line_number":240,"context_line":"                        }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_13d06853","line":237,"range":{"start_line":237,"start_character":44,"end_line":237,"end_character":60},"updated":"2018-06-05 11:40:44.000000000","message":"It seems it is a new payload class so please define the content of it.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                        ...."},{"line_number":240,"context_line":"                        }"},{"line_number":241,"context_line":"                    },"},{"line_number":242,"context_line":"                    \"num_instances\":1,"},{"line_number":243,"context_line":"                    \"project_id\":u\"6f70656e737461636b20342065766572\","},{"line_number":244,"context_line":"                    \"instance_uuid\":\"c0e3ee9a-ca13-4019-9a3f-dbd41fa867cd\","},{"line_number":245,"context_line":"                    \"id\":1,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_1335c8a8","line":242,"range":{"start_line":242,"start_character":21,"end_line":242,"end_character":34},"updated":"2018-06-05 11:40:44.000000000","message":"If this is always equal to the len(instance_uuids) then I think we don\u0027t need to include it.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                    \"project_id\":u\"6f70656e737461636b20342065766572\","},{"line_number":244,"context_line":"                    \"instance_uuid\":\"c0e3ee9a-ca13-4019-9a3f-dbd41fa867cd\","},{"line_number":245,"context_line":"                    \"id\":1,"},{"line_number":246,"context_line":"                    \"force_hosts\":null"},{"line_number":247,"context_line":"                    \"flavor\":{"},{"line_number":248,"context_line":"                        \"nova_object.version\":\"1.4\","},{"line_number":249,"context_line":"                        \"nova_object.namespace\":\"nova\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_13e70849","line":246,"range":{"start_line":246,"start_character":20,"end_line":246,"end_character":38},"updated":"2018-06-05 11:40:44.000000000","message":"This is coming from the force_hosts scheduler hint so sync the payload an L210 as they now contradict.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                    \"id\":1,"},{"line_number":246,"context_line":"                    \"force_hosts\":null"},{"line_number":247,"context_line":"                    \"flavor\":{"},{"line_number":248,"context_line":"                        \"nova_object.version\":\"1.4\","},{"line_number":249,"context_line":"                        \"nova_object.namespace\":\"nova\","},{"line_number":250,"context_line":"                        \"nova_object.name\":\"FlavorPayload\","},{"line_number":251,"context_line":"                        \"nova_object.data\":{"},{"line_number":252,"context_line":"                        ...."},{"line_number":253,"context_line":"                        }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_93ac78ef","line":250,"range":{"start_line":248,"start_character":24,"end_line":250,"end_character":59},"updated":"2018-06-05 11:40:44.000000000","message":"OK, so we keep the flavor payload unchanged and we reuse it. Cool.","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                    \"id\":1,"},{"line_number":246,"context_line":"                    \"force_hosts\":null"},{"line_number":247,"context_line":"                    \"flavor\":{"},{"line_number":248,"context_line":"                        \"nova_object.version\":\"1.4\","},{"line_number":249,"context_line":"                        \"nova_object.namespace\":\"nova\","},{"line_number":250,"context_line":"                        \"nova_object.name\":\"FlavorPayload\","},{"line_number":251,"context_line":"                        \"nova_object.data\":{"},{"line_number":252,"context_line":"                        ...."},{"line_number":253,"context_line":"                        }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_825adf4d","line":250,"range":{"start_line":248,"start_character":24,"end_line":250,"end_character":59},"in_reply_to":"5f7c97a3_93ac78ef","updated":"2018-06-05 15:19:00.000000000","message":"++","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                        }"},{"line_number":254,"context_line":"                    },"},{"line_number":255,"context_line":"                    \"availability_zone\":null,"},{"line_number":256,"context_line":"                    \"requested_destination\":null"},{"line_number":257,"context_line":"                }"},{"line_number":258,"context_line":"            },"},{"line_number":259,"context_line":"            \"fault\":null,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_d35750ca","line":256,"range":{"start_line":256,"start_character":20,"end_line":256,"end_character":48},"updated":"2018-06-05 11:40:44.000000000","message":"What will be the format of the requested_destination field?","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                        }"},{"line_number":254,"context_line":"                    },"},{"line_number":255,"context_line":"                    \"availability_zone\":null,"},{"line_number":256,"context_line":"                    \"requested_destination\":null"},{"line_number":257,"context_line":"                }"},{"line_number":258,"context_line":"            },"},{"line_number":259,"context_line":"            \"fault\":null,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_022ecff9","line":256,"range":{"start_line":256,"start_character":20,"end_line":256,"end_character":48},"in_reply_to":"5f7c97a3_d35750ca","updated":"2018-06-05 15:19:00.000000000","message":"Adding a description for it","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"52895ace10a2db41cd02d82fae4ad921e5ee41d7","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                    \"requested_destination\":null"},{"line_number":257,"context_line":"                }"},{"line_number":258,"context_line":"            },"},{"line_number":259,"context_line":"            \"fault\":null,"},{"line_number":260,"context_line":"            \"instance_uuids\":["},{"line_number":261,"context_line":"                \"c0e3ee9a-ca13-4019-9a3f-dbd41fa867cd\""},{"line_number":262,"context_line":"            ]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_130388c0","line":259,"range":{"start_line":259,"start_character":12,"end_line":259,"end_character":25},"updated":"2018-06-05 11:40:44.000000000","message":"Will it be an ExceptionPayload instance?","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"bdf3a1ea34a1df203469db16ff7fb66e428efe80","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                    \"requested_destination\":null"},{"line_number":257,"context_line":"                }"},{"line_number":258,"context_line":"            },"},{"line_number":259,"context_line":"            \"fault\":null,"},{"line_number":260,"context_line":"            \"instance_uuids\":["},{"line_number":261,"context_line":"                \"c0e3ee9a-ca13-4019-9a3f-dbd41fa867cd\""},{"line_number":262,"context_line":"            ]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_42a7e7a8","line":259,"range":{"start_line":259,"start_character":12,"end_line":259,"end_character":25},"in_reply_to":"5f7c97a3_130388c0","updated":"2018-06-05 15:19:00.000000000","message":"Yes, this is what I meant. Adding a better description for it..","commit_id":"6d9308899a3948a828deaed8da6d2e1e0c89fdd0"},{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"46d122565f8326a37e512574b3d5ed82f0e151e3","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"#. CellMappingPayload"},{"line_number":307,"context_line":"   Contains the fields of nova.objects.CellMapping"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"There is an already existing change that tries to address the transformation"},{"line_number":311,"context_line":"of the notification and can be picked up [3]."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_f60275ba","line":308,"updated":"2018-06-05 15:23:55.000000000","message":"@gibi: I am not sure that all the nested payloads are really needed here. I would appreciate it if you could help me here, because I don\u0027t know what info has to be included from the notification framework pov.","commit_id":"6897e3c6afebef8590dc279d0ba5a966408a6c2d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a661a3b83b7260c8849bcb40da42059747cd846b","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"#. CellMappingPayload"},{"line_number":307,"context_line":"   Contains the fields of nova.objects.CellMapping"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"There is an already existing change that tries to address the transformation"},{"line_number":311,"context_line":"of the notification and can be picked up [3]."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_f78fb872","line":308,"in_reply_to":"5f7c97a3_f60275ba","updated":"2018-06-06 13:26:30.000000000","message":"I think you can use the rule of thumb that you propose to include those fields that you need in the Reaper service. Later on if more is needed by Reaper or by others we can add new fields easily.\n\nFor example if you don\u0027t need CellMapping then do not add it now..","commit_id":"6897e3c6afebef8590dc279d0ba5a966408a6c2d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"557771ba14596c8be09b82a8d67202fbc09995a9","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"#. CellMappingPayload"},{"line_number":307,"context_line":"   Contains the fields of nova.objects.CellMapping"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"There is an already existing change that tries to address the transformation"},{"line_number":311,"context_line":"of the notification and can be picked up [3]."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_9e2c4602","line":308,"in_reply_to":"5f7c97a3_f78fb872","updated":"2018-06-07 09:49:15.000000000","message":"+1 for keeping it as small as possible to start with.","commit_id":"6897e3c6afebef8590dc279d0ba5a966408a6c2d"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b3fd3ca95232d4b536dc177e5b5a02aab76ed92f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"This feature adds support for the PENDING server state. Instead of setting a"},{"line_number":13,"context_line":"server to the ERROR state when the Placement returns no valid hosts for the"},{"line_number":14,"context_line":"requested server, the PENDING state is used if the operator wishes so. This"},{"line_number":15,"context_line":"will allow the execution of subsequent actions transparently to the end user."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"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":7,"id":"3f79a3b5_3f8dc0d3","line":15,"updated":"2018-09-17 12:50:07.000000000","message":"We should be more specific here...\n\nWhen the scheduler determines there is no capacity available for the given request, and so the instance is about to be routed into cell0, we should go into the Pending state.\n\ni.e. there are other reasons we hit no valid host, after a retry has tried all the alternatives. This is a different error that we should ignore here.","commit_id":"f5f62d7f1a417796398e81a35b3c54e1f9dc9adc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"73456635e430d11bb12cbc4bf0886699216a41a3","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                    \"image\":{"},{"line_number":234,"context_line":"                        \"nova_object.version\":\"1.0\","},{"line_number":235,"context_line":"                        \"nova_object.namespace\":\"nova\","},{"line_number":236,"context_line":"                        \"nova_object.name\":\"ImageMetaPayload\","},{"line_number":237,"context_line":"                        \"nova_object.data\":{"},{"line_number":238,"context_line":"                            ...."},{"line_number":239,"context_line":"                            \"properties\":{"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f7c97a3_d865adb0","line":236,"range":{"start_line":236,"start_character":44,"end_line":236,"end_character":60},"updated":"2018-06-11 13:30:18.000000000","message":"@John: you removed the explanation part in the last PS for these payloads. Do you intended to remove these from here as well?","commit_id":"f5f62d7f1a417796398e81a35b3c54e1f9dc9adc"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b3fd3ca95232d4b536dc177e5b5a02aab76ed92f","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                    \"image\":{"},{"line_number":234,"context_line":"                        \"nova_object.version\":\"1.0\","},{"line_number":235,"context_line":"                        \"nova_object.namespace\":\"nova\","},{"line_number":236,"context_line":"                        \"nova_object.name\":\"ImageMetaPayload\","},{"line_number":237,"context_line":"                        \"nova_object.data\":{"},{"line_number":238,"context_line":"                            ...."},{"line_number":239,"context_line":"                            \"properties\":{"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_5fa3dc43","line":236,"range":{"start_line":236,"start_character":44,"end_line":236,"end_character":60},"in_reply_to":"5f7c97a3_d865adb0","updated":"2018-09-17 12:50:07.000000000","message":"Good point, lets drop this for now. Just do a straight transformation.","commit_id":"f5f62d7f1a417796398e81a35b3c54e1f9dc9adc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"73456635e430d11bb12cbc4bf0886699216a41a3","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                            \"properties\":{"},{"line_number":240,"context_line":"                                \"nova_object.version\":\"1.0\","},{"line_number":241,"context_line":"                                \"nova_object.namespace\":\"nova\","},{"line_number":242,"context_line":"                                \"nova_object.name\":\"ImageMetaPropsPayload\","},{"line_number":243,"context_line":"                                \"nova_object.data\":{"},{"line_number":244,"context_line":"                                    ...."},{"line_number":245,"context_line":"                                }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f7c97a3_780499c6","line":242,"range":{"start_line":242,"start_character":52,"end_line":242,"end_character":73},"updated":"2018-06-11 13:30:18.000000000","message":"ditto","commit_id":"f5f62d7f1a417796398e81a35b3c54e1f9dc9adc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"73456635e430d11bb12cbc4bf0886699216a41a3","unresolved":false,"context_lines":[{"line_number":262,"context_line":"                    \"requested_destination\":{"},{"line_number":263,"context_line":"                        \"nova_object.version\":\"1.0\","},{"line_number":264,"context_line":"                        \"nova_object.namespace\":\"nova\","},{"line_number":265,"context_line":"                        \"nova_object.name\":\"DestinationPayload\","},{"line_number":266,"context_line":"                        \"nova_object.data\":{"},{"line_number":267,"context_line":"                            ...."},{"line_number":268,"context_line":"                            \"cell_mapping\":{"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f7c97a3_980975de","line":265,"range":{"start_line":265,"start_character":44,"end_line":265,"end_character":62},"updated":"2018-06-11 13:30:18.000000000","message":"ditto","commit_id":"f5f62d7f1a417796398e81a35b3c54e1f9dc9adc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"73456635e430d11bb12cbc4bf0886699216a41a3","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                            \"cell_mapping\":{"},{"line_number":269,"context_line":"                                 \"nova_object.version\":\"1.0\","},{"line_number":270,"context_line":"                                 \"nova_object.namespace\":\"nova\","},{"line_number":271,"context_line":"                                 \"nova_object.name\":\"CellMappingPayload\","},{"line_number":272,"context_line":"                                 \"nova_object.data\":{"},{"line_number":273,"context_line":"                                     ...."},{"line_number":274,"context_line":"                                 }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f7c97a3_f8f749d3","line":271,"range":{"start_line":271,"start_character":53,"end_line":271,"end_character":71},"updated":"2018-06-11 13:30:18.000000000","message":"ditto","commit_id":"f5f62d7f1a417796398e81a35b3c54e1f9dc9adc"}],"specs/stein/approved/introduce-pending-vm-state.rst":[{"author":{"_account_id":27057,"name":"Theodoros Tsioutsias","email":"theodoros.tsioutsias@cern.ch","username":"ttsiouts"},"change_message_id":"fef30067851e9d43de37170859bdeba87f223549","unresolved":false,"context_lines":[{"line_number":259,"context_line":"     - Description"},{"line_number":260,"context_line":"   * - Rocky"},{"line_number":261,"context_line":"     - Introduced"},{"line_number":262,"context_line":"   * - Rocky"},{"line_number":263,"context_line":"     - Re-proposed"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_4573f1b4","line":262,"range":{"start_line":262,"start_character":7,"end_line":262,"end_character":12},"updated":"2018-10-01 11:14:52.000000000","message":"Oops","commit_id":"12b51784fde86bb747f3b0e0d083039ce6933080"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7b16836863cb33073bb2a630c34cf7f188398c71","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            }"},{"line_number":38,"context_line":"        }"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        NOTE::"},{"line_number":41,"context_line":"        The rebuild api needs to be adapted to take care of instances that fail"},{"line_number":42,"context_line":"        while building and are mapped to cell0. This change is considered out"},{"line_number":43,"context_line":"        of scope for this spec and is being addressed by another spec [1]"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_59853553","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":14},"updated":"2018-12-19 02:12:29.000000000","message":"nit:\n\n.. note::","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7b16836863cb33073bb2a630c34cf7f188398c71","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        NOTE::"},{"line_number":41,"context_line":"        The rebuild api needs to be adapted to take care of instances that fail"},{"line_number":42,"context_line":"        while building and are mapped to cell0. This change is considered out"},{"line_number":43,"context_line":"        of scope for this spec and is being addressed by another spec [1]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. failure, the external service will set the state of the instance to ERROR"},{"line_number":46,"context_line":"   (using reset-state)::"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_39e6394b","line":43,"range":{"start_line":43,"start_character":70,"end_line":43,"end_character":73},"updated":"2018-12-19 02:12:29.000000000","message":"[1]_","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"961122838aebebfc6f5b56c1169496f658fd0bf1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"In order to achieve that, transparently to the user, the instance should not"},{"line_number":56,"context_line":"be set to the ERROR state but to the new PENDING state."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We need to clarify here that, as for all the other VM states, the end user"},{"line_number":59,"context_line":"will be able to delete instances set to the PENDING state. Failures to the"},{"line_number":60,"context_line":"follow up actions, caused by the deletion of instances in the new state, have"},{"line_number":61,"context_line":"to be handled by the external service."}],"source_content_type":"text/x-rst","patch_set":12,"id":"1f769fc5_565fd2e4","line":58,"range":{"start_line":58,"start_character":33,"end_line":58,"end_character":36},"updated":"2018-12-22 03:07:35.000000000","message":"this seems useless.","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"961122838aebebfc6f5b56c1169496f658fd0bf1","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"#. Add the PENDING state in the server ViewBuilder as a new progress status."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"#. Add a configuration option that defaults to ``False`` in the DEFAULT group"},{"line_number":73,"context_line":"   to enable the use of PENDING vm_state on NoValidHost events::"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        CONF.use_pending_state"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"#. Add the following code in the conductor manager ``_bury_in_cell0`` method"},{"line_number":78,"context_line":"   to make sure that the a vm is set to PENDING only when the operator has"}],"source_content_type":"text/x-rst","patch_set":12,"id":"1f769fc5_36133610","line":75,"range":{"start_line":72,"start_character":0,"end_line":75,"end_character":30},"updated":"2018-12-22 03:07:35.000000000","message":"So this is a global config. And all instances will go to PENDING state if CONF.use_pending_state is true. Seems a little bit too general, if my cloud provider change this option to true, the only thing that can change it to error is by outside service? could there be a usecase that for some of the instances, we just don\u0027t care and we want it to be go to error state directly. I guess your \u0027free up\u0027 action is migration, so maybe some instances is not worth to migrate other instances","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9520491068e9dece913a59cb0c84c8b92196f67","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"#. Add the PENDING state in the server ViewBuilder as a new progress status."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"#. Add a configuration option that defaults to ``False`` in the DEFAULT group"},{"line_number":73,"context_line":"   to enable the use of PENDING vm_state on NoValidHost events::"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        CONF.use_pending_state"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"#. Add the following code in the conductor manager ``_bury_in_cell0`` method"},{"line_number":78,"context_line":"   to make sure that the a vm is set to PENDING only when the operator has"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dfd5e7cf_9bbc6906","line":75,"range":{"start_line":72,"start_character":0,"end_line":75,"end_character":30},"in_reply_to":"1f769fc5_36133610","updated":"2019-01-08 16:57:16.000000000","message":"I don\u0027t see it a problem, since users could still delete instances in such state.\n\nAlso, I think we could discuss about your usecase (only PENDING some instances, for example by flavor reasons) in a separate spec.","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9520491068e9dece913a59cb0c84c8b92196f67","unresolved":false,"context_lines":[{"line_number":107,"context_line":"---------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"A new API microversion is needed for this change. For the older microversions"},{"line_number":110,"context_line":"the PENDING state will be mapped to the ERROR state."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Example responses for a server set to PENDING would be::"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"dfd5e7cf_1b463925","line":110,"updated":"2019-01-08 16:57:16.000000000","message":"++","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5c094d36331658ef1533f5d1b28b2df468313f54","unresolved":false,"context_lines":[{"line_number":153,"context_line":"instance.update."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"For the second part, a notification is needed in order to inform the external"},{"line_number":156,"context_line":"service about a server\u0027s build procedure outcome. The plan is to use this"},{"line_number":157,"context_line":"notification in order to enable the external Reaper service, to know where the"},{"line_number":158,"context_line":"requested resources have to be freed up."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"The transformation of the existing ``select_destinations`` notification from"},{"line_number":161,"context_line":"unversioned to a versioned one, is out of scope of this spec. There is an"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fdfeff1_3539f840","line":158,"range":{"start_line":156,"start_character":50,"end_line":158,"end_character":40},"updated":"2019-01-18 19:40:18.000000000","message":"couldn\u0027t this external Reaper service just as easily respond to NoValidHosts errors instead of adding a whole new server state of PENDING?\n\nI mean, it just seems like we\u0027re adding logic in here to keep a build request alive for no real valid reason. Build requests are cheap. If a build request fails for capacity reasons, who cares? Just fire off another build request at a later time (once some reaper thing kills off pre-emptible instances). I don\u0027t see any reason to add yet another instance state :(","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7b16836863cb33073bb2a630c34cf7f188398c71","unresolved":false,"context_lines":[{"line_number":160,"context_line":"The transformation of the existing ``select_destinations`` notification from"},{"line_number":161,"context_line":"unversioned to a versioned one, is out of scope of this spec. There is an"},{"line_number":162,"context_line":"existing change that tries to address the transformation of the notification"},{"line_number":163,"context_line":"and can be picked up [2]."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Other end user impact"},{"line_number":166,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_f9ebe10c","line":163,"range":{"start_line":163,"start_character":21,"end_line":163,"end_character":24},"updated":"2018-12-19 02:12:29.000000000","message":"[2]_","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9520491068e9dece913a59cb0c84c8b92196f67","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        BUILD to PENDING"},{"line_number":233,"context_line":"        PENDING to BUILD"},{"line_number":234,"context_line":"        PENDING to ERROR"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"#. Document that the responsibility of managing the instance\u0027s lifecycle is"},{"line_number":237,"context_line":"   transferred to the external service as soon as the instance is set to the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dfd5e7cf_fb59f5fd","line":234,"updated":"2019-01-08 16:57:16.000000000","message":"++","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7b16836863cb33073bb2a630c34cf7f188398c71","unresolved":false,"context_lines":[{"line_number":240,"context_line":"References"},{"line_number":241,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"[1] Enable rebuild for instances in cell0"},{"line_number":244,"context_line":"    https://review.openstack.org/#/c/554218/"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"[2] WIP: Transform scheduler.select_destinations notification"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_79d7d14e","line":243,"range":{"start_line":243,"start_character":0,"end_line":243,"end_character":41},"updated":"2018-12-19 02:12:29.000000000","message":".. [1] Enable rebuild for instances in cell0","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7b16836863cb33073bb2a630c34cf7f188398c71","unresolved":false,"context_lines":[{"line_number":243,"context_line":"[1] Enable rebuild for instances in cell0"},{"line_number":244,"context_line":"    https://review.openstack.org/#/c/554218/"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"[2] WIP: Transform scheduler.select_destinations notification"},{"line_number":247,"context_line":"    https://review.openstack.org/#/c/508506/"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"As discussed in the Dublin PTG:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f79a3b5_39cf19b3","line":246,"range":{"start_line":246,"start_character":0,"end_line":246,"end_character":61},"updated":"2018-12-19 02:12:29.000000000","message":".. [2] Transform scheduler.select_destinations notification","commit_id":"e1c22713faca5f4a992f897ee0605feade49e2ed"}]}
