)]}'
{"specs/mitaka/approved/register-device-removed-event.rst":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"7f74f1a042bcee9e296d4bb7bbc810f67d6706e9","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"register device removed event"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_f1ecf7f4","line":8,"updated":"2015-12-02 04:36:16.000000000","message":"Register","commit_id":"4ea1654c9b45ac6081b881e936b5700fe4d3155c"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"247281bd3b9dd925d5018795a3104d6399429f3f","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"register device removed event"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_38449f72","line":8,"in_reply_to":"9a8ffd7b_f1ecf7f4","updated":"2015-12-02 06:21:24.000000000","message":"Done","commit_id":"4ea1654c9b45ac6081b881e936b5700fe4d3155c"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"7f74f1a042bcee9e296d4bb7bbc810f67d6706e9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"We beware that depending on the hypervisor and device type, libvirt detaches"},{"line_number":17,"context_line":"a device from a running domain may be asynchronous."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"And this is ture for an interface device."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This spec proposes to monitor libvirt events to see an interface is finally"},{"line_number":22,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_b1b98fcd","line":19,"updated":"2015-12-02 04:36:16.000000000","message":"I\u0027d rewrite the three paras above as:\n\nIn the libvirt nova driver, we call virDomainDetachDeviceFlags to detach a device. This call may be asynchronous depending on the hypervisor in use and the device type. An example of an asynchronous call is removing a network interface device.","commit_id":"4ea1654c9b45ac6081b881e936b5700fe4d3155c"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"247281bd3b9dd925d5018795a3104d6399429f3f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"We beware that depending on the hypervisor and device type, libvirt detaches"},{"line_number":17,"context_line":"a device from a running domain may be asynchronous."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"And this is ture for an interface device."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This spec proposes to monitor libvirt events to see an interface is finally"},{"line_number":22,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_185afb50","line":19,"in_reply_to":"9a8ffd7b_b1b98fcd","updated":"2015-12-02 06:21:24.000000000","message":"Done","commit_id":"4ea1654c9b45ac6081b881e936b5700fe4d3155c"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"7f74f1a042bcee9e296d4bb7bbc810f67d6706e9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternative is not doing this and let operator to get final result manually"},{"line_number":64,"context_line":"through hypervisor."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Or recheck domain configuration using virDomainGetXMLDesc()."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Data model impact"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_b1074f80","line":66,"updated":"2015-12-02 04:36:16.000000000","message":"This is an interesting alternative which is a thing we do in other places -- we just query the XML description until the change is shown or a timeout occurs. In what way is building the event infrastructure better than that?","commit_id":"4ea1654c9b45ac6081b881e936b5700fe4d3155c"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"247281bd3b9dd925d5018795a3104d6399429f3f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternative is not doing this and let operator to get final result manually"},{"line_number":64,"context_line":"through hypervisor."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Or recheck domain configuration using virDomainGetXMLDesc()."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Data model impact"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_7b9b01ca","line":66,"in_reply_to":"9a8ffd7b_b1074f80","updated":"2015-12-02 06:21:24.000000000","message":"here is the libvirt doc string. \n http://paste.openstack.org/show/480330/\n It says:\n detaching a device from a running domain may be asynchronous.\n and it suggests:\n To check whether the device was successfully removed, either recheck domain\n configuration using virDomainGetXMLDesc() or add handler for\n VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED\n\n It does not prefer which is better. \n\n we can sync check by virDomainGetXMLDesc().\n\n or async by an  event infrastructure. \n\n Usually the async event infrastructure is more complex than the  sync check.\n\n which do you prefer?","commit_id":"4ea1654c9b45ac6081b881e936b5700fe4d3155c"}]}
