)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"6de301a182656aff76457c96484e7ea895abbea2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Devananda van der Veen \u003cdevananda.vdv@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-05-22 15:04:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add spec for the nova.virt.ironic driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I585754dd5c11a97a4eef01819387ce37b9a6a8b3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7adec928_baf145cf","line":7,"updated":"2014-05-23 09:18:22.000000000","message":"The title of the commit message should match the title of the spec document.\n\nThe first paragraph intro of the spec document should also be used in the commit message body.","commit_id":"37b3196abaaeabf3dbfbf6240bda345478ff5cbd"}],"specs/juno/add-ironic-driver.rst":[{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"b73cceeac86b984502a6e0af03b235283aac08bd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"One alternative would be for users to directly interact with Ironic\u0027s API,"},{"line_number":63,"context_line":"circumventing Nova when deploying instances to bare metal. This would require"},{"line_number":64,"context_line":"Ironic to duplicate a significant amount of functionality present in Nova, and"},{"line_number":65,"context_line":"violate the abstraction layer. "},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Instead of creating a new IronicHostManager class, the existing"},{"line_number":68,"context_line":"BaremetalHostManager class could be refactored to support both drivers."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3ae8d1ca_459a8015","line":65,"updated":"2014-05-27 02:59:50.000000000","message":"Worth noting the Security impact section below as an argument to not allow users direct access to the Ironic API.","commit_id":"4ff8876d620fa35f57e4cbb8504c6f83438afac5"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"482e4ac572cf64e3fc48a0c5479c2ff29e73a482","unresolved":false,"context_lines":[{"line_number":62,"context_line":"One alternative would be for users to directly interact with Ironic\u0027s API,"},{"line_number":63,"context_line":"circumventing Nova when deploying instances to bare metal. This would require"},{"line_number":64,"context_line":"Ironic to duplicate a significant amount of functionality present in Nova, and"},{"line_number":65,"context_line":"violate the abstraction layer. "},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Instead of creating a new IronicHostManager class, the existing"},{"line_number":68,"context_line":"BaremetalHostManager class could be refactored to support both drivers."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_b39275f4","line":65,"in_reply_to":"3ae8d1ca_459a8015","updated":"2014-06-09 17:34:00.000000000","message":"Done","commit_id":"4ff8876d620fa35f57e4cbb8504c6f83438afac5"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"749a2f69be4d609acb95c19377b48bb80dbd4177","unresolved":false,"context_lines":[{"line_number":103,"context_line":"nova-compute would expose that hardware\u0027s management interface."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"In a properly-secured OpenStack deployment, security will be improved by moving"},{"line_number":106,"context_line":"this functionality out of nova-compute and into ironic-conducto, because there"},{"line_number":107,"context_line":"is a strict API between the two services."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"The ironic-api should not be reachable or discoverable by end-users, and only"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5adbc538_a3da5ee7","line":106,"updated":"2014-05-24 01:24:57.000000000","message":"conducto -\u003e conductor","commit_id":"4ff8876d620fa35f57e4cbb8504c6f83438afac5"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"482e4ac572cf64e3fc48a0c5479c2ff29e73a482","unresolved":false,"context_lines":[{"line_number":103,"context_line":"nova-compute would expose that hardware\u0027s management interface."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"In a properly-secured OpenStack deployment, security will be improved by moving"},{"line_number":106,"context_line":"this functionality out of nova-compute and into ironic-conducto, because there"},{"line_number":107,"context_line":"is a strict API between the two services."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"The ironic-api should not be reachable or discoverable by end-users, and only"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_13c169e4","line":106,"in_reply_to":"5adbc538_a3da5ee7","updated":"2014-06-09 17:34:00.000000000","message":"Done","commit_id":"4ff8876d620fa35f57e4cbb8504c6f83438afac5"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"749a2f69be4d609acb95c19377b48bb80dbd4177","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Devstack creates a \"mock\" bare metal node and enrolls it with Ironic, and"},{"line_number":196,"context_line":"configures Nova appropriately to use the nova.virt.baremetal driver. This"},{"line_number":197,"context_line":"allows tempest to test a subset of functionality (eg, deploy, teardown"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Documentation Impact"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5adbc538_e3e466ae","line":198,"updated":"2014-05-24 01:24:57.000000000","message":"end parenthesis?","commit_id":"4ff8876d620fa35f57e4cbb8504c6f83438afac5"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"482e4ac572cf64e3fc48a0c5479c2ff29e73a482","unresolved":false,"context_lines":[{"line_number":195,"context_line":"Devstack creates a \"mock\" bare metal node and enrolls it with Ironic, and"},{"line_number":196,"context_line":"configures Nova appropriately to use the nova.virt.baremetal driver. This"},{"line_number":197,"context_line":"allows tempest to test a subset of functionality (eg, deploy, teardown"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Documentation Impact"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_4ee26804","line":198,"in_reply_to":"5adbc538_e3e466ae","updated":"2014-06-09 17:34:00.000000000","message":"Done","commit_id":"4ff8876d620fa35f57e4cbb8504c6f83438afac5"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"98428a5d800177088db436b1f800cee617fbdad7","unresolved":false,"context_lines":[{"line_number":20,"context_line":"The community has split out the functionality of provisioning bare metal"},{"line_number":21,"context_line":"servers into a separate program, which includes the ironic and"},{"line_number":22,"context_line":"python-ironicclient projects. The original intent of the"},{"line_number":23,"context_line":"nova.virt.baremetal driver was to be an experimental proof-of-concept for"},{"line_number":24,"context_line":"TripleO, it was demonstrated to be useful in its own right. In order to address"},{"line_number":25,"context_line":"scalability and architectural concerns, this driver was split out into a"},{"line_number":26,"context_line":"separate OpenStack Program."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_e9c74543","line":23,"updated":"2014-06-12 01:00:29.000000000","message":"This isn\u0027t correct though, doesn\u0027t the baremetal driver predate the tripleo project?","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"59c01f21c8d882cbf88c172ecbbc6a079b7ef883","unresolved":false,"context_lines":[{"line_number":20,"context_line":"The community has split out the functionality of provisioning bare metal"},{"line_number":21,"context_line":"servers into a separate program, which includes the ironic and"},{"line_number":22,"context_line":"python-ironicclient projects. The original intent of the"},{"line_number":23,"context_line":"nova.virt.baremetal driver was to be an experimental proof-of-concept for"},{"line_number":24,"context_line":"TripleO, it was demonstrated to be useful in its own right. In order to address"},{"line_number":25,"context_line":"scalability and architectural concerns, this driver was split out into a"},{"line_number":26,"context_line":"separate OpenStack Program."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_1fc29a33","line":23,"in_reply_to":"1ae5cdf2_e9c74543","updated":"2014-06-13 22:25:53.000000000","message":"Code wise? Yes. Our team working on it? No.\n\nI\u0027ll clarify the wording here.","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"98428a5d800177088db436b1f800cee617fbdad7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  library to interact with Ironic\u0027s REST API for the purpose of provisioning"},{"line_number":42,"context_line":"  physical machines. This driver implements a subset of the Nova virt driver"},{"line_number":43,"context_line":"  API. Initially, it will only support the same functionality that the"},{"line_number":44,"context_line":"  nova.virt.baremetal driver supported."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* add new IronicHostManager class, similar to BaremetalHostManager, which"},{"line_number":47,"context_line":"  fills the same purpose but is specific to Ironic."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_a900dd66","line":44,"updated":"2014-06-12 01:00:29.000000000","message":"I think this is ok initially, but we should expect the ironic driver to implement as much of the driver interface as possible over time.","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"59c01f21c8d882cbf88c172ecbbc6a079b7ef883","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  library to interact with Ironic\u0027s REST API for the purpose of provisioning"},{"line_number":42,"context_line":"  physical machines. This driver implements a subset of the Nova virt driver"},{"line_number":43,"context_line":"  API. Initially, it will only support the same functionality that the"},{"line_number":44,"context_line":"  nova.virt.baremetal driver supported."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* add new IronicHostManager class, similar to BaremetalHostManager, which"},{"line_number":47,"context_line":"  fills the same purpose but is specific to Ironic."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_9a331861","line":44,"in_reply_to":"1ae5cdf2_a900dd66","updated":"2014-06-13 22:25:53.000000000","message":"Done","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"98428a5d800177088db436b1f800cee617fbdad7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* subclass the ComputeManager to override init_host(). This is necessary"},{"line_number":54,"context_line":"  to support running more than one nova-compute process sharing access to"},{"line_number":55,"context_line":"  a single Ironic control plane, so that _init_host is not called in"},{"line_number":56,"context_line":"  parallel by multiple nova-compute processes for the same host in Ironic."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_09ef11b2","line":56,"updated":"2014-06-12 01:00:29.000000000","message":"Is there a review somewhere that shows how this would work?","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"9385cabb3e15ac9fc3c63e8bbdb6c98eac4040b9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* subclass the ComputeManager to override init_host(). This is necessary"},{"line_number":54,"context_line":"  to support running more than one nova-compute process sharing access to"},{"line_number":55,"context_line":"  a single Ironic control plane, so that _init_host is not called in"},{"line_number":56,"context_line":"  parallel by multiple nova-compute processes for the same host in Ironic."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_1bad5731","line":56,"in_reply_to":"1ae5cdf2_09ef11b2","updated":"2014-06-13 16:24:44.000000000","message":"Can you explain why you need multiple nova-compute processes on the same host - I though all of the Ironic scalability came from its conductor layer, and nova-compute was a very thin proxy.","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"59c01f21c8d882cbf88c172ecbbc6a079b7ef883","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* subclass the ComputeManager to override init_host(). This is necessary"},{"line_number":54,"context_line":"  to support running more than one nova-compute process sharing access to"},{"line_number":55,"context_line":"  a single Ironic control plane, so that _init_host is not called in"},{"line_number":56,"context_line":"  parallel by multiple nova-compute processes for the same host in Ironic."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_9acf9828","line":56,"in_reply_to":"1ae5cdf2_09ef11b2","updated":"2014-06-13 22:25:53.000000000","message":"The code for this is present in Ironic already. It was added in\n\nhttps://review.openstack.org/#/c/82637/","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"aef23f91882f0b0696a50582c26bdd53634c3378","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* subclass the ComputeManager to override init_host(). This is necessary"},{"line_number":54,"context_line":"  to support running more than one nova-compute process sharing access to"},{"line_number":55,"context_line":"  a single Ironic control plane, so that _init_host is not called in"},{"line_number":56,"context_line":"  parallel by multiple nova-compute processes for the same host in Ironic."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_d6b586ed","line":56,"in_reply_to":"1ae5cdf2_1bad5731","updated":"2014-06-13 16:45:11.000000000","message":"One does not need to (and should not) run multiple nova-compute processes on the same host. I have never said that, and the spec does not indicate that at all.\n\nNova compute *is* just a thin proxy here. However if you want to have full HA, then you need to run more than one nova-compute process.\n\nIf you do that, then the two nova-compute processes are going to, at least today, have some problems unless we change a few things (which is what this spec is describing).","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"98428a5d800177088db436b1f800cee617fbdad7","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  installed on the compute host itself."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* the OpenStack Ironic services must be properly set up and discoverable"},{"line_number":157,"context_line":"  via Keystone in order for the nova.virt.ironic driver to function properly."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Developer impact"},{"line_number":160,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_4913d9b7","line":157,"updated":"2014-06-12 01:00:29.000000000","message":"I feel the plan for upgrade from baremetal should be covered in this document, probably in this section.","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"59c01f21c8d882cbf88c172ecbbc6a079b7ef883","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  installed on the compute host itself."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* the OpenStack Ironic services must be properly set up and discoverable"},{"line_number":157,"context_line":"  via Keystone in order for the nova.virt.ironic driver to function properly."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Developer impact"},{"line_number":160,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_7af3ac72","line":157,"in_reply_to":"1ae5cdf2_4913d9b7","updated":"2014-06-13 22:25:53.000000000","message":"I have a separate spec for that, as I felt it was long enough to warrant its own document. Is referencing it here sufficient, or should I merge them?","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"98428a5d800177088db436b1f800cee617fbdad7","unresolved":false,"context_lines":[{"line_number":200,"context_line":"The following paragraph describes how it works."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Devstack creates a \"mock\" bare metal node, enrolls it with Ironic, and"},{"line_number":203,"context_line":"configures Nova appropriately to use the nova.virt.baremetal driver. A tempest"},{"line_number":204,"context_line":"scenario test is then run against that devstack instance, which allows tempest"},{"line_number":205,"context_line":"to test functionality appropriate for this driver. Certain tests may be"},{"line_number":206,"context_line":"excluded when the functionality does not apply to bare metal (eg,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_89096186","line":203,"updated":"2014-06-12 01:00:29.000000000","message":"Baremetal or ironic?","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"59c01f21c8d882cbf88c172ecbbc6a079b7ef883","unresolved":false,"context_lines":[{"line_number":200,"context_line":"The following paragraph describes how it works."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Devstack creates a \"mock\" bare metal node, enrolls it with Ironic, and"},{"line_number":203,"context_line":"configures Nova appropriately to use the nova.virt.baremetal driver. A tempest"},{"line_number":204,"context_line":"scenario test is then run against that devstack instance, which allows tempest"},{"line_number":205,"context_line":"to test functionality appropriate for this driver. Certain tests may be"},{"line_number":206,"context_line":"excluded when the functionality does not apply to bare metal (eg,"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_9555abfb","line":203,"in_reply_to":"1ae5cdf2_89096186","updated":"2014-06-13 22:25:53.000000000","message":"woops","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"98428a5d800177088db436b1f800cee617fbdad7","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Documentation should be added to Nova stating the existence of the new driver,"},{"line_number":219,"context_line":"and should include links to the Ironic project\u0027s developer and deployer"},{"line_number":220,"context_line":"documentation."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"References"},{"line_number":223,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_091d51be","line":220,"updated":"2014-06-12 01:00:29.000000000","message":"Does the ironic team have documentation resources who can help with this, or is this work that the existing openstack manuals team will perform?","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"59c01f21c8d882cbf88c172ecbbc6a079b7ef883","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Documentation should be added to Nova stating the existence of the new driver,"},{"line_number":219,"context_line":"and should include links to the Ironic project\u0027s developer and deployer"},{"line_number":220,"context_line":"documentation."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"References"},{"line_number":223,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_3544d745","line":220,"in_reply_to":"1ae5cdf2_091d51be","updated":"2014-06-13 22:25:53.000000000","message":"We do not have any dedicated documentation team members. My assumption is that the amount of docs needed here are fairly light -- and that most of the doc work will remain within the Ironic project.\n\nIf that is incorrect, please let me know.","commit_id":"e282f084b0b66e536050b4de6b1501414b500116"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"93b03cba67917d6ef0f9c6a2082a70ee6eb83b76","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* subclass the ComputeManager to override init_host(). This is necessary"},{"line_number":57,"context_line":"  to support running more than one nova-compute process sharing access to"},{"line_number":58,"context_line":"  a single Ironic control plane, so that _init_host is not called in"},{"line_number":59,"context_line":"  parallel by multiple nova-compute processes for the same host in Ironic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":62,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_b307fe17","line":59,"updated":"2014-06-16 10:33:52.000000000","message":"I think this still needs more explanation,  \n\nExplaining that you want to run multiple nova-computes reporting the same hostname for HA, and that this is safe for Ironic because nova-compute is stateless in this case would be a good start.\n\nI looked at the patch you provided the link for and it seems to just remove a bunch of code that isn\u0027t needed for ironic - I still don\u0027t see or understand how this related to \"so that _init_host is not called in parallel by multiple nova-compute processes for the same host in Ironic.\" though","commit_id":"38252e9eb7c9cfc47740b5c45196aa97170bfa22"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"abbdb0342fa72ac2d7287c90fea3913517b59782","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* subclass the ComputeManager to override init_host(). This is necessary"},{"line_number":57,"context_line":"  to support running more than one nova-compute process sharing access to"},{"line_number":58,"context_line":"  a single Ironic control plane, so that _init_host is not called in"},{"line_number":59,"context_line":"  parallel by multiple nova-compute processes for the same host in Ironic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":62,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_28528668","line":59,"in_reply_to":"1ae5cdf2_b307fe17","updated":"2014-06-16 22:32:42.000000000","message":"Thanks for the suggestion on what you\u0027d like clarified. I\u0027ve updated this a bit based on that.","commit_id":"38252e9eb7c9cfc47740b5c45196aa97170bfa22"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"bb4bb3eb64ad7424c4ab0bbd5068ff1497d59f35","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  another compute host). The following changes to the ComputeManager will be"},{"line_number":62,"context_line":"  made in a new ClusteredComputeManager subclass, and documentation will be"},{"line_number":63,"context_line":"  added explaining that it should be used only in conjunction with the Ironic"},{"line_number":64,"context_line":"  virt drier. Specifically, this subclass will override init_host() to avoid"},{"line_number":65,"context_line":"  the call to InstanceList.get_by_host(), self._destroy_evacuated_instances()"},{"line_number":66,"context_line":"  and self._init_instance()."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_7c89f124","line":64,"updated":"2014-06-20 19:24:05.000000000","message":"nit: drier \u003d\u003e driver","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fe963d45665364bf03c04b5361f872ef647c0bca","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  added explaining that it should be used only in conjunction with the Ironic"},{"line_number":64,"context_line":"  virt drier. Specifically, this subclass will override init_host() to avoid"},{"line_number":65,"context_line":"  the call to InstanceList.get_by_host(), self._destroy_evacuated_instances()"},{"line_number":66,"context_line":"  and self._init_instance()."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":69,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_70c035e0","line":66,"updated":"2014-06-20 19:29:34.000000000","message":"The problem is, this breaks a lot of things in nova. Right now, nova assumes that a single nova-compute owns a given instance, and that only one compute with hostname instance.host is in ownership of the instance. Doing the above would break anything that currently does this:\n\n with utils.synchronized(instance.uuid):\n   # thing\n\nWhich is build/run, terminate, etc, etc. Any of those things would be racing against each other on different computes that all think they hold the lock for instance.uuid.\n\nI don\u0027t see how we can allow this to proceed without serious work on nova-compute (which would impose a significant performance penalty for distributed locking in the case where we don\u0027t need this) or design the ownership/relationship between nova-compute and ironic differently.","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"4c1567195530302a815e110841758c893c416c2e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  added explaining that it should be used only in conjunction with the Ironic"},{"line_number":64,"context_line":"  virt drier. Specifically, this subclass will override init_host() to avoid"},{"line_number":65,"context_line":"  the call to InstanceList.get_by_host(), self._destroy_evacuated_instances()"},{"line_number":66,"context_line":"  and self._init_instance()."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":69,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_df54b255","line":66,"in_reply_to":"1ae5cdf2_2650372b","updated":"2014-06-20 23:25:24.000000000","message":"I\u0027ve moved this to the \"Alternatives\" section, changed the wording as appropriate, and added a paragraph here explaining what has been suggested by the Nova team.","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"38108e52e8c44f3b37bdc8fa92eafc4979677ccd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  added explaining that it should be used only in conjunction with the Ironic"},{"line_number":64,"context_line":"  virt drier. Specifically, this subclass will override init_host() to avoid"},{"line_number":65,"context_line":"  the call to InstanceList.get_by_host(), self._destroy_evacuated_instances()"},{"line_number":66,"context_line":"  and self._init_instance()."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":69,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_2650372b","line":66,"in_reply_to":"1ae5cdf2_266f5729","updated":"2014-06-20 21:04:27.000000000","message":"Oh, and BTW, dan ended up thinking about a real world current problem with this model. It really depends on your neutron driver and so forth... but the code in compute manager that waits for event callbacks from neutron would not work. The callback info could end up going to the wrong nova-compute..  The correct one would be waiting forever (or timeout eventually).","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"36aaf1373fcd56860d96b6585b494432eec8e9eb","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  added explaining that it should be used only in conjunction with the Ironic"},{"line_number":64,"context_line":"  virt drier. Specifically, this subclass will override init_host() to avoid"},{"line_number":65,"context_line":"  the call to InstanceList.get_by_host(), self._destroy_evacuated_instances()"},{"line_number":66,"context_line":"  and self._init_instance()."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":69,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_266f5729","line":66,"in_reply_to":"1ae5cdf2_70c035e0","updated":"2014-06-20 20:54:57.000000000","message":"dansmith, russellb, and I discussed this some more. I recommend removing this section from the spec. HA/LB is likely not a requirement for graduation, but merging this driver definitely is. :)\n\nIf HA or scaling comes up as a part of graduation or you want to list some solutions here, there are some other answers, whether or not they are the answers you like best. HA could be done active/passive for nova-compute outside of nova.  And scaling could be achieved by setting up multiple nova-compute \u003c-\u003e ironic clusters. Those could be the answers for now. They\u0027re essentially the same answers that the other clustered compute drivers have right now.\n\nThis would allow graduation and then we can work to make nova support this better when thinking about the general re-architecture of nova compute wrt clustered hypervisors. I think this is more a nova architecture limitation than it is an Ironic problem.","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4718f0594ca088b53333e8ee30f74b2f1e9d5d34","unresolved":false,"context_lines":[{"line_number":88,"context_line":"Instead of adding exact-match scheduler filters, we could create a new"},{"line_number":89,"context_line":"scheduler that is specifically geared towards non-divisible resources."},{"line_number":90,"context_line":"However, this approach is sufficient for many use cases, and does not prevent"},{"line_number":91,"context_line":"the later creation of another scheduler."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Instead of overriding ComputeManager.init_host(), a significant rewrite of"},{"line_number":94,"context_line":"Nova\u0027s internal resource model could be undertaken -- eg, to remove the (host,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_973601b3","line":91,"updated":"2014-06-18 11:11:46.000000000","message":"We actually have the cells scheduler that is probably a better fix, but we can sort those details out later.","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4718f0594ca088b53333e8ee30f74b2f1e9d5d34","unresolved":false,"context_lines":[{"line_number":175,"context_line":"An upgrade path from the nova.virt.baremetal driver to the nova.virt.ironic"},{"line_number":176,"context_line":"driver will be provided. The details of that are proposed in another document:"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"  https://review.openstack.org/95025"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"Developer impact"},{"line_number":181,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_d70ec9e4","line":178,"updated":"2014-06-18 11:11:46.000000000","message":"I don\u0027t really like referencing reviews in long lived specs, I would rather it linked the blueprints, but its a minor nit.","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"4c1567195530302a815e110841758c893c416c2e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"An upgrade path from the nova.virt.baremetal driver to the nova.virt.ironic"},{"line_number":176,"context_line":"driver will be provided. The details of that are proposed in another document:"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"  https://review.openstack.org/95025"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"Developer impact"},{"line_number":181,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_9f578a59","line":178,"in_reply_to":"1ae5cdf2_d70ec9e4","updated":"2014-06-20 23:25:24.000000000","message":"Done","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4718f0594ca088b53333e8ee30f74b2f1e9d5d34","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"* Split up the driver and land it"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"* Delete driver from Ironic\u0027s tree"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ae5cdf2_d725e95c","line":208,"updated":"2014-06-18 11:11:46.000000000","message":"I like that split, sounds good.","commit_id":"f194ecfc350aa2a2e55fcf8aca42715940c9aeb2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"75b3fb8124ab3cc1aba0f4434be21f4240d70030","unresolved":false,"context_lines":[{"line_number":61,"context_line":"possible where there is no local hypervisor."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"This driver will expose the complete resources of the ironic service it is"},{"line_number":64,"context_line":"connected to. Therefor, running multiple nova-compute processes within a"},{"line_number":65,"context_line":"single cell or region will not be possible, and HA for the nova-compute"},{"line_number":66,"context_line":"service must be achieved externally, eg. via pacemaker+corosync. Scale-out"},{"line_number":67,"context_line":"may be achieved by running multiple ironic clusters, with a single n-cpu"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_b33e1e8a","line":64,"updated":"2014-06-23 14:28:44.000000000","message":"s/Therefor/Therefore/","commit_id":"a4918942b5c056d1a1236f7625211e32cb7d16ba"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"75b3fb8124ab3cc1aba0f4434be21f4240d70030","unresolved":false,"context_lines":[{"line_number":90,"context_line":"An alternative was proposed which would allow multiple nova-compute processes"},{"line_number":91,"context_line":"to proxy for the same Ironic service end-point at the same time. This could be"},{"line_number":92,"context_line":"done by setting the same \u0027host\u0027 property on each nova-compute service, such"},{"line_number":93,"context_line":"that they expose the same set of resources.  Therefor, certain operations would"},{"line_number":94,"context_line":"need to be skipped when starting the nova-compute process (eg, so it doesn\u0027t"},{"line_number":95,"context_line":"trample over an ongoing operation on another compute host). This would be"},{"line_number":96,"context_line":"accomplished by creating a new ClusteredComputeManager class (subclassed from"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_13f352e8","line":93,"updated":"2014-06-23 14:28:44.000000000","message":"Same typo here.","commit_id":"a4918942b5c056d1a1236f7625211e32cb7d16ba"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"75b3fb8124ab3cc1aba0f4434be21f4240d70030","unresolved":false,"context_lines":[{"line_number":212,"context_line":"Work Items"},{"line_number":213,"context_line":"----------"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Merge auxiliary components: HostManager, ComputeManager, scheduler filters"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* Delete auxiliary components from Ironic\u0027s tree"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_33ef6eb3","line":215,"updated":"2014-06-23 14:28:44.000000000","message":"Can you describe what these subclassed managers do differently? We\u0027ve been trying to kill the \"use this class instead\" plug points for a while, and this looks like it will cement the need forever. What needs to be done fundamentally different in these, over the main classes?","commit_id":"a4918942b5c056d1a1236f7625211e32cb7d16ba"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"c7a52ef8e4fa2c069e3c307aba7a55ede3f2dba9","unresolved":false,"context_lines":[{"line_number":212,"context_line":"Work Items"},{"line_number":213,"context_line":"----------"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Merge auxiliary components: HostManager, ComputeManager, scheduler filters"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* Delete auxiliary components from Ironic\u0027s tree"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1ae5cdf2_252396a8","line":215,"in_reply_to":"1ae5cdf2_33ef6eb3","updated":"2014-06-23 21:09:15.000000000","message":"I believe this was described at the top of the proposal:\n\n* add new IronicHostManager class, similar to BaremetalHostManager, which\n  fills the same purpose but is specific to Ironic.\n* add exact-match scheduler filters, to facilitate users who wish to match\n  nova flavor to hardware specifications exactly. The best matching possible\n  today is greater-than-or-equal, which is undesirable in some cases.\n\nHowever, the ComputeManager was part of an earlier proposal (now moved to the Alternates section). I\u0027ll remove that from the list of work items","commit_id":"a4918942b5c056d1a1236f7625211e32cb7d16ba"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7dc1ec1f06c90ac17dfada98146181bef3ae48e1","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* add new IronicHostManager class, similar to BaremetalHostManager, which"},{"line_number":50,"context_line":"  fills the same purpose but is specific to Ironic. Namely, this provides"},{"line_number":51,"context_line":"  several customizations to Nova\u0027s HostManager, tailoring it to consuming"},{"line_number":52,"context_line":"  discrete and non-subdivisible physical resources."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* add exact-match scheduler filters, to facilitate users who wish to match"},{"line_number":55,"context_line":"  nova flavor to hardware specifications exactly. The best matching possible"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_b55e9d77","line":52,"updated":"2014-06-25 19:08:19.000000000","message":"I\u0027d love to see more details on what exactly these customizations would be. It\u0027s of particular concern to me after reading through all the scheduler code and trying to understand how the Gantt project will realistically be able to segregate this code out of Nova.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bb025ae926e2f5475113b2e1479e43b0a73edc48","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* add new IronicHostManager class, similar to BaremetalHostManager, which"},{"line_number":50,"context_line":"  fills the same purpose but is specific to Ironic. Namely, this provides"},{"line_number":51,"context_line":"  several customizations to Nova\u0027s HostManager, tailoring it to consuming"},{"line_number":52,"context_line":"  discrete and non-subdivisible physical resources."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* add exact-match scheduler filters, to facilitate users who wish to match"},{"line_number":55,"context_line":"  nova flavor to hardware specifications exactly. The best matching possible"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_75ab3575","line":52,"updated":"2014-06-25 18:52:40.000000000","message":"This is what I wanted to see, thanks.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba88c9eaee61a42a8c9fb3d8e897311cc360c3c4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"* add new IronicHostManager class, similar to BaremetalHostManager, which"},{"line_number":50,"context_line":"  fills the same purpose but is specific to Ironic. Namely, this provides"},{"line_number":51,"context_line":"  several customizations to Nova\u0027s HostManager, tailoring it to consuming"},{"line_number":52,"context_line":"  discrete and non-subdivisible physical resources."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* add exact-match scheduler filters, to facilitate users who wish to match"},{"line_number":55,"context_line":"  nova flavor to hardware specifications exactly. The best matching possible"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_2305e00f","line":52,"in_reply_to":"1ae5cdf2_b55e9d77","updated":"2014-06-26 09:30:14.000000000","message":"Its basically the same issue with the cells scheduling too.\n\nI like to think of it as pie. Each \"resource provider\" says if its is pre-sliced or not. The pre-sliced report slots available, and counts, the non-sliced just tell you how big the pie is. And that property its-self is a host stat.\n\nBut I don\u0027t think we can make Ironic solve Nova issues at this point.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7dc1ec1f06c90ac17dfada98146181bef3ae48e1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  nova flavor to hardware specifications exactly. The best matching possible"},{"line_number":56,"context_line":"  today is greater-than-or-equal, which is often undesirable (eg. because"},{"line_number":57,"context_line":"  a machine with 128GB of RAM could be selected to fulfil a request for an"},{"line_number":58,"context_line":"  instance with 16GB of RAM)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":61,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_3587edb7","line":58,"updated":"2014-06-25 19:08:19.000000000","message":"IMO, this is not a problem with the scheduler filters, but rather with the way that flavors are constructed and managed in Nova. If we had a way of indicating in our launch instance process that the instance is intended to not share any resources with any other instances, this problem could be generalized outside of the bare-metal placement problem. Unfortunately, we don\u0027t have such a mechanism, and so we twist and contort the scheduler filters instead :(","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba88c9eaee61a42a8c9fb3d8e897311cc360c3c4","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  nova flavor to hardware specifications exactly. The best matching possible"},{"line_number":56,"context_line":"  today is greater-than-or-equal, which is often undesirable (eg. because"},{"line_number":57,"context_line":"  a machine with 128GB of RAM could be selected to fulfil a request for an"},{"line_number":58,"context_line":"  instance with 16GB of RAM)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"This driver will initially implement a subset of the Nova virt driver API"},{"line_number":61,"context_line":"sufficient to support the same functionality that the nova.virt.baremetal"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_605d1e48","line":58,"in_reply_to":"1ae5cdf2_3587edb7","updated":"2014-06-26 09:30:14.000000000","message":"Just an extra spec to pick baremetal, over anything else, would work I thought?","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7dc1ec1f06c90ac17dfada98146181bef3ae48e1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"service must be achieved externally, eg. via pacemaker+corosync. Scale-out"},{"line_number":71,"context_line":"may be achieved by running multiple ironic clusters, with a single n-cpu"},{"line_number":72,"context_line":"connected to each ironic end-point. This is not optimal, and is a result"},{"line_number":73,"context_line":"of a current limitation within Nova. See the Alternatives section below"},{"line_number":74,"context_line":"for a summary of the discussion which has occurred around this limitation."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_7556d52b","line":73,"updated":"2014-06-25 19:08:19.000000000","message":"It\u0027s not a limitation. It\u0027s a designed feature in Nova. A single nova-compute worker is designed to only control the specific resources of a single piece of hardware, and not a cluster of hardware resources. It was designed this way on purpose for scale out and simplicity, and the bare-metal and VMWare drivers have messed with that fundamental design principle.\n\nI object to it being called a limitation in Nova, frankly.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba88c9eaee61a42a8c9fb3d8e897311cc360c3c4","unresolved":false,"context_lines":[{"line_number":70,"context_line":"service must be achieved externally, eg. via pacemaker+corosync. Scale-out"},{"line_number":71,"context_line":"may be achieved by running multiple ironic clusters, with a single n-cpu"},{"line_number":72,"context_line":"connected to each ironic end-point. This is not optimal, and is a result"},{"line_number":73,"context_line":"of a current limitation within Nova. See the Alternatives section below"},{"line_number":74,"context_line":"for a summary of the discussion which has occurred around this limitation."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_c3151c3e","line":73,"in_reply_to":"1ae5cdf2_7556d52b","updated":"2014-06-26 09:30:14.000000000","message":"Yeah, we need to do better, but thats once it gets in the tree.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7dc1ec1f06c90ac17dfada98146181bef3ae48e1","unresolved":false,"context_lines":[{"line_number":89,"context_line":"Instead of adding exact-match scheduler filters, we could create a new"},{"line_number":90,"context_line":"scheduler that is specifically geared towards non-divisible resources."},{"line_number":91,"context_line":"However, this approach is sufficient for many use cases, and does not prevent"},{"line_number":92,"context_line":"the later creation of another scheduler."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"An alternative was proposed which would allow multiple nova-compute processes"},{"line_number":95,"context_line":"to proxy for the same Ironic service end-point at the same time. This could be"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_087018a3","line":92,"updated":"2014-06-25 19:08:19.000000000","message":"See above comment. The problem isn\u0027t in the scheduler. The problem is that we have currently no way of indicating that the user is requesting an instance should be placed in isolation from any other instances on some compute resource. If we had this as an input to the scheduler, we wouldn\u0027t have to create specialized filters or schedulers. We could just use this input in the decision in the existing scheduler and its filters.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7dc1ec1f06c90ac17dfada98146181bef3ae48e1","unresolved":false,"context_lines":[{"line_number":103,"context_line":"self._init_instance(). This proposal was denied due to architectural concerns"},{"line_number":104,"context_line":"within Nova, specifically around @utils.synchronize(instance[\u0027uuid\u0027]) calls,"},{"line_number":105,"context_line":"and event callbacks that could be routed to a host other than the one waiting"},{"line_number":106,"context_line":"for the callback."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Instead of overriding ComputeManager.init_host(), a significant rewrite of"},{"line_number":109,"context_line":"Nova\u0027s internal resource model could be undertaken -- eg, to remove the (host,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_28db147e","line":106,"updated":"2014-06-25 19:08:19.000000000","message":"One alternative that may not have been discussed at the summit (I\u0027m afraid I wasn\u0027t able to attend the session) is to run separate compute workers in service VMs or containers, with one nova-compute for each bare-metal resource. That way, we keep the architectural safety and scalability of Nova\u0027s n-cpu design and enable Ironic resources to be scheduled and tracked in the same way as any other virtual resource.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba88c9eaee61a42a8c9fb3d8e897311cc360c3c4","unresolved":false,"context_lines":[{"line_number":103,"context_line":"self._init_instance(). This proposal was denied due to architectural concerns"},{"line_number":104,"context_line":"within Nova, specifically around @utils.synchronize(instance[\u0027uuid\u0027]) calls,"},{"line_number":105,"context_line":"and event callbacks that could be routed to a host other than the one waiting"},{"line_number":106,"context_line":"for the callback."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Instead of overriding ComputeManager.init_host(), a significant rewrite of"},{"line_number":109,"context_line":"Nova\u0027s internal resource model could be undertaken -- eg, to remove the (host,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_a346504e","line":106,"in_reply_to":"1ae5cdf2_28db147e","updated":"2014-06-26 09:30:14.000000000","message":"You get too many of them, is the basic issue, an massive memory overhead.\n\nI actually like the multiple nova-compute thing for a single ironic myself, maybe just need to find a good way to shard the resources, but its a post merge thing.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"46f2c20c964d36cde1eaa02868741ee46cd8f43e","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Considering how often IPMI is not properly secured, and that in many cases it"},{"line_number":153,"context_line":"can not be secured, the OOB management network should be as isolated from users"},{"line_number":154,"context_line":"as possible."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Notifications impact"},{"line_number":157,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_51b4d681","line":154,"updated":"2014-06-24 07:35:28.000000000","message":"as much as possible, I assume.","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ba88c9eaee61a42a8c9fb3d8e897311cc360c3c4","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Considering how often IPMI is not properly secured, and that in many cases it"},{"line_number":153,"context_line":"can not be secured, the OOB management network should be as isolated from users"},{"line_number":154,"context_line":"as possible."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Notifications impact"},{"line_number":157,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ae5cdf2_032b8482","line":154,"in_reply_to":"1ae5cdf2_51b4d681","updated":"2014-06-26 09:30:14.000000000","message":"+1","commit_id":"e82a9c4b850f6d6318a882911c25e0e3f8531894"}]}
