)]}'
{"specs/pike/approved/custom-resource-classes-in-flavors.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d08a1c1cbab00a010c364336cca33e6f404c3f5e","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Existing ironic instances will need to go through a migration (described in the"},{"line_number":69,"context_line":"\"Data model impact\" section) in order to correct allocations."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a1ff146_df166354","line":70,"updated":"2017-03-16 14:39:42.000000000","message":"Might want to just mention something here about how these will be honored. Something like:\n\n\"When the scheduler is constructing the request to placement, it will start by building a list of resource classes from the base flavor attributes as it does today. Next it will look for any overrides and add classes and/or adjust amounts of existing classes based on the extra_specs it finds.\"","commit_id":"81ea5e1baffd08b8684dbda33d7420c7d37583d7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d08a1c1cbab00a010c364336cca33e6f404c3f5e","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Dependencies"},{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"None."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a1ff146_0a3c3bc7","line":160,"updated":"2017-03-16 14:39:42.000000000","message":"There is a dependency on the work to expose the custom classes in allocations, right? Currently we\u0027re exposing inventory out of the driver, but still need to expose allocations for current (and new) instances to make sure the placement queries return nodes with free CUSTOM_FOO resources.","commit_id":"81ea5e1baffd08b8684dbda33d7420c7d37583d7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"259ac02ba215190e82e308bc1653fc8cbda8a5c2","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* ``resources:$STANDARD_RESOURCE_CLASS\u003d0``, where $STANDARD_RESOURCE_CLASS is"},{"line_number":61,"context_line":"  one of \"VCPU\", \"MEMORY_MB\", or \"DISK_GB\". This causes the scheduler to avoid"},{"line_number":62,"context_line":"  scheduling based on the associated value in the top level Flavor object"},{"line_number":63,"context_line":"  field, while still using it for flavor display."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"When the scheduler is constructing the request to placement, it will start by"},{"line_number":66,"context_line":"building a list of resource classes from the base flavor attributes as it does"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_83dfe867","line":63,"range":{"start_line":63,"start_character":9,"end_line":63,"end_character":48},"updated":"2017-03-22 07:30:19.000000000","message":"the old value isn\u0027t just for display, we still have code to check those value out of virt driver layer. like this https://github.com/openstack/nova/blob/master/nova/compute/api.py#L725\n\nSo the deployer needs to ensure those old value should match the machine specification?","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"99905b673c8f396a78560796b336eb3d4899e074","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* ``resources:$STANDARD_RESOURCE_CLASS\u003d0``, where $STANDARD_RESOURCE_CLASS is"},{"line_number":61,"context_line":"  one of \"VCPU\", \"MEMORY_MB\", or \"DISK_GB\". This causes the scheduler to avoid"},{"line_number":62,"context_line":"  scheduling based on the associated value in the top level Flavor object"},{"line_number":63,"context_line":"  field, while still using it for flavor display."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"When the scheduler is constructing the request to placement, it will start by"},{"line_number":66,"context_line":"building a list of resource classes from the base flavor attributes as it does"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_ca0e438b","line":63,"range":{"start_line":63,"start_character":9,"end_line":63,"end_character":48},"in_reply_to":"1a1ced50_83dfe867","updated":"2017-03-22 13:55:15.000000000","message":"Hm, yeah might need to do some hacks in places like that.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"916867ac514745f6e24d09344221a6fbae18f749","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* ``resources:$STANDARD_RESOURCE_CLASS\u003d0``, where $STANDARD_RESOURCE_CLASS is"},{"line_number":61,"context_line":"  one of \"VCPU\", \"MEMORY_MB\", or \"DISK_GB\". This causes the scheduler to avoid"},{"line_number":62,"context_line":"  scheduling based on the associated value in the top level Flavor object"},{"line_number":63,"context_line":"  field, while still using it for flavor display."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"When the scheduler is constructing the request to placement, it will start by"},{"line_number":66,"context_line":"building a list of resource classes from the base flavor attributes as it does"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_0a53fb6b","line":63,"range":{"start_line":63,"start_character":9,"end_line":63,"end_character":48},"in_reply_to":"1a1ced50_83dfe867","updated":"2017-03-22 13:57:59.000000000","message":"In the spot you point to, we should really be checking the override, not the base value. In the case of ironic, this would be zero for disk, and pass that image test.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"32d9d9691c6c99406d485d5917442707443e6c8d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"When the scheduler is constructing the request to placement, it will start by"},{"line_number":66,"context_line":"building a list of resource classes from the base flavor attributes as it does"},{"line_number":67,"context_line":"today. Next it will look for any overrides and add classes and/or adjust"},{"line_number":68,"context_line":"amounts of existing classes based on the extra_specs it finds."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Existing ironic instances will need to go through a migration (described in the"},{"line_number":71,"context_line":"\"Data model impact\" section) in order to correct allocations if the node has"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_874e5d94","line":68,"updated":"2017-03-20 19:21:38.000000000","message":"+","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7caca23276a7ac54b7fb38f50c0caf4d58403669","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Existing ironic instances will need to go through a migration (described in the"},{"line_number":71,"context_line":"\"Data model impact\" section) in order to correct allocations if the node has"},{"line_number":72,"context_line":"a resource class defined."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Alternatives"},{"line_number":75,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_7ed1f156","line":72,"updated":"2017-03-20 16:10:54.000000000","message":"++ to all the above. well-written and clear.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"32d9d9691c6c99406d485d5917442707443e6c8d","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"We could instead add new field(s) to the Flavor object that are specifically"},{"line_number":78,"context_line":"meant for custom resource classes and overrides of standard resource classes."},{"line_number":79,"context_line":"While this does have the benefit of avoiding an oft chance that some operator"},{"line_number":80,"context_line":"is already using extra specs like this, there\u0027s a couple of reasons not to do"},{"line_number":81,"context_line":"this. First, it creates an extra cycle before we can require ironic operators"},{"line_number":82,"context_line":"to transition their flavors, because the new field wouldn\u0027t be available until"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_6275cf96","line":79,"updated":"2017-03-20 19:21:38.000000000","message":"off chance?\n\nThis actually sent my down a hole of pedantic english web pages. It appears that \"oft chance\" is seen but not really correct and if we translate it directly it doesn\u0027t mean the \"unlikely\" or \"rare\" that \"off chance\" does, but instead something like \"often chancey\".\n\nIn any case, thanks for that. A useful diversion. And no, you don\u0027t really need to fix it, but if you feel so inclined have at.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"d67b856a7b32b60e6d1a8664699476136b4342f8","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"We could instead add new field(s) to the Flavor object that are specifically"},{"line_number":78,"context_line":"meant for custom resource classes and overrides of standard resource classes."},{"line_number":79,"context_line":"While this does have the benefit of avoiding an oft chance that some operator"},{"line_number":80,"context_line":"is already using extra specs like this, there\u0027s a couple of reasons not to do"},{"line_number":81,"context_line":"this. First, it creates an extra cycle before we can require ironic operators"},{"line_number":82,"context_line":"to transition their flavors, because the new field wouldn\u0027t be available until"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_5f1a417e","line":79,"in_reply_to":"1a1ced50_6275cf96","updated":"2017-03-21 15:01:04.000000000","message":"Oh my, I learned a thing today. Thanks!\n\nWill fix if I re-spin.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7caca23276a7ac54b7fb38f50c0caf4d58403669","unresolved":false,"context_lines":[{"line_number":94,"context_line":"We\u0027ll need to check each existing instance at Pike startup, in the driver"},{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_be59a900","line":97,"updated":"2017-03-20 16:10:54.000000000","message":"Do we want to do this last paragraph in an online data migration that is run via nova-manage?","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f687180030c78db568c7cc29471a9b892ca7a07","unresolved":false,"context_lines":[{"line_number":94,"context_line":"We\u0027ll need to check each existing instance at Pike startup, in the driver"},{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_a07a27ef","line":97,"in_reply_to":"1a1ced50_026fbb92","updated":"2017-03-21 21:48:42.000000000","message":"Yep, at startup.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"32d9d9691c6c99406d485d5917442707443e6c8d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"We\u0027ll need to check each existing instance at Pike startup, in the driver"},{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_026fbb92","line":97,"in_reply_to":"1a1ced50_a9c095e1","updated":"2017-03-20 19:21:38.000000000","message":"that\u0027s how I remember things as well","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"dc0e484333ec7399cae7e31b01293dce47e4477d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"We\u0027ll need to check each existing instance at Pike startup, in the driver"},{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_a9c095e1","line":97,"in_reply_to":"1a1ced50_be59a900","updated":"2017-03-20 16:42:54.000000000","message":"I think we decided at the PTG that we want to do this at first startup, because we need the allocations to be consistent.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e75e1b239feb381b69fe955eebbb2d610a8f09f3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_6e4590b1","line":98,"updated":"2017-03-21 15:31:15.000000000","message":"I\u0027m a bit concerned by resizes here that would use an old-style new flavor for a resize which would trample the existing new-style old flavor.\nAre we somehow planning to make sure that we synchronize API-DB related flavors and cell-DB related instance nested flavors ?","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"30c969d85a018f8a66c62d1ade2ccaf2f1f8f2e5","unresolved":false,"context_lines":[{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_b0b33609","line":98,"in_reply_to":"1a1ced50_2aaa7719","updated":"2017-03-22 14:25:14.000000000","message":"Okay, I thought we were planning to have Ironic instances using the custom RCs by Pike, but given L129, it\u0027s rather clear that it could be *possible* (ie. optional) to do that for Pike, but only mandatory for Queens (so all computes would be at least \u003e\u003d Pike).","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4654bf09123242b88b771640f1bbf250318ac796","unresolved":false,"context_lines":[{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_f7d68d4d","line":98,"in_reply_to":"1a1ced50_60182f1f","updated":"2017-03-22 11:31:46.000000000","message":"Lemme rephrase the possible problem (without thinking of resize):\nI\u0027m having an Ocata cloud. I want to upgrade it to Pike, so I\u0027m using the rolling-upgrades. \nFirst, I\u0027m upgrading the conductor and the scheduler, but I\u0027m leaving all the computes as Ocata.\nI\u0027m now modifying the API flavors by adding the extraspecs.\n\nThen, if the scheduler is calling the placement for a new instance (or a current instance being resized with a new flavor) by also asking for the custom RCs (provided by the new-style flavor), then Placement could say \"sorry, no RPs found\" right?\n\nTbc, the problem is when you segment your cloud between old computes and new computes but you update your API flavors and you have a new Pike scheduler, then it could be a suboptimal placement.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"133eca79a9434bd6b239b21f1b4319437198a440","unresolved":false,"context_lines":[{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_d181c5c4","line":98,"in_reply_to":"1a1ced50_6e4590b1","updated":"2017-03-21 15:47:34.000000000","message":"ironic doesn\u0027t support resize. We\u0027re only touching instance.flavor here, so that the allocations are recorded for the resource class, if it exists.\n\nWe aren\u0027t trying to synchronize this with the flavors in the API, just adjust allocations so that a node in use isn\u0027t suddenly available for new-style flavors.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f687180030c78db568c7cc29471a9b892ca7a07","unresolved":false,"context_lines":[{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_60182f1f","line":98,"in_reply_to":"1a1ced50_d181c5c4","updated":"2017-03-21 21:48:42.000000000","message":"I don\u0027t understand how this is a problem for resize. It\u0027d be fine to resize to or from a flavor without resource overrides in general. What\u0027s the problem?","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"916867ac514745f6e24d09344221a6fbae18f749","unresolved":false,"context_lines":[{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_2aaa7719","line":98,"in_reply_to":"1a1ced50_f7d68d4d","updated":"2017-03-22 13:57:59.000000000","message":"No, deployers are not required to use this for ironic scheduling until Queens (see L129). In pike, they *can* override and schedule in their flavors, once everything is upgraded. In Queens presumably we\u0027ll stop exposing the legacy resources from the ironic driver, making the custom class the only way to schedule.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"99905b673c8f396a78560796b336eb3d4899e074","unresolved":false,"context_lines":[{"line_number":95,"context_line":"layer. If the ironic node that the instance exists on has a resource class"},{"line_number":96,"context_line":"defined, we add the custom resource class to ``instance.flavor``, correcting"},{"line_number":97,"context_line":"the allocations lazily."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"REST API impact"},{"line_number":100,"context_line":"---------------"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_ea577f55","line":98,"in_reply_to":"1a1ced50_f7d68d4d","updated":"2017-03-22 13:55:15.000000000","message":"Right, so we need to tell operators \"don\u0027t update your flavors until you have computes running Pike\".","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e75e1b239feb381b69fe955eebbb2d610a8f09f3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Due to the migrations, there will be a small performance penalty to start"},{"line_number":123,"context_line":"nova-compute hosts running the ironic driver for the first time in Pike."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_8e148ca0","line":123,"updated":"2017-03-21 15:31:15.000000000","message":"I\u0027m a bit concerned by that given a node could have a long list of instances","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"99905b673c8f396a78560796b336eb3d4899e074","unresolved":false,"context_lines":[{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Due to the migrations, there will be a small performance penalty to start"},{"line_number":123,"context_line":"nova-compute hosts running the ironic driver for the first time in Pike."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_2ae517a7","line":123,"in_reply_to":"1a1ced50_1756c9cd","updated":"2017-03-22 13:55:15.000000000","message":"@Dan we actually skip it for ironic, because we might have thousands of instances, and lol memory usage. https://github.com/openstack/nova/blob/master/nova/scheduler/ironic_host_manager.py#L108","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f4c175b0e4c13a881b4f312b552d42b2ffeb4079","unresolved":false,"context_lines":[{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Due to the migrations, there will be a small performance penalty to start"},{"line_number":123,"context_line":"nova-compute hosts running the ironic driver for the first time in Pike."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_555d9413","line":123,"in_reply_to":"1a1ced50_2ae517a7","updated":"2017-03-22 14:01:42.000000000","message":"I mean \"we\" as in nova and I\u0027m talking about the compute init, not that:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/manager.py#L745","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f687180030c78db568c7cc29471a9b892ca7a07","unresolved":false,"context_lines":[{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Due to the migrations, there will be a small performance penalty to start"},{"line_number":123,"context_line":"nova-compute hosts running the ironic driver for the first time in Pike."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_e0b17f02","line":123,"in_reply_to":"1a1ced50_316db931","updated":"2017-03-21 21:48:42.000000000","message":"We already process all the instances on startup, and make some writes. I think we\u0027re probably okay.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"133eca79a9434bd6b239b21f1b4319437198a440","unresolved":false,"context_lines":[{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Due to the migrations, there will be a small performance penalty to start"},{"line_number":123,"context_line":"nova-compute hosts running the ironic driver for the first time in Pike."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_316db931","line":123,"in_reply_to":"1a1ced50_8e148ca0","updated":"2017-03-21 15:47:34.000000000","message":"I agree, we\u0027ll need to paginate the DB query or something.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4654bf09123242b88b771640f1bbf250318ac796","unresolved":false,"context_lines":[{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Due to the migrations, there will be a small performance penalty to start"},{"line_number":123,"context_line":"nova-compute hosts running the ironic driver for the first time in Pike."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Other deployer impact"},{"line_number":126,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_1756c9cd","line":123,"in_reply_to":"1a1ced50_e0b17f02","updated":"2017-03-22 11:31:46.000000000","message":"OK, I\u0027m fine with that. Either way, it\u0027s more an implementation detail.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e75e1b239feb381b69fe955eebbb2d610a8f09f3","unresolved":false,"context_lines":[{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Deployers will need to adjust their flavors to use custom resource classes,"},{"line_number":129,"context_line":"before upgrading to Queens."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Developer impact"},{"line_number":132,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_4ee61445","line":129,"updated":"2017-03-21 15:31:15.000000000","message":"How do you plan that ? Do you plan to provide a script that would automatically add the extra specs to the flavors the operator passes as an argument ? I think it could be a nice tool to prevent typos and allow operators to just pass flavor IDs...","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4654bf09123242b88b771640f1bbf250318ac796","unresolved":false,"context_lines":[{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Deployers will need to adjust their flavors to use custom resource classes,"},{"line_number":129,"context_line":"before upgrading to Queens."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Developer impact"},{"line_number":132,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_d72d1147","line":129,"in_reply_to":"1a1ced50_0085bb05","updated":"2017-03-22 11:31:46.000000000","message":"My concern was more about if we were thinking about providing a script for operators, or just asking them to do that directly by updating the flavors.\n\nOf course, I think a nova-status check verifying flavors is something part of that blueprint, but that\u0027s just a verification tool and here I\u0027m talking of an helper script rather. Sorry for being confusing.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"133eca79a9434bd6b239b21f1b4319437198a440","unresolved":false,"context_lines":[{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Deployers will need to adjust their flavors to use custom resource classes,"},{"line_number":129,"context_line":"before upgrading to Queens."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Developer impact"},{"line_number":132,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_d1e625af","line":129,"in_reply_to":"1a1ced50_4ee61445","updated":"2017-03-21 15:47:34.000000000","message":"A nova-manage script would be nice, there will be instructions at a minimum. I\u0027m worried a script would have too many assumptions, but if we warn properly, I think that\u0027s okay.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f687180030c78db568c7cc29471a9b892ca7a07","unresolved":false,"context_lines":[{"line_number":126,"context_line":"---------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Deployers will need to adjust their flavors to use custom resource classes,"},{"line_number":129,"context_line":"before upgrading to Queens."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Developer impact"},{"line_number":132,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_0085bb05","line":129,"in_reply_to":"1a1ced50_d1e625af","updated":"2017-03-21 21:48:42.000000000","message":"I don\u0027t understand what the problem is here. We\u0027ll have a requirement for stuff that needs doing in pike, and require it in queens. We have things like this all the time. We could add something to nova-status to check that it\u0027s been done, but it would be quiet expensive.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e75e1b239feb381b69fe955eebbb2d610a8f09f3","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Work Items"},{"line_number":149,"context_line":"----------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Add code to migrate ironic instance flavor data."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Add support for custom resource classes in the scheduler request."},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_6e5110d8","line":151,"updated":"2017-03-21 15:31:15.000000000","message":"How do you plan to discover which flavors are specific for Ironic ? Also, how would you know which specific custom RCs would be needed as extra specs ? Are you just supposing a cloud with only one type of flavor, necessarly Ironic ?","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f687180030c78db568c7cc29471a9b892ca7a07","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Work Items"},{"line_number":149,"context_line":"----------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Add code to migrate ironic instance flavor data."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Add support for custom resource classes in the scheduler request."},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_60474fbc","line":151,"in_reply_to":"1a1ced50_318939ca","updated":"2017-03-21 21:48:42.000000000","message":"Sylvain, who are you talking about wrt these discovery items?\n\nFor fixing up the existing instances, we need not look at the original flavor to do this migration. We only have to look at the host the instances is on, get it\u0027s node resource, and then put an extra-spec into its flavor that matches. Anything else would be (a) hard and (b) an upcall from the cell.\n\nSee L94 above.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4654bf09123242b88b771640f1bbf250318ac796","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Work Items"},{"line_number":149,"context_line":"----------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Add code to migrate ironic instance flavor data."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Add support for custom resource classes in the scheduler request."},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_d7d43121","line":151,"in_reply_to":"1a1ced50_430a507a","updated":"2017-03-22 11:31:46.000000000","message":"Ok, thanks for the explanation Dan and Alex.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"259ac02ba215190e82e308bc1653fc8cbda8a5c2","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Work Items"},{"line_number":149,"context_line":"----------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Add code to migrate ironic instance flavor data."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Add support for custom resource classes in the scheduler request."},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_430a507a","line":151,"in_reply_to":"1a1ced50_60474fbc","updated":"2017-03-22 07:30:19.000000000","message":"yea, from the code https://review.openstack.org/#/c/441544/11/nova/virt/ironic/driver.py@655, ironic node will have the info about resource class.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"133eca79a9434bd6b239b21f1b4319437198a440","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Work Items"},{"line_number":149,"context_line":"----------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"* Add code to migrate ironic instance flavor data."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Add support for custom resource classes in the scheduler request."},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_318939ca","line":151,"in_reply_to":"1a1ced50_6e5110d8","updated":"2017-03-21 15:47:34.000000000","message":"This work item is about lines 89-97, the instance.flavor thing. Not API flavors.","commit_id":"b7c2712cec4850e37f43bba9a7ae6aae9c862bf7"}]}
