)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"84a31d996b62197bac5231661fe31fbe78dad0a1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"immediately. This allows usage of evacuate API without a delay. Also as"},{"line_number":11,"context_line":"external system will make sure host is down and no VMs left running, there"},{"line_number":12,"context_line":"will be no possibility to break shared storage or use same IPs again."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I612582ba7b70bb6d167aa68bdfc47faa3b7b85ed"},{"line_number":15,"context_line":"Implements: blueprint mark-host-down"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dac4157f_c9bf2fcf","line":13,"updated":"2015-04-20 21:14:11.000000000","message":"Should have the APIImpact tag in the commit message for filtering per the template:\n\nhttp://git.openstack.org/cgit/openstack/nova-specs/tree/specs/liberty-template.rst#n71","commit_id":"b0984c3831bbd35c895baeaaac1d7c2597d362be"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"3209abab812603806bd1477a556c7c465bfb29f5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"immediately. This allows usage of evacuate API without a delay. Also as"},{"line_number":11,"context_line":"external system will make sure host is down and no VMs left running, there"},{"line_number":12,"context_line":"will be no possibility to break shared storage or use same IPs again."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I612582ba7b70bb6d167aa68bdfc47faa3b7b85ed"},{"line_number":15,"context_line":"Implements: blueprint mark-host-down"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dac4157f_c5126bb4","line":13,"in_reply_to":"dac4157f_c9bf2fcf","updated":"2015-04-21 04:09:53.000000000","message":"Done","commit_id":"b0984c3831bbd35c895baeaaac1d7c2597d362be"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec750a62d23418c9b05f20072331bb15652a7b0d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"APIImpact"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I612582ba7b70bb6d167aa68bdfc47faa3b7b85ed"},{"line_number":19,"context_line":"Implements: blueprint update-server-state-immediately"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"7ad32947_4aee958c","line":19,"updated":"2015-04-27 20:48:28.000000000","message":"this blueprint appears not to exits.\nshould this be \nImplements: blueprint mark-host-down\n\nhttps://blueprints.launchpad.net/nova/+spec/mark-host-down","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"}],"specs/liberty/approved/mark-host-down.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77730bf1541fac80136b5e0fafa97e64f946a5b0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"time. Server state keeps as \"vm_state: active\" and \"power_state:"},{"line_number":19,"context_line":"running\", which is not correct, but there is API to put VMs to error state."},{"line_number":20,"context_line":"By having external tool to detect host faults fast, fence host by powering"},{"line_number":21,"context_line":"down and then report host down to OpenStack, all these states would reflect to"},{"line_number":22,"context_line":"actual situation. Also if OpenStack will not implement automatic actions for"},{"line_number":23,"context_line":"fault correlation, external tool can do that. This could be configured for"},{"line_number":24,"context_line":"example in instance METADATA easily and be read by external tool."}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_78ab2fd7","line":21,"updated":"2015-04-21 15:03:11.000000000","message":"I have a problem with the use of the naming \"host\" (see below), which doesn\u0027t really relate to the compute node, as Nova can have distributed compute nodes behind a single service (but I know that the model is wrong).","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"cc29f99bf5370fe55510430c1648414fe25cb47c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"time. Server state keeps as \"vm_state: active\" and \"power_state:"},{"line_number":19,"context_line":"running\", which is not correct, but there is API to put VMs to error state."},{"line_number":20,"context_line":"By having external tool to detect host faults fast, fence host by powering"},{"line_number":21,"context_line":"down and then report host down to OpenStack, all these states would reflect to"},{"line_number":22,"context_line":"actual situation. Also if OpenStack will not implement automatic actions for"},{"line_number":23,"context_line":"fault correlation, external tool can do that. This could be configured for"},{"line_number":24,"context_line":"example in instance METADATA easily and be read by external tool."}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_8578b890","line":21,"in_reply_to":"dac4157f_78ab2fd7","updated":"2015-04-22 09:35:03.000000000","message":"I try to rephrase quite a bit of these sentences. Still I would keep speaking about host as my use case would be nova-compute mapped to single host. Also would mention the distributed compute nodes.","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77730bf1541fac80136b5e0fafa97e64f946a5b0","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Generic use case flow:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* The external monitoring system detects a host fault."},{"line_number":49,"context_line":"* The external monitoring system fences the host if not down already or if"},{"line_number":50,"context_line":"  possible calls existing API to shutdown host gracefully."},{"line_number":51,"context_line":"* The external system calls the new Nova API to force the failed compute node"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_b8f667f7","line":48,"updated":"2015-04-21 15:03:11.000000000","message":"Which kind of fault would detect the monitoring system ? Here, I assume it\u0027s all about a service fault, but please confirm.","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"cc29f99bf5370fe55510430c1648414fe25cb47c","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Generic use case flow:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* The external monitoring system detects a host fault."},{"line_number":49,"context_line":"* The external monitoring system fences the host if not down already or if"},{"line_number":50,"context_line":"  possible calls existing API to shutdown host gracefully."},{"line_number":51,"context_line":"* The external system calls the new Nova API to force the failed compute node"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_25220c53","line":48,"in_reply_to":"dac4157f_b8f667f7","updated":"2015-04-22 09:35:03.000000000","message":"Basically external monitoring system would monitor links, memory, CPU, host services, HW,... In case fault can be translated as a fact that \"nova-compute\" should be down, then it will be marked down and ensure if for single host, that host is fenced (power off). Surely other actions possible by case.","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77730bf1541fac80136b5e0fafa97e64f946a5b0","unresolved":false,"context_lines":[{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"There needs to be a new API for Admin to state host is down. This API is used"},{"line_number":64,"context_line":"to mark compute node down. Existing API can be used to put VMs into error"},{"line_number":65,"context_line":"state."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Example on compute node is:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_9842833d","line":64,"updated":"2015-04-21 15:03:11.000000000","message":"You need to be more precise about the terminology IMHO :\n\n- service : the RPC service running on a single machine called nova-compute\n- host : the hostname of that machine running the RPC service\n- compute node : a possibly distributed hypervisor (local to the service or elsewhere) having a relationship with the service by its host field\n\nWhen you\u0027re saying \"This API is used to mark compute node down\", it\u0027s incorrect as you\u0027re mentioning later the /os-services endpoint. So, provided the external tool detects something wrong on the machine, it would update the service, not the compute node.\n\nWhat makes the call behind that is another story, that you need to describe in that document IMHO.","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"cc29f99bf5370fe55510430c1648414fe25cb47c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"There needs to be a new API for Admin to state host is down. This API is used"},{"line_number":64,"context_line":"to mark compute node down. Existing API can be used to put VMs into error"},{"line_number":65,"context_line":"state."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Example on compute node is:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_65b5a4ec","line":64,"in_reply_to":"dac4157f_9842833d","updated":"2015-04-22 09:35:03.000000000","message":"Yes.","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77730bf1541fac80136b5e0fafa97e64f946a5b0","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"      }"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  }"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"JSON schema definitions need no changes:"},{"line_number":124,"context_line":"/openstack/nova/tree/nova/api/openstack/compute/schemas/v3/services.py"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_75857aab","line":121,"updated":"2015-04-21 15:03:11.000000000","message":"What would be the logic behind that endpoint method ? Your proposal is a little unclear on that : would you update the service or the related compute nodes ?\nIIUC, as you\u0027re speaking about vm_states, I would assume that the logic would update all the instances related to all the compute nodes behind that service, correct ?","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"cc29f99bf5370fe55510430c1648414fe25cb47c","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"      }"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  }"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"JSON schema definitions need no changes:"},{"line_number":124,"context_line":"/openstack/nova/tree/nova/api/openstack/compute/schemas/v3/services.py"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dac4157f_1a2767cb","line":121,"in_reply_to":"dac4157f_75857aab","updated":"2015-04-22 09:35:03.000000000","message":"Service has in Nova DB the \"updated_at\" and as in dependency for other BP, the \"last_seen_up\" that can be updated to have the service down.","commit_id":"c288d61c5d6eebbd83ee99aae9cb45b0c35fa4c0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec750a62d23418c9b05f20072331bb15652a7b0d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Proposed change"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API for Admin to state nova-compute is down."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_2a523914","line":54,"updated":"2015-04-27 20:48:28.000000000","message":"when you say a new api is required for Admin to state nova-compute is down are you intending this api to also be used by the external monitoring solution?\n\nor is it intended that the external monitoring solution will notify the admin who will make the node as down after confirming its status.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b23e3918731dc909387e282e0111c65e36c50af8","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Proposed change"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API for Admin to state nova-compute is down."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_5f82ce53","line":54,"in_reply_to":"7ad32947_2a523914","updated":"2015-04-28 07:03:21.000000000","message":"External monitoring system will have admin rights and will use the API.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":7022,"name":"Adam Huffman","email":"adam.huffman@gmail.com","username":"verdurin"},"change_message_id":"f29ca624fb1f1c058128bb1e13dad6b3fdb2839f","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API for Admin to state nova-compute is down."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"},{"line_number":58,"context_line":"to that down. This BP addresses the nova-compute part and another BP will"},{"line_number":59,"context_line":"address the marking of all related VMs to error state. Other BPs can be made"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_abaf7993","line":56,"updated":"2015-04-27 15:54:15.000000000","message":"I think you\u0027re trying to squeeze too much into a single sentence here, which harms readability. How about something like: \"This is part of an effort to allow external monitoring systems to detect faults on OpenStack resources (e.g. a single compute node, which might map to a nova-compute service). If such a fault is detected, everything related to that node should be marked as down.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d7d0efbc5d9788e4f98cdc216a7c9601515b925d","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API for Admin to state nova-compute is down."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"},{"line_number":58,"context_line":"to that down. This BP addresses the nova-compute part and another BP will"},{"line_number":59,"context_line":"address the marking of all related VMs to error state. Other BPs can be made"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_b872237b","line":56,"in_reply_to":"7ad32947_8a6cad9d","updated":"2015-04-27 21:46:25.000000000","message":"The immediate issue is that nova will not let you evacuate if it thinks the nova-compute service is \"up\".  So we want to be able to have an external monitoring solution tell nova (via REST API) that a given nova-compute service is known to be \"down\" so that nova will allow us to evacuate the instances that are associated with that nova-compute service.\n\nWe may also want to indicate that other services are down too (presumably all services running on the system if the whole system dies), but I think that is outside the scope of this spec.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec750a62d23418c9b05f20072331bb15652a7b0d","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API for Admin to state nova-compute is down."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"},{"line_number":58,"context_line":"to that down. This BP addresses the nova-compute part and another BP will"},{"line_number":59,"context_line":"address the marking of all related VMs to error state. Other BPs can be made"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_8a6cad9d","line":56,"in_reply_to":"7ad32947_abaf7993","updated":"2015-04-27 20:48:28.000000000","message":"it is a common deployment scenario to co locate openstack services to distribute load across your cloud.\n\nwhen you say If such a fault is detected, everything related to that node should be marked as down. are you referring to all service on the host or just the VMs.\n\ni think there need to be a clear distinction between a compute service and the node/host it is running on.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b23e3918731dc909387e282e0111c65e36c50af8","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API for Admin to state nova-compute is down."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"},{"line_number":58,"context_line":"to that down. This BP addresses the nova-compute part and another BP will"},{"line_number":59,"context_line":"address the marking of all related VMs to error state. Other BPs can be made"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_3f94b235","line":56,"in_reply_to":"7ad32947_b872237b","updated":"2015-04-28 07:03:21.000000000","message":"Yes, this BP is to report nova-compute down to evacuate fast. Use case that I had in mind would be nova-compute mapping to single host that has the VMs. As that is not the case always I should be more precise here if referring to what else could be done as other BP.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec750a62d23418c9b05f20072331bb15652a7b0d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"},{"line_number":58,"context_line":"to that down. This BP addresses the nova-compute part and another BP will"},{"line_number":59,"context_line":"address the marking of all related VMs to error state. Other BPs can be made"},{"line_number":60,"context_line":"for Nova CLI and possibly new notifications."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Example of case as a whole to be addressed:"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_0ae77de5","line":59,"updated":"2015-04-27 20:48:28.000000000","message":"can you add a link to the second blueprint for marking vms as down.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b23e3918731dc909387e282e0111c65e36c50af8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"},{"line_number":58,"context_line":"to that down. This BP addresses the nova-compute part and another BP will"},{"line_number":59,"context_line":"address the marking of all related VMs to error state. Other BPs can be made"},{"line_number":60,"context_line":"for Nova CLI and possibly new notifications."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Example of case as a whole to be addressed:"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_5fd3ee38","line":59,"in_reply_to":"7ad32947_0ae77de5","updated":"2015-04-28 07:03:21.000000000","message":"I wanted to have this one BP first discussed so could have this accepted and start to implement something and do other BPs, do not know if was the best choice. Anyhow added here everything that I might be working with as a whole related to this. So currently there is only this single BP. So either I should leave all this talking of other things alone here, or make all these BPs at the same time to be discussed? I think this is the most important question remaining as the basic idea what this one BP is now trying to address has had positive welcome. Also important when talking to have these BPs review to fit in liberty time frame. Would be better to have BPs sooner done.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"a60177d01c684793ed00704d4dc1bb8283fd2f8f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"This is a part of an effort to have external system to detect fault on a"},{"line_number":57,"context_line":"single compute node mapped to nova-compute service and mark everything related"},{"line_number":58,"context_line":"to that down. This BP addresses the nova-compute part and another BP will"},{"line_number":59,"context_line":"address the marking of all related VMs to error state. Other BPs can be made"},{"line_number":60,"context_line":"for Nova CLI and possibly new notifications."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Example of case as a whole to be addressed:"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_63996c6e","line":59,"in_reply_to":"7ad32947_5fd3ee38","updated":"2015-04-28 10:06:02.000000000","message":"You can add other BPs if needed, if you have them around, the review process may be simultaneously performed for any of them.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":7022,"name":"Adam Huffman","email":"adam.huffman@gmail.com","username":"verdurin"},"change_message_id":"f29ca624fb1f1c058128bb1e13dad6b3fdb2839f","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"JSON schema definitions need no changes."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"API is similar to os-service enable or disable. \"down\" will differenciate only"},{"line_number":119,"context_line":"in response where there will not be \"status\". Instead there will be \"state\":"},{"line_number":120,"context_line":"\"down\"."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_0b82ed52","line":118,"updated":"2015-04-27 15:54:15.000000000","message":"I think this description is a little unclear. Please restate it more explicitly.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"b23e3918731dc909387e282e0111c65e36c50af8","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"JSON schema definitions need no changes."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"API is similar to os-service enable or disable. \"down\" will differenciate only"},{"line_number":119,"context_line":"in response where there will not be \"status\". Instead there will be \"state\":"},{"line_number":120,"context_line":"\"down\"."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_fa0d2838","line":118,"in_reply_to":"7ad32947_0b82ed52","updated":"2015-04-28 07:03:21.000000000","message":"Yes, quite short clause. Something like:\nCurrently there is:\n/v2.1/{tenant_id}/os-services/enable\nand\n/v2.1/{tenant_id}/os-services/disable\nThey have update method that handles both these API calls. Same method could be used to handle also:\n/v2.1/{tenant_id}/os-services/down\nThe request schema remain the same as in enable/disable, but in response \nthere will not be \"status\". Instead there will be \"state\" that is for telling service is \"down\". \"state\" is similarly used in services response messages for:\n/v2.1/​{tenant_id}​/os-services\n/v2.1/​{tenant_id}​/os-services/detail","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"a60177d01c684793ed00704d4dc1bb8283fd2f8f","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"JSON schema definitions need no changes."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"API is similar to os-service enable or disable. \"down\" will differenciate only"},{"line_number":119,"context_line":"in response where there will not be \"status\". Instead there will be \"state\":"},{"line_number":120,"context_line":"\"down\"."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7ad32947_c3bba00d","line":118,"in_reply_to":"7ad32947_fa0d2838","updated":"2015-04-28 10:06:02.000000000","message":"Actually, it is /v2/​{tenant_id}​/os-services, since os-services is an extension API.","commit_id":"8a6f0c32000e69e93fe07b19bec17a45fa659e93"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* nova-compute state change for failed or unreachable host is slow and does"},{"line_number":23,"context_line":"  not reliably state host is down or not. Evacuation cannot happen fast and"},{"line_number":24,"context_line":"  as VMs might still be running, it might lead to reusing same IPs and to data"},{"line_number":25,"context_line":"  corruption in case of shared storage. Also there can be an impact on cloud"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_9af76df5","line":22,"updated":"2015-04-29 14:48:46.000000000","message":"This should not be a bullet, IMHO.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5b186881760cccf154824982e4d4b3d50c304fde","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* nova-compute state change for failed or unreachable host is slow and does"},{"line_number":23,"context_line":"  not reliably state host is down or not. Evacuation cannot happen fast and"},{"line_number":24,"context_line":"  as VMs might still be running, it might lead to reusing same IPs and to data"},{"line_number":25,"context_line":"  corruption in case of shared storage. Also there can be an impact on cloud"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_0a7968f6","line":22,"in_reply_to":"3acd31a7_9af76df5","updated":"2015-05-05 08:54:29.000000000","message":"yes","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API to state nova-compute is down. API needs admin"},{"line_number":55,"context_line":"privileges."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"As future work there could be other BPs made related to this:"},{"line_number":58,"context_line":"* Nova CLI needs similar API."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_9a2acd2b","line":55,"updated":"2015-04-29 14:48:46.000000000","message":"The API needs to be protected by a configurable policy element, not just admin. This needs to be delegatable to some role so that you don\u0027t have to give your scripts admin access to everything.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"019dc4c5cd578a2aa8d8c5c8666fe6067aed7af4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API to state nova-compute is down. API needs admin"},{"line_number":55,"context_line":"privileges."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"As future work there could be other BPs made related to this:"},{"line_number":58,"context_line":"* Nova CLI needs similar API."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_4d11f351","line":55,"in_reply_to":"3acd31a7_587e56e5","updated":"2015-04-30 14:47:25.000000000","message":"++","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9bcac277ad70e08eae922ad85b4564560afa4f0e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"There needs to be a new API to state nova-compute is down. API needs admin"},{"line_number":55,"context_line":"privileges."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"As future work there could be other BPs made related to this:"},{"line_number":58,"context_line":"* Nova CLI needs similar API."}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_587e56e5","line":55,"in_reply_to":"3acd31a7_9a2acd2b","updated":"2015-04-30 13:00:39.000000000","message":"+1.  There is currently an effort to remove hardcoded admin checks.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":55,"context_line":"privileges."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"As future work there could be other BPs made related to this:"},{"line_number":58,"context_line":"* Nova CLI needs similar API."},{"line_number":59,"context_line":"* Possibly new notification of state change."},{"line_number":60,"context_line":"Currently there is an API to put VMs to error state one by one. In case"},{"line_number":61,"context_line":"nova-compute is marked down there could also be BP marking all related VMs to"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_3af179ce","line":58,"updated":"2015-04-29 14:48:46.000000000","message":"IMHO, adding client support for this should be part of the work items of this spec.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5b186881760cccf154824982e4d4b3d50c304fde","unresolved":false,"context_lines":[{"line_number":55,"context_line":"privileges."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"As future work there could be other BPs made related to this:"},{"line_number":58,"context_line":"* Nova CLI needs similar API."},{"line_number":59,"context_line":"* Possibly new notification of state change."},{"line_number":60,"context_line":"Currently there is an API to put VMs to error state one by one. In case"},{"line_number":61,"context_line":"nova-compute is marked down there could also be BP marking all related VMs to"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_6a5e9c77","line":58,"in_reply_to":"3acd31a7_3af179ce","updated":"2015-05-05 08:54:29.000000000","message":"Added that to work items. Earlier had this part defined in this BP, but removed as that API was not to be under this BP while surely should be done in parallel.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9bcac277ad70e08eae922ad85b4564560afa4f0e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Currently there is an API to put VMs to error state one by one. In case"},{"line_number":61,"context_line":"nova-compute is marked down there could also be BP marking all related VMs to"},{"line_number":62,"context_line":"error state via single API call. Also possible notification of this state"},{"line_number":63,"context_line":"change could be added."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Example of case as a whole to be addressed while this BP addresses only the"},{"line_number":66,"context_line":"nova-compute part:"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_b8e56aa9","line":63,"updated":"2015-04-30 13:00:39.000000000","message":"I don\u0027t think an error state is appropriate here.  I would prefer to see this as a power state change.  The error state is very overloaded and doesn\u0027t convey much useful information if used like this.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"019dc4c5cd578a2aa8d8c5c8666fe6067aed7af4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Currently there is an API to put VMs to error state one by one. In case"},{"line_number":61,"context_line":"nova-compute is marked down there could also be BP marking all related VMs to"},{"line_number":62,"context_line":"error state via single API call. Also possible notification of this state"},{"line_number":63,"context_line":"change could be added."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Example of case as a whole to be addressed while this BP addresses only the"},{"line_number":66,"context_line":"nova-compute part:"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_8d814b4d","line":63,"in_reply_to":"3acd31a7_b8e56aa9","updated":"2015-04-30 14:47:25.000000000","message":"agree, nothing wrong here and instance is able to be used ERROR state change not be changed here","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"019dc4c5cd578a2aa8d8c5c8666fe6067aed7af4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  vm_state: active and power_state: running"},{"line_number":71,"context_line":"* When compute node goes down because of fault, status should be like this:"},{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":"  vm_state: error power_state: down"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Alternatives"},{"line_number":76,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_2de8f70f","line":73,"updated":"2015-04-30 14:47:25.000000000","message":"ditto","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":79,"context_line":"to have a external tool to detect different host faults. For this kind of tool"},{"line_number":80,"context_line":"to exist there needs to be new API in Nova to report fault. Currently there"},{"line_number":81,"context_line":"must have been some kind of workarounds implemented as cannot trust or get the"},{"line_number":82,"context_line":"states from OpenStack fast enough."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_5aa0b590","line":82,"updated":"2015-04-29 14:48:46.000000000","message":"What about when using zk for servicegroup management? Would that provide another way to do this? Would this conflict with that sort of deployment in any way?","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f4e11de93e1a6875c38c2e048860143d753fe07c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"to have a external tool to detect different host faults. For this kind of tool"},{"line_number":80,"context_line":"to exist there needs to be new API in Nova to report fault. Currently there"},{"line_number":81,"context_line":"must have been some kind of workarounds implemented as cannot trust or get the"},{"line_number":82,"context_line":"states from OpenStack fast enough."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_844a4782","line":82,"in_reply_to":"3acd31a7_383b9aed","updated":"2015-04-30 14:22:40.000000000","message":"No, I\u0027m making sure that this new API can exist without conflicting with an active service group technology like zk. Something like zk that can detect failures quickly and/or re-add nodes quickly could conflict and override this decision if not done properly.\n\nI\u0027m very much in favor of making this a flag (or whatever) that an external tool can set, I just want to make sure we\u0027re not chasing down two incompatible goals, with the other one being better zk support in liberty.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"c57835d59061964364b94a3a966d57f9bf7c7b5b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"to have a external tool to detect different host faults. For this kind of tool"},{"line_number":80,"context_line":"to exist there needs to be new API in Nova to report fault. Currently there"},{"line_number":81,"context_line":"must have been some kind of workarounds implemented as cannot trust or get the"},{"line_number":82,"context_line":"states from OpenStack fast enough."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_e0f22706","line":82,"in_reply_to":"3acd31a7_5aa0b590","updated":"2015-04-30 10:27:19.000000000","message":"IIRC zookeeper driver update the status (almost) immediately, if one of its nodes disappears. In this particular case this API call will have no impact at all. Sadly, zk driver is not working anymore (https://bugs.launchpad.net/nova/+bug/1443910).","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"8f2e858d760fc8bf838bf5105a71f8884080d68d","unresolved":false,"context_lines":[{"line_number":79,"context_line":"to have a external tool to detect different host faults. For this kind of tool"},{"line_number":80,"context_line":"to exist there needs to be new API in Nova to report fault. Currently there"},{"line_number":81,"context_line":"must have been some kind of workarounds implemented as cannot trust or get the"},{"line_number":82,"context_line":"states from OpenStack fast enough."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_f42e26f9","line":82,"in_reply_to":"3acd31a7_844a4782","updated":"2015-05-01 17:50:47.000000000","message":"Gotcha.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9bcac277ad70e08eae922ad85b4564560afa4f0e","unresolved":false,"context_lines":[{"line_number":79,"context_line":"to have a external tool to detect different host faults. For this kind of tool"},{"line_number":80,"context_line":"to exist there needs to be new API in Nova to report fault. Currently there"},{"line_number":81,"context_line":"must have been some kind of workarounds implemented as cannot trust or get the"},{"line_number":82,"context_line":"states from OpenStack fast enough."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_383b9aed","line":82,"in_reply_to":"3acd31a7_e0f22706","updated":"2015-04-30 13:00:39.000000000","message":"Dan, are you suggesting zk as another api to use for signaling failure, or that it would know when a host is down?\n\nThere are enough different deployment scenarios, and definitions of failure, that I think declaring a host down is best left to outside tools.  An example case that Nova can\u0027t manage well right now would be the xen hypervisor where the compute is on a VM that could fail/disappear while running instances are completely unaffected.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* None"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"REST API impact"},{"line_number":90,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_3a93b9fc","line":87,"updated":"2015-04-29 14:48:46.000000000","message":"We don\u0027t  have a way to signal that a service is down, other than that the updated_at is old enough. Certainly you\u0027re not going to just fudge that updated_at (or the last_seen_at) to some incorrect time to signal the service being down, are you?","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"c4ce1236de62c35e6269c8d098e470f4b20b5301","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* None"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"REST API impact"},{"line_number":90,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_6d782fc5","line":87,"in_reply_to":"3acd31a7_3a93b9fc","updated":"2015-04-30 15:02:13.000000000","message":"Agreed, we should add a DB field to represent \"forced_down\" or \"reported_down\" or something like that.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5b186881760cccf154824982e4d4b3d50c304fde","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* None"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"REST API impact"},{"line_number":90,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_b01bddc9","line":87,"in_reply_to":"3acd31a7_6d782fc5","updated":"2015-05-05 08:54:29.000000000","message":"Choosed forced_down  as do not need to report up.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"019dc4c5cd578a2aa8d8c5c8666fe6067aed7af4","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Update Compute API to report host is down:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  PUT /v2.1/{tenant_id}/os-services/down"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Normal response codes: 200"},{"line_number":97,"context_line":"  Request parameters"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_8de26b02","line":94,"updated":"2015-04-30 14:47:25.000000000","message":"do we need a \u0027up\u0027 in case wrong actions to a host which should not be changed?","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ab9827dd6b5be5332e6da67f3c6655c3f4248d59","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Update Compute API to report host is down:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  PUT /v2.1/{tenant_id}/os-services/down"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Normal response codes: 200"},{"line_number":97,"context_line":"  Request parameters"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_a6a08fa0","line":94,"in_reply_to":"3acd31a7_6db14f8f","updated":"2015-05-01 10:12:47.000000000","message":"perhaps a reported_state feild  with two values up,down would be better.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"c4ce1236de62c35e6269c8d098e470f4b20b5301","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Update Compute API to report host is down:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  PUT /v2.1/{tenant_id}/os-services/down"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Normal response codes: 200"},{"line_number":97,"context_line":"  Request parameters"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_6db14f8f","line":94,"in_reply_to":"3acd31a7_8de26b02","updated":"2015-04-30 15:02:13.000000000","message":"If we add a new DB field like Dan suggests (\"forced_down\" or something like that) then it would probably make sense to add an \"up\".","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"5b186881760cccf154824982e4d4b3d50c304fde","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Update Compute API to report host is down:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  PUT /v2.1/{tenant_id}/os-services/down"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Normal response codes: 200"},{"line_number":97,"context_line":"  Request parameters"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_904c619f","line":94,"in_reply_to":"3acd31a7_a6a08fa0","updated":"2015-05-05 08:54:29.000000000","message":"It is not necessary to report back up via API. When nova-compute is able to report again state should change quite fast. forced_down should be enough and only API to report down.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"      }"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  }"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"JSON schema definitions need no changes."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_5af55581","line":118,"updated":"2015-04-29 14:48:46.000000000","message":"I don\u0027t recognize the above as valid JSON. Are those two requests or one? Also, posting something like the above to /down doesn\u0027t seem very RESTful to me. Shouldn\u0027t this be something like:\n\n /v2.1/{tenant_id}/os-services/compute/host1\n\n?","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":124,"context_line":"/v2.1/{tenant_id}/os-services/down."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"With referenced dependent BP, the Nova DB shall have the \"last_seen_up\" that"},{"line_number":127,"context_line":"can be updated to have the service down."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Security impact"},{"line_number":130,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":15,"id":"3acd31a7_bae7c9ab","line":127,"updated":"2015-04-29 14:48:46.000000000","message":"Are you saying you\u0027re going to modify last_seen_up as part of such a request? Will the user be able to set the service as \"up\" using this API as well? What happens if the service is partially down in some way, we set it as \"down\" and it keeps occasionally checking in and resetting itself to \"up\" ?","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f9dd17581d0a71e1445f552396b5e927bab8c815","unresolved":false,"context_lines":[{"line_number":184,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Test case needs to be added to test new API changes to mark nova-compute state"},{"line_number":187,"context_line":"down."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Documentation Impact"},{"line_number":190,"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":15,"id":"3acd31a7_5a7435ce","line":187,"updated":"2015-04-29 14:48:46.000000000","message":"What sorts of tests? I think we need unit and functional tests for this at least.","commit_id":"ec50de2b1a8073da19a5c7efd0af19072cc3c343"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b6c64c225838abaa07f56a2c50fe31a33ea6b783","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_e8e39fd7","line":85,"updated":"2015-05-05 16:20:27.000000000","message":"Does a service reporting in override the forced_down state?\n\nWhat if we have a badly backlogged message broker, where many \"I\u0027m up\" messages are queued and *then* a host goes down? If we force it down to do the evacuation and the messages keep trickling in from the backlog then it will continue to revert itself back to up state, right?","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"660d2a253dabb2cf17f2b8b5cd4eea5b63c7f481","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9af37de9_c3561606","line":85,"in_reply_to":"1aca2d91_2f5bf4f7","updated":"2015-05-10 12:14:41.000000000","message":"Dan, so in this case, it could be something like:\n\n PUT /v2.1/{tenant-id}/os-services/force-down\n {\"binary\": \"nova-compute\", \"host\": \"host1\", forced-down: true}\n\nfor setting flag, and:\n\n PUT /v2.1/{tenant-id}/os-services/force-down\n {\"binary\": \"nova-compute\", \"host\": \"host1\", forced-down: false}\n\nto clear flag out. Does it make sense?","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b9312dd79b9104ecf65d5713dbf2d8cb3178f4d7","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_2f5bf4f7","line":85,"in_reply_to":"1aca2d91_94d850f1","updated":"2015-05-08 23:27:35.000000000","message":"IMHO, you can force something down, clear that flag. In other words, you can\u0027t force it up. So, you\u0027d clear the flag when you\u0027re done, but the service has to check in normally to be \"up\" again.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"fd849bf3fc1b8af2671d65840d693b0e91ee1875","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_94d850f1","line":85,"in_reply_to":"3acd31a7_9cdd89e2","updated":"2015-05-06 12:38:34.000000000","message":"if we report state up to have forced_down as false, it will not actually yet be what we see if querying nova-compute state since that will change up only after timestamp reported. What I mean is that it is a bit confusing to report state up, while it actually will not be so as nova-compute state. It is then that nova-compute is allowed to come up. Generally I like this idea of having up and down, but then it comes to what API should actually look like. Could be discussed on comments for line 110, that is more the API shape.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ef6e8bc4030f6ba2e7c2bed427f272cd51fea8cd","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_b7373e4c","line":85,"in_reply_to":"3acd31a7_abb6c1f6","updated":"2015-05-05 19:18:30.000000000","message":"+1\nif the external monitoring system forcibly  sets the compute service to down then i think it makes sence to treat it as down until the external monitoring system agrees and set the forced_down flag to false.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"ea61423295913a2caf0be478089c648194e1c2a8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_9cdd89e2","line":85,"in_reply_to":"3acd31a7_abb6c1f6","updated":"2015-05-05 19:59:40.000000000","message":"Does it mean, that using this flag we will end up to be depended on external system to enable the compute service again? If so, than it have to be passed as state in the payload or introduce another api call, for the putting the service up again.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6259f96d7efdeba5c30c2daf10c34ce43ef65a8d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_77af662a","line":85,"in_reply_to":"3acd31a7_abb6c1f6","updated":"2015-05-05 19:15:59.000000000","message":"I almost wonder if it makes sense to make nova-compute abort startup if it is forced-down. Normally we try to avoid this at all costs, but in this case, it might be better. So, if we were forced down and we start back up, we bail if we\u0027re still forced down, to avoid starting any new resources, deleting things we might think need to be deleted, etc.\n\nWe could also opt for going into a slow polling loop and logging the fact that we\u0027re waiting to be un-forced-down before we start.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"090478797b3cd14966024bbd3e5e06dd12ab8931","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_abb6c1f6","line":85,"in_reply_to":"3acd31a7_e8e39fd7","updated":"2015-05-05 16:42:08.000000000","message":"This is a good point.\n\nHaving the external monitor take priority also makes the code more logical.  Doing it that way, \u0027forced_down\u0027 is only set/cleared by the REST API, not internal nova code.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"73cbd685b340f98f3952b39d0f30bccc798a97c8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. There will only be need"},{"line_number":84,"context_line":"for setting nova-compute down since reporting back up will be pretty fast when"},{"line_number":85,"context_line":"service able to report the state again."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a0c5dc1_eaecf52a","line":85,"in_reply_to":"9af37de9_c3561606","updated":"2015-05-13 16:15:30.000000000","message":"Yes, this is what I meant. There should be no forced-up\u003dTrue, and forced-down:False does not imply \"up\"","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ef6e8bc4030f6ba2e7c2bed427f272cd51fea8cd","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  Style:        URI"},{"line_number":104,"context_line":"  Type:         xsd:string"},{"line_number":105,"context_line":"  Description:  The name of the host of interest to you."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_f77ff6dd","line":106,"updated":"2015-05-05 19:18:30.000000000","message":"i think this would read better if you moved the url to here form line 92\n\nrequest:\n\nPUT /v2/{tenant_id}/os-services/compute/{host_name}\n\n{\n\n\"service\": {\n   \n    \"state\": \"down\"\n\n    }\n\n}","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b6c64c225838abaa07f56a2c50fe31a33ea6b783","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_88d30b04","line":110,"updated":"2015-05-05 16:20:27.000000000","message":"Is this the request?","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"449d2e0c331be661c088d603124c6768a207fe78","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_76c9f777","line":110,"in_reply_to":"1aca2d91_73690e25","updated":"2015-05-07 19:10:56.000000000","message":"Guys, guys, please. Let\u0027s focus on one thing at the time.\n\nI agree, that there should be coherent interface for the API, but it is not this blueprint topic. I think that it might be beneficial for us, that making the call for changing the forced_down flag look similar to existing calls in the os-services extension, will help in the future with smooth transition to the desired form. Providing form for single api call which will differ from the others brings only confusion.\n\nI believe, that for such big changes like API, there is a need for a separate blueprint, isn\u0027t it?","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"67622e548a5d89755df3a0a12fe29b0bb8348569","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_b9a420a6","line":110,"in_reply_to":"1aca2d91_76c9f777","updated":"2015-05-07 19:21:18.000000000","message":"Roman, v2 is frozen. Nothing can be added there, so this *has* to be v2.1.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"aacd9a97dce2772e67b860b00dc23aeb23edfea2","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_73690e25","line":110,"in_reply_to":"1aca2d91_98ba8c09","updated":"2015-05-07 16:38:21.000000000","message":"yes i would be very much in vavor of  using a v2.1 endpoint\n\nas /v2.1/​os-services/ is not defientd  the service endpoint could be\n\n/v2.1/​os-services/{id} \n\nrequest:\nPUT /v2.1/os-services/{id} \n{\n    \"state\": \"down\",\n    \"forced_down\": \"TRUE\"\n}\n\nresponse:\n{\nservice:{\n            \"binary\": \"nova-compute\",\n            \"host\": \"host1\",\n            \"forced_down\": \"TRUE\",\n            \"state\": \"down\",\n            \"status\": \"enabled\",\n            \"updated_at\": \"2012-10-29T13:42:02.000000\",\n            \"zone\": \"internal\"\n        }\n}\n\n\nthe service is not related to the tenant so i don\u0027t think having the tenant id is appropriate in the url. using the v2.1 api would allow the tenat id to be removed.\n\nyou would also need the following endpoint to support querying and creating the services   \n\nGET /v2.1/​os-services/        list all services\n\nGET /v2.1/​os-services/{id}   get details of service {id}","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"fe77deb663365446c35454c3f8ff9644172fb4bc","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_affe2936","line":110,"in_reply_to":"1aca2d91_a4ac1036","updated":"2015-05-07 11:43:10.000000000","message":"Looking on the other update (PUT) method for the os-services, I was rather leaned toward the existing convention - so the url ends with the action we are calling (enable, disable, disable-log-reason) and the payload would contain the parameters needed to perform such action.\n\nSo for this very BP, I would opt for something like:\n\n    PUT /v2/{tenant_id}/os-services/force-down\n    {\n        \"host\": \"host1\",\n        \"binary\": \"nova-compute\",\n        \"state\": \"down\"\n    }\n\nso we got everything we need to proceed, and the interface is pretty the same like the other calls.\n\nI know, that\u0027s far from perfect, but let me stress it again, the topic of this BP is not about changing the interface of the os-services extension. I bet, that there are dozen ways to make it better, but let\u0027s not unleash chaos for currently existing convention :)","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8af8f3c6b85308152ced9c8aa49b4f69c168d10","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_ca14b345","line":110,"in_reply_to":"1aca2d91_a4ac1036","updated":"2015-05-07 11:53:14.000000000","message":"sorry the last sentence should be  representation of that service not state eg\n {\n            \"binary\": \"nova-compute\",\n            \"host\": \"host1\",\n            \"state\": \"up\",\n            \"status\": \"disabled\",\n            \"updated_at\": \"2012-10-29T13:42:02.000000\",\n            \"zone\": \"internal\"\n        },\n\nhowever following the thread of comment on the there should also be a forced_down field.\n\nso \n\nPUT /v2/​{tenant_id}​/os-services/\n{\n    \"host\": \"host1\",\n    \"binary\": \"nova-compute\",\n    \"state\": \"down\",\n    \"forced_down\": \"TRUE\"\n}\n\nand \n\nPUT /v2/​{tenant_id}​/os-services/\n{\n    \"host\": \"host1\",\n    \"binary\": \"nova-compute\",\n    \"state\": \"up\",\n    \"forced_down\": \"FALSE\"\n}\n\nor \n\nPUT /v2/​{tenant_id}​/os-services/{service-binary}/{host-name}\n  {\n    \"service\": {\n      \"state\": \"down\"\n      \"forced_down\": \"TRUE\"\n    }\n  }\n\n\nPUT /v2/​{tenant_id}​/os-services/{service-binary}/{host-name}\n  {\n    \"service\": {\n      \"state\": \"up\"\n      \"forced_down\": \"FALSE\"\n    }\n  }","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"660d2a253dabb2cf17f2b8b5cd4eea5b63c7f481","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9af37de9_c3f29606","line":110,"in_reply_to":"1aca2d91_b9a420a6","updated":"2015-05-10 12:14:41.000000000","message":"Even so, v2.1 have exactly the same look of the URI and payload for the os-services calls as the extensions api in v2. My point is still valid. The solution is either we change them all to be more RESTful, or stick with existing convention. Changing single call will bring more confusion IMHO.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":14018,"name":"Gábor Takács","email":"gabor.n.takacs@gmail.com","username":"gabor"},"change_message_id":"e5d855643af1f5c9a0ba46caaa8587082466fd4f","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_98ba8c09","line":110,"in_reply_to":"1aca2d91_ca14b345","updated":"2015-05-07 14:19:51.000000000","message":"Why not use Compute API v2.1 instead of v2?\n\nAlso there is a \"wish\" bug request for cleaning up this endpoint \nhttps://bugs.launchpad.net/nova/+bug/1217026. I started working on a few weeks ago. It will make the endpoint look like other compute endpoints ex.: /v2.1/​{tenant_id}​/os-services/{id}\n\nMaybe it can be useful for you?","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a6a852db3904821e46cc1a534be23d693a2ac7c7","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_a4ac1036","line":110,"in_reply_to":"1aca2d91_eeb8d5e7","updated":"2015-05-07 11:19:32.000000000","message":"hi yes i had assumed that compute would be parametrized at some point. \n\nanother options is simply this\n\n PUT /v2/​{tenant_id}​/os-services/\n  {\n       \"host\": \"host1\",\n       \"binary\": \"nova-compute\",\n       \"state\": \"down\"\n  }\nthis is a more restful approach then having a function based url and keeps the same payload structure of the current put methods.\n\nmy main issue with PUT /v2/​{tenant_id}​/os-services/disable\nis that it is a function url ie the payload is the input to a a function that is invoked on the resource. normally in a rest api it should contain the updates state of the resource.it is very hard to change or remove an interface from an api after it is added\n\nidealy if each service instance had a unique id you would to a put to a url such as  /v2/​{tenant_id}​/os-services/{id} instead\nsimilarly a get to the same url should return the the state of that service","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"ea61423295913a2caf0be478089c648194e1c2a8","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_f7cdb631","line":110,"in_reply_to":"3acd31a7_88d30b04","updated":"2015-05-05 19:59:40.000000000","message":"This one is a payload for the PUT call for /v2/{tenant_id}/os-services/compute/{host-name}\n\nAnd BTW, why not stick with the existing convention for the os-services extension? Like, for example enable call: http://developer.openstack.org/api-ref-compute-v2-ext.html#enableScheduling ?","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"efc04f16a8b16b15d6b133fabe120bebd719a748","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_eeb8d5e7","line":110,"in_reply_to":"3acd31a7_f7cdb631","updated":"2015-05-06 11:55:43.000000000","message":"Let\u0027s stop for a minute on these requests. Looking for the docs, I\u0027ve linked in my comment above, I\u0027d like to discuss either we go the way Dan and Sean are suggesting, or maybe we should go with existing convention despite the fact how unRESTful it is :)\n\nFor os-services currently we have five actions:\n\n- /v2/​{tenant_id}​/os-services (GET)\n- /v2/​{tenant_id}​/os-services/enable (PUT)\n- /v2/​{tenant_id}​/os-services/disable (PUT)\n- /v2/​{tenant_id}​/os-services/disable-log-reason (PUT)\n- /v2/​{tenant_id}​/os-services/detail (GET)\n\nall of the PUT methods accepts payload, which looks like this, for example:\n\n  PUT /v2/​{tenant_id}​/os-services/disable\n  {\n    \"host\": \"host1\",\n    \"binary\": \"nova-compute\"\n  }\n\nwith except of the \"disable-log-reason\", where additional filed \"disabled_reason\" is required.\n\nSaid that, I\u0027m just wondering, why we don\u0027t just stick with that convention during adding new API calls, and following the examples Dan and Sean are proposed, so for the request the payload will looks like this:\n\n  PUT /v2/​{tenant_id}​/os-services/{service-binary}/{host-name}\n  {\n    \"service\": {\n      \"state\": \"down\"\n    }\n  }\n\n(The \"service-binary\" is hardcoded in this BP as \"compute\", but there is nothing to prevent to actually parametrize it)\n\nI think that stick with single convention would be beneficial, while adding something which would look kind of strange contrary to the other calls might be confusing.\n\nPersonally I would go with single, coherent convention. It doesn\u0027t mean that we should stick with it forever - we can change it - however, I don\u0027t think that it is the topic of this BP :)\n\nThoughts?","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"73cbd685b340f98f3952b39d0f30bccc798a97c8","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  {"},{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9a0c5dc1_6aca4570","line":110,"in_reply_to":"9af37de9_c3f29606","updated":"2015-05-13 16:15:30.000000000","message":"Are you saying that the v2 services PUT request is currently not wrapped properly?\n\nRegardless, this is really not something we need to work out here, I don\u0027t think. I think the example should be wrapped so it looks proper (as I asked) and then we can work out the impact to the current code in the code reviews, if we need to do something differently.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ef6e8bc4030f6ba2e7c2bed427f272cd51fea8cd","unresolved":false,"context_lines":[{"line_number":108,"context_line":"      \"state\": \"down\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  }"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  {"},{"line_number":113,"context_line":"      \"service\": {"},{"line_number":114,"context_line":"          \"host\": \"host1\","}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_d7807ac1","line":111,"updated":"2015-05-05 19:18:30.000000000","message":"response:","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b6c64c225838abaa07f56a2c50fe31a33ea6b783","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"      }"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"JSON schema definitions need no changes."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_a8e927b9","line":120,"updated":"2015-05-05 16:20:27.000000000","message":"Is this the response? If so, please denote them as such. I also don\u0027t think that this looks RESTful as the request should look like the response, no? i.e. it should be wrapped in {\"service\": ... }","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"660d2a253dabb2cf17f2b8b5cd4eea5b63c7f481","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"      }"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"JSON schema definitions need no changes."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"9af37de9_63daca7a","line":120,"in_reply_to":"1aca2d91_cf0120b1","updated":"2015-05-10 12:14:41.000000000","message":"Dan, see my last comment on line 110","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b9312dd79b9104ecf65d5713dbf2d8cb3178f4d7","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"      }"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"JSON schema definitions need no changes."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_cf0120b1","line":120,"in_reply_to":"3acd31a7_22976eed","updated":"2015-05-08 23:27:35.000000000","message":"Yeah, so this one is wrapped properly. The request above is not, IMHO. It needs to be wrapped in {\u0027service\u0027: $this}","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"ea61423295913a2caf0be478089c648194e1c2a8","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"      }"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"  }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"JSON schema definitions need no changes."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_22976eed","line":120,"in_reply_to":"3acd31a7_a8e927b9","updated":"2015-05-05 19:59:40.000000000","message":"Yes, it\u0027s a response, and I believe it\u0027s wrapped correctly, so the proper resposnse would be: {\"service\": {\"state\": \"down\", \"binary\": \"nova-compute\", \"host\": \"host1\"}}","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ef6e8bc4030f6ba2e7c2bed427f272cd51fea8cd","unresolved":false,"context_lines":[{"line_number":130,"context_line":"--------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None. New notification about \u0027nova-compute reported down\u0027 could be separate"},{"line_number":133,"context_line":"BP."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Other end user impact"},{"line_number":136,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_17bef264","line":133,"updated":"2015-05-05 19:18:30.000000000","message":"if it is intended for liberty can a link be added if it is currently being worked on.\n\nalternatively this could be covered by this blueprint and the implementation \n\ncould still be a separate patchset from the main proposed change.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"d45f7bab874984330ece2ab9791024dfdc0c2139","unresolved":false,"context_lines":[{"line_number":130,"context_line":"--------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None. New notification about \u0027nova-compute reported down\u0027 could be separate"},{"line_number":133,"context_line":"BP."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Other end user impact"},{"line_number":136,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3acd31a7_5d1b6b73","line":133,"in_reply_to":"3acd31a7_17bef264","updated":"2015-05-05 20:02:15.000000000","message":"I plan to provide the implementation within a day or so.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b9312dd79b9104ecf65d5713dbf2d8cb3178f4d7","unresolved":false,"context_lines":[{"line_number":130,"context_line":"--------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None. New notification about \u0027nova-compute reported down\u0027 could be separate"},{"line_number":133,"context_line":"BP."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Other end user impact"},{"line_number":136,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1aca2d91_6f332cac","line":133,"in_reply_to":"3acd31a7_5d1b6b73","updated":"2015-05-08 23:27:35.000000000","message":"I think you do want to notify on force-down and un-force-down or whatever.","commit_id":"e9bd508f9e151762ee09350be9e20167604b77ef"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5ad26d8601da0d744236b39d3f17d50ea5837032","unresolved":false,"context_lines":[{"line_number":82,"context_line":"updated to use this to determine service state is down in case value is true."},{"line_number":83,"context_line":"Otherwise current timestamp based usage is expected. Only when ``forced_down``"},{"line_number":84,"context_line":"flag will be set back to false will nova-compute be allowed to come up and"},{"line_number":85,"context_line":"have the state reported up."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"REST API impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a016987_fd7ccb73","line":85,"updated":"2015-05-15 14:02:51.000000000","message":"This assume we already read the DB service table.\n\nI guess in general this might have a specific implementation in different service groups, eventually, and thats fine.","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df9910c0810d4def41e200206cc23e8b7386179f","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  request::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"      PUT /v2.1/{tenant_id}/os-services/force-down"},{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_6ad7e5bf","line":95,"updated":"2015-05-13 16:27:25.000000000","message":"I don\u0027t think this is right. This should not include the \"force-down\" part right? Since it\u0027s in the request body...","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3cf51a6e9700a353b8a9e0adb2863a11891ad146","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  request::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"      PUT /v2.1/{tenant_id}/os-services/force-down"},{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_d008c0db","line":95,"in_reply_to":"9a0c5dc1_6ad7e5bf","updated":"2015-05-13 17:03:01.000000000","message":"+1","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c96a1e9f5ccc31385e204685397af3682e3924e0","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  request::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"      PUT /v2.1/{tenant_id}/os-services/force-down"},{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_f51296b3","line":95,"in_reply_to":"9a0c5dc1_6ad7e5bf","updated":"2015-05-13 16:44:38.000000000","message":"I see this API is really stupid and uses this, which should be an ident, in order to determine the action. I think we could re-use one of the existing ones like \"enabled\" to avoid further pollution, but either way...","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2a023192c2c3ce15825221558d1082f9bdbea36d","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  request::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"      PUT /v2.1/{tenant_id}/os-services/force-down"},{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_eadd1043","line":95,"in_reply_to":"9a0c5dc1_706914be","updated":"2015-05-13 17:50:12.000000000","message":"\"enable\", \"disable\" and \"disable-log-reason\"  are part of the 2.0 api but i think it would be much cleaner in 2.1 not to follow that patten of \"function\" uri.\n\none other question regarding the uri structure.\nis there a particular reason the {tenant_id} is included in the uri?\nenableing/disableing an openstack  service could effect multiple tenants.\n\nif we are defining a v2.1 api for os-services i think it would be a good opertuinty to remove this feild as has been done in other v2.1 apis.\n\nfor example the v2 server endpoint was ​{tenant_id}​/servers in v2.1 it is /v2.1/servers\n\nsee http://developer.openstack.org/api-ref-compute-v2.1.html vs http://developer.openstack.org/api-ref-compute-v2.html","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2a023192c2c3ce15825221558d1082f9bdbea36d","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  request::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"      PUT /v2.1/{tenant_id}/os-services/force-down"},{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_0ad4e444","line":95,"in_reply_to":"9a0c5dc1_d008c0db","updated":"2015-05-13 17:50:12.000000000","message":"this +1 was to dan smith\u0027s orgininal comment on line 95","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"32da2453cd027483f0dff00f5f5e752e8361387b","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  request::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"      PUT /v2.1/{tenant_id}/os-services/force-down"},{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_706914be","line":95,"in_reply_to":"9a0c5dc1_f51296b3","updated":"2015-05-13 17:25:09.000000000","message":"Yeah, that\u0027s the thing I was trying to point at in few previous comments :D\n\nRe-using is not an option, since \"enable\", \"disable\" and \"disable-log-reason\" are actually used by the nova client. In current state I believe that adding another action at the end of \"os-services\" endpoint will not be that big pollution as the current state of the services API itself, don\u0027t you think? ;)","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df9910c0810d4def41e200206cc23e8b7386179f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_ca5a5183","line":100,"updated":"2015-05-13 16:27:25.000000000","message":"Okay, I see now that this is broken in our current V2 API, not properly wrapped in {service: $this}. I would put a comment here to note that, potentially with this url:\n\nhttps://github.com/openstack/nova/blob/master/doc/api_samples/os-services/service-enable-put-req.json\n\nJust so it doesn\u0027t trip up other reviewers.","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df9910c0810d4def41e200206cc23e8b7386179f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":109,"context_line":"              \"forced-down\": true"},{"line_number":110,"context_line":"          }"},{"line_number":111,"context_line":"      }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  request::"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_0ac86921","line":111,"updated":"2015-05-13 16:27:25.000000000","message":"This is what it should look like, and does on resp (just not on req):\n\nhttps://github.com/openstack/nova/blob/master/doc/api_samples/os-services/service-enable-put-resp.json","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df9910c0810d4def41e200206cc23e8b7386179f","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Security impact"},{"line_number":140,"context_line":"---------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"API call needs admin privileges (in the default policy configuration)."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Notifications impact"},{"line_number":145,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_4afd4139","line":142,"updated":"2015-05-13 16:27:25.000000000","message":"I think you should remove this and say \"this will be configurable by policy, defaulting to is_admin\u003dTrue\"","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ba0647eda2ea004cf4d1025b0b2c7a41ff68254b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Security impact"},{"line_number":140,"context_line":"---------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"API call needs admin privileges (in the default policy configuration)."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Notifications impact"},{"line_number":145,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a016987_60935950","line":142,"in_reply_to":"9a0c5dc1_4afd4139","updated":"2015-05-18 18:40:58.000000000","message":"+1","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df9910c0810d4def41e200206cc23e8b7386179f","unresolved":false,"context_lines":[{"line_number":145,"context_line":"--------------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"None. New notification about \u0027nova-compute state change\u0027 could be separate"},{"line_number":148,"context_line":"BP."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Other end user impact"},{"line_number":151,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_8a8a19be","line":148,"updated":"2015-05-13 16:27:25.000000000","message":"I think it should include the notifications (a couple lines of code at most), but I will defer to others\u0027 on whether or not to require it for merging.","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ba0647eda2ea004cf4d1025b0b2c7a41ff68254b","unresolved":false,"context_lines":[{"line_number":145,"context_line":"--------------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"None. New notification about \u0027nova-compute state change\u0027 could be separate"},{"line_number":148,"context_line":"BP."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Other end user impact"},{"line_number":151,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a016987_80909544","line":148,"in_reply_to":"9a0c5dc1_8a8a19be","updated":"2015-05-18 18:40:58.000000000","message":"I think a notification should be a part of this.  If it\u0027s not in the spec we can require it in the code review, but given that I think it would be good to call out here.","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3cf51a6e9700a353b8a9e0adb2863a11891ad146","unresolved":false,"context_lines":[{"line_number":145,"context_line":"--------------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"None. New notification about \u0027nova-compute state change\u0027 could be separate"},{"line_number":148,"context_line":"BP."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Other end user impact"},{"line_number":151,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_d061e0a9","line":148,"in_reply_to":"9a0c5dc1_8a8a19be","updated":"2015-05-13 17:03:01.000000000","message":"i think notifications would be useful to include in this spec. but i dont feel strongly that it should be required.","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df9910c0810d4def41e200206cc23e8b7386179f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Performance Impact"},{"line_number":156,"context_line":"------------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"None. API call should rarely be called."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Other deployer impact"},{"line_number":161,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9a0c5dc1_6aac8535","line":158,"range":{"start_line":158,"start_character":6,"end_line":158,"end_character":39},"updated":"2015-05-13 16:27:25.000000000","message":"This is not really relevant, and makes it sound like it\u0027s massively inefficient, but okay because it\u0027s not often called. Just say \"none\" here.","commit_id":"29b4ada9c7dfecbf6a4210d51f8b36e6a3104920"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"486c1e711aa667b71f0f1d67e7a7515b9ca1de9c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_ef12bfb3","line":99,"updated":"2015-06-03 10:02:46.000000000","message":"I would suggest a minor change: snake casing \u0027force-down\u0027 to \u0027force_down\u0027 to follow other API attributes and reduce impact on client side.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2be6e348a064ef5c1ffc58508a23800b64a19a44","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_5938413d","line":99,"updated":"2015-05-19 22:33:13.000000000","message":"The parameter\n\n \"forced-down\": true\n\nseems unnecessary because force-down is already specified as the part of URI(line 95).\nThe other service APIs don\u0027t contain this kind of parameter, so the above parameter seems inconsistent.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fb4465d51a5da7ab82fcaa1fcfafd163ea2633f9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_3ae5db08","line":99,"in_reply_to":"5afe65bd_292b6932","updated":"2015-06-02 16:13:32.000000000","message":"I read this three cases many times, but I feel they just mention differences and independency of field meanings. So I could not find more merit of that, but I am OK if many people prefer current design as I mentioned before.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a90dfb7ecbcb3c86ad0ab32bb98221fe3dfc61d7","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_fc950440","line":99,"in_reply_to":"5afe65bd_292b6932","updated":"2015-06-02 15:35:24.000000000","message":"I think this a) has been the thing to do by discussions so far.\n\n\"nova service list\" needs certainly the indication of forced down one way or the other, but like mentioned there is another BP for that.Surely needs to agree the format of that CLI output.\n\nLater on also in mind to have indication of \"host forced down\" as new flag for VM, but that will be later after these BPs implemented. This is important for users as they query VM state, not nova-compute.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f5ca6e2df5bf5f58c363fcfa5bd9c437e6c52a45","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_ca649ae6","line":99,"in_reply_to":"5afe65bd_3ae5db08","updated":"2015-06-03 06:49:17.000000000","message":"Ken\u0027ichi,\n\nOk, maybe I\u0027ve gone too far with the examples here. What I\u0027ve tried to show was what options do we have regarding how and where to put the information about forced-down state :)","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"d86bb02292d73047e5c7c98580fb9e4b7c9c6844","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_ae15e049","line":99,"in_reply_to":"5afe65bd_ae7040dd","updated":"2015-06-03 13:51:48.000000000","message":"json part, hence my comment inline 99 :-)","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f5ca6e2df5bf5f58c363fcfa5bd9c437e6c52a45","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_4a3b0a9d","line":99,"in_reply_to":"5afe65bd_d7b6a2db","updated":"2015-06-03 06:49:17.000000000","message":"Ken\u0027ichi,\n\n\u003e novaclient just outputs response which comes from Nova basically. So REST API design affects novaclient output.\n\nWell, not really. I\u0027ve done the check for the service-list:\n\nnova --debug --service-type \"compute\" service-list\n\nand\n\nnova --debug --service-type \"computev21\" service-list\n\nand the table output was exactly the same for both of invocations, despite the fact, that json response for v2.1 api had the \u0027forced_down\u0027 field for every service.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"e8234685bb1e71c358e63ab176ebe83e7b0298fe","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_ae7040dd","line":99,"in_reply_to":"5afe65bd_ef12bfb3","updated":"2015-06-03 13:50:20.000000000","message":"Carlos, are you talking about the uri or json part?","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"4cf2977e24e7ff4c929d2e042bcb259f7d9cdd5b","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_0a3069e7","line":99,"in_reply_to":"5afe65bd_ef12bfb3","updated":"2015-06-03 10:10:00.000000000","message":"Nice point, I could not find it.\n+1 for snake case ;)","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fb4465d51a5da7ab82fcaa1fcfafd163ea2633f9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_d7b6a2db","line":99,"in_reply_to":"5afe65bd_fc950440","updated":"2015-06-02 16:13:32.000000000","message":"novaclient just outputs response which comes from Nova basically. So REST API design affects novaclient output.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f1e933b59deda1bef6e7e4dff8fd63397d622a45","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_39bd5002","line":99,"in_reply_to":"7a016987_2079d3c8","updated":"2015-06-01 00:42:56.000000000","message":"Hi Roman, Sean, Dan\n\nSorry for my late response.\n\n \u003e If so, I see one issue with that. Suppose we have such situation, that host with the\n \u003e nova-compute start to behave bad. Cluster manager decide to shut it off, and make\n \u003e the force_down call to perform some other actions. In the meantime operator see\n \u003e that on such host compute service is disabled. First thing on the operators mind\n \u003e would be to enable it.\n\nI did think status of forced-down compute is \"forced-down\"(not \"disabled\") like:\n\n $ nova service-list\n +----+------------------+--------+----------+-------------+-------+----------------------------+-----------------+\n | Id | Binary           | Host   | Zone     | Status      | State | Updated_at                 | Disabled Reason |\n +----+------------------+--------+----------+-------------+-------+----------------------------+-----------------+\n | 5  | nova-compute     | cpu-01 | nova     | enabled     | up    | 2015-06-01T00:08:46.000000 | -               |\n | 6  | nova-compute     | cpu-02 | nova     | forced-down | down  | 2015-06-01T00:08:46.000000 | -               |\n | 7  | nova-compute     | cpu-03 | nova     | enabled     | up    | 2015-06-01T00:08:46.000000 | -               |\n | 8  | nova-compute     | cpu-04 | nova     | enabled     | up    | 2015-06-01T00:08:46.000000 | -               |\n +----+------------------+--------+----------+-------------+-------+----------------------------+-----------------+\n\nSo before enabling the compute, operator can notice the reason. After solving the problem, operator \"nova service-enable\".\n\nTo be honest, I still feel this additional API/property of current nova-spec seems a little ad-hoc. but I can see your point to make the API independent and safe.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dc998f2b5b35b09e57594ca617a0aed840fde5a5","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_2079d3c8","line":99,"in_reply_to":"7a016987_2f39a5a4","updated":"2015-05-28 19:58:03.000000000","message":"I agree with Roman that force-down should be independent of any other thing and shouldn\u0027t be reset-able without an explicit call. It\u0027s a safety thing.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6dafb8f502d6dfc8c971e5e4498ecd3332d038dd","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_292b6932","line":99,"in_reply_to":"7a016987_39bd5002","updated":"2015-06-02 11:11:55.000000000","message":"Hi Ken\u0027ichi,\n\nI got your point, but I\u0027m still far from reuse of service-enable command for reverting the forced-down flag.\n\nIf we are talking about a nova client, there is a separate BP (a draft currently - https://blueprints.launchpad.net/python-novaclient/+spec/support-force-down-service) for required changes.\n\nStill, there is a one, final thing to consider. Should we:\n\na) follow the rule, that on operator side would be setting the force-down flag, disable the service and do the i.e. evacuation, and after that clear the force-down flag and enable the service (the state of the service will be resolved by service groups again) - in this case, only clearing the forced-down flag will affect the nova to see such service up again, with explicit distinction between status and the flag,\n\nb) follow the rule, that operator will only set the forced-true flag, which will automatically disable the service, and the clearing the flag it will automatically enable it again still using the status and the flag separately\n\nc) follow the rule, as in point b), but merge flag into status and provide additional option for the \u0027nova service-disable\u0027 -- let say: --force to do set the flag underneath AND disable the service (and simmilar for the \u0027nova service-enable\u0027).\n\nWe may also merge the flag into status column for each of the options either in the code or in nova client only.\n\nAs I said earlier, I\u0027d go with option a) without merging the flag into the status, so we clearly see what is going on, and have pretty fine granularity of the tasks which might be performed.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"60726f7dea8f546394483aef2bb16d77cd64927b","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_6b4e803c","line":99,"in_reply_to":"7a016987_5938413d","updated":"2015-05-19 23:11:49.000000000","message":"Then have to change the URL in line 115 not to have \"force-down\", but something like \"clear-force-down\".","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"b2d61147cf8cad77301006e08248952d3dc35045","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_8ff899c4","line":99,"in_reply_to":"7a016987_5f281e9a","updated":"2015-05-20 14:48:42.000000000","message":"Sean, I agree, however I see such change as the separate BP (or bug report). In either case it will be easier to perform such change at once.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a3d0c0808d8d5325b5dfeaf6a10f74403658d0d4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_8b01bc6c","line":99,"in_reply_to":"7a016987_6b4e803c","updated":"2015-05-19 23:29:28.000000000","message":"Ah, I missed clear-force-down thing. thanks for the explanation.\n\nRelated to my comment of line131, how about using the existing \"enable\" API?","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"b2d61147cf8cad77301006e08248952d3dc35045","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_2f39a5a4","line":99,"in_reply_to":"7a016987_8b01bc6c","updated":"2015-05-20 14:48:42.000000000","message":"Ken\u0027ichi, are you suggesting that logic behind the API should be like this:\n\n1. external watchdog updates the service state to be force-down by calling os-services/force-down\n2. Internally nova updates service state as disabled, and force_down flag set to True\n3. If anything enables service, the force_down flag is set to False and service state is set to enabled\n\nIf so, I see one issue with that. Suppose we have such situation, that host with the nova-compute start to behave bad. Cluster manager decide to shut it off, and make the force_down call to perform some other actions. In the meantime operator see that on such host compute service is disabled. First thing on the operators mind would be to enable it. As the consequence scheduler might point such host as a good place for deploying an VM.\n\nTo make long story short - I believe, that force flag should be set and unset explicitly by calling this API.\n\nBTW, automatic enable/disable the service in case of set/unset of the forced_down flag is interesting approach. What do other people think?","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"515771d3df2f1a73707dfdffd74ec98358ac0d7e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"      {"},{"line_number":97,"context_line":"          \"binary\": \"nova-compute\","},{"line_number":98,"context_line":"          \"host\": \"host1\","},{"line_number":99,"context_line":"          \"forced-down\": true"},{"line_number":100,"context_line":"      }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  response::"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_5f281e9a","line":99,"in_reply_to":"7a016987_8b01bc6c","updated":"2015-05-20 06:02:35.000000000","message":"whiles im ok with using /v2.1/{tenant_id}/os-services/force-down\nif we also  require the \"force-down\" attribute, i don\u0027t think we should continue to introduce new endpoints following the old v2 style.\n\ni would personally prefer to see a the v2.1 api refactored to match the other v2.1 apis. e.g. put /v2.1/os-service/\n\n{\n\n\"binary\": \"nova-compute\",\n\"host\": \"host1\",\n\"forced-down\": true\n}\n\nas part of this the other \n/v2.1/os-service/ endpoint should also be created.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2be6e348a064ef5c1ffc58508a23800b64a19a44","unresolved":false,"context_lines":[{"line_number":106,"context_line":"          \"service\": {"},{"line_number":107,"context_line":"              \"host\": \"host1\","},{"line_number":108,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":109,"context_line":"              \"forced-down\": true"},{"line_number":110,"context_line":"          }"},{"line_number":111,"context_line":"      }"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_790add7a","line":109,"updated":"2015-05-19 22:33:13.000000000","message":"The other service APIs response contain \"status\", so how about\n\n \"status\": \"forced-down\"\n\ninstead of line 109?","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"03ce007257d6637cf2fad637302f3cede19a2923","unresolved":false,"context_lines":[{"line_number":106,"context_line":"          \"service\": {"},{"line_number":107,"context_line":"              \"host\": \"host1\","},{"line_number":108,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":109,"context_line":"              \"forced-down\": true"},{"line_number":110,"context_line":"          }"},{"line_number":111,"context_line":"      }"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_4be74411","line":109,"in_reply_to":"7a016987_4b962494","updated":"2015-05-19 23:20:46.000000000","message":"sorry, not status, but state. Status is used for enable and disable which is different thing.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"515771d3df2f1a73707dfdffd74ec98358ac0d7e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"          \"service\": {"},{"line_number":107,"context_line":"              \"host\": \"host1\","},{"line_number":108,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":109,"context_line":"              \"forced-down\": true"},{"line_number":110,"context_line":"          }"},{"line_number":111,"context_line":"      }"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_df7beef3","line":109,"in_reply_to":"7a016987_4be74411","updated":"2015-05-20 06:02:35.000000000","message":"i would strongly prefer using an explicit forced-down attribute over reusing status or state.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"60726f7dea8f546394483aef2bb16d77cd64927b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"          \"service\": {"},{"line_number":107,"context_line":"              \"host\": \"host1\","},{"line_number":108,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":109,"context_line":"              \"forced-down\": true"},{"line_number":110,"context_line":"          }"},{"line_number":111,"context_line":"      }"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_4b962494","line":109,"in_reply_to":"7a016987_790add7a","updated":"2015-05-19 23:11:49.000000000","message":"This sounds kind of nice. Then below in line 129 it should be also something like: \"status\": \"cleared-forced-down\". These weird statuses would only be seen in this API, not when querying nova-compute status. That would be \"up\" or \"down\".","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dc998f2b5b35b09e57594ca617a0aed840fde5a5","unresolved":false,"context_lines":[{"line_number":106,"context_line":"          \"service\": {"},{"line_number":107,"context_line":"              \"host\": \"host1\","},{"line_number":108,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":109,"context_line":"              \"forced-down\": true"},{"line_number":110,"context_line":"          }"},{"line_number":111,"context_line":"      }"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_40460f7c","line":109,"in_reply_to":"7a016987_df7beef3","updated":"2015-05-28 19:58:03.000000000","message":"Agree with Sean. I don\u0027t think \"state: cleared-forced-down\" makes sense at all.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"4e9ae76132d10840f1bf5961bc5fde3337063afb","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_0bff0cab","line":131,"updated":"2015-05-19 23:10:42.000000000","message":"This feature should affect \"list services\" API, current response is\n\n{\n    \"services\": [\n        {\n            \"id\": 1,\n            \"binary\": \"nova-scheduler\",\n            \"disabled_reason\": \"test1\",\n            \"host\": \"host1\",\n            \"state\": \"up\",\n            \"status\": \"disabled\",\n            \"updated_at\": \"2012-10-29T13:42:02.000000\",\n            \"zone\": \"internal\"\n        },\n        {\n            \"id\": 2,\n            \"binary\": \"nova-scheduler\",\n            \"disabled_reason\": null,\n            \"host\": \"host2\",\n            \"state\": \"down\",\n            \"status\": \"enabled\",\n            \"updated_at\": \"2012-09-19T06:55:34.000000\",\n            \"zone\": \"internal\"\n        },\n\nI guess the enforced-down compute state/status should be\n\n            \"state\": \"down\",\n            \"status\": \"enforced-down\",\n\nright?","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"f5ca6e2df5bf5f58c363fcfa5bd9c437e6c52a45","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_aa783ef3","line":131,"in_reply_to":"5afe65bd_9caa906f","updated":"2015-06-03 06:49:17.000000000","message":"Ken\u0027ichi,\n\nOk, fair enough :)","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fb4465d51a5da7ab82fcaa1fcfafd163ea2633f9","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_9caa906f","line":131,"in_reply_to":"5afe65bd_af9079ed","updated":"2015-06-02 16:13:32.000000000","message":"Hi Roman,\n\nI feel \"that service will return additional field for forced-down\" on list-services API is enough. not necessary to describe novaclient output.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"03ce007257d6637cf2fad637302f3cede19a2923","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_eb8a701a","line":131,"in_reply_to":"7a016987_0bff0cab","updated":"2015-05-19 23:20:46.000000000","message":"Status is for enable / disable. It is not for this one. This is for state. If forced down it is expected that external system will also clear that. Nothing would change in this list services. if it is forced down, it will only be seen as \"state\": \"down\". Could talk to you later on this :)","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f1e933b59deda1bef6e7e4dff8fd63397d622a45","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_f907b8c7","line":131,"in_reply_to":"7a016987_801e476e","updated":"2015-06-01 00:42:56.000000000","message":"We need to document the part of list-services also on this spec at least because we need to avoid misreading like \"operator needs to dig DB directly\".\n\nIf we add \"endorce-down\" as an independent parameter, the command will expose like the following:\n\n $ nova service-list\n +----+------------------+--------+----------+-------------+-------+----------------------------+-----------------+--------------+\n | Id | Binary           | Host   | Zone     | Status      | State | Updated_at                 | Disabled Reason | Enforce Down |\n +----+------------------+--------+----------+-------------+-------+----------------------------+-----------------+--------------+\n | 5  | nova-compute     | cpu-01 | nova     | enabled     | up    | 2015-06-01T00:08:46.000000 | -               | False        |\n | 6  | nova-compute     | cpu-02 | nova     | enabled     | down  | 2015-06-01T00:08:46.000000 | -               | True         |\n | 7  | nova-compute     | cpu-03 | nova     | enabled     | up    | 2015-06-01T00:08:46.000000 | -               | False        |\n | 8  | nova-compute     | cpu-04 | nova     | enabled     | up    | 2015-06-01T00:08:46.000000 | -               | False        |\n +----+------------------+--------+----------+-------------+-------+----------------------------+-----------------+--------------+\n\nIs that ideal?\n(I feel the above output seems ad-hoc. But if most people prefer it, I don\u0027t disagree with that)","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"c8908b014bbd9009f774e4941c01cb409bd90964","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_e1072fc8","line":131,"in_reply_to":"7a016987_8e0c2a3c","updated":"2015-05-20 01:08:10.000000000","message":"problem in here is that \"status\" is administrative status where as \"state\" is more like operational state. Meaning you do not have this in status. Instead there could be \"state\":\"enforce-down\" . We need to report fast that operationally nova-compute is currently down. Still this do not give any additional value, as this API is there to have \"state: down\" faster. Only thing gained here would be that the one calling this API would have the knowledge in Nova DB that he has reported nova-compute down, so he should also report it up when system boots up (in case this is wanted). If wanted, like the HW would go in maintenance, one would then separately call API to put \"status: disabled\".","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dc998f2b5b35b09e57594ca617a0aed840fde5a5","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_801e476e","line":131,"in_reply_to":"7a016987_ba06001b","updated":"2015-05-28 19:58:03.000000000","message":"This is what microversions are for. We won\u0027t support the PUT or the response from it having force-down unless the client is new enough anyway.\n\nI agree that we should make list-services expose the flag (not as a state, as I said above) for RESTful consistency. Ken\u0027ichi, do we need to document that in this spec, or can it be implied from the result of the PUT?","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"515771d3df2f1a73707dfdffd74ec98358ac0d7e","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_ba06001b","line":131,"in_reply_to":"7a016987_e1072fc8","updated":"2015-05-20 06:02:35.000000000","message":"i don\u0027t think exposing the \"enforce-down\" value on the list api is an issue as client expecting the older version of the request should ignore the additional value.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"28293bb7b3ce3c23b75b6c5bba9e2567b170bc66","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a016987_8e0c2a3c","line":131,"in_reply_to":"7a016987_eb8a701a","updated":"2015-05-19 23:58:57.000000000","message":"Yeah, new forced_down column will be added on current spec.\n\nBut if not exposing it on \"list services\" API, it would be difficult to know why \"the compute node is still down even after its recover\" from operators PoV.\nIf \"enforced-down\" appears on \"status\" parameter, it would be easy to know and they can know what they should.\n\nSo I am feeling the following is simple:\n\n Status:\n    \"enabled\" -\u003e don\u0027t affect its state\n    \"disabled\" -\u003e don\u0027t affect its state\n    \"enforce-down\" -\u003e make its state down","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"6dafb8f502d6dfc8c971e5e4498ecd3332d038dd","unresolved":false,"context_lines":[{"line_number":128,"context_line":"              \"binary\": \"nova-compute\","},{"line_number":129,"context_line":"              \"forced-down\": false"},{"line_number":130,"context_line":"          }"},{"line_number":131,"context_line":"      }"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Service schema will have new optional parameter:"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5afe65bd_af9079ed","line":131,"in_reply_to":"7a016987_f907b8c7","updated":"2015-06-02 11:11:55.000000000","message":"Do we need to document the fact, that service will return additional field for forced-down or do we need to expose that information to the user via novaclient?\n\nAside of exposing the information on the client side, I think that nova service-list subcommand may require (in some point) something similar that \u0027nova list\u0027 have - I mean the --fields option, which allow operator to specify available columns to display.","commit_id":"c5c6bd3a7da1c4e190d53652780336f8172c21d1"}],"specs/liberty/approved/report-host-fault-to-update-server-state-immediately.rst":[{"author":{"_account_id":10707,"name":"John Haller","email":"john.haller@alcatel-lucent.com","username":"jhaller"},"change_message_id":"78ef541500ac62fc9f2c6f8d6d26ae7fe15f6a01","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Report host fault to update server state immediately"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_e49c596b","line":1,"updated":"2015-04-02 20:03:41.000000000","message":"Missing license statement from Liberty template:\n..\n This work is licensed under a Creative Commons Attribution 3.0 Unported\n License.\n\n http://creativecommons.org/licenses/by/3.0/legalcode","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"b038f80ad1a6b0b695b547ae1afbb3fc51393f3a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"time. Server state keeps as \"vm_state: active\" and \"power_state:"},{"line_number":48,"context_line":"running\", which is not correct. By having external tool to detect host faults"},{"line_number":49,"context_line":"fast, fence host by powering down and then report host down to OpenStack, all"},{"line_number":50,"context_line":"these states would reflect to actual situation. Also if OpenStack will not"},{"line_number":51,"context_line":"implement automatic actions for fault correlation, external tool can do that."},{"line_number":52,"context_line":"This could be configured for example in server instance METADATA easily and be"},{"line_number":53,"context_line":"read by external tool."}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_7fa9e87a","line":50,"updated":"2015-04-03 04:44:49.000000000","message":"But I don\u0027t see any indication below that VM states would be automatically updated.  See other comment below.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":47,"context_line":"time. Server state keeps as \"vm_state: active\" and \"power_state:"},{"line_number":48,"context_line":"running\", which is not correct. By having external tool to detect host faults"},{"line_number":49,"context_line":"fast, fence host by powering down and then report host down to OpenStack, all"},{"line_number":50,"context_line":"these states would reflect to actual situation. Also if OpenStack will not"},{"line_number":51,"context_line":"implement automatic actions for fault correlation, external tool can do that."},{"line_number":52,"context_line":"This could be configured for example in server instance METADATA easily and be"},{"line_number":53,"context_line":"read by external tool."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_521a2c7e","line":50,"in_reply_to":"baa041b7_7fa9e87a","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f9a515190057d15d9579d2504c93b5063dbfaa48","unresolved":false,"context_lines":[{"line_number":47,"context_line":"time. Server state keeps as \"vm_state: active\" and \"power_state:"},{"line_number":48,"context_line":"running\", which is not correct. By having external tool to detect host faults"},{"line_number":49,"context_line":"fast, fence host by powering down and then report host down to OpenStack, all"},{"line_number":50,"context_line":"these states would reflect to actual situation. Also if OpenStack will not"},{"line_number":51,"context_line":"implement automatic actions for fault correlation, external tool can do that."},{"line_number":52,"context_line":"This could be configured for example in server instance METADATA easily and be"},{"line_number":53,"context_line":"read by external tool."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_babe7cfd","line":50,"in_reply_to":"baa041b7_7fa9e87a","updated":"2015-04-07 11:13:35.000000000","message":"This is replied in comment for Chris Friesen comment below.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"b038f80ad1a6b0b695b547ae1afbb3fc51393f3a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"vm_state values: soft-delete, deleted, resized and error"},{"line_number":75,"context_line":"should not be touched."},{"line_number":76,"context_line":"task_state effect needs to be worked out if needs to be touched."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_bf9f704f","line":75,"updated":"2015-04-03 04:44:49.000000000","message":"Why not automatically set the state of all VMs on the down\u0027d host to \"error\"?  Isn\u0027t the ultimate end-user story here to allow users to quickly identify error\u0027d VMs due to a host failure?\n\nWithout automatically updating the VM state, I don\u0027t see how this improves the situation for end users.\n\n(Disclosure: I\u0027m not familiar with the details of \u0027evacuate\u0027 after a host is downed, so maybe I am missing something here.)","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"334b384e17151a61b9841f835a90279e5a0a2aaf","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"vm_state values: soft-delete, deleted, resized and error"},{"line_number":75,"context_line":"should not be touched."},{"line_number":76,"context_line":"task_state effect needs to be worked out if needs to be touched."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_4c21f04c","line":75,"in_reply_to":"9aa53dc9_1a0e8834","updated":"2015-04-07 15:54:09.000000000","message":"That wiki page is not correct.  We currently allow reboot/rebuild/rescue/evacuate for VMs in the Error state.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"vm_state values: soft-delete, deleted, resized and error"},{"line_number":75,"context_line":"should not be touched."},{"line_number":76,"context_line":"task_state effect needs to be worked out if needs to be touched."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_46015104","line":75,"in_reply_to":"9aa53dc9_4c21f04c","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"vm_state values: soft-delete, deleted, resized and error"},{"line_number":75,"context_line":"should not be touched."},{"line_number":76,"context_line":"task_state effect needs to be worked out if needs to be touched."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_f214a04d","line":75,"in_reply_to":"baa041b7_8010a702","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f9a515190057d15d9579d2504c93b5063dbfaa48","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"vm_state values: soft-delete, deleted, resized and error"},{"line_number":75,"context_line":"should not be touched."},{"line_number":76,"context_line":"task_state effect needs to be worked out if needs to be touched."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_1a0e8834","line":75,"in_reply_to":"baa041b7_8010a702","updated":"2015-04-07 11:13:35.000000000","message":"Here it states that VMs in error state can only be deleted: https://wiki.openstack.org/wiki/VMState\nSo I think the states should be as in here: vm_state: stopped power_state: shutdown\nWhen nova-compute come back up again, one either needs to put Vms manually back up or it can be configured that they will start up again automatically.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"941ed119b41ec597100e44ba6124fcf7b678c1d2","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"vm_state values: soft-delete, deleted, resized and error"},{"line_number":75,"context_line":"should not be touched."},{"line_number":76,"context_line":"task_state effect needs to be worked out if needs to be touched."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_8010a702","line":75,"in_reply_to":"baa041b7_bf9f704f","updated":"2015-04-05 02:44:35.000000000","message":"\"evacuate\" is basically \"reconstruct the instance on another host\" using the same uuid, same IP address, etc.  If the instance uses boot-from-volume or if the compute node is using shared storage for instances, then it will just reboot the instance using the original disk image.\n\nThe reason why this feature is needed is that nova will prevent you from doing an evacuation if it thinks the compute node is up.  This makes sense since you don\u0027t want to have two instances running on the same shared disk (since that could corrupt things).\n\nAs for automatically setting the state of the VMs to \"error\", without an external heath monitor it\u0027s possible that we\u0027ve simply lost communication with the compute node (in which case we don\u0027t know anything about the state of the instances).  If we have an external health monitor reporting a compute node as \"down\" (and possibly enforcing it via fencing) then it might actually make sense to put all the instances into an error state.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  nova-compute state: down status: enabled"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"vm_state values: soft-delete, deleted, resized and error"},{"line_number":75,"context_line":"should not be touched."},{"line_number":76,"context_line":"task_state effect needs to be worked out if needs to be touched."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_12102458","line":75,"in_reply_to":"baa041b7_bf9f704f","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":10707,"name":"John Haller","email":"john.haller@alcatel-lucent.com","username":"jhaller"},"change_message_id":"78ef541500ac62fc9f2c6f8d6d26ae7fe15f6a01","unresolved":false,"context_lines":[{"line_number":88,"context_line":"None"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":"* Update CLI to report host is down"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  nova host-update command"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_a49ad112","line":91,"updated":"2015-04-02 20:03:41.000000000","message":"The REST API impact should be the http interface, not the python CLI, e.g. POST and the URL\nSee the Nova Liberty template for more information.\nPython CLI changes are still needed, but not in the Nova spec.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":88,"context_line":"None"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":"* Update CLI to report host is down"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  nova host-update command"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_e60bc522","line":91,"in_reply_to":"9aa53dc9_a2dd2a44","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":10707,"name":"John Haller","email":"john.haller@alcatel-lucent.com","username":"jhaller"},"change_message_id":"04bf2ccb1fdfb4db85d1aee5ef99a24a6bc3f135","unresolved":false,"context_lines":[{"line_number":88,"context_line":"None"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":"* Update CLI to report host is down"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  nova host-update command"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_a2dd2a44","line":91,"in_reply_to":"9aa53dc9_ba4b1c59","updated":"2015-04-07 15:20:57.000000000","message":"It will feed into python-openstack-client and/or python-novaclient projects. I\u0027m not sure if it would require a blueprint there, or a bug, but similar changes seem to be handled with a bug. Both the user documentation and CLI/python API code get submitted there. I\u0027m also not sure when python-novaclient gets deprecated, so guessing that the changes go in both places, someone more informed than me would have to be consulted.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":88,"context_line":"None"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":"* Update CLI to report host is down"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  nova host-update command"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_26064d1d","line":91,"in_reply_to":"baa041b7_a49ad112","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f9a515190057d15d9579d2504c93b5063dbfaa48","unresolved":false,"context_lines":[{"line_number":88,"context_line":"None"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":"* Update CLI to report host is down"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  nova host-update command"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_ba4b1c59","line":91,"in_reply_to":"baa041b7_a49ad112","updated":"2015-04-07 11:13:35.000000000","message":"So I should move lines 92-117 to another BP? What would be correct place to put this then?","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"45fe1e23b3af773f73b8ddff9e5f26046586e3f6","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  nova host-update command"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  usage: nova host-update [--status \u003cenable|disable\u003e]"},{"line_number":97,"context_line":"                        [--maintenance \u003cenable|disable\u003e]"},{"line_number":98,"context_line":"                        [--report-host-down]"},{"line_number":99,"context_line":"                        \u003chostname\u003e"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_c4eef58a","line":97,"updated":"2015-04-02 20:02:04.000000000","message":"Should there be a matching way to report the host is back up afterwards once the external entity thinks it\u0027s healthy again?   Or do you see this as a one-shot thing where the next status report that comes from nova-compute moves it back to the \"up\" state?","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  nova host-update command"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  usage: nova host-update [--status \u003cenable|disable\u003e]"},{"line_number":97,"context_line":"                        [--maintenance \u003cenable|disable\u003e]"},{"line_number":98,"context_line":"                        [--report-host-down]"},{"line_number":99,"context_line":"                        \u003chostname\u003e"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_861bd972","line":97,"in_reply_to":"baa041b7_c4eef58a","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f9a515190057d15d9579d2504c93b5063dbfaa48","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  nova host-update command"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  usage: nova host-update [--status \u003cenable|disable\u003e]"},{"line_number":97,"context_line":"                        [--maintenance \u003cenable|disable\u003e]"},{"line_number":98,"context_line":"                        [--report-host-down]"},{"line_number":99,"context_line":"                        \u003chostname\u003e"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_fa6884bc","line":97,"in_reply_to":"baa041b7_c4eef58a","updated":"2015-04-07 11:13:35.000000000","message":"New API is to report host is down. When host will come up again nova-compute should come up again so I do not see a need for new API to put \"up\".","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"45fe1e23b3af773f73b8ddff9e5f26046586e3f6","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  Needs to handle reporting host down."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Schema does not need changes as in db only service and server states are to"},{"line_number":158,"context_line":"  be changed."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Security impact"},{"line_number":161,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_e47e99ad","line":158,"updated":"2015-04-02 20:02:04.000000000","message":"How are you going to persist the fact that the service is \"down\" without changing the database schema?  The \"is_up()\" call looks at information pulled from the database, so I think you\u0027re going to need to do some sort of schema change, no?","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  Needs to handle reporting host down."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Schema does not need changes as in db only service and server states are to"},{"line_number":158,"context_line":"  be changed."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Security impact"},{"line_number":161,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_262d2d95","line":158,"in_reply_to":"9aa53dc9_ec7444fe","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"334b384e17151a61b9841f835a90279e5a0a2aaf","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  Needs to handle reporting host down."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Schema does not need changes as in db only service and server states are to"},{"line_number":158,"context_line":"  be changed."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Security impact"},{"line_number":161,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_ec7444fe","line":158,"in_reply_to":"9aa53dc9_faaf64e1","updated":"2015-04-07 15:54:09.000000000","message":"When using the servicegroup DB driver, the is_up() call checks whether the DB row was last updated more than \u003cthreshold\u003e time ago.  This has some problems since the DB row gets updated when you set the service disabled/enabled so I have a proposal submitted to add an explicit \"last_seen_up\" timestamp to the service DB schema.\n\nSo for the servicegroup DB driver, if you want is_up() to return false, you\u0027re going to need to need to either rewrite the \"updated_at\" timestamp (or the \"last_seen_up\" timestamp if my code gets merged) or else add a new \"force_down\" field to the DB schema.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  Needs to handle reporting host down."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Schema does not need changes as in db only service and server states are to"},{"line_number":158,"context_line":"  be changed."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Security impact"},{"line_number":161,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_6618d575","line":158,"in_reply_to":"baa041b7_e47e99ad","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f9a515190057d15d9579d2504c93b5063dbfaa48","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  Needs to handle reporting host down."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Schema does not need changes as in db only service and server states are to"},{"line_number":158,"context_line":"  be changed."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Security impact"},{"line_number":161,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_faaf64e1","line":158,"in_reply_to":"baa041b7_e47e99ad","updated":"2015-04-07 11:13:35.000000000","message":"Is it that for API to have \"host_down_reported\" you need it also to schema. If so it should be added. Anyhow for DB I did not think it needs anything new as only nova-compute service state and those vm states are effected when API is called.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"b038f80ad1a6b0b695b547ae1afbb3fc51393f3a","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Notifications impact"},{"line_number":165,"context_line":"--------------------"},{"line_number":166,"context_line":"None"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Other end user impact"},{"line_number":169,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_5f906443","line":166,"updated":"2015-04-03 04:44:49.000000000","message":"This may be out of scope here, but I think notifications of host state changes would be something useful.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"941ed119b41ec597100e44ba6124fcf7b678c1d2","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Notifications impact"},{"line_number":165,"context_line":"--------------------"},{"line_number":166,"context_line":"None"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Other end user impact"},{"line_number":169,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa041b7_6013630e","line":166,"in_reply_to":"baa041b7_5f906443","updated":"2015-04-05 02:44:35.000000000","message":"Agreed, sending out a \"this host has gone down\" would make sense.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Notifications impact"},{"line_number":165,"context_line":"--------------------"},{"line_number":166,"context_line":"None"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Other end user impact"},{"line_number":169,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_662fb588","line":166,"in_reply_to":"baa041b7_5f906443","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f9a515190057d15d9579d2504c93b5063dbfaa48","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Notifications impact"},{"line_number":165,"context_line":"--------------------"},{"line_number":166,"context_line":"None"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Other end user impact"},{"line_number":169,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_fadd2471","line":166,"in_reply_to":"baa041b7_5f906443","updated":"2015-04-07 11:13:35.000000000","message":"I can add this. I Do not know yet how this notification should be so any help for defining this would be helpful for me.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f9a515190057d15d9579d2504c93b5063dbfaa48","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Notifications impact"},{"line_number":165,"context_line":"--------------------"},{"line_number":166,"context_line":"None"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Other end user impact"},{"line_number":169,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_7ad0f453","line":166,"in_reply_to":"baa041b7_6013630e","updated":"2015-04-07 11:13:35.000000000","message":"As above, I can add this one.","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bfdb5368b195ba390b24b0effb61a639548b2647","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Notifications impact"},{"line_number":165,"context_line":"--------------------"},{"line_number":166,"context_line":"None"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Other end user impact"},{"line_number":169,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa53dc9_e6598536","line":166,"in_reply_to":"baa041b7_6013630e","updated":"2015-04-10 09:25:29.000000000","message":"Done","commit_id":"99c429ad946651ce1cc5aac558179dd8227a1c20"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Nova state change for failed or unreachable host is slow and does not"},{"line_number":24,"context_line":"  reliably state compute node is down or not. This might cause same instance"},{"line_number":25,"context_line":"  to run twice if action taken to evacuate instance to another host."},{"line_number":26,"context_line":"* Nova state for instances on failed compute node will not change,"},{"line_number":27,"context_line":"  but remains active and running. This gives user a false information about"},{"line_number":28,"context_line":"  instance state. Currently one would need to call \"nova reset-state\" for each"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_650923dd","line":25,"updated":"2015-04-15 09:44:13.000000000","message":"While true, I am not sure this feature is helping fixing this.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Nova state change for failed or unreachable host is slow and does not"},{"line_number":24,"context_line":"  reliably state compute node is down or not. This might cause same instance"},{"line_number":25,"context_line":"  to run twice if action taken to evacuate instance to another host."},{"line_number":26,"context_line":"* Nova state for instances on failed compute node will not change,"},{"line_number":27,"context_line":"  but remains active and running. This gives user a false information about"},{"line_number":28,"context_line":"  instance state. Currently one would need to call \"nova reset-state\" for each"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_1e8750d8","line":25,"in_reply_to":"7aaa499b_650923dd","updated":"2015-04-15 11:48:33.000000000","message":"I understand this in point of view that this spec do not implement the fencing. Anyhow this spec is an enabler for external system that can reliably and fast detect the host fault and fence it down to also change the nova-compute state so evacuation can happen fast and trusting same instance will not run twice. I would like to keep the statement, but rephrase it as I think it as something why the API is needed while the solution is out of the spec.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":26,"context_line":"* Nova state for instances on failed compute node will not change,"},{"line_number":27,"context_line":"  but remains active and running. This gives user a false information about"},{"line_number":28,"context_line":"  instance state. Currently one would need to call \"nova reset-state\" for each"},{"line_number":29,"context_line":"  instance to have them in error state."},{"line_number":30,"context_line":"* OpenStack user cannot make HA actions fast and reliably by trusting instance"},{"line_number":31,"context_line":"  state and compute node state."},{"line_number":32,"context_line":"* As compute node state changes slowly one cannot evacuate instances."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_45274764","line":29,"updated":"2015-04-15 09:44:13.000000000","message":"I think fixing that should be a separate specification, and not tied down to this specific use case.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"* Nova state for instances on failed compute node will not change,"},{"line_number":27,"context_line":"  but remains active and running. This gives user a false information about"},{"line_number":28,"context_line":"  instance state. Currently one would need to call \"nova reset-state\" for each"},{"line_number":29,"context_line":"  instance to have them in error state."},{"line_number":30,"context_line":"* OpenStack user cannot make HA actions fast and reliably by trusting instance"},{"line_number":31,"context_line":"  state and compute node state."},{"line_number":32,"context_line":"* As compute node state changes slowly one cannot evacuate instances."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_7eb774d8","line":29,"in_reply_to":"7aaa499b_45274764","updated":"2015-04-15 11:48:33.000000000","message":"Yes, I can see this. Also as other comments received. I can surely work on this also once get this spec in shape hopefully after next version.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  instance state. Currently one would need to call \"nova reset-state\" for each"},{"line_number":29,"context_line":"  instance to have them in error state."},{"line_number":30,"context_line":"* OpenStack user cannot make HA actions fast and reliably by trusting instance"},{"line_number":31,"context_line":"  state and compute node state."},{"line_number":32,"context_line":"* As compute node state changes slowly one cannot evacuate instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_25e1dbfe","line":31,"updated":"2015-04-15 09:44:13.000000000","message":"The control plane is not designed to be used for HA actions. Making it a limp forward seems like a bad idea.\n\nWe are assuming the use of things like pacemaker inside the users VMs for that sort of logic.\n\nThere is a lot more work involved in fixing this problem than described below.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  instance state. Currently one would need to call \"nova reset-state\" for each"},{"line_number":29,"context_line":"  instance to have them in error state."},{"line_number":30,"context_line":"* OpenStack user cannot make HA actions fast and reliably by trusting instance"},{"line_number":31,"context_line":"  state and compute node state."},{"line_number":32,"context_line":"* As compute node state changes slowly one cannot evacuate instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_5e0958dc","line":31,"in_reply_to":"7aaa499b_25e1dbfe","updated":"2015-04-15 11:48:33.000000000","message":"yes, I can remove the comment. For a Telco grade system it was seen not to use just pacemaker. This is also why in here the proposal is API to tell nova-compute down, so it does not limit to what external system in infra can report that.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  instance to have them in error state."},{"line_number":30,"context_line":"* OpenStack user cannot make HA actions fast and reliably by trusting instance"},{"line_number":31,"context_line":"  state and compute node state."},{"line_number":32,"context_line":"* As compute node state changes slowly one cannot evacuate instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_65bec3d5","line":32,"updated":"2015-04-15 09:44:13.000000000","message":"I agree with this, I think you should only cover this use case for this API.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  instance to have them in error state."},{"line_number":30,"context_line":"* OpenStack user cannot make HA actions fast and reliably by trusting instance"},{"line_number":31,"context_line":"  state and compute node state."},{"line_number":32,"context_line":"* As compute node state changes slowly one cannot evacuate instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"},{"line_number":35,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_7ed1b456","line":32,"in_reply_to":"7aaa499b_65bec3d5","updated":"2015-04-15 11:48:33.000000000","message":"yes, this is now also what have in mind as of the other discussions around this spec.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2fbcb17b52aba75f86ee6e8e79cca77033cf9bc6","unresolved":false,"context_lines":[{"line_number":38,"context_line":"compute node state fast and reliably when using DB servicegroup backend."},{"line_number":39,"context_line":"On top of this here is the use cases that are not covered currently to have"},{"line_number":40,"context_line":"instance states changed correctly:"},{"line_number":41,"context_line":"* Management network connectivity lost between controller and compute node."},{"line_number":42,"context_line":"* Host HW failed."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Generic use case flow:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3ab451fb_1fe46739","line":41,"updated":"2015-04-16 20:34:18.000000000","message":"If this happens you won\u0027t be able to evacuate the host anyway...","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"868fce1892d87dee17262992689e263249748ed7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"compute node state fast and reliably when using DB servicegroup backend."},{"line_number":39,"context_line":"On top of this here is the use cases that are not covered currently to have"},{"line_number":40,"context_line":"instance states changed correctly:"},{"line_number":41,"context_line":"* Management network connectivity lost between controller and compute node."},{"line_number":42,"context_line":"* Host HW failed."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Generic use case flow:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3ab451fb_c2b0548e","line":41,"in_reply_to":"3ab451fb_1fe46739","updated":"2015-04-17 09:53:13.000000000","message":"but if your external system can detect this and mark nova-compute down and mark VMs to error state and perhaps have means to put the host actually down (fence).","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2fbcb17b52aba75f86ee6e8e79cca77033cf9bc6","unresolved":false,"context_lines":[{"line_number":39,"context_line":"On top of this here is the use cases that are not covered currently to have"},{"line_number":40,"context_line":"instance states changed correctly:"},{"line_number":41,"context_line":"* Management network connectivity lost between controller and compute node."},{"line_number":42,"context_line":"* Host HW failed."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Generic use case flow:"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3ab451fb_dfd4bf48","line":42,"updated":"2015-04-16 20:34:18.000000000","message":"A more realistic example of when a force-down-quickly operation would be useful is if, for example, memory errors begin to be seen or if disk space on the dom0 dramatically gets reduced outside of the bounds of normal compute resource scheduling (for instance if a number of disks suddenly go belly-up, endangering the ability of the active VMs on a host to write to disk effectively.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"868fce1892d87dee17262992689e263249748ed7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"On top of this here is the use cases that are not covered currently to have"},{"line_number":40,"context_line":"instance states changed correctly:"},{"line_number":41,"context_line":"* Management network connectivity lost between controller and compute node."},{"line_number":42,"context_line":"* Host HW failed."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Generic use case flow:"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3ab451fb_627e20b0","line":42,"in_reply_to":"3ab451fb_dfd4bf48","updated":"2015-04-17 09:53:13.000000000","message":"Actually you might do live migration and then put host down gracefully.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Generic use case flow:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* The external monitoring system detects a host fault."},{"line_number":47,"context_line":"* The external monitoring system fences the host if not down already."},{"line_number":48,"context_line":"* The external system calls the new Nova API to force the failed compute node"},{"line_number":49,"context_line":"  into down state as well as instances running on it."},{"line_number":50,"context_line":"* Nova updates the compute node state and state of the effected instances to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_65936350","line":47,"updated":"2015-04-15 09:44:13.000000000","message":"We already have this operation:\n/v2/?{tenant_id}?/os-hosts/?{host_name}?/shutdown\n\nCould that API not be used to help implement this flow?","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Generic use case flow:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* The external monitoring system detects a host fault."},{"line_number":47,"context_line":"* The external monitoring system fences the host if not down already."},{"line_number":48,"context_line":"* The external system calls the new Nova API to force the failed compute node"},{"line_number":49,"context_line":"  into down state as well as instances running on it."},{"line_number":50,"context_line":"* Nova updates the compute node state and state of the effected instances to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_3ef44cf0","line":47,"in_reply_to":"7aaa499b_65936350","updated":"2015-04-15 11:48:33.000000000","message":"How about if management connection is lost? Surely if it is possibly to call this API so it does the needful, then yes, this can surely be used. Did not go here in details of what way the fencing is guaranteed, but just that it can be granted by sophisticated infra monitoring system.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":46,"context_line":"* The external monitoring system detects a host fault."},{"line_number":47,"context_line":"* The external monitoring system fences the host if not down already."},{"line_number":48,"context_line":"* The external system calls the new Nova API to force the failed compute node"},{"line_number":49,"context_line":"  into down state as well as instances running on it."},{"line_number":50,"context_line":"* Nova updates the compute node state and state of the effected instances to"},{"line_number":51,"context_line":"  Nova DB."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_a5a96b7d","line":49,"updated":"2015-04-15 09:44:13.000000000","message":"But you just killed the host, so how do you stop the instances running on it, do you mean stopping the instances should the host be restarted (something that evacuate already implements)","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"7f265e13d49cce60af9eb60cb8480b4e36a3be41","unresolved":false,"context_lines":[{"line_number":46,"context_line":"* The external monitoring system detects a host fault."},{"line_number":47,"context_line":"* The external monitoring system fences the host if not down already."},{"line_number":48,"context_line":"* The external system calls the new Nova API to force the failed compute node"},{"line_number":49,"context_line":"  into down state as well as instances running on it."},{"line_number":50,"context_line":"* Nova updates the compute node state and state of the effected instances to"},{"line_number":51,"context_line":"  Nova DB."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_14384c3c","line":49,"in_reply_to":"7aaa499b_a5a96b7d","updated":"2015-04-15 13:16:14.000000000","message":"I think, that described flow is more like to do the actions post mortem (i.e. host became unstable, nova-compute doesn\u0027t response and so on), so the only reasonable way is to fence host and evacuate vm-s from there. Currently, it is possible to do without any change in nova, however the entire process is slow, since cluster manager have to wait for the nova to see the host is down. On defaults it takes up to 60 seconds. So for me this blueprint is all about to cut down that time and make the process more robust.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"2aab2b59d2a294a75d8d69f8fc16c6ce8d07c2e8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"* The external monitoring system detects a host fault."},{"line_number":47,"context_line":"* The external monitoring system fences the host if not down already."},{"line_number":48,"context_line":"* The external system calls the new Nova API to force the failed compute node"},{"line_number":49,"context_line":"  into down state as well as instances running on it."},{"line_number":50,"context_line":"* Nova updates the compute node state and state of the effected instances to"},{"line_number":51,"context_line":"  Nova DB."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_a8fed7ab","line":49,"in_reply_to":"7aaa499b_a5a96b7d","updated":"2015-04-15 14:37:03.000000000","message":"The issue is telling nova that the compute service is down (before the 60sec timeout expires).  The fencing then ensures that the instances get stopped...in the simple case you could reboot the compute node(s).","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":57,"context_line":"these states would reflect to actual situation. Also if OpenStack will not"},{"line_number":58,"context_line":"implement automatic actions for fault correlation, external tool can do that."},{"line_number":59,"context_line":"This could be configured for example in server instance METADATA easily and be"},{"line_number":60,"context_line":"read by external tool."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Project Priority"},{"line_number":63,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_a5d72bec","line":60,"updated":"2015-04-15 09:44:13.000000000","message":"I think changing the VM state is a valid use case, I would like an API for that not a hack.\n\nI would suggest a separate spec that turns all VMs on a host into an \"impacted by maintenance\" state, until they get restored on a new host. Its possible you can live migrate in some case, for example.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":57,"context_line":"these states would reflect to actual situation. Also if OpenStack will not"},{"line_number":58,"context_line":"implement automatic actions for fault correlation, external tool can do that."},{"line_number":59,"context_line":"This could be configured for example in server instance METADATA easily and be"},{"line_number":60,"context_line":"read by external tool."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Project Priority"},{"line_number":63,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_d9cd825e","line":60,"in_reply_to":"7aaa499b_a5d72bec","updated":"2015-04-15 11:48:33.000000000","message":"I guess this API to change VM states was already the comment on lines 26-29. So to have single API to report all VMs down instead of calling \"reset state\" for each and every VM to have them in error state. Was the intention here still only to have them to error state.\n\nFor maintenance, is it now that user either put host to maintenance mode or move host to some \"disabled aggregate\", but surely this is only for the host then. But now you would like to see API to have VMs on specific new sate also for the time a correlating action is ongoing to have it running on a new host?","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"There needs to be a new API for Admin to state host is down. This API is used"},{"line_number":71,"context_line":"to mark compute node and instances running on it down to reflect the real"},{"line_number":72,"context_line":"situation."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Example on compute node is:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_85966fee","line":72,"updated":"2015-04-15 09:44:13.000000000","message":"I think we need to look at the wider picture before adding this API.\n\nYou are mixing too concepts here, that I feel need to be separated.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"2aab2b59d2a294a75d8d69f8fc16c6ce8d07c2e8","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"There needs to be a new API for Admin to state host is down. This API is used"},{"line_number":71,"context_line":"to mark compute node and instances running on it down to reflect the real"},{"line_number":72,"context_line":"situation."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Example on compute node is:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_4897533a","line":72,"in_reply_to":"7aaa499b_79d42e1f","updated":"2015-04-15 14:37:03.000000000","message":"For the kvm case where nova-compute runs on each host that the effects will be similar.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"There needs to be a new API for Admin to state host is down. This API is used"},{"line_number":71,"context_line":"to mark compute node and instances running on it down to reflect the real"},{"line_number":72,"context_line":"situation."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Example on compute node is:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_79d42e1f","line":72,"in_reply_to":"7aaa499b_85966fee","updated":"2015-04-15 11:48:33.000000000","message":"Yes. I tried to see it in an angle of having single ultimate API, but understand now it is not the way to go. This spec will be only for nova-compute down.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"037c8c6db99d391df43f72267db4a43c9f4a0637","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9aa53dc9_5f50f0d3","line":118,"updated":"2015-04-10 11:03:43.000000000","message":"The main problem I see is that the current model is wrong if there are more than one compute node per service.\n\nLet me explain : with Ironic and VMware, a single nova-compute driver can report multiple \"nodes\" for a single \"host\" (which is itself mapped to a single nova-compute service).\nThe problem with that is that /os-hosts is just listing all the services (tbp, is listing the hostnames attached to the service) and is not listing at all the *compute nodes* which are running instances.\n\nIf you want to get a list of all active compute nodes, you should rather hit /os-hypervisors but there is no update method for modifying its status so I guess you would have to extend the API by updating its microversion","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4e760fdb42c8154a7515835b6240433bf0d66158","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_93a820dd","line":118,"in_reply_to":"7aaa499b_5b767c3f","updated":"2015-04-14 12:42:06.000000000","message":"If the blueprint is about disabling a nova-compute *service*, why not using /os-services ? It already allows to disable a service...\n\nTo be clear, either it is a service check and it should be in /os-services (yet to see if it requires further work than just disabling the service) or /os-hypervisors but in both cases, using /os-hosts is wrong for the reason I mentioned.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"ca77ac3eccb72c1beed2db5d75874ea6191d7172","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_6a4a47ae","line":118,"in_reply_to":"7aaa499b_5b767c3f","updated":"2015-04-14 03:38:24.000000000","message":"Yes, I agree with Chris comment.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"b114d5706369029f6c2b7612eb297b096362a0eb","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_ff98421d","line":118,"in_reply_to":"7aaa499b_93a820dd","updated":"2015-04-14 15:12:06.000000000","message":"Agreed, this should be in /os-services.  However, this is different from disabling a service, it\u0027s marking it as \"not able to offer service\". \n\nWe\u0027re making the distinction between administratively able to offer service (enabled/disabled) and operationally able to offer service (up/down).","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"a5760e9c8c12108626711179612b179a82486e06","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_3f458ab2","line":118,"in_reply_to":"7aaa499b_93a820dd","updated":"2015-04-14 15:00:47.000000000","message":"The idea is that an external monitoring system has detected host having a problem (if not already dead) and fence it by powering down. Then to call API to tell this to Nova so all the states there would be correct against the fact that host is down. This operation was thought to be for the host as the thing that is down is then physical host. What should then normally be effected internally when the API is called in Nova db would be the vm states and nova-compute state. Now if the thing is that this assumption cannot be correct always or the os-host API should not touch those states, then there just need to be perhaps several different API calls to set each and every VM to error state (\"reset server state\" API is there) and then a new API just to set related nova-compute as down as it currently would take too long time. To have this happen the external tool needs to query first everything related to host from Nova and then call several APIs to have states correctly. This calling of several APIs would surely have been also thing to be avoided.\n\nnova-compute and Vm states need to be correct fast and reliably when host goes down by calling API to do this. That is still the thing to be accomplished here together with the capability to evacuate fast as result.\n\nI am new here, so any help is really welcome to accomplish this in most suitable manner. Thanks Sylvain for your effort to try to explain and come up with the ultimate solution. Please if can still elaborate further so get this BP done.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"2aab2b59d2a294a75d8d69f8fc16c6ce8d07c2e8","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_285d2779","line":118,"in_reply_to":"7aaa499b_bca98f7d","updated":"2015-04-15 14:37:03.000000000","message":"It might make sense to have the \"nova-compute down\" action result in nova setting all instances controlled by that nova-compute to some sort of \"unknown\" state.\n\nRealistically anyone that really cares about the health of an instance will be monitoring it separately somehow...but I think it would still be a good idea for \"nova list\" to have some indication that the instance state is known to be stale.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c630b2dc37beb8b19fcf9163fb637cd26d2d1651","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_2febfcb1","line":118,"in_reply_to":"7aaa499b_bca98f7d","updated":"2015-04-15 08:18:27.000000000","message":"tl;dr: Yeah, I think amending /os-services is OK with some little adjustements.\n\nTomi, I tried to think about the problem a little further wrt distributed hosts behind a single nova-compute and I think it\u0027s reasonable to assume that marking a service down would help fencing those hosts, even if they are distributed, for a very limited amount of change.\n\nTo be clear, the scheduler is heavily using the SG.is_up() API to know if the related service from that specific compute node is up thanks to the ComputeFilter. By making sure that the SG API would report the associated service as down, we would then be sure that the node wouldn\u0027t be elected.\n\nThere are some minor adjustements necessary tho, in particular when evacuating an instance, because it does call the SG API too to verify that the service is down - and if not, it won\u0027t evacuate, but I think that\u0027s valuable to free up that constraint by saying that it\u0027s not necessary if the service has multiple nodes behind it.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"af8e5cc617f51bbd6b685987c5a7cc634633fc6a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_bca98f7d","line":118,"in_reply_to":"7aaa499b_ff98421d","updated":"2015-04-15 05:41:31.000000000","message":"So the scope of spec would narrow down to only setting nova-compute down with API modification to introduce \"/os-services/down\" (up should not be needed). Notification part of spec needs to be changed to not send anymore notification about host going down, but instead about nova-compute down. VM states could be then be put to error state with existing API that I can still tell in spec to show the procedure as a whole.\n\nI can see that this is the way to do, but still it seems not so sophisticated to me that one should report single thing; \"host down\" and yet have to call several different APIs to have this reflected to openstack. Good thing is that one could only report single part being down, but yet there is nothing about the host itself, that is only reflected as \"nova-compute\".","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"ca77ac3eccb72c1beed2db5d75874ea6191d7172","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_4ac8ab22","line":118,"in_reply_to":"9aa53dc9_5f50f0d3","updated":"2015-04-14 03:38:24.000000000","message":"Done","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"6c2920d38acd6c4fa1ccddf5550fa10363ba71bc","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      \"host\": {"},{"line_number":116,"context_line":"          \"status\": \"enable\","},{"line_number":117,"context_line":"          \"maintenance_mode\": \"enable\""},{"line_number":118,"context_line":"          \"host_down_reported\": \"true\""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"      }"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_5b767c3f","line":118,"in_reply_to":"9aa53dc9_5f50f0d3","updated":"2015-04-10 22:25:10.000000000","message":"I don\u0027t actually think it matters for the specific purpose of this feature.\n\nThe idea behind this feature is to allow immediate evacuation of instances.  That\u0027s only available if the nova-compute service is down, so this feature provides a way to tell nova that a given nova-compute service is down.\n\nNow in practice, part of doing evacuation robustly is ensuring that the original instance is fenced so that it can\u0027t do anything harmful.\n\nIn an environment where you have the nova-service running on the node, this is straightforward--you could isolate it from the network and send it for a reboot.  By the time it comes back up the instance has probably been evacuated, but if it hasn\u0027t then it could be restarted on the original compute node.\n\nIn an environment where you have the nova-service controlling a bunch of nodes, then you may not want to do immediate evacuation--it might make more sense to restart the nova-service and see if it can re-establish connectivity.  However, if you did want to trigger immediate evacuation you would also want to cause all of the hosts controlled by that nova-compute service to go for a reboot.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":140,"context_line":"  Needs to handle reporting host down."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* New \"last_seen_up\" field to service DB model proposed by other blueprint"},{"line_number":143,"context_line":"  should be used to state service is down."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Security impact"},{"line_number":146,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_e56e5395","line":143,"updated":"2015-04-15 09:44:13.000000000","message":"The spec template requests that you provide updated json schema for the API changes you have described. Please add that.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":140,"context_line":"  Needs to handle reporting host down."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* New \"last_seen_up\" field to service DB model proposed by other blueprint"},{"line_number":143,"context_line":"  should be used to state service is down."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Security impact"},{"line_number":146,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_d978e22d","line":143,"in_reply_to":"7aaa499b_e56e5395","updated":"2015-04-15 11:48:33.000000000","message":"ok","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":150,"context_line":"Notifications impact"},{"line_number":151,"context_line":"--------------------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"New notfication about \"host has gone down\" should be sent when API is called."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Other end user impact"},{"line_number":156,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_e58533ad","line":153,"updated":"2015-04-15 09:44:13.000000000","message":"We should discuss the content of that notification here.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":150,"context_line":"Notifications impact"},{"line_number":151,"context_line":"--------------------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"New notfication about \"host has gone down\" should be sent when API is called."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Other end user impact"},{"line_number":156,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_79de6e12","line":153,"in_reply_to":"7aaa499b_e58533ad","updated":"2015-04-15 11:48:33.000000000","message":"Yes, this is also now changing to something like \"nova-compute down\" as the scope of the spec would be narrowed to that. Otherwise I am not aware of this area. So if somebody can have input for this would be great.","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3c3b4e127eba4fe2621f88c37d5487755079cff0","unresolved":false,"context_lines":[{"line_number":167,"context_line":"Other deployer impact"},{"line_number":168,"context_line":"---------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer can make use of any external tool to detect host fault and report it"},{"line_number":171,"context_line":"to OpenStack."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_45b74786","line":170,"updated":"2015-04-15 09:44:13.000000000","message":"you mean deployer not developer?","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bbdc5d4f6bf71a64b7eac3ec99733f4150aa2ee6","unresolved":false,"context_lines":[{"line_number":167,"context_line":"Other deployer impact"},{"line_number":168,"context_line":"---------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Developer can make use of any external tool to detect host fault and report it"},{"line_number":171,"context_line":"to OpenStack."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_f9d27eff","line":170,"in_reply_to":"7aaa499b_45b74786","updated":"2015-04-15 11:48:33.000000000","message":"yes","commit_id":"3aa9eef2e166b7ed3b749fd46d4c9cd5593749e0"}]}
