)]}'
{"specs/ocata/approved/add-os-xenapi-library.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b4404410f63c07c9e25970ac1c49f1960435098","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"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":"Add os-xenapi library"},{"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":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_3b1595e4","line":7,"range":{"start_line":7,"start_character":21,"end_line":7,"end_character":42},"updated":"2016-10-20 13:45:05.000000000","message":"drop these","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"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":"Add os-xenapi library"},{"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":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_4c8932ca","line":7,"range":{"start_line":7,"start_character":21,"end_line":7,"end_character":42},"in_reply_to":"fa6399be_3b1595e4","updated":"2016-10-21 06:14:45.000000000","message":"Done","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b4404410f63c07c9e25970ac1c49f1960435098","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Launchpad Blueprint:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-os-xenapi-library"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"XenAPI is currenly involved in several OpenStack projects (e.g. Nova,"},{"line_number":15,"context_line":"Neutron, Ceilometer) and may be involved in other projects in the future."},{"line_number":16,"context_line":"By creating a new common project to hold the common XenAPI code, it will"},{"line_number":17,"context_line":"help to reduce the duplication between these projects; and also making"},{"line_number":18,"context_line":"it easier to maintain, review and propose new changes to current and future"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_fb1ebd0a","line":15,"range":{"start_line":14,"start_character":58,"end_line":15,"end_character":20},"updated":"2016-10-20 13:45:05.000000000","message":"It would be helpful to link to docs or whatnot referring to the usage of XenApi in, say, neutron. I, for one, had no idea it was used outside of nova. Purely optional though","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Launchpad Blueprint:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-os-xenapi-library"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"XenAPI is currenly involved in several OpenStack projects (e.g. Nova,"},{"line_number":15,"context_line":"Neutron, Ceilometer) and may be involved in other projects in the future."},{"line_number":16,"context_line":"By creating a new common project to hold the common XenAPI code, it will"},{"line_number":17,"context_line":"help to reduce the duplication between these projects; and also making"},{"line_number":18,"context_line":"it easier to maintain, review and propose new changes to current and future"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_4a1111ac","line":15,"range":{"start_line":14,"start_character":58,"end_line":15,"end_character":20},"in_reply_to":"fa6399be_fb1ebd0a","updated":"2016-10-21 06:14:45.000000000","message":"Agree. I will add a ceilometer spec in the section of \"references\". Surely XenAPI is used in Neutron, but unfortunately I have no suitable document for that.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b4404410f63c07c9e25970ac1c49f1960435098","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Problem description"},{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"There are serveral almost identical XenAPI classes existing in serveral"},{"line_number":25,"context_line":"projects."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We can refactor these classes to the common project os-xenapi. So it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_dbe819e5","line":24,"range":{"start_line":24,"start_character":63,"end_line":24,"end_character":71},"updated":"2016-10-20 13:45:05.000000000","message":"nit: different","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"fc3a5d2320f054a8997ef253879e8c1107b3b8e0","unresolved":false,"context_lines":[{"line_number":107,"context_line":"----------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"In a typical scenario, a blueprint implementation for the XenAPI Driver"},{"line_number":110,"context_line":"will require 2 parts:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* os-xenapi commit, adding xenapi related utils required in order to"},{"line_number":113,"context_line":"  implement the blueprint."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_a7426d3c","line":110,"updated":"2016-10-20 11:04:20.000000000","message":"not will, may.  There could certainly be nova features that don\u0027t have common code to be added to os-xenapi.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"fc3a5d2320f054a8997ef253879e8c1107b3b8e0","unresolved":false,"context_lines":[{"line_number":109,"context_line":"In a typical scenario, a blueprint implementation for the XenAPI Driver"},{"line_number":110,"context_line":"will require 2 parts:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* os-xenapi commit, adding xenapi related utils required in order to"},{"line_number":113,"context_line":"  implement the blueprint."},{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_274e5d6f","line":112,"updated":"2016-10-20 11:04:20.000000000","message":"os-xenapi release","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"In a typical scenario, a blueprint implementation for the XenAPI Driver"},{"line_number":110,"context_line":"will require 2 parts:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* os-xenapi commit, adding xenapi related utils required in order to"},{"line_number":113,"context_line":"  implement the blueprint."},{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_6af8957d","line":112,"in_reply_to":"fa6399be_274e5d6f","updated":"2016-10-21 06:14:45.000000000","message":"Done","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"04b8faa6ab9dd6d40deeb7d157265454837a34e1","unresolved":false,"context_lines":[{"line_number":109,"context_line":"In a typical scenario, a blueprint implementation for the XenAPI Driver"},{"line_number":110,"context_line":"will require 2 parts:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* os-xenapi commit, adding xenapi related utils required in order to"},{"line_number":113,"context_line":"  implement the blueprint."},{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_c7f6818e","line":112,"in_reply_to":"fa6399be_274e5d6f","updated":"2016-10-20 11:17:55.000000000","message":"ah, thats what was confusing me, yes.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b83a1e0a619da960a650fd5df75789a0cfbd6720","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"If a nova commit requires a newer version of os-xenapi, the patch to"},{"line_number":118,"context_line":"global-requirements should be referenced with Depends-On in the commit"},{"line_number":119,"context_line":"message."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"For bugfixes, there are chances that they require 2 patches: one for"},{"line_number":122,"context_line":"nova and one for os-xenapi. Any backported bugfix would be a squashed"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_d4e55109","line":119,"range":{"start_line":117,"start_character":0,"end_line":119,"end_character":8},"updated":"2016-10-20 10:51:17.000000000","message":"Thats not really possible, we generally depend on a specific version, so you would need to bump global requirements minimum to include that, and depend on the global requirements change (after having released the new version of the library)","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"If a nova commit requires a newer version of os-xenapi, the patch to"},{"line_number":118,"context_line":"global-requirements should be referenced with Depends-On in the commit"},{"line_number":119,"context_line":"message."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"For bugfixes, there are chances that they require 2 patches: one for"},{"line_number":122,"context_line":"nova and one for os-xenapi. Any backported bugfix would be a squashed"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_4a03d173","line":119,"range":{"start_line":117,"start_character":0,"end_line":119,"end_character":8},"in_reply_to":"fa6399be_072f9988","updated":"2016-10-21 06:14:45.000000000","message":"Done","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"fc3a5d2320f054a8997ef253879e8c1107b3b8e0","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"If a nova commit requires a newer version of os-xenapi, the patch to"},{"line_number":118,"context_line":"global-requirements should be referenced with Depends-On in the commit"},{"line_number":119,"context_line":"message."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"For bugfixes, there are chances that they require 2 patches: one for"},{"line_number":122,"context_line":"nova and one for os-xenapi. Any backported bugfix would be a squashed"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_072f9988","line":119,"range":{"start_line":117,"start_character":0,"end_line":119,"end_character":8},"in_reply_to":"fa6399be_94eaf972","updated":"2016-10-20 11:04:20.000000000","message":"I think a key word that should be changed is above - we should be clear that there is an \"os-xenapi release\" not an \"os-xenapi commit\"","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"If a nova commit requires a newer version of os-xenapi, the patch to"},{"line_number":118,"context_line":"global-requirements should be referenced with Depends-On in the commit"},{"line_number":119,"context_line":"message."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"For bugfixes, there are chances that they require 2 patches: one for"},{"line_number":122,"context_line":"nova and one for os-xenapi. Any backported bugfix would be a squashed"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_2afe9d6b","line":119,"range":{"start_line":117,"start_character":0,"end_line":119,"end_character":8},"in_reply_to":"fa6399be_94eaf972","updated":"2016-10-21 06:14:45.000000000","message":"Thanks for the suggestion.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5f21cf939870c56224c98d6f05301c84223c41b1","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"If a nova commit requires a newer version of os-xenapi, the patch to"},{"line_number":118,"context_line":"global-requirements should be referenced with Depends-On in the commit"},{"line_number":119,"context_line":"message."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"For bugfixes, there are chances that they require 2 patches: one for"},{"line_number":122,"context_line":"nova and one for os-xenapi. Any backported bugfix would be a squashed"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_94eaf972","line":119,"range":{"start_line":117,"start_character":0,"end_line":119,"end_character":8},"in_reply_to":"fa6399be_d4e55109","updated":"2016-10-20 10:59:09.000000000","message":"Oops, total miss-read of that text, you are saying what I think you need to.\n\nI would clarify this though, maybe something like:\n\nShould a bug fix need changes in os-xenapi, you must release a new version of os-xenapi. The Nova change then needs to bump Nova\u0027s requirements file so we pull in the required changes, and it must depends-on the global requirements change that bumps the global min version.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b83a1e0a619da960a650fd5df75789a0cfbd6720","unresolved":false,"context_lines":[{"line_number":124,"context_line":"message:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    (cherry picked from commit \u003cnova-commit-id\u003e)"},{"line_number":127,"context_line":"    (cherry picked from commit \u003cos-xenapi-commit-id)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Implementation"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_5495c130","line":127,"updated":"2016-10-20 10:51:17.000000000","message":"This is just backports I assume? I am a bit confused about what you mean here.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":124,"context_line":"message:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    (cherry picked from commit \u003cnova-commit-id\u003e)"},{"line_number":127,"context_line":"    (cherry picked from commit \u003cos-xenapi-commit-id)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Implementation"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_8a9329a3","line":127,"in_reply_to":"fa6399be_540a218b","updated":"2016-10-21 06:14:45.000000000","message":"Sorry for the confusion. Indeed it\u0027s not clear enough. Will update it accordingly. Thanks.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5f21cf939870c56224c98d6f05301c84223c41b1","unresolved":false,"context_lines":[{"line_number":124,"context_line":"message:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    (cherry picked from commit \u003cnova-commit-id\u003e)"},{"line_number":127,"context_line":"    (cherry picked from commit \u003cos-xenapi-commit-id)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Implementation"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_540a218b","line":127,"in_reply_to":"fa6399be_5495c130","updated":"2016-10-20 10:59:09.000000000","message":"Maybe lets start line 121, with \"If we need to backport a fix that merged in os-xenapi to a pre-os-xenapi world, we need to...\"","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b4404410f63c07c9e25970ac1c49f1960435098","unresolved":false,"context_lines":[{"line_number":147,"context_line":"Dependencies"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Adds os-xenapi library as a dependency."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Testing"},{"line_number":153,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_9b3ea189","line":150,"range":{"start_line":150,"start_character":0,"end_line":150,"end_character":39},"updated":"2016-10-20 13:45:05.000000000","message":"nit: \"The os-xenapi must be implemented\"?","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":147,"context_line":"Dependencies"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Adds os-xenapi library as a dependency."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Testing"},{"line_number":153,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_6a3a55cf","line":150,"range":{"start_line":150,"start_character":0,"end_line":150,"end_character":39},"in_reply_to":"fa6399be_9b3ea189","updated":"2016-10-21 06:14:45.000000000","message":"Done","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b4404410f63c07c9e25970ac1c49f1960435098","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Documentation Impact"},{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"References"},{"line_number":164,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_3b5035d4","line":162,"updated":"2016-10-20 13:45:05.000000000","message":"None","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"f14482c97410f785b0c22bd793fa1d716a66bf9e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Documentation Impact"},{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"References"},{"line_number":164,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_aa346dde","line":162,"in_reply_to":"fa6399be_3b5035d4","updated":"2016-10-21 06:14:45.000000000","message":"Done","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b4404410f63c07c9e25970ac1c49f1960435098","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"References"},{"line_number":164,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"History"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_1b6a9181","line":165,"updated":"2016-10-20 13:45:05.000000000","message":"This is purely optional, but some references to reinforce the Python 2.4 requirement would be beneficial for future readers of this spec.","commit_id":"7ca33132ecce0f63f2ba54f3b968959cf446f16e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5ffb6d20e7e11aef1f06cc738bc3473bb1fb2192","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Add os-xenapi library"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-os-xenapi-library"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"xenapi is currenly involved in several OpenStack projects(e.g. nova,"},{"line_number":16,"context_line":"neutron, ceilometer) and may be involved in other projects in the future."},{"line_number":17,"context_line":"By creating a new common project to hold the common xenapi modules, it will"},{"line_number":18,"context_line":"help to reduce the code duplication between these projects; and also making"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"Launchpad Blueprint:"},{"line_number":21,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-os-xenapi-library"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"XenAPI is currenly involved in several OpenStack projects (e.g. Nova,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_be75fd98","line":20,"range":{"start_line":11,"start_character":0,"end_line":20,"end_character":20},"updated":"2016-11-02 10:17:25.000000000","message":"Seems like you should just drop all this text?","commit_id":"94c5dff6837e433a9301bba3b5b426e0b8a2a619"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"315a624fc6a0bb2c63e145dbc64a00057af38de0","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Add os-xenapi library"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Launchpad Blueprint:"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-os-xenapi-library"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"XenAPI is currenly involved in several OpenStack projects (e.g. Nova,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_de50f134","line":11,"updated":"2016-11-02 10:22:34.000000000","message":"Nit: don\u0027t need this line.","commit_id":"3830043572147cd8dd23359eaf7d52761206a287"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"315a624fc6a0bb2c63e145dbc64a00057af38de0","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* nova commit, implementing the blueprint and using the changes made in"},{"line_number":115,"context_line":"  os-xenapi."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"If a Nova commit need changes in os-xenapi, we must release a new version"},{"line_number":118,"context_line":"of os-xenapi. The Nova change needs to bump Nova\u0027s requirements file so"},{"line_number":119,"context_line":"we pull in the required changes and it must depends-on the global"},{"line_number":120,"context_line":"requirements change that bumps the global minimal version for os-xenapi."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_992f7387","line":117,"range":{"start_line":117,"start_character":17,"end_line":117,"end_character":21},"updated":"2016-11-02 10:22:34.000000000","message":"Nit: needs","commit_id":"3830043572147cd8dd23359eaf7d52761206a287"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"315a624fc6a0bb2c63e145dbc64a00057af38de0","unresolved":false,"context_lines":[{"line_number":122,"context_line":"If we need to backport a Nova fix to a pre-os-xenapi world and this fix"},{"line_number":123,"context_line":"depends on changes which are merged in os-xenapi, the Nova backport commit"},{"line_number":124,"context_line":"should also cover the needed changes which are equivalent of the os-xenapi"},{"line_number":125,"context_line":"changes."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Implementation"},{"line_number":128,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_197fe366","line":125,"updated":"2016-11-02 10:22:34.000000000","message":"Nit: its probably clearer if you talk about an example, like a fix in the plugins, but I get what you mean.","commit_id":"3830043572147cd8dd23359eaf7d52761206a287"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"028399af4acdb4f8eb7e9d219ded3760adca3909","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"There are serveral almost identical XenAPI classes existing in different"},{"line_number":24,"context_line":"projects."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"We can refactor these classes to the common project os-xenapi. So it"},{"line_number":27,"context_line":"will reduce the code duplication and make it easier to maintain."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_9c11a5af","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":9},"updated":"2016-11-07 21:30:11.000000000","message":"Really? Which ones besides Nova? I don\u0027t see any xenapi code in Cinder, for example. The only other project I see that\u0027s close is quark.\n\nTo be clear, I\u0027m not trying to say I want more xen-specific code to live in nova, I\u0027m just curious to know how much of this xenapi session and client side logic is copied across openstack.\n\nAlso, s/serveral/several/\n\n\u003clater\u003e\n\nOK I see ceilometer, as pointed out in the references.\n\nhttps://github.com/openstack/ceilometer/blob/master/ceilometer/compute/virt/xenapi/inspector.py\n\n\u003c/later\u003e","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"d93bc8168b4614fbe1bd451171369447c93cb8d7","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"There are serveral almost identical XenAPI classes existing in different"},{"line_number":24,"context_line":"projects."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"We can refactor these classes to the common project os-xenapi. So it"},{"line_number":27,"context_line":"will reduce the code duplication and make it easier to maintain."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_0449a931","line":24,"range":{"start_line":23,"start_character":0,"end_line":24,"end_character":9},"in_reply_to":"9a629dbe_9c11a5af","updated":"2016-11-08 10:56:23.000000000","message":"Ceilometer and Neutron have worse session management than Nova.  Moving the session code to os-xenapi will enable us to use the \u0027best practice\u0027 from Nova without actual copy-paste.\n\nNeutron link: https://git.openstack.org/cgit/openstack/neutron/tree/bin/neutron-rootwrap-xen-dom0","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"028399af4acdb4f8eb7e9d219ded3760adca3909","unresolved":false,"context_lines":[{"line_number":26,"context_line":"We can refactor these classes to the common project os-xenapi. So it"},{"line_number":27,"context_line":"will reduce the code duplication and make it easier to maintain."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Specially there is currently duplication among session management and"},{"line_number":30,"context_line":"XAPI plugins."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Further, these XAPI plugins cannot conform to new Python standards as they"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_5ce2add6","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":9},"updated":"2016-11-07 21:30:11.000000000","message":"nit: Specifically","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"028399af4acdb4f8eb7e9d219ded3760adca3909","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Specially there is currently duplication among session management and"},{"line_number":30,"context_line":"XAPI plugins."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Further, these XAPI plugins cannot conform to new Python standards as they"},{"line_number":33,"context_line":"run in XenServer\u0027s dom0 where there is only Python2.4 (XenServer 6.5 and"},{"line_number":34,"context_line":"older releases). It makes things tricky when modify plugins and also bring"},{"line_number":35,"context_line":"trouble to add unit tests for these plugins in a way compatible with the"},{"line_number":36,"context_line":"rest of Nova."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_1cf03590","line":36,"range":{"start_line":32,"start_character":0,"end_line":36,"end_character":13},"updated":"2016-11-07 21:30:11.000000000","message":"What other projects have the xenapi plugins? I only see those in nova.\n\nSo is the point of moving the xenapi plugins to a separate library just so we can have a sort of, get this out of nova\u0027s purview?\n\nDo we even unit test those nova xenapi plugins today? I didn\u0027t think we did, so I\u0027m not sure how it matters. Unless moving them to the library means you\u0027re going to be able to unit test them in a py24 environment?","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"d93bc8168b4614fbe1bd451171369447c93cb8d7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Specially there is currently duplication among session management and"},{"line_number":30,"context_line":"XAPI plugins."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Further, these XAPI plugins cannot conform to new Python standards as they"},{"line_number":33,"context_line":"run in XenServer\u0027s dom0 where there is only Python2.4 (XenServer 6.5 and"},{"line_number":34,"context_line":"older releases). It makes things tricky when modify plugins and also bring"},{"line_number":35,"context_line":"trouble to add unit tests for these plugins in a way compatible with the"},{"line_number":36,"context_line":"rest of Nova."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_a4b47df2","line":36,"range":{"start_line":32,"start_character":0,"end_line":36,"end_character":13},"in_reply_to":"9a629dbe_1cf03590","updated":"2016-11-08 10:56:23.000000000","message":"Neutron already does, see https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/drivers/openvswitch/agent/xenapi/etc/xapi.d/plugins/netwrap\nCeilometer needs one, see https://review.openstack.org/#/c/367714/5/ceilometer/compute/virt/xenapi/inspector.py line 181.\nNote that Ceilometer is needing to call the same plugin that already exists in Nova, so moving them to a common base makes sense.\n\nSome Unit Tests are running already in a py24 context (see https://git.openstack.org/cgit/openstack/nova/tree/nova/tests/unit/virt/xenapi/plugins) however we will of course extend the UT to cover all plugins in os-xenapi.\n\nThe plugins existence in Nova has seemed to be a frustration to several who want to fully py3ify Nova\u0027s code base, and having to continue to make exceptions in Nova is likely to cause further frustration IMO.  Separating out the plugins will mean any 2.4 specific code is fully contained in a library and Nova won\u0027t need to worry moving forward.","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"933a7ee695addbcc72b20fc55423b8855f9e3755","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Specially there is currently duplication among session management and"},{"line_number":30,"context_line":"XAPI plugins."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Further, these XAPI plugins cannot conform to new Python standards as they"},{"line_number":33,"context_line":"run in XenServer\u0027s dom0 where there is only Python2.4 (XenServer 6.5 and"},{"line_number":34,"context_line":"older releases). It makes things tricky when modify plugins and also bring"},{"line_number":35,"context_line":"trouble to add unit tests for these plugins in a way compatible with the"},{"line_number":36,"context_line":"rest of Nova."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_ea30bc03","line":36,"range":{"start_line":32,"start_character":0,"end_line":36,"end_character":13},"in_reply_to":"9a629dbe_a4b47df2","updated":"2016-11-09 14:22:48.000000000","message":"\u003e Separating out the plugins will mean any 2.4 specific code is fully contained in a library and Nova won\u0027t need to worry moving forward.\n\nWell, I\u0027m not entirely sure but I thought that for nova to claim py3 support, nova itself has to be py3 compliant as does it\u0027s dependencies...\n\nThe xenapi library would have py3 (or need to be py3 compliant) session/API code. The plugins would probably have to remain py24 I guess but based on how those are used it might not matter that they don\u0027t support py3.","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"028399af4acdb4f8eb7e9d219ded3760adca3909","unresolved":false,"context_lines":[{"line_number":55,"context_line":"* Add os-xenapi in requirements.txt"},{"line_number":56,"context_line":"* Replace all ``nova.virt.xenapi.client`` imports used by the XenAPI"},{"line_number":57,"context_line":"  driver with \"os_xenapi.client\"."},{"line_number":58,"context_line":"* Improve interface between Nova and os-xenapi so dom0 plugins are"},{"line_number":59,"context_line":"  invoked through python calls to os-xenapi so version consistency is"},{"line_number":60,"context_line":"  provided using os-xenapi rather than an explicit API check against"},{"line_number":61,"context_line":"  the plugins in dom0."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_7cd131cd","line":61,"range":{"start_line":58,"start_character":2,"end_line":61,"end_character":22},"updated":"2016-11-07 21:30:11.000000000","message":"This is probably the biggest win in this spec from what I can tell.","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"028399af4acdb4f8eb7e9d219ded3760adca3909","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Security impact"},{"line_number":80,"context_line":"---------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"None"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Notifications impact"},{"line_number":85,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_dc86bdb8","line":82,"updated":"2016-11-07 21:30:11.000000000","message":"Does nova have rootwrap filters for things that are in this code that\u0027s moving to the library? If so, I assume nova still has to maintain those rootwrap filters even though the code using them would now be out of tree. We had a problem with this with os-brick since it wasn\u0027t using privsep initially and nova\u0027s compute rootwrap filter had to have commands in it that weren\u0027t in nova, but were in os-brick, which was a bit of a mess.","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"d93bc8168b4614fbe1bd451171369447c93cb8d7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Security impact"},{"line_number":80,"context_line":"---------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"None"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Notifications impact"},{"line_number":85,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_64a185a9","line":82,"in_reply_to":"9a629dbe_dc86bdb8","updated":"2016-11-08 10:56:23.000000000","message":"I believe it does not; none of the plugins are run through a rootwrap as the plugin is effectively the wrapper.\nNova would not need to maintain any filters to support the plugins, and we\u0027re not intending to make any local privileged calls from os-xenapi.","commit_id":"e548b6d0542c7bf8dfd25b8a2f272644471ed8f2"}]}
