)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1593fa21523e04fe9394408a6c00d01f64840971","unresolved":false,"context_lines":[{"line_number":12,"context_line":"APIImpact"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Icbb87292cbf7230c3df788919dfadbebd00d92e6"},{"line_number":15,"context_line":"Implements: https://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-server"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9abb7d3a_1841640c","line":15,"updated":"2016-05-27 09:23:50.000000000","message":"please note, this should be:\n\n blueprint maintenance-reason-to-server","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"fca5d8a272619798bd6fb4810451a513d3e795d2","unresolved":false,"context_lines":[{"line_number":12,"context_line":"APIImpact"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Icbb87292cbf7230c3df788919dfadbebd00d92e6"},{"line_number":15,"context_line":"Implements: https://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-server"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9abb7d3a_cb96d193","line":15,"in_reply_to":"9abb7d3a_1841640c","updated":"2016-05-27 16:50:26.000000000","message":"yes, my bad.","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"}],"specs/newton/approved/maintenance-reason-to-server.rst":[{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"e57cf176c436b7485b227b075414a2897f26a2a5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-server"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"User needs to know more detailed information about maintenance that is"},{"line_number":14,"context_line":"effecting to his servers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_d8e6fce6","line":14,"range":{"start_line":14,"start_character":10,"end_line":14,"end_character":13},"updated":"2016-05-11 09:28:31.000000000","message":"s/to//","commit_id":"9fc1456af783ae705a3a3a319b929f3029c29ed3"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"e57cf176c436b7485b227b075414a2897f26a2a5","unresolved":false,"context_lines":[{"line_number":138,"context_line":"Testing"},{"line_number":139,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Unit and functional test cases needs to be added."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Documentation Impact"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_18588487","line":141,"range":{"start_line":141,"start_character":31,"end_line":141,"end_character":36},"updated":"2016-05-11 09:28:31.000000000","message":"need","commit_id":"9fc1456af783ae705a3a3a319b929f3029c29ed3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d1b8e40d93306b4a13b4897fc78760c7b32ebecd","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"``maintenance_reason`` need to be visible when querying server via"},{"line_number":38,"context_line":"`/servers/{server_id}`` and ``/servers/detail`` endpoints."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"New policy is needed to have ``maintenance_reason`` visible in the API:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_ab20669c","line":37,"range":{"start_line":37,"start_character":2,"end_line":37,"end_character":20},"updated":"2016-05-25 12:48:36.000000000","message":"do you mean this is same value with the service API\u0027s disabled_reason?","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5f4f6015c520c544447e1767e28f1f8312908dcc","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"``maintenance_reason`` need to be visible when querying server via"},{"line_number":38,"context_line":"`/servers/{server_id}`` and ``/servers/detail`` endpoints."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"New policy is needed to have ``maintenance_reason`` visible in the API:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_3244beb5","line":37,"range":{"start_line":37,"start_character":2,"end_line":37,"end_character":20},"in_reply_to":"bab6814e_ab20669c","updated":"2016-05-26 05:20:16.000000000","message":"It is discussed that disabled_reason should not be touched, so it can be used as till now. New field could be used for more detailed maintenance state/reason that could also be exposed to server owner. I could explain this better.","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"bb18fb069e75a0bed7dff26e347171eb3204e56d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"There is separate spec to have also notification. Anyhow state information have"},{"line_number":47,"context_line":"to be available trough API also."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_f33a6633","line":46,"range":{"start_line":46,"start_character":36,"end_line":46,"end_character":48},"updated":"2016-05-25 12:33:26.000000000","message":"Can you have the notification spec URL here.\nI\u0027m not really sure if it is an alternative for this spec.","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5f4f6015c520c544447e1767e28f1f8312908dcc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"There is separate spec to have also notification. Anyhow state information have"},{"line_number":47,"context_line":"to be available trough API also."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_b2854ed0","line":46,"range":{"start_line":46,"start_character":36,"end_line":46,"end_character":48},"in_reply_to":"bab6814e_f33a6633","updated":"2016-05-26 05:20:16.000000000","message":"Link is in dependency, but yes should be mentioned better here. To me API should always have everything one need to know. Existence of notification doesn\u0027t mean that you should not be able to query via API.","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"bb18fb069e75a0bed7dff26e347171eb3204e56d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Data model impact"},{"line_number":50,"context_line":"-----------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"None"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_de6e49c8","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":4},"updated":"2016-05-25 12:33:26.000000000","message":"Is there other spec to store the maintenance reason?","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5f4f6015c520c544447e1767e28f1f8312908dcc","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Data model impact"},{"line_number":50,"context_line":"-----------------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"None"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_72cda630","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":4},"in_reply_to":"bab6814e_de6e49c8","updated":"2016-05-26 05:20:16.000000000","message":"Yes there is, it is mentioned in dependency. There is total of bps/specs around this:\nhttps://blueprints.launchpad.net/nova/+spec/set-maintenance-reason\nhttps://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-hypervisor","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d1b8e40d93306b4a13b4897fc78760c7b32ebecd","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    {"},{"line_number":67,"context_line":"      \"server\": {"},{"line_number":68,"context_line":"        ..."},{"line_number":69,"context_line":"        \"OS-EXT-SRV-ATTR:disabled_reason\": \"http://mydetailedreasonurl\","},{"line_number":70,"context_line":"        ..."},{"line_number":71,"context_line":"      }"},{"line_number":72,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_195f4b42","line":69,"range":{"start_line":69,"start_character":9,"end_line":69,"end_character":24},"updated":"2016-05-25 12:48:36.000000000","message":"I guess you mean \u0027maintenance_reaso\u0027 at here. And we needn\u0027t any prefix anymore.","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5f4f6015c520c544447e1767e28f1f8312908dcc","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    {"},{"line_number":67,"context_line":"      \"server\": {"},{"line_number":68,"context_line":"        ..."},{"line_number":69,"context_line":"        \"OS-EXT-SRV-ATTR:disabled_reason\": \"http://mydetailedreasonurl\","},{"line_number":70,"context_line":"        ..."},{"line_number":71,"context_line":"      }"},{"line_number":72,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_d2ce122c","line":69,"range":{"start_line":69,"start_character":9,"end_line":69,"end_character":24},"in_reply_to":"bab6814e_195f4b42","updated":"2016-05-26 05:20:16.000000000","message":"yes, didn\u0027t notice to change this one.","commit_id":"375b1545eb503437721199514e0e59b28cc52e73"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1593fa21523e04fe9394408a6c00d01f64840971","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"There is a separate blueprint [1] to set the ``maintenance_reason`` and have"},{"line_number":48,"context_line":"a notification. Notification is not alternative to this spec, as it have to"},{"line_number":49,"context_line":"be possible to get all needed state information trough API also."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_7869908b","line":47,"range":{"start_line":47,"start_character":37,"end_line":47,"end_character":67},"updated":"2016-05-27 09:23:50.000000000","message":"honestly, I think we need to pull these together into the same spec. Its a bit odd having them separate.\n\nAs an alternative, at least make sure this depends on the other spec, in some way.","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"fca5d8a272619798bd6fb4810451a513d3e795d2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"There is a separate blueprint [1] to set the ``maintenance_reason`` and have"},{"line_number":48,"context_line":"a notification. Notification is not alternative to this spec, as it have to"},{"line_number":49,"context_line":"be possible to get all needed state information trough API also."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_cbdd3172","line":47,"range":{"start_line":47,"start_character":37,"end_line":47,"end_character":67},"in_reply_to":"9abb7d3a_7869908b","updated":"2016-05-27 16:50:26.000000000","message":"Yes, the dependency is in launchpad, but I think I\u0027ll work to merge the 3 specs.","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"416c81c39189de1fde29d72d0bdc6df6509aaad7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Exposing ``maintenance_reason`` to `/servers/{server_id}`` and"},{"line_number":63,"context_line":"``/servers/detail`` endpoints will require a new microversion."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"``maintenance_reason`` will be shown in these APIs like this::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_b81658a5","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":20},"updated":"2016-05-27 09:24:39.000000000","message":"Hmm, maybe host_maintenance_reason would be better here, as it seems like it could be specific to the server, when its not.","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1593fa21523e04fe9394408a6c00d01f64840971","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Exposing ``maintenance_reason`` to `/servers/{server_id}`` and"},{"line_number":63,"context_line":"``/servers/detail`` endpoints will require a new microversion."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"``maintenance_reason`` will be shown in these APIs like this::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_78aa3072","line":65,"range":{"start_line":65,"start_character":51,"end_line":65,"end_character":60},"updated":"2016-05-27 09:23:50.000000000","message":"Need to be more specific, I think you mean:\n\n* show server\n* list server details\n* response to create and update server\n* (are there any others??)","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"fca5d8a272619798bd6fb4810451a513d3e795d2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Exposing ``maintenance_reason`` to `/servers/{server_id}`` and"},{"line_number":63,"context_line":"``/servers/detail`` endpoints will require a new microversion."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"``maintenance_reason`` will be shown in these APIs like this::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_0bbf39fc","line":65,"range":{"start_line":65,"start_character":51,"end_line":65,"end_character":60},"in_reply_to":"9abb7d3a_78aa3072","updated":"2016-05-27 16:50:26.000000000","message":"ok, have to check better.","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"fca5d8a272619798bd6fb4810451a513d3e795d2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Exposing ``maintenance_reason`` to `/servers/{server_id}`` and"},{"line_number":63,"context_line":"``/servers/detail`` endpoints will require a new microversion."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"``maintenance_reason`` will be shown in these APIs like this::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_eb69158d","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":20},"in_reply_to":"9abb7d3a_b81658a5","updated":"2016-05-27 16:50:26.000000000","message":"Yes, that is true for this API at least.","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1593fa21523e04fe9394408a6c00d01f64840971","unresolved":false,"context_lines":[{"line_number":138,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Servers API documentation needs to be updated:"},{"line_number":141,"context_line":"http://developer.openstack.org/api-ref-compute-v2.1.html#compute-v2.1"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"References"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_f8b460d2","line":141,"updated":"2016-05-27 09:23:50.000000000","message":"So this document is now dead, and is replaced by the in tree api-ref. I think just say \"api-ref\" must be updated.","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"fca5d8a272619798bd6fb4810451a513d3e795d2","unresolved":false,"context_lines":[{"line_number":138,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Servers API documentation needs to be updated:"},{"line_number":141,"context_line":"http://developer.openstack.org/api-ref-compute-v2.1.html#compute-v2.1"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"References"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9abb7d3a_8b0fa9e0","line":141,"in_reply_to":"9abb7d3a_f8b460d2","updated":"2016-05-27 16:50:26.000000000","message":"ok","commit_id":"e3b20bb2c022f46e5501552c81c655d57be912aa"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3795ac3b27c81374f3ca64f335c34e1eda44d53d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"URL to external tool having more detailed information about maintenance"},{"line_number":51,"context_line":"state."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"New ``host_maintenance_reason`` field should be added to services table in Nova"},{"line_number":54,"context_line":"DB. This could be set by adding new API::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    PUT /v2.1/{tenant_id}/os-services/maintenance-reason"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_cfab34d5","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":29},"updated":"2016-05-30 18:54:29.000000000","message":"How about host_description or something?\n\nI feel host_maintenance_reason is a good use case for knowing the corresponding host of each server, but that seems a little specific.\n\nIf defining more common parameter, we can use it for the other use cases, I feel. For example, operators can notify when maintenance happens before its operation.","commit_id":"396ce1087a3540fc6ff5ebc8073390ddb019134d"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"31ae4565b1f0708fd1143c2a572dc7c64ca776c6","unresolved":false,"context_lines":[{"line_number":50,"context_line":"URL to external tool having more detailed information about maintenance"},{"line_number":51,"context_line":"state."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"New ``host_maintenance_reason`` field should be added to services table in Nova"},{"line_number":54,"context_line":"DB. This could be set by adding new API::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    PUT /v2.1/{tenant_id}/os-services/maintenance-reason"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_2592e79f","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":29},"in_reply_to":"9abb7d3a_42116003","updated":"2016-06-07 06:30:35.000000000","message":"Thanks, did not yet change when moved to Ocata as like to get more opinions.","commit_id":"396ce1087a3540fc6ff5ebc8073390ddb019134d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"11fddb177205a071465ec50de51b16b35a48edc4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"URL to external tool having more detailed information about maintenance"},{"line_number":51,"context_line":"state."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"New ``host_maintenance_reason`` field should be added to services table in Nova"},{"line_number":54,"context_line":"DB. This could be set by adding new API::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    PUT /v2.1/{tenant_id}/os-services/maintenance-reason"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_42116003","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":29},"in_reply_to":"9abb7d3a_4f9c57c0","updated":"2016-06-01 18:42:56.000000000","message":"Yeah, host_details seems a better idea for me :-)","commit_id":"396ce1087a3540fc6ff5ebc8073390ddb019134d"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"4aa62a35035e8483323dcd0bd0a243de3ffcc082","unresolved":false,"context_lines":[{"line_number":50,"context_line":"URL to external tool having more detailed information about maintenance"},{"line_number":51,"context_line":"state."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"New ``host_maintenance_reason`` field should be added to services table in Nova"},{"line_number":54,"context_line":"DB. This could be set by adding new API::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    PUT /v2.1/{tenant_id}/os-services/maintenance-reason"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_4f9c57c0","line":53,"range":{"start_line":53,"start_character":6,"end_line":53,"end_character":29},"in_reply_to":"9abb7d3a_cfab34d5","updated":"2016-05-31 05:16:05.000000000","message":"This is a good point. Also feel like there is a possibility to have different use cases what this kind of field could offer. So maybe the \"maintenance\" is not a perfect pick, but also \"description\" sounds like something longer than a hostname. host_details?","commit_id":"396ce1087a3540fc6ff5ebc8073390ddb019134d"}],"specs/ocata/approved/maintenance-reason-to-server.rst":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"6ade4cae9d27f6583b3a455fbcde8a56feea0fd4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"It is seen that the maintenance awareness should not be extended into Nova,"},{"line_number":48,"context_line":"but there should be an external tool to host it. The link to more detailed"},{"line_number":49,"context_line":"maintenance reason should anyhow be added as free text field, that can have an"},{"line_number":50,"context_line":"URL to external tool having more detailed information about maintenance"},{"line_number":51,"context_line":"state."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a9d85d2_94998e71","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":48},"updated":"2016-06-20 13:39:18.000000000","message":"To me this sentence seems to directly contradict the below proposal to extend the Nova API and DB model.  Either Nova is aware of the maintenance state, or it isn\u0027t.  Which is right?","commit_id":"a15a701a5298f898f0bdb761fc8086861653e077"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"2698815ee97b9d2463d4411131934a0c6d339bd7","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"It is seen that the maintenance awareness should not be extended into Nova,"},{"line_number":48,"context_line":"but there should be an external tool to host it. The link to more detailed"},{"line_number":49,"context_line":"maintenance reason should anyhow be added as free text field, that can have an"},{"line_number":50,"context_line":"URL to external tool having more detailed information about maintenance"},{"line_number":51,"context_line":"state."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3aaa91ec_2a43456d","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":48},"in_reply_to":"5a9d85d2_94998e71","updated":"2016-06-27 06:37:36.000000000","message":"I see your point here as this kind of adds the support. One could use already the text field for the purpose and then it would directly add the feature. Anyhow the intention would be to have URL into field that might point to place with several details as REST API response. Also in previous patch set there is comment to have this more generic as host_details, not host_maintenance_reson. This could be used on different things than just maintenance. I will see to rephrase and also notification needs change as one should know this exact field changed, not other state information.","commit_id":"a15a701a5298f898f0bdb761fc8086861653e077"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a139763d5c86d86b28e662ccd264d5b3099ecce7","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"API for setting host maintenance::"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host_maintenance"},{"line_number":133,"context_line":"    {"},{"line_number":134,"context_line":"      \"host\": \"host1\","},{"line_number":135,"context_line":"      \"binary\": \"nova-compute\","}],"source_content_type":"text/x-rst","patch_set":10,"id":"bacf61ea_deb71e83","line":132,"range":{"start_line":132,"start_character":38,"end_line":132,"end_character":54},"updated":"2016-08-05 06:31:49.000000000","message":"will change to host-maintenance","commit_id":"496b737a5e5d41a0577cecf683a32aaca24d77d7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16ea96722c7318c1ad154eaee25307b244550ee6","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"As a user I want to get all needed state information through an API."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As a user I want to be able to have images scheduled to a hypervisor where the"},{"line_number":36,"context_line":"maintenance is already done."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As a admin I want to have an external tool supporting more complex maintenance"},{"line_number":39,"context_line":"flows and more specific state for maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_e651edd9","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":28},"updated":"2016-08-10 07:31:16.000000000","message":"Is it about pre-seed images or what does \u0027images scheduled to hypervisor\u0027 here means?","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9adb12e0d8eeeb69868d0463aa42c15bd14596e","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"As a user I want to get all needed state information through an API."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As a user I want to be able to have images scheduled to a hypervisor where the"},{"line_number":36,"context_line":"maintenance is already done."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As a admin I want to have an external tool supporting more complex maintenance"},{"line_number":39,"context_line":"flows and more specific state for maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_c9db034e","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":28},"in_reply_to":"9ad45d7e_80128707","updated":"2016-08-10 14:27:02.000000000","message":"I see. Then I suggest to say something like:\nAs a user I want to be able to have instances scheduled to hypervisor where the maintenance is already done.\n\nQuestion: How does the filter will know that the maintenance is done? Does it just check if the hypervisor is not in MAINTENANCE or PLANNED_MAINTENANCE state?","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5e818846813b27d98eb2acfbec732dbcb18d4d03","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"As a user I want to get all needed state information through an API."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As a user I want to be able to have images scheduled to a hypervisor where the"},{"line_number":36,"context_line":"maintenance is already done."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As a admin I want to have an external tool supporting more complex maintenance"},{"line_number":39,"context_line":"flows and more specific state for maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_4c80c18b","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":28},"in_reply_to":"9ad45d7e_c9db034e","updated":"2016-08-10 14:40:36.000000000","message":"I think that is all it can do. One cannot follow any url in host_maintenance_reason or expect some specific string there.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"36cffc1108fd51c220943fc02c3aefd40c893d78","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"As a user I want to get all needed state information through an API."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As a user I want to be able to have images scheduled to a hypervisor where the"},{"line_number":36,"context_line":"maintenance is already done."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As a admin I want to have an external tool supporting more complex maintenance"},{"line_number":39,"context_line":"flows and more specific state for maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_80128707","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":28},"in_reply_to":"9ad45d7e_e651edd9","updated":"2016-08-10 12:18:27.000000000","message":"If maintenance scheduler filter would not allow tp put new VM to host that is in maintenance state of PLANNED_MAINTENANCE or MAINTENANCE, then one would be able to have newly scheduled VMs to only hosts that have already passed maintenance considering feature is used like this.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"47e9603b79a4873acba56427ef91366febbe629d","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host_maintenance"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_a493dbf9","line":64,"range":{"start_line":64,"start_character":39,"end_line":64,"end_character":45},"updated":"2016-08-08 12:44:57.000000000","message":"string or enum? Currently the spec seems to contradict itself.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b8bad1cef2150e8cffc068204f3fdee615e7e79f","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host_maintenance"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_b76442e5","line":64,"range":{"start_line":64,"start_character":39,"end_line":64,"end_character":45},"in_reply_to":"9ad45d7e_1e10e200","updated":"2016-08-10 06:33:34.000000000","message":"So in API a string. And surely API documentation has the valid strings and invalid would casue an error. Also a string is nicely informative in APIs that expose this information to user. Just my bad enum is mentioned in wrong place. Should only be visible in DB.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"2dde108c5287ae10617232d00040ff4a952d7d07","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host_maintenance"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_1e10e200","line":64,"range":{"start_line":64,"start_character":39,"end_line":64,"end_character":45},"in_reply_to":"9ad45d7e_1ee80be2","updated":"2016-08-09 17:14:43.000000000","message":"What if an unrecognised string is passed via the API? There would be no way of representing this as an enum, so I guess that would trigger an error?","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a1d1453b5b9dde8f423a7f5c444ccfc2caa4cd3f","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host_maintenance"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_93f74958","line":64,"range":{"start_line":64,"start_character":39,"end_line":64,"end_character":45},"in_reply_to":"9ad45d7e_43bd39b6","updated":"2016-08-11 10:04:54.000000000","message":"Done","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"894af401d7dfd7a8703a10f4af2a338eb5d8ae71","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host_maintenance"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_1ee80be2","line":64,"range":{"start_line":64,"start_character":39,"end_line":64,"end_character":45},"in_reply_to":"9ad45d7e_a493dbf9","updated":"2016-08-09 04:13:12.000000000","message":"oh yes, in API it is nice as descriptive strings while internally it will be an enum.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fe7e02d8ccd19d605b0839d1e0d54649ecad585c","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host_maintenance"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_43bd39b6","line":64,"range":{"start_line":64,"start_character":39,"end_line":64,"end_character":45},"in_reply_to":"9ad45d7e_b76442e5","updated":"2016-08-10 12:32:31.000000000","message":"That makes sense - +1 for this, thanks.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"47e9603b79a4873acba56427ef91366febbe629d","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_3f37f2e4","line":66,"range":{"start_line":66,"start_character":63,"end_line":66,"end_character":67},"updated":"2016-08-08 12:44:57.000000000","message":"\"coming soon\" is a bit vague - maybe it should just say \"planned\" as it could be planned several months in advance... But this raises the question: what if there are multiple sets of maintenance work planned for the same host?\n\nAnd if we are tracking planned maintenance, then I think it would make sense to allow specifying more details, for example the expected start/end time, and a point of contact for queries.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"894af401d7dfd7a8703a10f4af2a338eb5d8ae71","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_defe736a","line":66,"range":{"start_line":66,"start_character":63,"end_line":66,"end_character":67},"in_reply_to":"9ad45d7e_3f37f2e4","updated":"2016-08-09 04:13:12.000000000","message":"\"planned\" sounds good. \"host_maintenance_reason\" is the place where one will get any details as originally discussed information to be outside of nova. Then the value can be url and more specific things behind that. Like for planned maintenance, when it is going to be, so user knows it will hit his VMs in case left there. External entity can have any \"HA actions\" configured and it will also make tenant specific alarm for maintenance, planned maintanance with time mentioned... none of this more sophisticated maintenance related features needed was wanted inside Nova.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"3625fa07968b56d3b93dd3ae71438645b96624fb","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_6ad2ca5d","line":66,"range":{"start_line":66,"start_character":63,"end_line":66,"end_character":67},"in_reply_to":"9ad45d7e_430b798e","updated":"2016-08-10 13:52:07.000000000","message":"It is just the discussion back in time with Nova cores. Can propose this feature, but it shouldn\u0027t build maintenance features extensively in Nova, so the start/end not having own field.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a1d1453b5b9dde8f423a7f5c444ccfc2caa4cd3f","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_738bb5c3","line":66,"range":{"start_line":66,"start_character":63,"end_line":66,"end_character":67},"in_reply_to":"9ad45d7e_6ad2ca5d","updated":"2016-08-11 10:04:54.000000000","message":"Done","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fe7e02d8ccd19d605b0839d1e0d54649ecad585c","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_430b798e","line":66,"range":{"start_line":66,"start_character":63,"end_line":66,"end_character":67},"in_reply_to":"9ad45d7e_86363150","updated":"2016-08-10 12:32:31.000000000","message":"I agree with that too (although in the future I suspect extra start/end datetime fields would be useful). My point was that it should not say \"soon\", because the planned maintenance will not always be soon.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16ea96722c7318c1ad154eaee25307b244550ee6","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"``host_maintenance_state`` should have string values seen in APIs as:"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_86363150","line":66,"range":{"start_line":66,"start_character":63,"end_line":66,"end_character":67},"in_reply_to":"9ad45d7e_defe736a","updated":"2016-08-10 07:31:16.000000000","message":"I agree with Tomi here. PLANNED_MAINTENANCE shall mean to te user that he has to check host_maintenance_reason field for more information like, timing of the planned maintenance.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16ea96722c7318c1ad154eaee25307b244550ee6","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_865bd186","line":68,"range":{"start_line":68,"start_character":9,"end_line":68,"end_character":21},"updated":"2016-08-10 07:31:16.000000000","message":"Would this mean that one of the internal enum value will be an empty string?","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a1d1453b5b9dde8f423a7f5c444ccfc2caa4cd3f","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_b3a88d21","line":68,"range":{"start_line":68,"start_character":9,"end_line":68,"end_character":21},"in_reply_to":"9ad45d7e_2c02ad0b","updated":"2016-08-11 10:04:54.000000000","message":"Done","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"36cffc1108fd51c220943fc02c3aefd40c893d78","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_e0226351","line":68,"range":{"start_line":68,"start_character":9,"end_line":68,"end_character":21},"in_reply_to":"9ad45d7e_865bd186","updated":"2016-08-10 12:18:27.000000000","message":"yes","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9adb12e0d8eeeb69868d0463aa42c15bd14596e","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_e9c9a75a","line":68,"range":{"start_line":68,"start_character":9,"end_line":68,"end_character":21},"in_reply_to":"9ad45d7e_c36c8937","updated":"2016-08-10 14:27:02.000000000","message":"On the API it is OK to have empty string I guess. In the enum in the code we might want something like NO_MAINTENANCE for readability but this is out of the spec code as it is really just implementation detail. So I agree with the proposed empty string","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fe7e02d8ccd19d605b0839d1e0d54649ecad585c","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_c36c8937","line":68,"range":{"start_line":68,"start_character":9,"end_line":68,"end_character":21},"in_reply_to":"9ad45d7e_e0226351","updated":"2016-08-10 12:32:31.000000000","message":"or maybe it could just be NULL in that case.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5e818846813b27d98eb2acfbec732dbcb18d4d03","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is maintenance coming soon."},{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_2c02ad0b","line":68,"range":{"start_line":68,"start_character":9,"end_line":68,"end_character":21},"in_reply_to":"9ad45d7e_e9c9a75a","updated":"2016-08-10 14:40:36.000000000","message":"+1 to this","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b8bad1cef2150e8cffc068204f3fdee615e7e79f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"},{"line_number":72,"context_line":"which of their server instances are affected."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_f7723a48","line":70,"range":{"start_line":70,"start_character":76,"end_line":70,"end_character":78},"updated":"2016-08-10 06:33:34.000000000","message":"As having \"host_maintenance_state\" to indicate nicely what is changed, there should not be a need to make new notification, but updating the \"ServiceStatusNotification\" should work perfectly.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16ea96722c7318c1ad154eaee25307b244550ee6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":68,"context_line":"    * An empty string when in use as normal."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Calling the API should trigger a new ``service.host_maintenance_state.update``"},{"line_number":71,"context_line":"notification. External tools could catch this and send alarms so users know"},{"line_number":72,"context_line":"which of their server instances are affected."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_e64a8dab","line":70,"range":{"start_line":70,"start_character":76,"end_line":70,"end_character":78},"in_reply_to":"9ad45d7e_f7723a48","updated":"2016-08-10 07:31:16.000000000","message":"+1","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16ea96722c7318c1ad154eaee25307b244550ee6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"A new ``MaintenanceStateFilter`` can be implemented that is based on the"},{"line_number":75,"context_line":"``host_maintenance_state``. A normal user could not schedule VM on a host in"},{"line_number":76,"context_line":"maintenance as filter would not allow, but admin could do so to test host works"},{"line_number":77,"context_line":"after maintenance."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"While notifications will have ability to expose information about"},{"line_number":80,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_a68535ae","line":77,"updated":"2016-08-10 07:31:16.000000000","message":"Is this filter returns false for a host with PLANNED_MAINTENANCE or just with MAINTENANCE state?","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"3625fa07968b56d3b93dd3ae71438645b96624fb","unresolved":false,"context_lines":[{"line_number":74,"context_line":"A new ``MaintenanceStateFilter`` can be implemented that is based on the"},{"line_number":75,"context_line":"``host_maintenance_state``. A normal user could not schedule VM on a host in"},{"line_number":76,"context_line":"maintenance as filter would not allow, but admin could do so to test host works"},{"line_number":77,"context_line":"after maintenance."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"While notifications will have ability to expose information about"},{"line_number":80,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_8a857e08","line":77,"in_reply_to":"9ad45d7e_2392c5f6","updated":"2016-08-10 13:52:07.000000000","message":"yes, this is not that trivial of how this would be used. Maybe makes sense with the weight and also that PLANNED_MAINTENANCE would need the extra spec.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fe7e02d8ccd19d605b0839d1e0d54649ecad585c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"A new ``MaintenanceStateFilter`` can be implemented that is based on the"},{"line_number":75,"context_line":"``host_maintenance_state``. A normal user could not schedule VM on a host in"},{"line_number":76,"context_line":"maintenance as filter would not allow, but admin could do so to test host works"},{"line_number":77,"context_line":"after maintenance."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"While notifications will have ability to expose information about"},{"line_number":80,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_2392c5f6","line":77,"in_reply_to":"9ad45d7e_800f2787","updated":"2016-08-10 12:32:31.000000000","message":"A filter would be useful, but I think a weigher would be more useful, because hosts with no planned maintenance could receive a higher weight than hosts with planned maintenance.  Then new VMs only get scheduled on hosts with planned maintenance if all the hosts with no planned maintenance are already full / unavailable.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9adb12e0d8eeeb69868d0463aa42c15bd14596e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"A new ``MaintenanceStateFilter`` can be implemented that is based on the"},{"line_number":75,"context_line":"``host_maintenance_state``. A normal user could not schedule VM on a host in"},{"line_number":76,"context_line":"maintenance as filter would not allow, but admin could do so to test host works"},{"line_number":77,"context_line":"after maintenance."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"While notifications will have ability to expose information about"},{"line_number":80,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_a9384f3e","line":77,"in_reply_to":"9ad45d7e_8a857e08","updated":"2016-08-10 14:27:02.000000000","message":"Weight might makes sense too. It really depends on how the administrator wants to do the upgrade. For the product I work with it is enough to have a filter that does not allow new instances on a host with PLANNED_MAINTENANCE. But I can imagine that others needs the weight for more fine grained allocation scheme.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"36cffc1108fd51c220943fc02c3aefd40c893d78","unresolved":false,"context_lines":[{"line_number":74,"context_line":"A new ``MaintenanceStateFilter`` can be implemented that is based on the"},{"line_number":75,"context_line":"``host_maintenance_state``. A normal user could not schedule VM on a host in"},{"line_number":76,"context_line":"maintenance as filter would not allow, but admin could do so to test host works"},{"line_number":77,"context_line":"after maintenance."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"While notifications will have ability to expose information about"},{"line_number":80,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_800f2787","line":77,"in_reply_to":"9ad45d7e_a68535ae","updated":"2016-08-10 12:18:27.000000000","message":"This is really to be decided. It might be neat that newly scheduled VMs would only land to hosts that has maintenance done. Meaning filter would be working also with PLANNED_MAINTENANCE. Anyhow admin should be able to have VM on a host that is in MAINTENANCE state to test it. Meaning both cases could be avoided by some extra specs. I have not yet dig in to this deeper, but would suspect this should be doable.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a1d1453b5b9dde8f423a7f5c444ccfc2caa4cd3f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"A new ``MaintenanceStateFilter`` can be implemented that is based on the"},{"line_number":75,"context_line":"``host_maintenance_state``. A normal user could not schedule VM on a host in"},{"line_number":76,"context_line":"maintenance as filter would not allow, but admin could do so to test host works"},{"line_number":77,"context_line":"after maintenance."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"While notifications will have ability to expose information about"},{"line_number":80,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_7379f5c7","line":77,"in_reply_to":"9ad45d7e_a9384f3e","updated":"2016-08-11 10:04:54.000000000","message":"Done","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b8bad1cef2150e8cffc068204f3fdee615e7e79f","unresolved":false,"context_lines":[{"line_number":146,"context_line":"      \"status\": \"disabled\","},{"line_number":147,"context_line":"      \"host_maintenance_reason\": \"http://myhostdetailsurl\","},{"line_number":148,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":149,"context_line":"      }"},{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Servers APIs that will have new fields shown in response message::"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_97b13ee4","line":149,"range":{"start_line":149,"start_character":6,"end_line":149,"end_character":7},"updated":"2016-08-10 06:33:34.000000000","message":"disabled_reason and status would be more straight forward to be left out. Also they are not changed by this API.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16ea96722c7318c1ad154eaee25307b244550ee6","unresolved":false,"context_lines":[{"line_number":148,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":149,"context_line":"      }"},{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Servers APIs that will have new fields shown in response message::"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_4619d987","line":151,"updated":"2016-08-10 07:31:16.000000000","message":"Does setting host_maintenance_state to MAINTENANCE means that nova automatically set the service to disabled as well or the caller shall make sure that he sets both in the same request?","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e9adb12e0d8eeeb69868d0463aa42c15bd14596e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":149,"context_line":"      }"},{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Servers APIs that will have new fields shown in response message::"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_097a3bbd","line":151,"in_reply_to":"9ad45d7e_033061e7","updated":"2016-08-10 14:27:02.000000000","message":"OK. I like it this way. Could you add this statement to the spec somehow?","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a1d1453b5b9dde8f423a7f5c444ccfc2caa4cd3f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":149,"context_line":"      }"},{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Servers APIs that will have new fields shown in response message::"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_9353c938","line":151,"in_reply_to":"9ad45d7e_097a3bbd","updated":"2016-08-11 10:04:54.000000000","message":"Done","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5e818846813b27d98eb2acfbec732dbcb18d4d03","unresolved":false,"context_lines":[{"line_number":148,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":149,"context_line":"      }"},{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Servers APIs that will have new fields shown in response message::"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_0f6b5bb8","line":151,"in_reply_to":"9ad45d7e_097a3bbd","updated":"2016-08-10 14:40:36.000000000","message":"will do","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"36cffc1108fd51c220943fc02c3aefd40c893d78","unresolved":false,"context_lines":[{"line_number":148,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":149,"context_line":"      }"},{"line_number":150,"context_line":"    }"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Servers APIs that will have new fields shown in response message::"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    GET /v2.1/{tenant_id}/servers/{server_id}"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_033061e7","line":151,"in_reply_to":"9ad45d7e_4619d987","updated":"2016-08-10 12:18:27.000000000","message":"service enable/disable should use the same API as currently. Meaning setting MAINTENANCE would not do disable. This also have the maintenance filter scheduler working nicely for admin that could try maintained host works when nova-compute service is enabled but state is still MAINTENANCE. He just need some extra specs for that.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b8bad1cef2150e8cffc068204f3fdee615e7e79f","unresolved":false,"context_lines":[{"line_number":233,"context_line":"--------------------"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"New ``service.host_maintenance_state.update`` notification should be sent when"},{"line_number":236,"context_line":"``host_maintenance_reason`` is modified through an API::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"   {"},{"line_number":239,"context_line":"        \"priority\":\"INFO\","}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_f7c07a2c","line":236,"range":{"start_line":236,"start_character":54,"end_line":236,"end_character":56},"updated":"2016-08-10 06:33:34.000000000","message":"Like metioned above, maybe better to update ServiceStatusNotification instead.","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a1d1453b5b9dde8f423a7f5c444ccfc2caa4cd3f","unresolved":false,"context_lines":[{"line_number":233,"context_line":"--------------------"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"New ``service.host_maintenance_state.update`` notification should be sent when"},{"line_number":236,"context_line":"``host_maintenance_reason`` is modified through an API::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"   {"},{"line_number":239,"context_line":"        \"priority\":\"INFO\","}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_133eb9d9","line":236,"range":{"start_line":236,"start_character":54,"end_line":236,"end_character":56},"in_reply_to":"9ad45d7e_a936a6e4","updated":"2016-08-11 10:04:54.000000000","message":"Done","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"16ea96722c7318c1ad154eaee25307b244550ee6","unresolved":false,"context_lines":[{"line_number":233,"context_line":"--------------------"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"New ``service.host_maintenance_state.update`` notification should be sent when"},{"line_number":236,"context_line":"``host_maintenance_reason`` is modified through an API::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"   {"},{"line_number":239,"context_line":"        \"priority\":\"INFO\","}],"source_content_type":"text/x-rst","patch_set":11,"id":"9ad45d7e_a936a6e4","line":236,"range":{"start_line":236,"start_character":54,"end_line":236,"end_character":56},"in_reply_to":"9ad45d7e_f7c07a2c","updated":"2016-08-10 07:31:16.000000000","message":"+1\nJust add the two new fields to the exiting ServiceStatusNotification","commit_id":"17e722ed8f9191500aa3ad30e181f857d869cde9"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fcfeb831b8020cee6207e3829d8ceff0b9bf0f1e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-server"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"User needs to obtain more detailed information about compute host maintenance"},{"line_number":14,"context_line":"which is affecting to his servers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_02582487","line":14,"range":{"start_line":14,"start_character":19,"end_line":14,"end_character":21},"updated":"2016-08-11 10:48:33.000000000","message":"You were right the previous time :-)  This \"to\" should not be here.","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"77bb982451642192222b4917ff12fc3df47b0407","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-server"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"User needs to obtain more detailed information about compute host maintenance"},{"line_number":14,"context_line":"which is affecting to his servers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_2efeefad","line":14,"range":{"start_line":14,"start_character":19,"end_line":14,"end_character":21},"in_reply_to":"9ad45d7e_02582487","updated":"2016-08-11 12:00:45.000000000","message":"fixing :)","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fcfeb831b8020cee6207e3829d8ceff0b9bf0f1e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"It is seen that more detailed maintenance awareness should not be extended"},{"line_number":51,"context_line":"into Nova, but there could be an external tool to have more detailed host"},{"line_number":52,"context_line":"information. A free text field should be added to have host maintenance reason"},{"line_number":53,"context_line":"as a string, or it could have an URL link to be called to get more host"},{"line_number":54,"context_line":"maintenance related details. Also a state flag needs to be added to indicate"},{"line_number":55,"context_line":"whether the host is in maintenance. In API level this would be a descriptive"},{"line_number":56,"context_line":"string, while internally as an enum."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_2201e806","line":53,"range":{"start_line":53,"start_character":13,"end_line":53,"end_character":15},"updated":"2016-08-11 10:48:33.000000000","message":"This \"or\" is wrong, because a URL link is already a string. Also, it\u0027s not just the reason for maintenance which users would be interested in. They are most likely *more* interested in other details which directly affect them, such as the start/end time. So instead I suggest:\n\n\"A free text field should be added supporting a human-readable string which describes the nature of the host maintenance. The string could contain a URL link to be opened to get more details relating to the maintenance work.\"","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"77bb982451642192222b4917ff12fc3df47b0407","unresolved":false,"context_lines":[{"line_number":50,"context_line":"It is seen that more detailed maintenance awareness should not be extended"},{"line_number":51,"context_line":"into Nova, but there could be an external tool to have more detailed host"},{"line_number":52,"context_line":"information. A free text field should be added to have host maintenance reason"},{"line_number":53,"context_line":"as a string, or it could have an URL link to be called to get more host"},{"line_number":54,"context_line":"maintenance related details. Also a state flag needs to be added to indicate"},{"line_number":55,"context_line":"whether the host is in maintenance. In API level this would be a descriptive"},{"line_number":56,"context_line":"string, while internally as an enum."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_4e9fe35e","line":53,"range":{"start_line":53,"start_character":13,"end_line":53,"end_character":15},"in_reply_to":"9ad45d7e_2201e806","updated":"2016-08-11 12:00:45.000000000","message":"perfect +1","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fcfeb831b8020cee6207e3829d8ceff0b9bf0f1e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"information. A free text field should be added to have host maintenance reason"},{"line_number":53,"context_line":"as a string, or it could have an URL link to be called to get more host"},{"line_number":54,"context_line":"maintenance related details. Also a state flag needs to be added to indicate"},{"line_number":55,"context_line":"whether the host is in maintenance. In API level this would be a descriptive"},{"line_number":56,"context_line":"string, while internally as an enum."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"New ``host_maintenance_reason`` and ``host_maintenance_state`` fields should be"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_e5119a53","line":55,"range":{"start_line":55,"start_character":36,"end_line":55,"end_character":38},"updated":"2016-08-11 10:48:33.000000000","message":"s/In/At the/","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"77bb982451642192222b4917ff12fc3df47b0407","unresolved":false,"context_lines":[{"line_number":52,"context_line":"information. A free text field should be added to have host maintenance reason"},{"line_number":53,"context_line":"as a string, or it could have an URL link to be called to get more host"},{"line_number":54,"context_line":"maintenance related details. Also a state flag needs to be added to indicate"},{"line_number":55,"context_line":"whether the host is in maintenance. In API level this would be a descriptive"},{"line_number":56,"context_line":"string, while internally as an enum."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"New ``host_maintenance_reason`` and ``host_maintenance_state`` fields should be"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_6e958731","line":55,"range":{"start_line":55,"start_character":36,"end_line":55,"end_character":38},"in_reply_to":"9ad45d7e_e5119a53","updated":"2016-08-11 12:00:45.000000000","message":"yep","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fcfeb831b8020cee6207e3829d8ceff0b9bf0f1e","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host-maintenance"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"On API level ``host_maintenance_state`` should have string values as:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is planned maintenance."},{"line_number":68,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_a5596237","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":2},"updated":"2016-08-11 10:48:33.000000000","message":"s/On/At the/","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"77bb982451642192222b4917ff12fc3df47b0407","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host-maintenance"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"On API level ``host_maintenance_state`` should have string values as:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is planned maintenance."},{"line_number":68,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_6ebc67bb","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":2},"in_reply_to":"9ad45d7e_a5596237","updated":"2016-08-11 12:00:45.000000000","message":"yep","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fcfeb831b8020cee6207e3829d8ceff0b9bf0f1e","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":69,"context_line":"    * An empty string when in use as normal."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Calling the API should trigger a ``service.update`` notification. New version"},{"line_number":72,"context_line":"is needed where ``host_maintenance_reason`` and ``host_maintenance_state``"},{"line_number":73,"context_line":"are added. External tools could catch this and send alarms so users know which"},{"line_number":74,"context_line":"of their server instances are affected."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_05e14e2d","line":71,"range":{"start_line":71,"start_character":66,"end_line":71,"end_character":77},"updated":"2016-08-11 10:48:33.000000000","message":"New version of what? I guess you mean the API, but it\u0027s better to be explicit. But anyway, isn\u0027t this duplicating information already in the \"REST API impact\" section below?","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"77bb982451642192222b4917ff12fc3df47b0407","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":69,"context_line":"    * An empty string when in use as normal."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Calling the API should trigger a ``service.update`` notification. New version"},{"line_number":72,"context_line":"is needed where ``host_maintenance_reason`` and ``host_maintenance_state``"},{"line_number":73,"context_line":"are added. External tools could catch this and send alarms so users know which"},{"line_number":74,"context_line":"of their server instances are affected."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9ad45d7e_ee75f7ca","line":71,"range":{"start_line":71,"start_character":66,"end_line":71,"end_character":77},"in_reply_to":"9ad45d7e_05e14e2d","updated":"2016-08-11 12:00:45.000000000","message":"I think there is versioned notification. So that should have new version. This is misleading here and it is anyhow more internal implementation thing. Something like:\nUpdated version of the notification should include new parameters: ``host_maintenance_reason`` and ``host_maintenance_state``.","commit_id":"02b58a4b8e0c9ea4e23a85e47874486bf9c3b78b"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"408a88c04f1ee8bf360429596fb9b85499cda510","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Maintenance Reason To Server"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-server"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_44cc7461","line":8,"updated":"2016-09-20 19:08:05.000000000","message":"What do you mean by \"To Server\"?\n\nDo you mean to write:\n\n \"Add a Host Maintenance Reason\"","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9b4c969aeebb44cfb693773f327da06d4d5fe105","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Maintenance Reason To Server"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/maintenance-reason-to-server"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_28c71213","line":8,"in_reply_to":"7a8ec9b2_44cc7461","updated":"2016-09-21 12:42:14.000000000","message":"This spec has lived a little, this should be changed to be more descriptive.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"408a88c04f1ee8bf360429596fb9b85499cda510","unresolved":false,"context_lines":[{"line_number":19,"context_line":"User needs to know when maintenance is going to happen and in case of highly"},{"line_number":20,"context_line":"available applications, to also have time to finish ongoing transactions in"},{"line_number":21,"context_line":"his server instance before he switches the service to other server and can be"},{"line_number":22,"context_line":"ready for maintenance. More detailed information about maintenance needs to be"},{"line_number":23,"context_line":"available through an API. Cloud admin should be able test host after"},{"line_number":24,"context_line":"a maintenance to know it is ready to use."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_64f2509c","line":22,"updated":"2016-09-20 19:08:05.000000000","message":"A user doesn\u0027t/shouldn\u0027t know which physical host their instance is on. That\u0027s kind of the point of cloud computing and the abstraction of virtualization.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9b4c969aeebb44cfb693773f327da06d4d5fe105","unresolved":false,"context_lines":[{"line_number":19,"context_line":"User needs to know when maintenance is going to happen and in case of highly"},{"line_number":20,"context_line":"available applications, to also have time to finish ongoing transactions in"},{"line_number":21,"context_line":"his server instance before he switches the service to other server and can be"},{"line_number":22,"context_line":"ready for maintenance. More detailed information about maintenance needs to be"},{"line_number":23,"context_line":"available through an API. Cloud admin should be able test host after"},{"line_number":24,"context_line":"a maintenance to know it is ready to use."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_481b7e80","line":22,"in_reply_to":"7a8ec9b2_64f2509c","updated":"2016-09-21 12:42:14.000000000","message":"User/tenant/VNFM shouldn\u0027t know and will not know about the host. Anyhow he has to know maintenance effecting to his instances to ensure his service will continue running smoothly when maintenance start.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"408a88c04f1ee8bf360429596fb9b85499cda510","unresolved":false,"context_lines":[{"line_number":21,"context_line":"his server instance before he switches the service to other server and can be"},{"line_number":22,"context_line":"ready for maintenance. More detailed information about maintenance needs to be"},{"line_number":23,"context_line":"available through an API. Cloud admin should be able test host after"},{"line_number":24,"context_line":"a maintenance to know it is ready to use."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Use Cases"},{"line_number":27,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_9a67acb6","line":24,"updated":"2016-09-20 19:08:05.000000000","message":"While I do think it\u0027s useful to show detailed maintenance reason information in the host-centric admin API, I have a problem with the last sentence above.\n\nEach deployment is going to have a different idea of:\n\n a) what constitutes a compute host being \"ready to use\"\n b) how the admin should test for such readiness\n\nIn the Telco/NFV world, such tests might include NIC state testing, deep dives into the workloads running on a compute host, or connectivity to an OSS/BSS system. For public cloud providers, such tests might include integration with their configuration management systems, etc. Therefore, for testing of a host\u0027s readiness to come out of maintenance, that should be the purview of the deployer.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9b4c969aeebb44cfb693773f327da06d4d5fe105","unresolved":false,"context_lines":[{"line_number":21,"context_line":"his server instance before he switches the service to other server and can be"},{"line_number":22,"context_line":"ready for maintenance. More detailed information about maintenance needs to be"},{"line_number":23,"context_line":"available through an API. Cloud admin should be able test host after"},{"line_number":24,"context_line":"a maintenance to know it is ready to use."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Use Cases"},{"line_number":27,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_03ba370a","line":24,"in_reply_to":"7a8ec9b2_9a67acb6","updated":"2016-09-21 12:42:14.000000000","message":"As it might differ a lot what needs to be checked before host taken back into use, it is not here explicitly what deployer would do. Anyhow this spec gives a change to have nova-compute service enabled without normal user having ability to schedule instances there as state is still maintenance (host_maintenance_status\u003d\u0027MAINTENANCE\u0027). This gives deployer then more freedom to test host before clearing maintenance flag as he will be allowed to schedule there.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"408a88c04f1ee8bf360429596fb9b85499cda510","unresolved":false,"context_lines":[{"line_number":33,"context_line":"As a user I want to get all needed state information through an API."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As a user I want to be able to have instances scheduled to hypervisor where the"},{"line_number":36,"context_line":"maintenance is already done."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As a admin I want to have an external tool supporting more complex maintenance"},{"line_number":39,"context_line":"flows and more specific state for maintenance."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_9a15ece6","line":36,"updated":"2016-09-20 19:08:05.000000000","message":"This is already a \"done\" thing. Instances, when migrated or live-migrated, are scheduled only to hosts that are not in maintenance mode (i.e. nova-compute is disabled)","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9b4c969aeebb44cfb693773f327da06d4d5fe105","unresolved":false,"context_lines":[{"line_number":33,"context_line":"As a user I want to get all needed state information through an API."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As a user I want to be able to have instances scheduled to hypervisor where the"},{"line_number":36,"context_line":"maintenance is already done."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As a admin I want to have an external tool supporting more complex maintenance"},{"line_number":39,"context_line":"flows and more specific state for maintenance."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_a326e313","line":36,"in_reply_to":"7a8ec9b2_9a15ece6","updated":"2016-09-21 12:42:14.000000000","message":"While explained some above, to have more: Spec proposes host_maintenance_status \u0027MAINTENANCE\u0027, `PLANNED_MAINTENANCE`, or null. Nova-compute service will be enabled still for a host with `PLANNED_MAINTENANCE` and null (no maintenance). Anyhow new scheduling filter would not schedule to host that is in `PLANNED_MAINTENANCE` (or does if allowed, but maybe with weight), but to one that is already done with it. This is later in spec, but I should add this nova-compute service part there to have it better.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"408a88c04f1ee8bf360429596fb9b85499cda510","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"As a admin I want to know maintenance state of different hosts."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As a admin I want to know more detailed information about hypervisor state."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"As a admin I want to test host after maintenance before giving it to use."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_fab35008","line":43,"updated":"2016-09-20 19:08:05.000000000","message":"This is kind of drifting into the purview of monitoring system scope, no? What, specifically, does *Nova* need to do here?","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9b4c969aeebb44cfb693773f327da06d4d5fe105","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"As a admin I want to know maintenance state of different hosts."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As a admin I want to know more detailed information about hypervisor state."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"As a admin I want to test host after maintenance before giving it to use."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_43bfdf5f","line":43,"in_reply_to":"7a8ec9b2_fab35008","updated":"2016-09-21 12:42:14.000000000","message":"Well, forced_down was missing from hypervisor API. Otherwise yes, if more information about maintenance behind URL given in host_maintenance_reason, that is not Nova.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"408a88c04f1ee8bf360429596fb9b85499cda510","unresolved":false,"context_lines":[{"line_number":83,"context_line":"host works after maintenance. ``PLANNED_MAINTENANCE`` and ``MAINTENANCE`` would"},{"line_number":84,"context_line":"allow scheduling only if flavor extra_spec support it. ``PLANNED_MAINTENANCE``"},{"line_number":85,"context_line":"might be allowed to normal user and it could have a weight to have not in"},{"line_number":86,"context_line":"maintenance compute hosts as a preferred choice."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"While notifications will have ability to expose information about"},{"line_number":89,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_da8a141a","line":86,"updated":"2016-09-20 19:08:05.000000000","message":"Another field that could be useful would be the planned maintenance start and end timestamps. Sending this information out on the service.update notification queue would be useful for external scripts that can then do deployment-specific things like notify users, migrate workloads, test connectivity or capacity management programs, etc.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9b4c969aeebb44cfb693773f327da06d4d5fe105","unresolved":false,"context_lines":[{"line_number":83,"context_line":"host works after maintenance. ``PLANNED_MAINTENANCE`` and ``MAINTENANCE`` would"},{"line_number":84,"context_line":"allow scheduling only if flavor extra_spec support it. ``PLANNED_MAINTENANCE``"},{"line_number":85,"context_line":"might be allowed to normal user and it could have a weight to have not in"},{"line_number":86,"context_line":"maintenance compute hosts as a preferred choice."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"While notifications will have ability to expose information about"},{"line_number":89,"context_line":"``host_maintenance_reason`` and ``host_maintenance_state``, it needs to be"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_3e02ec09","line":86,"in_reply_to":"7a8ec9b2_da8a141a","updated":"2016-09-21 12:42:14.000000000","message":"I would love to add these fields. It was just the debate earlier before spec was done, that more details about host maintenance might live outside Nova and that lead less fields in this spec. I should put this here as this is not the first comment to have it and I totally want this and not to have that behind something in host_maintenance_reason.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"2b0a8937ff4732267e42e5789504915add8bef0d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Parameters ``host_maintenance_reason``,  ``host_maintenance_state`` and"},{"line_number":104,"context_line":"``forced_down`` should be added to response message of::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    GET /v2.1/{tenant_id}/os-hypervisors/{hypervisor_id}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"``forced_down`` is already in os-services, but would be consistent to have it"},{"line_number":109,"context_line":"also in os-hypervisors."}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a89bdaa_041e1863","line":106,"range":{"start_line":106,"start_character":3,"end_line":106,"end_character":55},"updated":"2016-09-05 07:11:42.000000000","message":"Need to add also: GET /v2.1/{tenant_id}/os-hypervisors/detail","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f21de286feaf31166509cc01751b7d27ac6b3dad","unresolved":false,"context_lines":[{"line_number":129,"context_line":"should be added to the ``services`` table in Nova DB by migration script::"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    Column(\u0027host_maintenance_reason\u0027, String(255), nullable\u003dTrue)"},{"line_number":132,"context_line":"    Column(\u0027host_maintenance_state\u0027, enum, nullable\u003dTrue)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"REST API impact"},{"line_number":135,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3ac371cc_6becf98f","line":132,"range":{"start_line":132,"start_character":43,"end_line":132,"end_character":57},"updated":"2016-08-19 07:26:34.000000000","message":"Maybe not nullable, if enum in fields.py would have something like:\nNO_MAINTENANCE \u003d \"\"  # Not in maintenance\nAnd then the empty string to API translation would be straight forward.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"93e08f6b29f055f13a8056845748b853da757912","unresolved":false,"context_lines":[{"line_number":129,"context_line":"should be added to the ``services`` table in Nova DB by migration script::"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    Column(\u0027host_maintenance_reason\u0027, String(255), nullable\u003dTrue)"},{"line_number":132,"context_line":"    Column(\u0027host_maintenance_state\u0027, enum, nullable\u003dTrue)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"REST API impact"},{"line_number":135,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a89bdaa_15ca7b6d","line":132,"range":{"start_line":132,"start_character":43,"end_line":132,"end_character":57},"in_reply_to":"3ac371cc_6becf98f","updated":"2016-09-06 14:33:32.000000000","message":"Actually as having done code, null in API translates nicely with this.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f21de286feaf31166509cc01751b7d27ac6b3dad","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    {"},{"line_number":151,"context_line":"      \"service\": {"},{"line_number":152,"context_line":"      \"host\": \"host1\","},{"line_number":153,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":154,"context_line":"      \"host_maintenance_reason\": \"http://myhostdetailsurl\","},{"line_number":155,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":156,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3ac371cc_6b1079a9","line":153,"range":{"start_line":153,"start_character":6,"end_line":153,"end_character":31},"updated":"2016-08-19 07:26:34.000000000","message":"Should we change the API for \"compute\" only (compute-host-maintenance) or remove the binary from this request to have everything set for all services on host. If make compute specific the listing os-services could hide new parameters when other than noca-compute service. One alternative to leave it for API user to call API for all services on host. I would prefer making the API host specific by removing the \"binary\".","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"93e08f6b29f055f13a8056845748b853da757912","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    {"},{"line_number":151,"context_line":"      \"service\": {"},{"line_number":152,"context_line":"      \"host\": \"host1\","},{"line_number":153,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":154,"context_line":"      \"host_maintenance_reason\": \"http://myhostdetailsurl\","},{"line_number":155,"context_line":"      \"host_maintenance_state\": \"MAINTENANCE\""},{"line_number":156,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a89bdaa_35aa1f71","line":153,"range":{"start_line":153,"start_character":6,"end_line":153,"end_character":31},"in_reply_to":"3ac371cc_6b1079a9","updated":"2016-09-06 14:33:32.000000000","message":"or keep as is as normally just nova-compute.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"93e08f6b29f055f13a8056845748b853da757912","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    {"},{"line_number":170,"context_line":"      \"server\": {"},{"line_number":171,"context_line":"        ..."},{"line_number":172,"context_line":"        \"host_maintenance_reason\": \"http://myhostdetailsurl\","},{"line_number":173,"context_line":"        \"host_maintenance_state\": \"MAINTENANCE\","},{"line_number":174,"context_line":"        ..."},{"line_number":175,"context_line":"      }"},{"line_number":176,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a89bdaa_d5fad3bc","line":173,"range":{"start_line":172,"start_character":8,"end_line":173,"end_character":48},"updated":"2016-09-06 14:33:32.000000000","message":"prefix should be added: OS-EXT-SRV-ATTR:","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9b4c969aeebb44cfb693773f327da06d4d5fe105","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    {"},{"line_number":170,"context_line":"      \"server\": {"},{"line_number":171,"context_line":"        ..."},{"line_number":172,"context_line":"        \"host_maintenance_reason\": \"http://myhostdetailsurl\","},{"line_number":173,"context_line":"        \"host_maintenance_state\": \"MAINTENANCE\","},{"line_number":174,"context_line":"        ..."},{"line_number":175,"context_line":"      }"},{"line_number":176,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_9e6860bc","line":173,"range":{"start_line":172,"start_character":8,"end_line":173,"end_character":48},"in_reply_to":"7a8ec9b2_7aad8087","updated":"2016-09-21 12:42:14.000000000","message":"ok, that was said in code also. my bad :)","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"408a88c04f1ee8bf360429596fb9b85499cda510","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    {"},{"line_number":170,"context_line":"      \"server\": {"},{"line_number":171,"context_line":"        ..."},{"line_number":172,"context_line":"        \"host_maintenance_reason\": \"http://myhostdetailsurl\","},{"line_number":173,"context_line":"        \"host_maintenance_state\": \"MAINTENANCE\","},{"line_number":174,"context_line":"        ..."},{"line_number":175,"context_line":"      }"},{"line_number":176,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a8ec9b2_7aad8087","line":173,"range":{"start_line":172,"start_character":8,"end_line":173,"end_character":48},"in_reply_to":"9a89bdaa_d5fad3bc","updated":"2016-09-20 19:08:05.000000000","message":"We no longer support API extensions and there is no reason to prefix fields with the above.","commit_id":"dc47362c88a5ab3482f8d77f75a4fa72fe341260"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bce8cc215df352d655a8edd793d273025c416caa","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"User needs to know when maintenance is going to happen and in case of highly"},{"line_number":20,"context_line":"available applications, to also have time to finish ongoing transactions in"},{"line_number":21,"context_line":"his server instance before he switches the service to other instance and can be"},{"line_number":22,"context_line":"ready for maintenance. More detailed information about maintenance needs to be"},{"line_number":23,"context_line":"available through an API. It needs to be possible to test host that is in"},{"line_number":24,"context_line":"maintenance while it will not be available for normal user."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"1a95cdbc_bacc8f36","line":22,"range":{"start_line":19,"start_character":55,"end_line":22,"end_character":22},"updated":"2016-10-10 13:47:53.000000000","message":"I wouldn\u0027t call these highly available applications. Maybe word it something like this:\n\nSome applications need to prepare for an impacting maintenance by routing work to other non-impacted servers, so users are not impacted by the maintenance.\n\nWe need a way for Nova to make this kind of information available to the application.","commit_id":"f20d0772baf75a559c80115b5a1f91bc8c27a35f"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a93f8fc91086d7833bd1b7963bada16850a29f75","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"User needs to know when maintenance is going to happen and in case of highly"},{"line_number":20,"context_line":"available applications, to also have time to finish ongoing transactions in"},{"line_number":21,"context_line":"his server instance before he switches the service to other instance and can be"},{"line_number":22,"context_line":"ready for maintenance. More detailed information about maintenance needs to be"},{"line_number":23,"context_line":"available through an API. It needs to be possible to test host that is in"},{"line_number":24,"context_line":"maintenance while it will not be available for normal user."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"fa6399be_7249678b","line":22,"range":{"start_line":19,"start_character":55,"end_line":22,"end_character":22},"in_reply_to":"1a95cdbc_bacc8f36","updated":"2016-10-11 10:36:14.000000000","message":"Thanks, fixing that","commit_id":"f20d0772baf75a559c80115b5a1f91bc8c27a35f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bce8cc215df352d655a8edd793d273025c416caa","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"It is seen that more detailed maintenance awareness should not be extended"},{"line_number":51,"context_line":"into Nova, but there could be an external tool to have more detailed host"},{"line_number":52,"context_line":"information. A free text field should be added supporting a human-readable"},{"line_number":53,"context_line":"string which describes the nature of the host maintenance. The string could"},{"line_number":54,"context_line":"contain a URL link to be opened to get more details relating to the maintenance"},{"line_number":55,"context_line":"work. Also a state flag needs to be added to indicate whether the host is in"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1a95cdbc_5a946be1","line":52,"range":{"start_line":50,"start_character":0,"end_line":52,"end_character":12},"updated":"2016-10-10 13:47:53.000000000","message":"I agree with this, but this spec seem to include quite a few changes.","commit_id":"f20d0772baf75a559c80115b5a1f91bc8c27a35f"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a93f8fc91086d7833bd1b7963bada16850a29f75","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"It is seen that more detailed maintenance awareness should not be extended"},{"line_number":51,"context_line":"into Nova, but there could be an external tool to have more detailed host"},{"line_number":52,"context_line":"information. A free text field should be added supporting a human-readable"},{"line_number":53,"context_line":"string which describes the nature of the host maintenance. The string could"},{"line_number":54,"context_line":"contain a URL link to be opened to get more details relating to the maintenance"},{"line_number":55,"context_line":"work. Also a state flag needs to be added to indicate whether the host is in"}],"source_content_type":"text/x-rst","patch_set":14,"id":"fa6399be_d206b31f","line":52,"range":{"start_line":50,"start_character":0,"end_line":52,"end_character":12},"in_reply_to":"1a95cdbc_5a946be1","updated":"2016-10-11 10:36:14.000000000","message":"I know what we talked in Austin, but looking the etherpad and what seen needed it grew again bigger. I can get back to smaller set of changes, but there has been reasoning for bigger.","commit_id":"f20d0772baf75a559c80115b5a1f91bc8c27a35f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"bce8cc215df352d655a8edd793d273025c416caa","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"New fields should be added to services table in Nova DB:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    * ``host_maintenance_reason`` as string"},{"line_number":63,"context_line":"    * ``host_maintenance_state`` as enum."},{"line_number":64,"context_line":"    * ``host_maintenance_start`` as DateTime"},{"line_number":65,"context_line":"    * ``host_maintenance_end`` as DateTime"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1a95cdbc_5a82ab95","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":43},"updated":"2016-10-10 13:47:53.000000000","message":"I thought the suggestion was to have the URL point to a service that has all the details?","commit_id":"f20d0772baf75a559c80115b5a1f91bc8c27a35f"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a93f8fc91086d7833bd1b7963bada16850a29f75","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"New fields should be added to services table in Nova DB:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    * ``host_maintenance_reason`` as string"},{"line_number":63,"context_line":"    * ``host_maintenance_state`` as enum."},{"line_number":64,"context_line":"    * ``host_maintenance_start`` as DateTime"},{"line_number":65,"context_line":"    * ``host_maintenance_end`` as DateTime"}],"source_content_type":"text/x-rst","patch_set":14,"id":"fa6399be_e5b68f3c","line":62,"range":{"start_line":62,"start_character":0,"end_line":62,"end_character":43},"in_reply_to":"1a95cdbc_5a82ab95","updated":"2016-10-11 10:36:14.000000000","message":"yes, well it is string and can be URL or as where this is going now will be URL.","commit_id":"f20d0772baf75a559c80115b5a1f91bc8c27a35f"}],"specs/pike/approved/planned-host-maintenance.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9ae1e9f4e22a418c6b1eb6135c4ba256fbeb0a4c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":36,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":37,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":38,"context_line":"possible to see trough querying servers and trough notifications/alarms."},{"line_number":39,"context_line":"NFV use case is that there is external service for monitoring hosts and"},{"line_number":40,"context_line":"triggering alarms. It should know about planned host maintenance trough"},{"line_number":41,"context_line":"a notification so it can alarm the user having VMs running on host."}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_039cd95b","line":38,"updated":"2017-02-23 20:06:32.000000000","message":"s/trough/by/g","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"e22e84399a41cd261aafe23b61f9e39a019f0f51","unresolved":false,"context_lines":[{"line_number":35,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":36,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":37,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":38,"context_line":"possible to see trough querying servers and trough notifications/alarms."},{"line_number":39,"context_line":"NFV use case is that there is external service for monitoring hosts and"},{"line_number":40,"context_line":"triggering alarms. It should know about planned host maintenance trough"},{"line_number":41,"context_line":"a notification so it can alarm the user having VMs running on host."}],"source_content_type":"text/x-rst","patch_set":15,"id":"ba2be162_aaf35d09","line":38,"in_reply_to":"da36d5c6_039cd95b","updated":"2017-03-01 13:22:11.000000000","message":"Done","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9ae1e9f4e22a418c6b1eb6135c4ba256fbeb0a4c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":38,"context_line":"possible to see trough querying servers and trough notifications/alarms."},{"line_number":39,"context_line":"NFV use case is that there is external service for monitoring hosts and"},{"line_number":40,"context_line":"triggering alarms. It should know about planned host maintenance trough"},{"line_number":41,"context_line":"a notification so it can alarm the user having VMs running on host."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* As an admin I want to have an external tool to handle hosts:"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_83a8c978","line":40,"updated":"2017-02-23 20:06:32.000000000","message":"s/trough/via/","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"e22e84399a41cd261aafe23b61f9e39a019f0f51","unresolved":false,"context_lines":[{"line_number":37,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":38,"context_line":"possible to see trough querying servers and trough notifications/alarms."},{"line_number":39,"context_line":"NFV use case is that there is external service for monitoring hosts and"},{"line_number":40,"context_line":"triggering alarms. It should know about planned host maintenance trough"},{"line_number":41,"context_line":"a notification so it can alarm the user having VMs running on host."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* As an admin I want to have an external tool to handle hosts:"}],"source_content_type":"text/x-rst","patch_set":15,"id":"ba2be162_4ae58135","line":40,"in_reply_to":"da36d5c6_83a8c978","updated":"2017-03-01 13:22:11.000000000","message":"Done","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9ae1e9f4e22a418c6b1eb6135c4ba256fbeb0a4c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"This kind of a tool could have maintenance state and other deeper information"},{"line_number":47,"context_line":"about different hosts and an ability to run different workflows accordingly."},{"line_number":48,"context_line":"Changes to states could be consumed by other services though notifications"},{"line_number":49,"context_line":"or be available trough tool CLI and REST API. Typical maintenance workflow"},{"line_number":50,"context_line":"could: disable compute, live migrate vms, disable monitoring, patch the host,"},{"line_number":51,"context_line":"reboot host, post patch host, enable monitoring and enable compute. External"},{"line_number":52,"context_line":"workflow engine can also be used as there should be notifications about"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_83bfe9a8","line":49,"updated":"2017-02-23 20:06:32.000000000","message":"s/trough tool/via a/","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"e22e84399a41cd261aafe23b61f9e39a019f0f51","unresolved":false,"context_lines":[{"line_number":46,"context_line":"This kind of a tool could have maintenance state and other deeper information"},{"line_number":47,"context_line":"about different hosts and an ability to run different workflows accordingly."},{"line_number":48,"context_line":"Changes to states could be consumed by other services though notifications"},{"line_number":49,"context_line":"or be available trough tool CLI and REST API. Typical maintenance workflow"},{"line_number":50,"context_line":"could: disable compute, live migrate vms, disable monitoring, patch the host,"},{"line_number":51,"context_line":"reboot host, post patch host, enable monitoring and enable compute. External"},{"line_number":52,"context_line":"workflow engine can also be used as there should be notifications about"}],"source_content_type":"text/x-rst","patch_set":15,"id":"ba2be162_6ad08554","line":49,"in_reply_to":"da36d5c6_83bfe9a8","updated":"2017-03-01 13:22:11.000000000","message":"Done","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9ae1e9f4e22a418c6b1eb6135c4ba256fbeb0a4c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Maintenance state with start and stop time could enable making of scheduling"},{"line_number":67,"context_line":"filter that could optionally disable scheduling to a host that will be going"},{"line_number":68,"context_line":"to maintenance soon or have a weight to schedule there only if no other host"},{"line_number":69,"context_line":"available."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* As an admin I want to schedule server to host in planned maintenance to test"},{"line_number":72,"context_line":"everything works after maintenance. Same time I want to prevent user to"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_a3ef8d85","line":69,"updated":"2017-02-23 20:06:32.000000000","message":"Disabling the nova-compute service will take the node out of scheduling decisions but won\u0027t impact workloads currently running on that compute node. So, it\u0027s perfectly fine to disable the nova-compute ahead of the maintenance window. I think this kind of external orchestration is really out of scope for what Nova should expose out of its REST API. Rather, an external system like Nagios can be used to store maintenance window intervals.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"65cd0bae8eab6450724db71ce3a3327457c79089","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Maintenance state with start and stop time could enable making of scheduling"},{"line_number":67,"context_line":"filter that could optionally disable scheduling to a host that will be going"},{"line_number":68,"context_line":"to maintenance soon or have a weight to schedule there only if no other host"},{"line_number":69,"context_line":"available."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* As an admin I want to schedule server to host in planned maintenance to test"},{"line_number":72,"context_line":"everything works after maintenance. Same time I want to prevent user to"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_df4fb18f","line":69,"in_reply_to":"da36d5c6_a3ef8d85","updated":"2017-02-27 07:33:35.000000000","message":"There is/will be external system to store the maintenance information. For me this spec is mostly that more or less of this information need to be also visible in Nova depending what is seen feasible. I wrote here quite a lot to have this discussion in this spec; where to really draw the line. Thanks Jay.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5231dcbb90b8514221a34b8f4d36b60d6b553256","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* As an admin I want to schedule server to host in planned maintenance to test"},{"line_number":72,"context_line":"everything works after maintenance. Same time I want to prevent user to"},{"line_number":73,"context_line":"schedule server to host."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Maintenance state could enable making of scheduling filter that could prevent"},{"line_number":76,"context_line":"normal user from scheduling to a host that is in maintenance, but allow it to"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_034f5d37","line":73,"updated":"2017-02-24 15:02:43.000000000","message":"That\u0027s already implemented by something I think is badly implemented and having a wrong UX, but still functional : if you pass an availability zone like --availability_zone nova:\u003chost\u003e:\u003cnode\u003e then it will force the instance to be scheduled on the host.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"65cd0bae8eab6450724db71ce3a3327457c79089","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* As an admin I want to schedule server to host in planned maintenance to test"},{"line_number":72,"context_line":"everything works after maintenance. Same time I want to prevent user to"},{"line_number":73,"context_line":"schedule server to host."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Maintenance state could enable making of scheduling filter that could prevent"},{"line_number":76,"context_line":"normal user from scheduling to a host that is in maintenance, but allow it to"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_5f6bc11d","line":73,"in_reply_to":"da36d5c6_034f5d37","updated":"2017-02-27 07:33:35.000000000","message":"Thanks Sylvain. Yes, I am aware of that. I have just put everything that has come up with discussion with ops and this was wanted feature. Anyhow looking the comments in this spec, I think it should be fine to keep the current way to play with the availability zones.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9ae1e9f4e22a418c6b1eb6135c4ba256fbeb0a4c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"There might be a case when maintenance need to be forced, but otherwise it"},{"line_number":85,"context_line":"should be taken into account wither there is free capacity with needed"},{"line_number":86,"context_line":"dependencies to have possibility to have services running elsewhere"},{"line_number":87,"context_line":"during planned host maintenance."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Proposed change"},{"line_number":90,"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":15,"id":"da36d5c6_2360fd00","line":87,"updated":"2017-02-23 20:06:32.000000000","message":"This last bullet is something that frankly requires detailed information about the workloads running on the host. Nova doesn\u0027t have that information (a MANO/VNFM/OSS/BSS system might). It\u0027s a violation of scope and decoupling to have Nova try to understand things about the workloads running on nova-computes...","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"65cd0bae8eab6450724db71ce3a3327457c79089","unresolved":false,"context_lines":[{"line_number":84,"context_line":"There might be a case when maintenance need to be forced, but otherwise it"},{"line_number":85,"context_line":"should be taken into account wither there is free capacity with needed"},{"line_number":86,"context_line":"dependencies to have possibility to have services running elsewhere"},{"line_number":87,"context_line":"during planned host maintenance."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Proposed change"},{"line_number":90,"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":15,"id":"da36d5c6_9f29b99d","line":87,"in_reply_to":"da36d5c6_2360fd00","updated":"2017-02-27 07:33:35.000000000","message":"Thanks Jay. Again gathered here more and this totally will go on upper layer controlling the maintenance. I will remove this part as it does not belong here.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5231dcbb90b8514221a34b8f4d36b60d6b553256","unresolved":false,"context_lines":[{"line_number":85,"context_line":"should be taken into account wither there is free capacity with needed"},{"line_number":86,"context_line":"dependencies to have possibility to have services running elsewhere"},{"line_number":87,"context_line":"during planned host maintenance."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Proposed change"},{"line_number":90,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_c30e25e4","line":88,"updated":"2017-02-24 15:02:43.000000000","message":"I think you have very interesting valid use-cases but you can\u0027t address all of those in a single spec. From my perspective, really identify what\u0027s missing currently and what could be the business usecase for it, because for the moment I only see a recollection of maintenance-related usecases.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"65cd0bae8eab6450724db71ce3a3327457c79089","unresolved":false,"context_lines":[{"line_number":85,"context_line":"should be taken into account wither there is free capacity with needed"},{"line_number":86,"context_line":"dependencies to have possibility to have services running elsewhere"},{"line_number":87,"context_line":"during planned host maintenance."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Proposed change"},{"line_number":90,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_fa5643cc","line":88,"in_reply_to":"da36d5c6_c30e25e4","updated":"2017-02-27 07:33:35.000000000","message":"Sylvain, I agree. I had shortly discussion with John Garbutt just before the PTG and he told me to try to have more user stories described to have discussion. Ok, I widened the use case descriptions more, but very happy for this discussion here now. Accordingly, can split to more or less specs.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5231dcbb90b8514221a34b8f4d36b60d6b553256","unresolved":false,"context_lines":[{"line_number":98,"context_line":"This proposal tries to be something in between to have most convenient way"},{"line_number":99,"context_line":"forward. Here it is proposed to have external tool with control over different"},{"line_number":100,"context_line":"hosts in cloud, with some variables that should also exist in Nova content for"},{"line_number":101,"context_line":"server scheduling and user who queries his servers state."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"New fields should be added to services table in Nova DB:"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_a3d93159","line":101,"updated":"2017-02-24 15:02:43.000000000","message":"Well, Nova already has a ServiceGroup API that tries to address the liveness problem of hosts, I don\u0027t see what the 3rd-party maintenance tool would provide as a service, could you please clarify the added value ?","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"65cd0bae8eab6450724db71ce3a3327457c79089","unresolved":false,"context_lines":[{"line_number":98,"context_line":"This proposal tries to be something in between to have most convenient way"},{"line_number":99,"context_line":"forward. Here it is proposed to have external tool with control over different"},{"line_number":100,"context_line":"hosts in cloud, with some variables that should also exist in Nova content for"},{"line_number":101,"context_line":"server scheduling and user who queries his servers state."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"New fields should be added to services table in Nova DB:"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_dabfbfcd","line":101,"in_reply_to":"da36d5c6_a3d93159","updated":"2017-02-27 07:33:35.000000000","message":"Everybody should have an external tool to control hosts planned maintenance the way or the other (in OpenStack or 3rd party). There needs to be workflows run to do what ever cloud admin wants to do during planned maintenance and to migrate VMs. Nobody will do that manually to huge amount of hosts. For NFV to smallest thing in Nova (where I think this spec is going to shrink), is that it is important for user to have all needed state information visible when he queries his VMs. Ok, in NFV it will be that user will have an alarm about maintenance state, but still it needs to be inline with state shown in Nova.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a8e893de48bf833c2ea14bc39a5eddcd0e74c211","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"New fields should be added to services table in Nova DB:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    * ``host_maintenance_reason`` as string"},{"line_number":106,"context_line":"    * ``host_maintenance_state`` as enum."},{"line_number":107,"context_line":"    * ``host_maintenance_start`` as DateTime"},{"line_number":108,"context_line":"    * ``host_maintenance_end`` as DateTime"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"These could be set by adding a new API::"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_6cd4a1bc","line":108,"range":{"start_line":105,"start_character":0,"end_line":108,"end_character":42},"updated":"2017-02-23 20:56:04.000000000","message":"host_maintenance_start and host_maintenance_end show the maintenance period of maintenance, but Nova doesn\u0027t take any action based on that automatically. User should do instead.\n\nI could not find any reason why Nova should have the information even if Nova itself doesn\u0027t use. That seems just description, it doesn\u0027t affect any behavior.\nHow about just adding host_description or something in Nova response and writing all above information in a single this attribute by user?\n\nThe above information seems very specific for some use case without actual Nova behavior.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"65cd0bae8eab6450724db71ce3a3327457c79089","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"New fields should be added to services table in Nova DB:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    * ``host_maintenance_reason`` as string"},{"line_number":106,"context_line":"    * ``host_maintenance_state`` as enum."},{"line_number":107,"context_line":"    * ``host_maintenance_start`` as DateTime"},{"line_number":108,"context_line":"    * ``host_maintenance_end`` as DateTime"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"These could be set by adding a new API::"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_dae25fd4","line":108,"range":{"start_line":105,"start_character":0,"end_line":108,"end_character":42},"in_reply_to":"da36d5c6_6cd4a1bc","updated":"2017-02-27 07:33:35.000000000","message":"Thanks Ken\u0027ichi. Looking the scheduling filter will not be done, I agree (so we stick to the availability zones). I think the discussing is going exactly the direction you are commenting here; single field like host_description. Any automatic actions will live outside Nova with user/admin described workflows.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5231dcbb90b8514221a34b8f4d36b60d6b553256","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is planned maintenance."},{"line_number":117,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":118,"context_line":"    * null when in use as normal."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The new ``host_maintenance_start`` and ``host_maintenance_end`` should show"},{"line_number":121,"context_line":"the time when maintenance start and end. Special case where there is no"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_83b98dce","line":118,"updated":"2017-02-24 15:02:43.000000000","message":"Could you please describe the difference between what you propose above and what we currently have, ie. both a disabled and a forced_down flags ?\n\nThat\u0027s unclear to me why also you need to expose a very different API resource for this","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"65cd0bae8eab6450724db71ce3a3327457c79089","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    * ``PLANNED_MAINTENANCE`` when there is planned maintenance."},{"line_number":117,"context_line":"    * ``MAINTENANCE`` when there is ongoing maintenance."},{"line_number":118,"context_line":"    * null when in use as normal."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The new ``host_maintenance_start`` and ``host_maintenance_end`` should show"},{"line_number":121,"context_line":"the time when maintenance start and end. Special case where there is no"}],"source_content_type":"text/x-rst","patch_set":15,"id":"da36d5c6_5a52ef67","line":118,"in_reply_to":"da36d5c6_83b98dce","updated":"2017-02-27 07:33:35.000000000","message":"Let\u0027s say planned maintenance can be set well before hand and you do not want to disable nova-compute yet. Describing this will have this information visible well in time for owner of the server in affected host. Also when whatever external workflow is run to migrate servers somewhere else, user can see his server is safe. In NFV this is very important.","commit_id":"2d7a139e3657c16f2a4b988829dc26f76260c7be"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a4daad4ae8b96deb2ab825d62e2eb403da0ea6e2","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"This could be set by adding a new API::"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host-description"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Calling the API should trigger a ``service.update`` notification. Updated"},{"line_number":77,"context_line":"version of the notification should include the new field. External tool"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ba2be162_644c2a43","line":74,"range":{"start_line":74,"start_character":4,"end_line":74,"end_character":54},"updated":"2017-03-01 18:31:52.000000000","message":"I felt it would be enough to have\n\n PUT /v2.1/os-services\n\nonly and pass a new attribute on the request body.\nBut current os-services have separated endpoints for each attribute like https://developer.openstack.org/api-ref/compute/?expanded\u003dlog-disabled-compute-service-information-detail#disable-scheduling-for-a-compute-service\n\nSo this seems good I feel now.","commit_id":"7433f082a230a70101d75e61636ae50ce0c8a67d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a5e8e9bf6dede0dadbe36e6e17f4486210e8c4a2","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":31,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":32,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"},{"line_number":34,"context_line":"case is that there is external service for monitoring hosts and triggering"},{"line_number":35,"context_line":"alarms. It should know about planned host maintenance via a notification so it"},{"line_number":36,"context_line":"can alarm the user having VMs running on host."}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a30ddce_551ee263","line":33,"range":{"start_line":32,"start_character":47,"end_line":33,"end_character":68},"updated":"2017-03-08 11:59:47.000000000","message":"What is the use case having this state visible via the nova REST API instead of making it visible on the API of the service handling the maintenance workflow?\n\nWould it be OK for the user to use the API of the maintenance service to check if her server is affected or not?","commit_id":"c3e7984b6af2df5d770c9ace02972ec00ea7ddb3"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f0845041d235bbee8f4f9120b51ab4d14cb6b9fb","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":31,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":32,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"},{"line_number":34,"context_line":"case is that there is external service for monitoring hosts and triggering"},{"line_number":35,"context_line":"alarms. It should know about planned host maintenance via a notification so it"},{"line_number":36,"context_line":"can alarm the user having VMs running on host."}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a30ddce_752add2d","line":33,"range":{"start_line":32,"start_character":47,"end_line":33,"end_character":68},"in_reply_to":"9a30ddce_551ee263","updated":"2017-03-09 11:23:25.000000000","message":"IMHO the owner of a server should get consistent state information and for fault management this is already the case. While there can be separately an alarm to user about planned maintenance, one should know this also when querying servers and not by each time to find out by querying it from somewhere else.","commit_id":"c3e7984b6af2df5d770c9ace02972ec00ea7ddb3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a5e8e9bf6dede0dadbe36e6e17f4486210e8c4a2","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"It is seen that more detailed planned host maintenance awareness should not"},{"line_number":62,"context_line":"be extended into Nova, but there could be an external tool to have more"},{"line_number":63,"context_line":"detailed host information. While this should reside outside Nova, user needs"},{"line_number":64,"context_line":"consistent state information about his servers. There needs to be a new field"},{"line_number":65,"context_line":"in Nova that can be used to tell about planned host maintenance or other host"},{"line_number":66,"context_line":"specific information."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"New field should be added to services table in Nova DB:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a30ddce_b5a47eb9","line":66,"range":{"start_line":63,"start_character":66,"end_line":66,"end_character":21},"updated":"2017-03-08 11:59:47.000000000","message":"Do you mean we need a single API to see information about a server? This is not even true today. I might need to query nova, glance, neutron, cinder, etc to get everything I need. So if maintenance is important to me I can go and query the maintenance module of openstack as well. (or listen to the notifications coming from that module)\n\nAs far as I understand Nova tend to integrate to other modules by referring to the data in the other modules via an id. E.g. image_id, port_id, etc.\n\nCould we create similar abstract dependency between nova and the maintenance module instead of asking nova to store a free text field to its db that might contain some structured data another module depends on?","commit_id":"c3e7984b6af2df5d770c9ace02972ec00ea7ddb3"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f0845041d235bbee8f4f9120b51ab4d14cb6b9fb","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"It is seen that more detailed planned host maintenance awareness should not"},{"line_number":62,"context_line":"be extended into Nova, but there could be an external tool to have more"},{"line_number":63,"context_line":"detailed host information. While this should reside outside Nova, user needs"},{"line_number":64,"context_line":"consistent state information about his servers. There needs to be a new field"},{"line_number":65,"context_line":"in Nova that can be used to tell about planned host maintenance or other host"},{"line_number":66,"context_line":"specific information."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"New field should be added to services table in Nova DB:"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a30ddce_109c4fbf","line":66,"range":{"start_line":63,"start_character":66,"end_line":66,"end_character":21},"in_reply_to":"9a30ddce_b5a47eb9","updated":"2017-03-09 11:23:25.000000000","message":"I think it is important to see deeper information about maintenance straight when querying server. This wouldn\u0027t be the case with the unique id or link to something external. It is different case than querying stuff from glance, neutron, cinder,... you know when you want to do that. In Craton where I am working to have the host maintenance state information, there will surely be notifications. Anyhow that will be host level and something understanding that, like Vitrage, would make alarm to owner of servers on host. Regardless, if not using Craton, it is important to have notification from Nova. I will look to write more of this in spec.","commit_id":"c3e7984b6af2df5d770c9ace02972ec00ea7ddb3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a5e8e9bf6dede0dadbe36e6e17f4486210e8c4a2","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    {"},{"line_number":122,"context_line":"      \"host\": \"host1\","},{"line_number":123,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":124,"context_line":"      \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\""},{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":"    200 OK"},{"line_number":127,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a30ddce_6a306502","line":124,"updated":"2017-03-08 11:59:47.000000000","message":"So the format and content of this new field is not defined from nova perspective and an external system might set a structured data like in this example.\n\nThis might seems reasonable to ease the integration of the modules. However as it is not the external tool that stores and therefore owns the data it might create problems because the external tool not just depends on the field to exists but might also depend on the structure of the data in that field.\n\nAlso if the external tool needs to change the structure of that data (e.g. adding new fields) then there is no way to do that during db upgrade as the data is stored in nova but the structure is defined by the external tool. This could create quite a messy upgrade dependencies between modules.\n\nCan we first try to build up the maintenance module with a reversed dependency? Could the external tool handling the maintenance provide an API where the owner of a server can go and use the instance uuid to query if there is a maintenance that might effect that instance?","commit_id":"c3e7984b6af2df5d770c9ace02972ec00ea7ddb3"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f0845041d235bbee8f4f9120b51ab4d14cb6b9fb","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    {"},{"line_number":122,"context_line":"      \"host\": \"host1\","},{"line_number":123,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":124,"context_line":"      \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\""},{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":"    200 OK"},{"line_number":127,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a30ddce_90b11f92","line":124,"in_reply_to":"9a30ddce_6a306502","updated":"2017-03-09 11:23:25.000000000","message":"So external tool will own the data structure in its DB related to planned maintenance and write in new field in Nova the needed information from server owner perspective as it is needful to see it straight by servers API. In external tool (Craton) one should be able to filter hosts by any variable defined to it. One can freely define variables there and if instance uuid (hostid would be better) would be there, one would catch specific host filtered by that. RBAC could then take care that owner of server would only see information he is allowed to (unlike hostname as he is not admin). Anyhow this is not good for planned maintenance as one would need to know when to read extra information from external tool, while could be ok for some other deeper host knowledge. host_description as proposed now is also free text so it will not limit usage too much and map it directly to Craton.","commit_id":"c3e7984b6af2df5d770c9ace02972ec00ea7ddb3"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Some applications need to prepare for an impacting maintenance by routing work"},{"line_number":20,"context_line":"to other non-impacted servers, so users are not impacted by the maintenance."},{"line_number":21,"context_line":"Monitoring system need to know what hosts should be monitored and if alarms"},{"line_number":22,"context_line":"should be triggered or not. User may not want to schedule service on a host"},{"line_number":23,"context_line":"that is going to maintenance soon."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_cbb20094","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":75},"updated":"2017-03-21 12:44:04.000000000","message":"Hmm, not sure that makes sense to me yet. Which monitoring system are we talking about here? What does it do when it has an alarm raised?","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Some applications need to prepare for an impacting maintenance by routing work"},{"line_number":20,"context_line":"to other non-impacted servers, so users are not impacted by the maintenance."},{"line_number":21,"context_line":"Monitoring system need to know what hosts should be monitored and if alarms"},{"line_number":22,"context_line":"should be triggered or not. User may not want to schedule service on a host"},{"line_number":23,"context_line":"that is going to maintenance soon."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_38ae5f81","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":75},"in_reply_to":"1a1ced50_cbb20094","updated":"2017-03-22 10:51:50.000000000","message":"In NFV we might want to have alarms about failures as well as maintenance. On failure case you might have automated actions/workflows. When in maintenance you might not want those failure alarms, but that host is in maintenance to trigger correct workflows. We use projects like Vitrage for alarming.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Some applications need to prepare for an impacting maintenance by routing work"},{"line_number":20,"context_line":"to other non-impacted servers, so users are not impacted by the maintenance."},{"line_number":21,"context_line":"Monitoring system need to know what hosts should be monitored and if alarms"},{"line_number":22,"context_line":"should be triggered or not. User may not want to schedule service on a host"},{"line_number":23,"context_line":"that is going to maintenance soon."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_ebafbc27","line":23,"range":{"start_line":22,"start_character":28,"end_line":23,"end_character":34},"updated":"2017-03-21 12:44:04.000000000","message":"I think its the reverse, people want to scheduler on a host that has already had its maintenance completed, or isn\u0027t likely to be impacted by maintenance soon.\n\nThis about patching empty hosts first, you want new builds to land on the hosts you have already finished with, if possible.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Some applications need to prepare for an impacting maintenance by routing work"},{"line_number":20,"context_line":"to other non-impacted servers, so users are not impacted by the maintenance."},{"line_number":21,"context_line":"Monitoring system need to know what hosts should be monitored and if alarms"},{"line_number":22,"context_line":"should be triggered or not. User may not want to schedule service on a host"},{"line_number":23,"context_line":"that is going to maintenance soon."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_389d7f0a","line":23,"range":{"start_line":22,"start_character":28,"end_line":23,"end_character":34},"in_reply_to":"1a1ced50_ebafbc27","updated":"2017-03-22 10:51:50.000000000","message":"I again put more discussion in earlier patch (15) to have more in Nova, so one could also have scheduler changes where one could still in worst case schedule VM to host that is going to maintenance like tomorrow, but preferably it would go to any host not affected by maintenance. While operators liked idea of having also possibility to schedule VM to a host in maintenance to test everything works after maintenance, I got resistance here and it was preferred to use the availability zones as done till now. This line is left over from earlier patch version where I had maintenance_state directly in Nova content. Looking to answer all requirements and what you suggest for API below, I think I should put all that back.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e9914ef31943e871a343336dc4f2fefeab32c3","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Monitoring system need to know what hosts should be monitored and if alarms"},{"line_number":22,"context_line":"should be triggered or not. User may not want to schedule service on a host"},{"line_number":23,"context_line":"that is going to maintenance soon."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_4a8b1c1f","line":24,"updated":"2017-03-22 21:54:53.000000000","message":"The above rather looks like usecases, but it doesn\u0027t really explain the current missing situation.\n\nAs I said in an earlier PS (that you replied), operators can still schedule instances to a specific node in case they want to test it. What\u0027s missing then for your usecases ?\n\nWhat would be the difference with operators disabling compute services but still using the AZ hack for testing the maintained node ?","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"67f66f50514eadb527418aff7d90ad33ee620f49","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Monitoring system need to know what hosts should be monitored and if alarms"},{"line_number":22,"context_line":"should be triggered or not. User may not want to schedule service on a host"},{"line_number":23,"context_line":"that is going to maintenance soon."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_48115a03","line":24,"in_reply_to":"1a1ced50_4a8b1c1f","updated":"2017-03-23 06:35:49.000000000","message":"Need to explain better. For the testing maintained host, I would say simplicity. Anyhow that is not all. Also flexibility where you have the possibility to still schedule to a host in planned maintenance, if not possible to hosts not affected by maintenance. Also possible to schedule only to hosts that are already maintained.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* As a user I want to know when planned host maintenance is going to happen:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":31,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":32,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_662dc394","line":30,"range":{"start_line":30,"start_character":33,"end_line":30,"end_character":57},"updated":"2017-03-21 12:44:04.000000000","message":"You mean a service striving to deliver the highest level of availability possible? I don\u0027t like the idea of \"zero\" I guess. Thats never possible.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* As a user I want to know when planned host maintenance is going to happen:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":31,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":32,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_e3b97c16","line":30,"range":{"start_line":30,"start_character":33,"end_line":30,"end_character":57},"in_reply_to":"1a1ced50_662dc394","updated":"2017-03-22 10:51:50.000000000","message":"As this in planned maintenance, yes in NFV by knowing before you would like to guarantee \"zero\" while you might be right in other deployments. Could rephrase better.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":31,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":32,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"},{"line_number":34,"context_line":"case is that there is external service for monitoring hosts and triggering"},{"line_number":35,"context_line":"alarms. It should know about planned host maintenance via a notification so it"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_a6717baa","line":32,"updated":"2017-03-21 12:44:04.000000000","message":"To be clear, you should be ensuring you run workers on multiple places, so you are not impacted by sudden host failure.\n\nBut, by proactively looking for up coming maintenance you could void performance degradation during the maintenance.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"User can have service that needs zero downtime guaranteed. In case user is"},{"line_number":31,"context_line":"aware about coming maintenance, it can be assured that service is safely"},{"line_number":32,"context_line":"running on a host not impacted by maintenance. Maintenance state should be"},{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"},{"line_number":34,"context_line":"case is that there is external service for monitoring hosts and triggering"},{"line_number":35,"context_line":"alarms. It should know about planned host maintenance via a notification so it"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_e367bcb4","line":32,"in_reply_to":"1a1ced50_a6717baa","updated":"2017-03-22 10:51:50.000000000","message":"Yes, could put this to make it clear.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"},{"line_number":34,"context_line":"case is that there is external service for monitoring hosts and triggering"},{"line_number":35,"context_line":"alarms. It should know about planned host maintenance via a notification so it"},{"line_number":36,"context_line":"can alarm the user having VMs running on host."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* As an admin I want to have an external tool to handle hosts:"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_4684475d","line":36,"updated":"2017-03-21 12:44:04.000000000","message":"But what does the user do? I assuming this monitoring system would move the VM to an unaffected host, if needed? I am not seeing the full picture here.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":33,"context_line":"possible to see by querying servers and trough notifications/alarms. NFV use"},{"line_number":34,"context_line":"case is that there is external service for monitoring hosts and triggering"},{"line_number":35,"context_line":"alarms. It should know about planned host maintenance via a notification so it"},{"line_number":36,"context_line":"can alarm the user having VMs running on host."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* As an admin I want to have an external tool to handle hosts:"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_23ce342e","line":36,"in_reply_to":"1a1ced50_4684475d","updated":"2017-03-22 10:51:50.000000000","message":"You have workflows in place to have VMs automatically migrated. You also know when that is to run (maintenance_start). Application can switch any in coming new subscriber actions (phone call) to a host that will not be affected by maintenance and be quite sure there is nothing going on with the VM to be migrated to somewhere else when maintenance start.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e9914ef31943e871a343336dc4f2fefeab32c3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"could: disable compute, live migrate VMs, disable monitoring, patch the host,"},{"line_number":46,"context_line":"reboot host, post patch host, enable monitoring and enable compute. External"},{"line_number":47,"context_line":"workflow engine can also be used as there should be notifications about"},{"line_number":48,"context_line":"changing host maintenance state."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an admin I want monitoring system to adapt to host state:"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_2aed00b7","line":48,"updated":"2017-03-22 21:54:53.000000000","message":"You can still do that using the os-services API, right?\n\nWhat\u0027s missing for that specific Nova REST API ?","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"67f66f50514eadb527418aff7d90ad33ee620f49","unresolved":false,"context_lines":[{"line_number":45,"context_line":"could: disable compute, live migrate VMs, disable monitoring, patch the host,"},{"line_number":46,"context_line":"reboot host, post patch host, enable monitoring and enable compute. External"},{"line_number":47,"context_line":"workflow engine can also be used as there should be notifications about"},{"line_number":48,"context_line":"changing host maintenance state."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an admin I want monitoring system to adapt to host state:"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_887a7222","line":48,"in_reply_to":"1a1ced50_2aed00b7","updated":"2017-03-23 06:35:49.000000000","message":"Enable/disable API forbids scheduling. Also it is not offering possibility to know about coming maintenance (still not forbidding scheduling). In sophisticated case it also matters the time window towards service running on host. You might not always migrate service to other host. Enable/disable is surely separately needed and can remain as is. You use it when nobody is to schedule anything to host.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"maintenance. When tool having host state for every host in cloud would add,"},{"line_number":54,"context_line":"remove or change maintenance state of a certain host, monitoring system could"},{"line_number":55,"context_line":"catch that through a notification to enable/disable monitoring and further"},{"line_number":56,"context_line":"alarming the user having VMs on host. Alarming is a NFV requirement."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Proposed change"},{"line_number":59,"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":18,"id":"1a1ced50_86f1df03","line":56,"updated":"2017-03-21 12:44:04.000000000","message":"Where is the use case you mention in the problem statement around scheduling?","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":53,"context_line":"maintenance. When tool having host state for every host in cloud would add,"},{"line_number":54,"context_line":"remove or change maintenance state of a certain host, monitoring system could"},{"line_number":55,"context_line":"catch that through a notification to enable/disable monitoring and further"},{"line_number":56,"context_line":"alarming the user having VMs on host. Alarming is a NFV requirement."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Proposed change"},{"line_number":59,"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":18,"id":"1a1ced50_8327e8c8","line":56,"in_reply_to":"1a1ced50_86f1df03","updated":"2017-03-22 10:51:50.000000000","message":"So removed the scheduling part as there was resistance or to have at least separate spec. Kind of wanted to finish this, but that was not perhaps a good choice against really stand behind all requirements.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Proposed change"},{"line_number":59,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"It is seen that more detailed planned host maintenance awareness should not"},{"line_number":62,"context_line":"be extended into Nova, but there could be an external tool to have more"},{"line_number":63,"context_line":"detailed host information and maintenance workflow. Currently work ongoing to"},{"line_number":64,"context_line":"implement this to inventory and fleet management project Craton. While this"},{"line_number":65,"context_line":"would reside outside Nova, user needs consistent state information about his"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_26d74bee","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":22},"updated":"2017-03-21 12:44:04.000000000","message":"No, what was said/agreed was very different. The question is:\n\nIs there a way to have a minimal integration with Nova, and meet all your use cases? If so, what does that minimal integration look like.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Proposed change"},{"line_number":59,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"It is seen that more detailed planned host maintenance awareness should not"},{"line_number":62,"context_line":"be extended into Nova, but there could be an external tool to have more"},{"line_number":63,"context_line":"detailed host information and maintenance workflow. Currently work ongoing to"},{"line_number":64,"context_line":"implement this to inventory and fleet management project Craton. While this"},{"line_number":65,"context_line":"would reside outside Nova, user needs consistent state information about his"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_5e7143a7","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":22},"in_reply_to":"1a1ced50_26d74bee","updated":"2017-03-22 10:51:50.000000000","message":"Thanks, needed convincing about this instead always narrowing down to something not that useful.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e9914ef31943e871a343336dc4f2fefeab32c3","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"A new policy is needed to have this visible in the above APIs::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    \"os_compute_api:servers:show:host_maintenance\": \"rule:admin_or_owner\""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"The new field need to be also visible as response parameters in::"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_8a0b547c","line":94,"range":{"start_line":94,"start_character":33,"end_line":94,"end_character":49},"updated":"2017-03-22 21:54:53.000000000","message":"s/host_maintenance/host_description/ per the above, right?","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"67f66f50514eadb527418aff7d90ad33ee620f49","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"A new policy is needed to have this visible in the above APIs::"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    \"os_compute_api:servers:show:host_maintenance\": \"rule:admin_or_owner\""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"The new field need to be also visible as response parameters in::"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_48b23ae6","line":94,"range":{"start_line":94,"start_character":33,"end_line":94,"end_character":49},"in_reply_to":"1a1ced50_8a0b547c","updated":"2017-03-23 06:35:49.000000000","message":"Yes, this has been wither to use host_maintenance/host_description and forgot to change.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e9914ef31943e871a343336dc4f2fefeab32c3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Service ``disable_reason`` could be used by changing how it can be set and by"},{"line_number":104,"context_line":"exposing it to servers API. Anyhow this would widen the scope of its usage and"},{"line_number":105,"context_line":"it would not be descriptive name for different usage possibilities."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_ea24c80d","line":103,"range":{"start_line":103,"start_character":10,"end_line":103,"end_character":24},"updated":"2017-03-22 21:54:53.000000000","message":"nit: *disabled_reason*","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"67f66f50514eadb527418aff7d90ad33ee620f49","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Alternatives"},{"line_number":101,"context_line":"------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Service ``disable_reason`` could be used by changing how it can be set and by"},{"line_number":104,"context_line":"exposing it to servers API. Anyhow this would widen the scope of its usage and"},{"line_number":105,"context_line":"it would not be descriptive name for different usage possibilities."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_a8c3ae36","line":103,"range":{"start_line":103,"start_character":10,"end_line":103,"end_character":24},"in_reply_to":"1a1ced50_ea24c80d","updated":"2017-03-23 06:35:49.000000000","message":"yes","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e9914ef31943e871a343336dc4f2fefeab32c3","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Service ``disable_reason`` could be used by changing how it can be set and by"},{"line_number":104,"context_line":"exposing it to servers API. Anyhow this would widen the scope of its usage and"},{"line_number":105,"context_line":"it would not be descriptive name for different usage possibilities."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"New field could alternatively be an unique id that links to an external tool."},{"line_number":108,"context_line":"Planned maintenance is anyhow seen something that should be seen directly and"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_8a8274c6","line":105,"updated":"2017-03-22 21:54:53.000000000","message":"Not sure I understand why we really need a separate field from that one. Sure, the semantics of that field could be different, but that\u0027s really only for the operator, right?","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"67f66f50514eadb527418aff7d90ad33ee620f49","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Service ``disable_reason`` could be used by changing how it can be set and by"},{"line_number":104,"context_line":"exposing it to servers API. Anyhow this would widen the scope of its usage and"},{"line_number":105,"context_line":"it would not be descriptive name for different usage possibilities."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"New field could alternatively be an unique id that links to an external tool."},{"line_number":108,"context_line":"Planned maintenance is anyhow seen something that should be seen directly and"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_c81aaac5","line":105,"in_reply_to":"1a1ced50_8a8274c6","updated":"2017-03-23 06:35:49.000000000","message":"Both operator and owner of servers. Both in scheduling and to show planned maintenance to owner of a server. Need to put this all better in whole spec. Even though there would be separate spec for scheduling everything needs explaining here to make the case.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e9914ef31943e871a343336dc4f2fefeab32c3","unresolved":false,"context_lines":[{"line_number":104,"context_line":"exposing it to servers API. Anyhow this would widen the scope of its usage and"},{"line_number":105,"context_line":"it would not be descriptive name for different usage possibilities."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"New field could alternatively be an unique id that links to an external tool."},{"line_number":108,"context_line":"Planned maintenance is anyhow seen something that should be seen directly and"},{"line_number":109,"context_line":"not on every call to be checked somewhere else. Unique id might also make usage"},{"line_number":110,"context_line":"of the new field tightly coupled to specific external tool."}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_0a776402","line":107,"updated":"2017-03-22 21:54:53.000000000","message":"You\u0027re planning to have this field be a string. What the semantics of that field is is left to the operator. I personnally opposed to have it clear in a spec that it *could* be something specific.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"67f66f50514eadb527418aff7d90ad33ee620f49","unresolved":false,"context_lines":[{"line_number":104,"context_line":"exposing it to servers API. Anyhow this would widen the scope of its usage and"},{"line_number":105,"context_line":"it would not be descriptive name for different usage possibilities."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"New field could alternatively be an unique id that links to an external tool."},{"line_number":108,"context_line":"Planned maintenance is anyhow seen something that should be seen directly and"},{"line_number":109,"context_line":"not on every call to be checked somewhere else. Unique id might also make usage"},{"line_number":110,"context_line":"of the new field tightly coupled to specific external tool."}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_68b37698","line":107,"in_reply_to":"1a1ced50_0a776402","updated":"2017-03-23 06:35:49.000000000","message":"I have interpret it wrong all and all where to narrow down the whole spec and tried with something not that usable as single string at the end to have smaller implementation to Nova. Also same time to make it more generic instead of specific to cases that are actually in hand.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"API for setting host maintenance::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host-description"},{"line_number":129,"context_line":"    {"},{"line_number":130,"context_line":"      \"host\": \"host1\","},{"line_number":131,"context_line":"      \"binary\": \"nova-compute\","}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_267d8bb1","line":128,"range":{"start_line":128,"start_character":15,"end_line":128,"end_character":24},"updated":"2017-03-21 12:44:04.000000000","message":"Note we no longer have the tenant_id in there, its purely optional and ignored, so it should be excluded in all examples here.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"API for setting host maintenance::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    PUT /v2.1/{tenant_id}/os-services/host-description"},{"line_number":129,"context_line":"    {"},{"line_number":130,"context_line":"      \"host\": \"host1\","},{"line_number":131,"context_line":"      \"binary\": \"nova-compute\","}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_fe9cafc1","line":128,"range":{"start_line":128,"start_character":15,"end_line":128,"end_character":24},"in_reply_to":"1a1ced50_267d8bb1","updated":"2017-03-22 10:51:50.000000000","message":"Thanks, will do.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    {"},{"line_number":130,"context_line":"      \"host\": \"host1\","},{"line_number":131,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":132,"context_line":"      \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\""},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":"    200 OK"},{"line_number":135,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_06fb2f48","line":132,"updated":"2017-03-21 12:44:04.000000000","message":"That seems fairly terrible, from a scheduler point of view. It shouldn\u0027t need to parse this text.\n\nI would rather we look at including all these as well known elements, for better interop.\n\nWhat about:\n\n  {\n      ...\n      host_maintenance_events: [\n          {\n              \"uuid\": \"\u003cuuid\u003e\",\n              \"state\": \"PENDING/ACTIVE\",\n              \"description\": \"URL might go in here\",\n              \"updated_at\": \"..\u003cdate_time\u003e..\",\n              \"expected_start\": \"..\u003cdate_time\u003e..\",\n              \"expected_end\": null,\n          },\n          {...},\n      ]\n  }\n\nSo an event is removed when complete, its only present if pending or active.\n\nIf pending or active and the end time has passed, it just means it is delayed and has not completed.\n\nThis data is updated via this API:\n\nPUT /v2.1/host-maintenance-events/{uuid}\n{\n      host_maintenance_event: {\n              \"uuid\": \"\u003cuuid\u003e\",\n              \"description\": \"URL might go in here\",\n              \"updated_at\": \"..\u003cdate_time\u003e..\",\n              \"expected_start\": \"..\u003cdate_time\u003e..\",\n              \"expected_end\": null,\n              \"pending_hosts\": [\"uuid1\",\"uuid2\",...],\n              \"active_hosts\": [\"uuid3\", ...]\n      },\n  }\n\nNot that we don\u0027t track completion, only that it is happening or about to happen. There must be at least one pending or active host, or the request will be rejected.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    {"},{"line_number":130,"context_line":"      \"host\": \"host1\","},{"line_number":131,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":132,"context_line":"      \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\""},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":"    200 OK"},{"line_number":135,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_1ea8ab8c","line":132,"in_reply_to":"1a1ced50_06fb2f48","updated":"2017-03-22 10:51:50.000000000","message":"Yes, I agree this was ugly. What you propose here would make a lot of sense. Have to give this a thought.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e9914ef31943e871a343336dc4f2fefeab32c3","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    {"},{"line_number":130,"context_line":"      \"host\": \"host1\","},{"line_number":131,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":132,"context_line":"      \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\""},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":"    200 OK"},{"line_number":135,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_ead928f4","line":132,"in_reply_to":"1a1ced50_1ea8ab8c","updated":"2017-03-22 21:54:53.000000000","message":"Why the scheduler should look at that ? This spec is not explaining that.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"67f66f50514eadb527418aff7d90ad33ee620f49","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    {"},{"line_number":130,"context_line":"      \"host\": \"host1\","},{"line_number":131,"context_line":"      \"binary\": \"nova-compute\","},{"line_number":132,"context_line":"      \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\""},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":"    200 OK"},{"line_number":135,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_a8572e24","line":132,"in_reply_to":"1a1ced50_ead928f4","updated":"2017-03-23 06:35:49.000000000","message":"Sylvain, you are absolutely right. Had more about scheduling before, but narrowed the scope. I need to rework the spec to have back all that is wanted. Everything needs to be here to explain need for different things while there might be separate spec to work some part like scheduling.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    {"},{"line_number":153,"context_line":"      \"server\": {"},{"line_number":154,"context_line":"        ..."},{"line_number":155,"context_line":"        \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\","},{"line_number":156,"context_line":"        ..."},{"line_number":157,"context_line":"      }"},{"line_number":158,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_c1e901e8","line":155,"updated":"2017-03-21 12:44:04.000000000","message":"Surely, it should link to a maintenance event or some such? Maybe you get the full details by requesting it in a sub-resource?\n\nThis doesn\u0027t look correct to me, although I get what you are trying to do here.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    {"},{"line_number":153,"context_line":"      \"server\": {"},{"line_number":154,"context_line":"        ..."},{"line_number":155,"context_line":"        \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\","},{"line_number":156,"context_line":"        ..."},{"line_number":157,"context_line":"      }"},{"line_number":158,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_92d00ff8","line":155,"in_reply_to":"1a1ced50_c1e901e8","updated":"2017-03-22 10:51:50.000000000","message":"By fast looking the host_maintenance_event you proposed, this should be quite nice with just event specific uuid and host specific uuid if event exist. Surely then need GET also for events to see needed details.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"49a74757bca36a34db907c3d6507becb38762ac5","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                \"updated_at\": \"2017-03-22T00:46:25.211575\","},{"line_number":176,"context_line":"                \"forced_down\": false,"},{"line_number":177,"context_line":"                \"zone\": \"nova\","},{"line_number":178,"context_line":"                \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\","},{"line_number":179,"context_line":"            },"},{"line_number":180,"context_line":"            ..."},{"line_number":181,"context_line":"        ]"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_a6709bdd","line":178,"updated":"2017-03-21 12:44:04.000000000","message":"Why not only add this into the /detail list?\n\nIt seems wrong including this in the more basic list. Maybe we don\u0027t have a detail list here actually.","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"22976e273fdb56631d980f86d11c6687099bc0df","unresolved":false,"context_lines":[{"line_number":175,"context_line":"                \"updated_at\": \"2017-03-22T00:46:25.211575\","},{"line_number":176,"context_line":"                \"forced_down\": false,"},{"line_number":177,"context_line":"                \"zone\": \"nova\","},{"line_number":178,"context_line":"                \"host_description\": \"{\\\"maintenance_state\\\":\\\"MAINTENANCE\\\", \\\"maintenance_reason\\\": \\\"reason for host maintenance\\\", \\\"maintenance_start\\\": \\\"2017-03-22T00:46:25Z\\\", \\\"maintenance_end\\\": \\\"2017-03-22T01:46:25Z\\\"}\","},{"line_number":179,"context_line":"            },"},{"line_number":180,"context_line":"            ..."},{"line_number":181,"context_line":"        ]"}],"source_content_type":"text/x-rst","patch_set":18,"id":"1a1ced50_9c32def0","line":178,"in_reply_to":"1a1ced50_a6709bdd","updated":"2017-03-22 10:51:50.000000000","message":"There is just this API, so event should be seen here unless there would be GET for the events and here again some uuid to be used to get that detail","commit_id":"e468a28838f91d7d975a71952a32b2780fdca5fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8957a5b90b03b1550cf592fd18f4b2f993caf0a5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"would simply need to run operation one host at a time or more intelligently"},{"line_number":39,"context_line":"couple of hosts at a time."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Operator wants a simple way of testing maintained host by making this"},{"line_number":42,"context_line":"possible by scheduling instead of the need of using availability zones."},{"line_number":43,"context_line":"At the same time forbidding scheduling from other users. Normal user would"},{"line_number":44,"context_line":"want to be allowed to schedule to a host in planned maintenance in case it is"},{"line_number":45,"context_line":"not possible on a host not impacted by maintenance. Scheduling needs to be"},{"line_number":46,"context_line":"possible only to hosts that have gone trough maintenance."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Use Cases"},{"line_number":49,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"ffe62b97_d0ed3326","line":46,"range":{"start_line":41,"start_character":0,"end_line":46,"end_character":57},"updated":"2017-03-24 10:47:04.000000000","message":"There are multiple problems you mention :\n #1 you would like to signal some hosts so that new instances would avoid those. Please explain why you consider the current disable signal unsufficient.\n #1 The AZ hack is unsufficient and I agree. You should explain why it\u0027s unsufficient\n #2 you would like to schedule hosts that are past a maintenance, and that is new. You don\u0027t explain how to achieve that in your spec, so I would consider that as a side effort that is not intended to be handled by that spec.\n\nIMHO, you\u0027re trying to achieve a lot of concerns within that spec, you should reduce the scope.","commit_id":"4881a741714bb8bbd1ea17b28166ba3f61de8a1d"}]}
