)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"4cdd126277483a6078c7c5afa11fee3908ac7bb1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"a stack resource, the stack id/stack resource id"},{"line_number":11,"context_line":"can be passed by heat as a hint, to the"},{"line_number":12,"context_line":"configured schedulers for nova."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements: blueprint stack-lifecycle-scheduler-hint"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I3e006339a41c469451bc3ee740018b285d3e0a65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1abeadc6_67631142","line":13,"updated":"2014-08-23 02:45:17.000000000","message":"Can this commit message make reference to the nova/gantt blueprints, specs or code which can consume these hints?\n\nI\u0027m not aware of what is happening on the nova side so I\u0027m not sure how speculative this change is.\n\nIn general though, the change looks fine.","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":8328,"name":"Mike Spreitzer","email":"mspreitz@us.ibm.com","username":"mspreitz"},"change_message_id":"e53455316f38085a8f8ff6a57a6517db0d46cc1f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"a stack resource, the stack id/stack resource id"},{"line_number":11,"context_line":"can be passed by heat as a hint, to the"},{"line_number":12,"context_line":"configured schedulers for nova."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements: blueprint stack-lifecycle-scheduler-hint"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I3e006339a41c469451bc3ee740018b285d3e0a65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1abeadc6_2977cc3c","line":13,"in_reply_to":"1abeadc6_67631142","updated":"2014-08-26 17:58:11.000000000","message":"I have a downstream consumer in mind.  Remember that in the stack lifecycle plug points, the plugin cannot modify the template.  So any decisions it makes have to be stashed away somewhere, associated with IDs that will re-appear later (e.g., in a Nova scheduler).  The change at hand adds some IDs that can be used for this purpose.","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"f00f54cd7c12a9ffa8d95fa63770bc4917953f14","unresolved":false,"context_lines":[{"line_number":10,"context_line":"a stack resource, the stack id/stack resource id"},{"line_number":11,"context_line":"can be passed by heat as a hint, to the"},{"line_number":12,"context_line":"configured schedulers for nova."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements: blueprint stack-lifecycle-scheduler-hint"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I3e006339a41c469451bc3ee740018b285d3e0a65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1abeadc6_705a8484","line":13,"in_reply_to":"1abeadc6_67631142","updated":"2014-08-26 19:10:11.000000000","message":"[I agree with Mike Spreitzer\u0027s answer.]","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"9157b95ab4bad30bee5ee56fce634326003b19de","unresolved":false,"context_lines":[{"line_number":10,"context_line":"a stack resource, the stack id/stack resource id"},{"line_number":11,"context_line":"can be passed by heat as a hint, to the"},{"line_number":12,"context_line":"configured schedulers for nova."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Implements: blueprint stack-lifecycle-scheduler-hint"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I3e006339a41c469451bc3ee740018b285d3e0a65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1abeadc6_9148c7b4","line":13,"in_reply_to":"1abeadc6_705a8484","updated":"2014-08-28 02:06:35.000000000","message":"OK, I\u0027m fine with this justification in theory.","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"ca13ad644a2b6f9ef1de4e39b7bbc753226406ba","unresolved":false,"context_lines":[{"line_number":15,"context_line":"configured schedulers for nova."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Implements: blueprint stack-lifecycle-scheduler-hint"},{"line_number":18,"context_line":"Co-Authored-By: Karolyn Chambers \u003cchamberk@us.ibm.com\u003e"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I3e006339a41c469451bc3ee740018b285d3e0a65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"9a80dd14_18eb6db1","line":18,"updated":"2015-03-17 11:45:44.000000000","message":"do you want to add DocImpact tag in this commit message as it needed some documentation.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"},{"author":{"_account_id":14049,"name":"Karolyn Chambers","email":"Karolyn.Chambers@target.com","username":"karolyn-chambers"},"change_message_id":"baa454409a56e6f59cc254ecee60a7100649a39b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"configured schedulers for nova."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Implements: blueprint stack-lifecycle-scheduler-hint"},{"line_number":18,"context_line":"Co-Authored-By: Karolyn Chambers \u003cchamberk@us.ibm.com\u003e"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I3e006339a41c469451bc3ee740018b285d3e0a65"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"9a80dd14_55f2e206","line":18,"in_reply_to":"9a80dd14_18eb6db1","updated":"2015-03-18 04:25:03.000000000","message":"I\u0027m not sure DocImpact is appropriate for this case? I don\u0027t see any other patches for the heat/doc/source that have the DocImpact in their commit messages.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"}],"etc/heat/heat.conf.sample":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0157ca4a599ce9e2baf1604adf2616213330c575","unresolved":false,"context_lines":[{"line_number":81,"context_line":"# set to the id of the resource\u0027s parent stack, and"},{"line_number":82,"context_line":"# heat_resource_name will be set to the resource\u0027s name"},{"line_number":83,"context_line":"# (boolean value)"},{"line_number":84,"context_line":"#stack_ids_as_scheduler_hints\u003dfalse"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"#"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"baada198_565661d3","line":84,"updated":"2014-07-02 08:39:09.000000000","message":"The name is not really appropriate considering what it does. Maybe simply \"stack_scheduler_hints\" ?","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"171e1d308a83e3cde87fb635d0656399be740d25","unresolved":false,"context_lines":[{"line_number":81,"context_line":"# set to the id of the resource\u0027s parent stack, and"},{"line_number":82,"context_line":"# heat_resource_name will be set to the resource\u0027s name"},{"line_number":83,"context_line":"# (boolean value)"},{"line_number":84,"context_line":"#stack_ids_as_scheduler_hints\u003dfalse"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"#"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"baada198_5e03c80c","line":84,"in_reply_to":"baada198_565661d3","updated":"2014-07-02 16:22:52.000000000","message":"Done","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"3f6c0eba411b7cb9b1a3396443f0756bac3a110a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"# Deprecated. (string value)"},{"line_number":74,"context_line":"#onready\u003d\u003cNone\u003e"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# Add stack id/res names as server scheduler hints. Two"},{"line_number":77,"context_line":"# scheduler hints will be added to server creates done using"},{"line_number":78,"context_line":"# either resource class Server (OS::Nova::Server) or resource"},{"line_number":79,"context_line":"# class Instance (AWS::EC2::Instance) heat_stack_id will be"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"1abeadc6_ec104a5b","line":76,"updated":"2014-08-20 16:27:44.000000000","message":"s/res name/resource name\ns/server/nova","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"f00f54cd7c12a9ffa8d95fa63770bc4917953f14","unresolved":false,"context_lines":[{"line_number":73,"context_line":"# Deprecated. (string value)"},{"line_number":74,"context_line":"#onready\u003d\u003cNone\u003e"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# Add stack id/res names as server scheduler hints. Two"},{"line_number":77,"context_line":"# scheduler hints will be added to server creates done using"},{"line_number":78,"context_line":"# either resource class Server (OS::Nova::Server) or resource"},{"line_number":79,"context_line":"# class Instance (AWS::EC2::Instance) heat_stack_id will be"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"1abeadc6_672ad591","line":76,"in_reply_to":"1abeadc6_ec104a5b","updated":"2014-08-26 19:10:11.000000000","message":"Done","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":7892,"name":"Yong Feng","email":"fengyong.gm@gmail.com","username":"YongFeng"},"change_message_id":"3bad36b60e4618497452ff8f2ac4f8c96a15312b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"# heat_resource_name will be set to the resource\u0027s name"},{"line_number":82,"context_line":"# (boolean value)"},{"line_number":83,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"#"},{"line_number":87,"context_line":"# Options defined in heat.common.config"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"1abeadc6_805460cb","line":84,"updated":"2014-08-25 19:20:34.000000000","message":"If the server belongs to an auto-scale group, it is expect the resource name of auto-scale group is put into the scheduler hints.","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":11127,"name":"Jake Kitchener","email":"jakekit@gmail.com","username":"jakekit"},"change_message_id":"6150b959d83f5026779a89281d20aa3e0cc595f3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"# heat_resource_name will be set to the resource\u0027s name"},{"line_number":82,"context_line":"# (boolean value)"},{"line_number":83,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"#"},{"line_number":87,"context_line":"# Options defined in heat.common.config"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"baa201ad_9203910c","line":84,"in_reply_to":"1abeadc6_805460cb","updated":"2014-10-01 14:07:51.000000000","message":"Agreed as mentioned in comments on server.py,","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3b6c815da70913d7fbaeb965186cfd6c3e31205","unresolved":false,"context_lines":[{"line_number":95,"context_line":"# parent stack, heat_path_in_stack will be set to a list of"},{"line_number":96,"context_line":"# tuples, (stackresourcename, stackname) with list[0] being"},{"line_number":97,"context_line":"# (None, rootstackname), and heat_resource_name will be set to"},{"line_number":98,"context_line":"# the resource\u0027s name (boolean value) (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":13,"id":"9aa7fdbe_01c9d1ab","line":98,"updated":"2014-10-23 15:07:49.000000000","message":"(boolean value) is listed twice.","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"48474707e28bc9f2302e32d100e6832f14af8a0f","unresolved":false,"context_lines":[{"line_number":95,"context_line":"# parent stack, heat_path_in_stack will be set to a list of"},{"line_number":96,"context_line":"# tuples, (stackresourcename, stackname) with list[0] being"},{"line_number":97,"context_line":"# (None, rootstackname), and heat_resource_name will be set to"},{"line_number":98,"context_line":"# the resource\u0027s name (boolean value) (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":13,"id":"9aa7fdbe_2b487486","line":98,"updated":"2014-10-23 15:12:49.000000000","message":"Double (boolean value)  ;)","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":95,"context_line":"# parent stack, heat_path_in_stack will be set to a list of"},{"line_number":96,"context_line":"# tuples, (stackresourcename, stackname) with list[0] being"},{"line_number":97,"context_line":"# (None, rootstackname), and heat_resource_name will be set to"},{"line_number":98,"context_line":"# the resource\u0027s name (boolean value) (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":13,"id":"9aa7fdbe_40ecaa8f","line":98,"in_reply_to":"9aa7fdbe_01c9d1ab","updated":"2014-10-24 13:57:48.000000000","message":"Done","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":95,"context_line":"# parent stack, heat_path_in_stack will be set to a list of"},{"line_number":96,"context_line":"# tuples, (stackresourcename, stackname) with list[0] being"},{"line_number":97,"context_line":"# (None, rootstackname), and heat_resource_name will be set to"},{"line_number":98,"context_line":"# the resource\u0027s name (boolean value) (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":13,"id":"9aa7fdbe_60044e4a","line":98,"in_reply_to":"9aa7fdbe_2b487486","updated":"2014-10-24 13:57:48.000000000","message":"Done","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d17e542f3186b3dde510338649652cdf215bbce","unresolved":false,"context_lines":[{"line_number":84,"context_line":"# Deprecated. (string value)"},{"line_number":85,"context_line":"#onready\u003d\u003cNone\u003e"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"# When the feature is enabled, scheduler hints identifying the"},{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_b322a5b6","line":87,"updated":"2014-10-28 22:14:45.000000000","message":"s/When the/When this/?","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"5a62d7695c6f6d80e2242dd9a16a14372e1938ca","unresolved":false,"context_lines":[{"line_number":84,"context_line":"# Deprecated. (string value)"},{"line_number":85,"context_line":"#onready\u003d\u003cNone\u003e"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"# When the feature is enabled, scheduler hints identifying the"},{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_f2d6e6f0","line":87,"in_reply_to":"9aa7fdbe_b322a5b6","updated":"2014-10-28 23:55:19.000000000","message":"Done","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d17e542f3186b3dde510338649652cdf215bbce","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"# When the feature is enabled, scheduler hints identifying the"},{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"},{"line_number":91,"context_line":"# AWS::EC2::Instance. The default nova schedulers ignore these"},{"line_number":92,"context_line":"# hints but a provider may configure a scheduler that uses"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_f328ad98","line":89,"updated":"2014-10-28 22:14:45.000000000","message":"s/for nova/in nova/?","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"5a62d7695c6f6d80e2242dd9a16a14372e1938ca","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"# When the feature is enabled, scheduler hints identifying the"},{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"},{"line_number":91,"context_line":"# AWS::EC2::Instance. The default nova schedulers ignore these"},{"line_number":92,"context_line":"# hints but a provider may configure a scheduler that uses"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_12036a77","line":89,"in_reply_to":"9aa7fdbe_f328ad98","updated":"2014-10-28 23:55:19.000000000","message":"Done. (Both work for me)","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d17e542f3186b3dde510338649652cdf215bbce","unresolved":false,"context_lines":[{"line_number":87,"context_line":"# When the feature is enabled, scheduler hints identifying the"},{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"},{"line_number":91,"context_line":"# AWS::EC2::Instance. The default nova schedulers ignore these"},{"line_number":92,"context_line":"# hints but a provider may configure a scheduler that uses"},{"line_number":93,"context_line":"# them. heat_root_stack_id will be set to the id of the root"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_5343396b","line":90,"updated":"2014-10-28 22:14:45.000000000","message":"s/types types/types/","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"5a62d7695c6f6d80e2242dd9a16a14372e1938ca","unresolved":false,"context_lines":[{"line_number":87,"context_line":"# When the feature is enabled, scheduler hints identifying the"},{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"},{"line_number":91,"context_line":"# AWS::EC2::Instance. The default nova schedulers ignore these"},{"line_number":92,"context_line":"# hints but a provider may configure a scheduler that uses"},{"line_number":93,"context_line":"# them. heat_root_stack_id will be set to the id of the root"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_b2cc5e63","line":90,"in_reply_to":"9aa7fdbe_5343396b","updated":"2014-10-28 23:55:19.000000000","message":"Done","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d17e542f3186b3dde510338649652cdf215bbce","unresolved":false,"context_lines":[{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"},{"line_number":91,"context_line":"# AWS::EC2::Instance. The default nova schedulers ignore these"},{"line_number":92,"context_line":"# hints but a provider may configure a scheduler that uses"},{"line_number":93,"context_line":"# them. heat_root_stack_id will be set to the id of the root"},{"line_number":94,"context_line":"# stack of the resource, heat_stack_id will be set to the id"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_b35b8552","line":91,"updated":"2014-10-28 22:14:45.000000000","message":"I\u0027d remove the sentence about the default nova scheduler - at some point there could be an in-tree nova scheduler which uses them, who knows, but then this comment would be wrong.","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"5a62d7695c6f6d80e2242dd9a16a14372e1938ca","unresolved":false,"context_lines":[{"line_number":88,"context_line":"# heat stack context of a server resource are passed to the"},{"line_number":89,"context_line":"# configured schedulers for nova, for server creates done"},{"line_number":90,"context_line":"# using heat resource types types OS::Nova::Server and"},{"line_number":91,"context_line":"# AWS::EC2::Instance. The default nova schedulers ignore these"},{"line_number":92,"context_line":"# hints but a provider may configure a scheduler that uses"},{"line_number":93,"context_line":"# them. heat_root_stack_id will be set to the id of the root"},{"line_number":94,"context_line":"# stack of the resource, heat_stack_id will be set to the id"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"9aa7fdbe_5234124a","line":91,"in_reply_to":"9aa7fdbe_b35b8552","updated":"2014-10-28 23:55:19.000000000","message":"I was trying to address angus\u0027s issue with an operator understanding when to set the boolean to true, but you are of course correct. Done","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"78d7fc69628f407c437247db4dfe9ae12b972fe4","unresolved":false,"context_lines":[{"line_number":91,"context_line":"# AWS::EC2::Instance. heat_root_stack_id will be set to the id"},{"line_number":92,"context_line":"# of the root stack of the resource, heat_stack_id will be set"},{"line_number":93,"context_line":"# to the id of the resource\u0027s parent stack, heat_stack_name"},{"line_number":94,"context_line":"# will be set to the id of the resource\u0027s parent stack,"},{"line_number":95,"context_line":"# heat_path_in_stack will be set to a list of tuples,"},{"line_number":96,"context_line":"# (stackresourcename, stackname) with list[0] being (None,"},{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9aa7fdbe_47d7e4ed","line":94,"updated":"2014-10-29 14:40:01.000000000","message":"s/id of the/name of the/ ?","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1c553c66ab45a64bb14c80d67c8f2ac4b1e00957","unresolved":false,"context_lines":[{"line_number":91,"context_line":"# AWS::EC2::Instance. heat_root_stack_id will be set to the id"},{"line_number":92,"context_line":"# of the root stack of the resource, heat_stack_id will be set"},{"line_number":93,"context_line":"# to the id of the resource\u0027s parent stack, heat_stack_name"},{"line_number":94,"context_line":"# will be set to the id of the resource\u0027s parent stack,"},{"line_number":95,"context_line":"# heat_path_in_stack will be set to a list of tuples,"},{"line_number":96,"context_line":"# (stackresourcename, stackname) with list[0] being (None,"},{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9aa7fdbe_f53cfec1","line":94,"in_reply_to":"9aa7fdbe_47d7e4ed","updated":"2014-10-29 14:44:59.000000000","message":"Yeah, looks like a typo:\n\nscheduler_hints[\u0027heat_stack_name\u0027] \u003d self.stack.name","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"78d7fc69628f407c437247db4dfe9ae12b972fe4","unresolved":false,"context_lines":[{"line_number":92,"context_line":"# of the root stack of the resource, heat_stack_id will be set"},{"line_number":93,"context_line":"# to the id of the resource\u0027s parent stack, heat_stack_name"},{"line_number":94,"context_line":"# will be set to the id of the resource\u0027s parent stack,"},{"line_number":95,"context_line":"# heat_path_in_stack will be set to a list of tuples,"},{"line_number":96,"context_line":"# (stackresourcename, stackname) with list[0] being (None,"},{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"},{"line_number":98,"context_line":"# resource\u0027s name. (boolean value)"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9aa7fdbe_e7ae182f","line":95,"updated":"2014-10-29 14:40:01.000000000","message":"Even though this comes from self.stack.path_in_stack(), would heat_resource_path be a better fit, naming-wise?","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"78d7fc69628f407c437247db4dfe9ae12b972fe4","unresolved":false,"context_lines":[{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"},{"line_number":98,"context_line":"# resource\u0027s name. (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"#"},{"line_number":103,"context_line":"# Options defined in heat.common.config"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9aa7fdbe_eacfbd55","line":100,"updated":"2014-10-29 14:40:01.000000000","message":"In trying to explain this to a colleague, I ended up reworking it with a \"show don\u0027t tell\" kind of example built-in, and wanted to share here. I hope I got the example correct!\n\nThe example could also be factored out and placed in separate developer documentation, along with a few use cases. I left out references to specific resources, anticipating OS::Cinder::Volume support in a future revision. (This also uses heat_resource_path in place of heat_path_in_stack.)\n\nQuestion: Given the YAML below, is RESOURCE_N_NAME \u003d\u003d RESOURCE_NAME and STACK_N_NAME \u003d\u003d STACK_NAME?\n\n----\n\nAdd stack-wide context to a resource\u0027s scheduler_hints\nproperty at create time. Use in conjunction with scheduler\nfilters that require such context. (boolean value)\n\nExample syntax:\n\nscheduler_hints:\n  - heat_resource_name: RESOURCE_NAME\n  - heat_resource_path:\n      - [ None, ROOT_STACK_NAME ] \n      - [ RESOURCE_1_NAME, STACK_1_NAME ]\n      - [ RESOURCE_2_NAME, STACK_2_NAME ]\n      - [ ... ]\n      - [ RESOURCE_N_NAME, STACK_N_NAME ]\n  - heat_root_stack_id: ROOT_STACK_ID\n  - heat_stack_id: STACK_ID\n  - heat_stack_name: STACK_NAME","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"ba1cb76172a7b3f663fc06c3051f3e58caedd510","unresolved":false,"context_lines":[{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"},{"line_number":98,"context_line":"# resource\u0027s name. (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"#"},{"line_number":103,"context_line":"# Options defined in heat.common.config"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"5a890539_46c6a64a","line":100,"in_reply_to":"5a890539_632ba230","updated":"2014-11-13 14:00:56.000000000","message":"Angus: What I mean is that, by providing this as a OS:: param, it is no longer exclusively tied to any specific feature or config setting. Folks can use this however they wish, perhaps in ways we haven\u0027t even thought of.\n\nMatt: Thank you!","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"1665c070a0ee612a533adedef2b388290261de99","unresolved":false,"context_lines":[{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"},{"line_number":98,"context_line":"# resource\u0027s name. (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"#"},{"line_number":103,"context_line":"# Options defined in heat.common.config"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"5a890539_632ba230","line":100,"in_reply_to":"7a8c0949_7c7e3be6","updated":"2014-11-13 05:53:53.000000000","message":"Joe: Well, not really, it is totally dependant on the operator enabling the correct scheduler filter. So if I as a user add these hints and they do nothing that sucks.\n\nMatt: +1 to your simple description and developer docs suggestion.","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"337a3a23768bd6b9561ae3b832f0c3f3fcd60571","unresolved":false,"context_lines":[{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"},{"line_number":98,"context_line":"# resource\u0027s name. (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"#"},{"line_number":103,"context_line":"# Options defined in heat.common.config"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"7a8c0949_7c7e3be6","line":100,"in_reply_to":"9aa7fdbe_eacfbd55","updated":"2014-10-30 13:21:03.000000000","message":"I just realized what else is bugging me: This is hidden/magic behavior.\n\nWhat if we were to follow the existing \"get_param: OS::something\" pattern and allow explicit declaration, like so?\n\n  scheduler_hints: {get_param OS::stack_context}\n\nThis would be replaced by a context-sensitive map, based on the resource its declared within. (Also, I see I mangled the syntax in my previous comment. It looks like this is a single map, not a list of individual mappings.)\n\nThis obviates the need for a config setting. The template author (human or otherwise) has complete control over where it is used. Also, as previously mentioned, its utility and usage can/must be explained in the developer documentation. (I\u0027d be happy to help with that, incidentally.)","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1c553c66ab45a64bb14c80d67c8f2ac4b1e00957","unresolved":false,"context_lines":[{"line_number":97,"context_line":"# rootstackname), and heat_resource_name will be set to the"},{"line_number":98,"context_line":"# resource\u0027s name. (boolean value)"},{"line_number":99,"context_line":"#stack_scheduler_hints\u003dfalse"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"#"},{"line_number":103,"context_line":"# Options defined in heat.common.config"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"9aa7fdbe_15b8a229","line":100,"in_reply_to":"9aa7fdbe_eacfbd55","updated":"2014-10-29 14:44:59.000000000","message":"I like the first description by itself:\n\n\"Add stack-wide context to a resource\u0027s scheduler_hints property at create time. Use in conjunction with scheduler filters that require such context. (boolean value)\"\n\nAs for the examples and definition, I think that could live in a devref guide like you pointed out (separate documentation).  I always forget about devref but it\u0027s a good place to document the more detailed feature information rather than the config file, although the config file description might be as far as anyone gets when looking to use an option...","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"}],"heat/common/config.py":[{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"3f6c0eba411b7cb9b1a3396443f0756bac3a110a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"               help\u003d_(\u0027Deprecated.\u0027)),"},{"line_number":142,"context_line":"    cfg.BoolOpt(\u0027stack_scheduler_hints\u0027,"},{"line_number":143,"context_line":"                default\u003dFalse,"},{"line_number":144,"context_line":"                help\u003d_(\u0027Add stack id/res names as server scheduler hints.\u0027"},{"line_number":145,"context_line":"                       \u0027 Two scheduler hints will be added to server creates\u0027"},{"line_number":146,"context_line":"                       \u0027 done using either resource class Server\u0027"},{"line_number":147,"context_line":"                       \u0027 (OS::Nova::Server) or resource class Instance\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_ef075c16","line":144,"updated":"2014-08-20 16:27:44.000000000","message":"see commons in heat.conf.sample","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"f00f54cd7c12a9ffa8d95fa63770bc4917953f14","unresolved":false,"context_lines":[{"line_number":141,"context_line":"               help\u003d_(\u0027Deprecated.\u0027)),"},{"line_number":142,"context_line":"    cfg.BoolOpt(\u0027stack_scheduler_hints\u0027,"},{"line_number":143,"context_line":"                default\u003dFalse,"},{"line_number":144,"context_line":"                help\u003d_(\u0027Add stack id/res names as server scheduler hints.\u0027"},{"line_number":145,"context_line":"                       \u0027 Two scheduler hints will be added to server creates\u0027"},{"line_number":146,"context_line":"                       \u0027 done using either resource class Server\u0027"},{"line_number":147,"context_line":"                       \u0027 (OS::Nova::Server) or resource class Instance\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_30d3ac39","line":144,"in_reply_to":"1abeadc6_ef075c16","updated":"2014-08-26 19:10:11.000000000","message":"Done","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3b6c815da70913d7fbaeb965186cfd6c3e31205","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_path_in_stack will be set to a list of tuples,\u0027"},{"line_number":167,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":168,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":169,"context_line":"                       \u0027 be set to the resource\\\u0027s name (boolean value)\u0027))]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"rpc_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_81bce107","line":169,"updated":"2014-10-23 15:07:49.000000000","message":"You don\u0027t need to specify (boolean value) here, BoolOpt automatically puts that into the config when it\u0027s generated.","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_path_in_stack will be set to a list of tuples,\u0027"},{"line_number":167,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":168,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":169,"context_line":"                       \u0027 be set to the resource\\\u0027s name (boolean value)\u0027))]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"rpc_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_009d420b","line":169,"in_reply_to":"9aa7fdbe_81bce107","updated":"2014-10-24 13:57:48.000000000","message":"Done","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"c75051b6077c40fcdce18155e138c692ac5e5176","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_path_in_stack will be set to a list of tuples,\u0027"},{"line_number":167,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":168,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":169,"context_line":"                       \u0027 be set to the resource\\\u0027s name\u0027))]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"rpc_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_1a3bc1eb","line":169,"updated":"2014-10-27 01:57:59.000000000","message":"This seems excessive IMHO, this is not really helping me figure out if I want this on or off. I\u0027d rather see what options does it depend on in nova.conf and the net benefit?\n\n\"This adds stack based scheduler hints to nova calls. This requires the following ... options set in nova.conf and will result in the ... behaviour.\"\n\nIs this purely for a proprietary scheduler or one of the official nova schedulers?\n\nBasically I am not sure the config option is the best place to describe how to use this feature. Are we putting some rather magical hooks in for one company to use or is this at all possible for someone else to use? Where is the holistic picture/doc on how to get this to work?\n\nI am not against plug points if they are usable by more than one person/company.","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"6ee22cfd093c543dc930e338b665c1f9b2aa48f6","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_path_in_stack will be set to a list of tuples,\u0027"},{"line_number":167,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":168,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":169,"context_line":"                       \u0027 be set to the resource\\\u0027s name\u0027))]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"rpc_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_992336bc","line":169,"in_reply_to":"9aa7fdbe_1a3bc1eb","updated":"2014-10-27 13:37:17.000000000","message":"I agree that the description should be updated to make it easier for the user or admin to decide whether this config option should be on or off. All the details are more important for someone who would implement a nova scheduler plugin. This should be changed in heat.conf.sample as well then.\n\nRegarding your question: to my knowledge, someone built a nova scheduler plugin that is able to use those hints to perform some clever scheduling. This has been done completely along the lines of the official nova scheduler extensibility, so nothing proprietary.","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"8f0aba05d9d3592fc98e3394157facc17ebdf5b9","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_path_in_stack will be set to a list of tuples,\u0027"},{"line_number":167,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":168,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":169,"context_line":"                       \u0027 be set to the resource\\\u0027s name\u0027))]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"rpc_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_c28679b8","line":169,"in_reply_to":"9aa7fdbe_1a3bc1eb","updated":"2014-10-28 20:12:16.000000000","message":"I\u0027ve tried to simplify the wording, though it didn\u0027t get any shorter. The hints are for any scheduler that wants to consume them; the default nova schedulers do not use them but more than one parties (different companies) are interested in using them to e.g. enable holistic scheduling.","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"e0fecc8e42f1ffa10606f5e15b898d76d34fed12","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_path_in_stack will be set to a list of tuples,\u0027"},{"line_number":167,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":168,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":169,"context_line":"                       \u0027 be set to the resource\\\u0027s name\u0027))]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"rpc_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_54b6f58a","line":169,"in_reply_to":"9aa7fdbe_1a3bc1eb","updated":"2014-10-27 13:31:04.000000000","message":"Speaking for myself, I intend to make good use of them! To my knowledge, there\u0027s no other way to take all of a stack\u0027s resources into account \"in one shot,\" only one at a time. I\u0027m really looking forward to tire-kicking this.","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"78d7fc69628f407c437247db4dfe9ae12b972fe4","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":168,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":169,"context_line":"                       \u0027 be set to the resource\\\u0027s name.\u0027))]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"rpc_opts \u003d ["},{"line_number":173,"context_line":"    cfg.StrOpt(\u0027host\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9aa7fdbe_ca391943","line":170,"updated":"2014-10-29 14:40:01.000000000","message":"See comments in heat.conf.sample.","commit_id":"5fcc23e2884247318a77f181c1d67074655dcf51"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"eb1262d412fc0bccd35f324cd5a98bddee2d20bb","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_root_stack_id will be set to the id of the root\u0027"},{"line_number":167,"context_line":"                       \u0027 stack of the resource, heat_stack_id will be set to\u0027"},{"line_number":168,"context_line":"                       \u0027 the id of the resource\\\u0027s parent stack,\u0027"},{"line_number":169,"context_line":"                       \u0027 heat_stack_name will be set to the id of the\u0027"},{"line_number":170,"context_line":"                       \u0027 resource\\\u0027s parent stack, heat_path_in_stack will be\u0027"},{"line_number":171,"context_line":"                       \u0027 set to a list of tuples,\u0027"},{"line_number":172,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a930d6b_c250a2d6","line":169,"updated":"2015-01-25 16:46:39.000000000","message":"I think this should be\n\n \u0027the heat_stack_name will be set to the name of the\u0027\n\ni.e. not the id (this is heat_stack_id as covered in lines 167 and 168), right?","commit_id":"018d216a5b2c3c3bf244b39db60950cd05656f2e"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"6d8038c7c33a1271f28a528a56de4e80161e7071","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                       \u0027 heat_root_stack_id will be set to the id of the root\u0027"},{"line_number":167,"context_line":"                       \u0027 stack of the resource, heat_stack_id will be set to\u0027"},{"line_number":168,"context_line":"                       \u0027 the id of the resource\\\u0027s parent stack,\u0027"},{"line_number":169,"context_line":"                       \u0027 heat_stack_name will be set to the id of the\u0027"},{"line_number":170,"context_line":"                       \u0027 resource\\\u0027s parent stack, heat_path_in_stack will be\u0027"},{"line_number":171,"context_line":"                       \u0027 set to a list of tuples,\u0027"},{"line_number":172,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a930d6b_1d448419","line":169,"in_reply_to":"1a930d6b_c250a2d6","updated":"2015-01-27 13:48:26.000000000","message":"Done. (typo, oops).","commit_id":"018d216a5b2c3c3bf244b39db60950cd05656f2e"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"eb1262d412fc0bccd35f324cd5a98bddee2d20bb","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                       \u0027 heat_stack_name will be set to the id of the\u0027"},{"line_number":170,"context_line":"                       \u0027 resource\\\u0027s parent stack, heat_path_in_stack will be\u0027"},{"line_number":171,"context_line":"                       \u0027 set to a list of tuples,\u0027"},{"line_number":172,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":173,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":174,"context_line":"                       \u0027 be set to the resource\\\u0027s name.\u0027))]"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a930d6b_a25396e0","line":172,"updated":"2015-01-25 16:46:39.000000000","message":"This last part is where it gets complicated; up to here, the description looks fine. I wonder whether it makes sense to add some documentation on how to use this feature in another place.","commit_id":"018d216a5b2c3c3bf244b39db60950cd05656f2e"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"0f42ab06e489669c724d3ffbc56abb69f37b0087","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                       \u0027 heat_stack_name will be set to the id of the\u0027"},{"line_number":170,"context_line":"                       \u0027 resource\\\u0027s parent stack, heat_path_in_stack will be\u0027"},{"line_number":171,"context_line":"                       \u0027 set to a list of tuples,\u0027"},{"line_number":172,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":173,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":174,"context_line":"                       \u0027 be set to the resource\\\u0027s name.\u0027))]"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"fa81d914_9c8f4e23","line":172,"in_reply_to":"1a930d6b_7df10894","updated":"2015-01-28 15:19:46.000000000","message":"I am fine with keeping this here. Just wanted to bring up the point and see if anyone has a good idea for where this fits best.","commit_id":"018d216a5b2c3c3bf244b39db60950cd05656f2e"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"6d8038c7c33a1271f28a528a56de4e80161e7071","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                       \u0027 heat_stack_name will be set to the id of the\u0027"},{"line_number":170,"context_line":"                       \u0027 resource\\\u0027s parent stack, heat_path_in_stack will be\u0027"},{"line_number":171,"context_line":"                       \u0027 set to a list of tuples,\u0027"},{"line_number":172,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"},{"line_number":173,"context_line":"                       \u0027 (None, rootstackname), and heat_resource_name will\u0027"},{"line_number":174,"context_line":"                       \u0027 be set to the resource\\\u0027s name.\u0027))]"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a930d6b_7df10894","line":172,"in_reply_to":"1a930d6b_a25396e0","updated":"2015-01-27 13:48:26.000000000","message":"I\u0027m OK with writing some slightly longer documentation on this support, but am stuck on where it would reside so that the intended users, namely developers of enhanced nova schedulers, will find it. This patch is at core just some support to provide such a scheduler with the full relevant heat context for a server/instance resource, so that it can make appropriate decisions about of these resources, e.g. placement decisions.","commit_id":"018d216a5b2c3c3bf244b39db60950cd05656f2e"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"705c47fd836053938f84a688e98d4571fc7f73db","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                       \u0027 heat_root_stack_id will be set to the id of the root\u0027"},{"line_number":169,"context_line":"                       \u0027 stack of the resource, heat_stack_id will be set to\u0027"},{"line_number":170,"context_line":"                       \u0027 the id of the resource\\\u0027s parent stack,\u0027"},{"line_number":171,"context_line":"                       \u0027 heat_stack_name will be set to the id of the\u0027"},{"line_number":172,"context_line":"                       \u0027 resource\\\u0027s parent stack, heat_path_in_stack will be\u0027"},{"line_number":173,"context_line":"                       \u0027 set to a list of tuples,\u0027"},{"line_number":174,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba7be1f8_8c68cb22","line":171,"updated":"2015-03-02 09:05:34.000000000","message":"s/id/name","commit_id":"9015e0fc9ee127f3763dd263e2e88c86d8281981"},{"author":{"_account_id":14049,"name":"Karolyn Chambers","email":"Karolyn.Chambers@target.com","username":"karolyn-chambers"},"change_message_id":"f39685e88b9f9b28cad187a0388433e54ee26c71","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                       \u0027 heat_root_stack_id will be set to the id of the root\u0027"},{"line_number":169,"context_line":"                       \u0027 stack of the resource, heat_stack_id will be set to\u0027"},{"line_number":170,"context_line":"                       \u0027 the id of the resource\\\u0027s parent stack,\u0027"},{"line_number":171,"context_line":"                       \u0027 heat_stack_name will be set to the id of the\u0027"},{"line_number":172,"context_line":"                       \u0027 resource\\\u0027s parent stack, heat_path_in_stack will be\u0027"},{"line_number":173,"context_line":"                       \u0027 set to a list of tuples,\u0027"},{"line_number":174,"context_line":"                       \u0027 (stackresourcename, stackname) with list[0] being\u0027"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a80dd14_4fbc2f6a","line":171,"in_reply_to":"ba7be1f8_8c68cb22","updated":"2015-03-05 05:26:13.000000000","message":"Done","commit_id":"9015e0fc9ee127f3763dd263e2e88c86d8281981"}],"heat/engine/resources/aws/ec2/instance.py":[{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"ca13ad644a2b6f9ef1de4e39b7bbc753226406ba","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                    scheduler_hints[hint] \u003d hint_value"},{"line_number":526,"context_line":"        else:"},{"line_number":527,"context_line":"            scheduler_hints \u003d None"},{"line_number":528,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":529,"context_line":"            if scheduler_hints is None:"},{"line_number":530,"context_line":"                scheduler_hints \u003d {}"},{"line_number":531,"context_line":"            scheduler_hints[\u0027heat_root_stack_id\u0027] \u003d self.stack.root_stack.id"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_781e29bd","line":528,"updated":"2015-03-17 11:45:44.000000000","message":"its good practice to use if x is not None: thought technically its not required.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"},{"author":{"_account_id":14049,"name":"Karolyn Chambers","email":"Karolyn.Chambers@target.com","username":"karolyn-chambers"},"change_message_id":"baa454409a56e6f59cc254ecee60a7100649a39b","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                    scheduler_hints[hint] \u003d hint_value"},{"line_number":526,"context_line":"        else:"},{"line_number":527,"context_line":"            scheduler_hints \u003d None"},{"line_number":528,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":529,"context_line":"            if scheduler_hints is None:"},{"line_number":530,"context_line":"                scheduler_hints \u003d {}"},{"line_number":531,"context_line":"            scheduler_hints[\u0027heat_root_stack_id\u0027] \u003d self.stack.root_stack.id"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_9011c855","line":528,"in_reply_to":"9a80dd14_781e29bd","updated":"2015-03-18 04:25:03.000000000","message":"stack_scheduler_hints is a boolean and will be set to True or False. It defaults to False, so it will always be set.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"},{"author":{"_account_id":13134,"name":"Joe D\u0027Andrea","email":"jdandrea@redhat.com","username":"jdandrea"},"change_message_id":"72e091b50b30eeb0f63fe057b34e869c126cd68d","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                    scheduler_hints[hint] \u003d hint_value"},{"line_number":526,"context_line":"        else:"},{"line_number":527,"context_line":"            scheduler_hints \u003d None"},{"line_number":528,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":529,"context_line":"            if scheduler_hints is None:"},{"line_number":530,"context_line":"                scheduler_hints \u003d {}"},{"line_number":531,"context_line":"            scheduler_hints[\u0027heat_root_stack_id\u0027] \u003d self.stack.root_stack.id"}],"source_content_type":"text/x-python","patch_set":24,"id":"9a80dd14_4aa70f50","line":528,"updated":"2015-03-20 19:33:39.000000000","message":"Just to make sure I\u0027m understanding ... schedulerhints.rst lists the hints as including the \"stack id, root stack id, stack resource id, stack resource name and the path in the stack.\"\n\nI\u0027m not sure how the align though. Can someone please clarify?\n\n  stack id \u003d\u003d heat_stack_id  \n  root stack id \u003d heat_root_stack_id\n  stack resource id \u003d ?\n  stack resource name \u003d  heat_resource_name\n  path in the stack \u003d heat_path_in_stack\n  ? \u003d heat_stack_name\n\nI also recall William C. Arnold working on a deterministic \"orchestration uuid\" to be assigned each resource *prior* to creation (also important for resource generators and autoscaling), but I don\u0027t see it here. Am I misremembering, or is the path intended to supplant that?\n\nThanks for your work on this!","commit_id":"2c1dc724ca6cacbcbeed840b4dece3c91c81ddb7"}],"heat/engine/resources/instance.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0157ca4a599ce9e2baf1604adf2616213330c575","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        if cfg.CONF.stack_ids_as_scheduler_hints:"},{"line_number":460,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":461,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":462,"context_line":"        elif 0 \u003d\u003d len(scheduler_hints):"},{"line_number":463,"context_line":"            scheduler_hints \u003d None"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        nics \u003d self._build_nics(self.properties[self.NETWORK_INTERFACES],"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_96d1d959","line":462,"updated":"2014-07-02 08:39:09.000000000","message":"It\u0027s written bit nicer \"elif not scheduler_hints\"","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"171e1d308a83e3cde87fb635d0656399be740d25","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        if cfg.CONF.stack_ids_as_scheduler_hints:"},{"line_number":460,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":461,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":462,"context_line":"        elif 0 \u003d\u003d len(scheduler_hints):"},{"line_number":463,"context_line":"            scheduler_hints \u003d None"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        nics \u003d self._build_nics(self.properties[self.NETWORK_INTERFACES],"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_7e424c11","line":462,"in_reply_to":"baada198_96d1d959","updated":"2014-07-02 16:22:52.000000000","message":"Done","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"3f6c0eba411b7cb9b1a3396443f0756bac3a110a","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            for tm in self.properties[self.NOVA_SCHEDULER_HINTS]:"},{"line_number":554,"context_line":"                # adopted from novaclient shell"},{"line_number":555,"context_line":"                hint \u003d tm[self.TAG_KEY]"},{"line_number":556,"context_line":"                hint_value \u003d tm[self.TAG_VALUE]"},{"line_number":557,"context_line":"                if hint in scheduler_hints:"},{"line_number":558,"context_line":"                    if isinstance(scheduler_hints[hint], six.string_types):"},{"line_number":559,"context_line":"                        scheduler_hints[hint] \u003d [scheduler_hints[hint]]"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_6c1efabc","line":556,"updated":"2014-08-20 16:27:44.000000000","message":"Not related:\nmodify self.TAG_KEY to self.NOVA_SCHEDULER_HINT_KEY;\nmodify self.TAG_VALUE to self.NOVA_SCHEDULER_HINT_VALUE","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"f00f54cd7c12a9ffa8d95fa63770bc4917953f14","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            for tm in self.properties[self.NOVA_SCHEDULER_HINTS]:"},{"line_number":554,"context_line":"                # adopted from novaclient shell"},{"line_number":555,"context_line":"                hint \u003d tm[self.TAG_KEY]"},{"line_number":556,"context_line":"                hint_value \u003d tm[self.TAG_VALUE]"},{"line_number":557,"context_line":"                if hint in scheduler_hints:"},{"line_number":558,"context_line":"                    if isinstance(scheduler_hints[hint], six.string_types):"},{"line_number":559,"context_line":"                        scheduler_hints[hint] \u003d [scheduler_hints[hint]]"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_7357ee02","line":556,"in_reply_to":"1abeadc6_6c1efabc","updated":"2014-08-26 19:10:11.000000000","message":"I assume I should not make such a modification in this patch?","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":11127,"name":"Jake Kitchener","email":"jakekit@gmail.com","username":"jakekit"},"change_message_id":"6150b959d83f5026779a89281d20aa3e0cc595f3","unresolved":false,"context_lines":[{"line_number":561,"context_line":"                else:"},{"line_number":562,"context_line":"                    scheduler_hints[hint] \u003d hint_value"},{"line_number":563,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":564,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":565,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":566,"context_line":"        elif not scheduler_hints:"},{"line_number":567,"context_line":"            scheduler_hints \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_d2451918","line":564,"updated":"2014-10-01 14:07:51.000000000","message":"So I think what is happening here is that the scheduler hint is being created by heat itself. Do we not have the option to pass in the hint on our own? This is how heat deals with associating ceilometer meters with specific instances. This allows us to more easily handle nested stacks. Thoughts?","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3b6c815da70913d7fbaeb965186cfd6c3e31205","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from heat.engine import scheduler"},{"line_number":28,"context_line":"from heat.engine import signal_responder"},{"line_number":29,"context_line":"from heat.openstack.common import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_614a9d27","line":30,"updated":"2014-10-23 15:07:49.000000000","message":"Add:\n\ncfg.CONF.import_opt(\u0027stack_scheduler_hints\u0027, \u0027heat.common.config\u0027)","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from heat.engine import scheduler"},{"line_number":28,"context_line":"from heat.engine import signal_responder"},{"line_number":29,"context_line":"from heat.openstack.common import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_d5c5a88e","line":30,"in_reply_to":"9aa7fdbe_614a9d27","updated":"2014-10-24 13:57:48.000000000","message":"Done","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"48474707e28bc9f2302e32d100e6832f14af8a0f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from heat.engine import signal_responder"},{"line_number":29,"context_line":"from heat.openstack.common import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_2ba31450","line":31,"updated":"2014-10-23 15:12:49.000000000","message":"Before using stack_scheduler_hints, it\u0027s better import this option here.\n\n cfg.CONF.import_opt(\u0027stack_scheduler_hints\u0027, \u0027heat.common.config\u0027)","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from heat.engine import signal_responder"},{"line_number":29,"context_line":"from heat.openstack.common import log as logging"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_f5c2ac83","line":31,"in_reply_to":"9aa7fdbe_2ba31450","updated":"2014-10-24 13:57:48.000000000","message":"Done","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":10787,"name":"Michal Jastrzebski (inc0)","email":"michal.jastrzebski@intel.com","username":"inc0"},"change_message_id":"621304609a8667681b7bf9d6e66626921105c4b0","unresolved":false,"context_lines":[{"line_number":587,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":588,"context_line":"            scheduler_hints[\u0027heat_root_stack_id\u0027] \u003d self.stack.root_stack.id"},{"line_number":589,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":590,"context_line":"            scheduler_hints[\u0027heat_stack_name\u0027] \u003d self.stack.name"},{"line_number":591,"context_line":"            scheduler_hints[\u0027heat_path_in_stack\u0027] \u003d self.stack.path_in_stack"},{"line_number":592,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":593,"context_line":"        elif not scheduler_hints:"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_547b9a27","line":590,"updated":"2014-10-23 13:36:09.000000000","message":"you want to be careful here, as stack names aren\u0027t unique in multitenant and it might confuse scheduler","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":587,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":588,"context_line":"            scheduler_hints[\u0027heat_root_stack_id\u0027] \u003d self.stack.root_stack.id"},{"line_number":589,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":590,"context_line":"            scheduler_hints[\u0027heat_stack_name\u0027] \u003d self.stack.name"},{"line_number":591,"context_line":"            scheduler_hints[\u0027heat_path_in_stack\u0027] \u003d self.stack.path_in_stack"},{"line_number":592,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":593,"context_line":"        elif not scheduler_hints:"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_40166a56","line":590,"in_reply_to":"9aa7fdbe_547b9a27","updated":"2014-10-24 13:57:48.000000000","message":"Yes, agreed. The path plus root stack id (uuid), or stack id, are safer.","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":10787,"name":"Michal Jastrzebski (inc0)","email":"michal.jastrzebski@intel.com","username":"inc0"},"change_message_id":"621304609a8667681b7bf9d6e66626921105c4b0","unresolved":false,"context_lines":[{"line_number":590,"context_line":"            scheduler_hints[\u0027heat_stack_name\u0027] \u003d self.stack.name"},{"line_number":591,"context_line":"            scheduler_hints[\u0027heat_path_in_stack\u0027] \u003d self.stack.path_in_stack"},{"line_number":592,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":593,"context_line":"        elif not scheduler_hints:"},{"line_number":594,"context_line":"            scheduler_hints \u003d None"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        nics \u003d self._build_nics(self.properties[self.NETWORK_INTERFACES],"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_d4a86a8f","line":593,"updated":"2014-10-23 13:36:09.000000000","message":"Why are you changing type of scheduler hints? If it was defined as dict, I don\u0027t see any reason to make it none, and it can break things.","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":590,"context_line":"            scheduler_hints[\u0027heat_stack_name\u0027] \u003d self.stack.name"},{"line_number":591,"context_line":"            scheduler_hints[\u0027heat_path_in_stack\u0027] \u003d self.stack.path_in_stack"},{"line_number":592,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":593,"context_line":"        elif not scheduler_hints:"},{"line_number":594,"context_line":"            scheduler_hints \u003d None"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        nics \u003d self._build_nics(self.properties[self.NETWORK_INTERFACES],"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_8bd073f7","line":593,"in_reply_to":"9aa7fdbe_d4a86a8f","updated":"2014-10-24 13:57:48.000000000","message":"The original code sets scheduler_hints to None if self.properties[self.NOVA_SCHEDULER_HINTS] is false (None or empty). This preserves that behavior if scheduler hints are not added, but maybe it would be more clear if the elif made the same check?\nNot sure it\u0027s clearer though. (Or maybe I\u0027m missing your point.)","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d17e542f3186b3dde510338649652cdf215bbce","unresolved":false,"context_lines":[{"line_number":591,"context_line":"            scheduler_hints[\u0027heat_stack_name\u0027] \u003d self.stack.name"},{"line_number":592,"context_line":"            scheduler_hints[\u0027heat_path_in_stack\u0027] \u003d self.stack.path_in_stack()"},{"line_number":593,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":594,"context_line":"        elif not self.properties[self.NOVA_SCHEDULER_HINTS]:"},{"line_number":595,"context_line":"            scheduler_hints \u003d None"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"        nics \u003d self._build_nics(self.properties[self.NETWORK_INTERFACES],"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa7fdbe_4f562d08","line":594,"updated":"2014-10-28 22:14:45.000000000","message":"This already came up before, but the logic here is weird.  I\u0027d expect the same else as before where scheduler_hints is set to None.  The problem is then if cfg.CONF.stack_scheduler_hints is True, scheduler_hints could be None - but you could just initialize scheduler_hints to {} again if that was the case.  That\u0027s still ugly, but a thought - and it\u0027s like what you\u0027re doing in the server module which looks cleaner.\n\nNot something I\u0027d probably -1 over.","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"5a62d7695c6f6d80e2242dd9a16a14372e1938ca","unresolved":false,"context_lines":[{"line_number":591,"context_line":"            scheduler_hints[\u0027heat_stack_name\u0027] \u003d self.stack.name"},{"line_number":592,"context_line":"            scheduler_hints[\u0027heat_path_in_stack\u0027] \u003d self.stack.path_in_stack()"},{"line_number":593,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":594,"context_line":"        elif not self.properties[self.NOVA_SCHEDULER_HINTS]:"},{"line_number":595,"context_line":"            scheduler_hints \u003d None"},{"line_number":596,"context_line":""},{"line_number":597,"context_line":"        nics \u003d self._build_nics(self.properties[self.NETWORK_INTERFACES],"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa7fdbe_35edb826","line":594,"in_reply_to":"9aa7fdbe_4f562d08","updated":"2014-10-28 23:55:19.000000000","message":"Done. I agree, it\u0027s easier to read.","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"}],"heat/engine/resources/server.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"9157b95ab4bad30bee5ee56fce634326003b19de","unresolved":false,"context_lines":[{"line_number":494,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":495,"context_line":"            if scheduler_hints is None:"},{"line_number":496,"context_line":"                scheduler_hints \u003d {}"},{"line_number":497,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":498,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":499,"context_line":"        nics \u003d self._build_nics(self.properties.get(self.NETWORKS))"},{"line_number":500,"context_line":"        block_device_mapping \u003d self._build_block_device_mapping("}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_117037db","line":497,"updated":"2014-08-28 02:06:35.000000000","message":"I\u0027m not sure this will achieve what you\u0027re trying to do, which is for all the servers in a scaling group to have the same heat_stack_id.\n\nIf your scaling group resource is a server resource then this will work as expected, all the servers in a group will share the same heat_stack_id.\n\nHowever if your scaling resource is a provider resource which encapsulates a server plus some other resources (port, deployments, whatever) then each provider resource is represented by its own nested stack, so each server in the group will have a different heat_stack_id.","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"0506af3fb7f11093d866118ea295ef02675c87c2","unresolved":false,"context_lines":[{"line_number":494,"context_line":"        if cfg.CONF.stack_scheduler_hints:"},{"line_number":495,"context_line":"            if scheduler_hints is None:"},{"line_number":496,"context_line":"                scheduler_hints \u003d {}"},{"line_number":497,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":498,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":499,"context_line":"        nics \u003d self._build_nics(self.properties.get(self.NETWORKS))"},{"line_number":500,"context_line":"        block_device_mapping \u003d self._build_block_device_mapping("}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_3cd953f3","line":497,"in_reply_to":"1abeadc6_117037db","updated":"2014-09-04 22:47:06.000000000","message":"Haven\u0027t answered this important comment, sorry. \n\nI\u0027m reworking the patch to include the full resource name path in the stack to VM resources, in a scheduler hint. This also includes making the name generation (for resources in generated stacks) deterministic so that the names that are created for stack preview can be mapped to the names that are generated during stack create. (The tests aren\u0027t passing yet.)","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":7892,"name":"Yong Feng","email":"fengyong.gm@gmail.com","username":"YongFeng"},"change_message_id":"3bad36b60e4618497452ff8f2ac4f8c96a15312b","unresolved":false,"context_lines":[{"line_number":495,"context_line":"            if scheduler_hints is None:"},{"line_number":496,"context_line":"                scheduler_hints \u003d {}"},{"line_number":497,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":498,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":499,"context_line":"        nics \u003d self._build_nics(self.properties.get(self.NETWORKS))"},{"line_number":500,"context_line":"        block_device_mapping \u003d self._build_block_device_mapping("},{"line_number":501,"context_line":"            self.properties.get(self.BLOCK_DEVICE_MAPPING))"}],"source_content_type":"text/x-python","patch_set":9,"id":"1abeadc6_60c0247d","line":498,"updated":"2014-08-25 19:20:34.000000000","message":"If the VM belongs to an auto-scale group, what\u0027s the stack.id and resource_name? It is expected we put the parent stack id and resource name of auto-scale group itself into the hints.","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":11127,"name":"Jake Kitchener","email":"jakekit@gmail.com","username":"jakekit"},"change_message_id":"6150b959d83f5026779a89281d20aa3e0cc595f3","unresolved":false,"context_lines":[{"line_number":495,"context_line":"            if scheduler_hints is None:"},{"line_number":496,"context_line":"                scheduler_hints \u003d {}"},{"line_number":497,"context_line":"            scheduler_hints[\u0027heat_stack_id\u0027] \u003d self.stack.id"},{"line_number":498,"context_line":"            scheduler_hints[\u0027heat_resource_name\u0027] \u003d self.name"},{"line_number":499,"context_line":"        nics \u003d self._build_nics(self.properties.get(self.NETWORKS))"},{"line_number":500,"context_line":"        block_device_mapping \u003d self._build_block_device_mapping("},{"line_number":501,"context_line":"            self.properties.get(self.BLOCK_DEVICE_MAPPING))"}],"source_content_type":"text/x-python","patch_set":9,"id":"baa201ad_0fc69e49","line":498,"in_reply_to":"1abeadc6_60c0247d","updated":"2014-10-01 14:07:51.000000000","message":"Typically the metadata of the stack.id is passed in to the nested stack from the parent and added to the components of the nested stack that we are interested in scaling. This would ordinarily be any Nova:Server resources.","commit_id":"51bbd5be5fe1cca439e08f893ad964dbbc7531a1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b3b6c815da70913d7fbaeb965186cfd6c3e31205","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from heat.engine import support"},{"line_number":31,"context_line":"from heat.openstack.common import log as logging"},{"line_number":32,"context_line":"from heat.openstack.common import uuidutils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_e165adb5","line":33,"updated":"2014-10-23 15:07:49.000000000","message":"Add:\n\ncfg.CONF.import_opt(\u0027stack_scheduler_hints\u0027, \u0027heat.common.config\u0027)","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from heat.engine import support"},{"line_number":31,"context_line":"from heat.openstack.common import log as logging"},{"line_number":32,"context_line":"from heat.openstack.common import uuidutils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_4b5e8b77","line":33,"in_reply_to":"9aa7fdbe_e165adb5","updated":"2014-10-24 13:57:48.000000000","message":"Done. (Also in instance.py)","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"48474707e28bc9f2302e32d100e6832f14af8a0f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from heat.openstack.common import log as logging"},{"line_number":32,"context_line":"from heat.openstack.common import uuidutils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_cb97e8ea","line":34,"updated":"2014-10-23 15:12:49.000000000","message":"It\u0027s better to import stack_scheduler_hints here.","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from heat.openstack.common import log as logging"},{"line_number":32,"context_line":"from heat.openstack.common import uuidutils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cfg.CONF.import_opt(\u0027instance_user\u0027, \u0027heat.common.config\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_0b68031c","line":34,"in_reply_to":"9aa7fdbe_cb97e8ea","updated":"2014-10-24 13:57:48.000000000","message":"Done","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"}],"heat/engine/stack.py":[{"author":{"_account_id":10787,"name":"Michal Jastrzebski (inc0)","email":"michal.jastrzebski@intel.com","username":"inc0"},"change_message_id":"621304609a8667681b7bf9d6e66626921105c4b0","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        and stacks in path from the root stack and including this stack"},{"line_number":219,"context_line":"        Return value is a list of (stack_resource, stack) tuples"},{"line_number":220,"context_line":"        \u0027\u0027\u0027"},{"line_number":221,"context_line":"        if (self.parent_resource and self.parent_resource.stack):"},{"line_number":222,"context_line":"            path \u003d self.parent_resource.stack.object_path_in_stack"},{"line_number":223,"context_line":"            path.extend([(self.parent_resource, self)])"},{"line_number":224,"context_line":"            return path"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_b4c92628","line":221,"updated":"2014-10-23 13:36:09.000000000","message":"brackets are redundant here","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        and stacks in path from the root stack and including this stack"},{"line_number":219,"context_line":"        Return value is a list of (stack_resource, stack) tuples"},{"line_number":220,"context_line":"        \u0027\u0027\u0027"},{"line_number":221,"context_line":"        if (self.parent_resource and self.parent_resource.stack):"},{"line_number":222,"context_line":"            path \u003d self.parent_resource.stack.object_path_in_stack"},{"line_number":223,"context_line":"            path.extend([(self.parent_resource, self)])"},{"line_number":224,"context_line":"            return path"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_ab4c57c9","line":221,"in_reply_to":"9aa7fdbe_b4c92628","updated":"2014-10-24 13:57:48.000000000","message":"Done","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"c75051b6077c40fcdce18155e138c692ac5e5176","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            return path"},{"line_number":225,"context_line":"        return [(None, self)]"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    @property"},{"line_number":228,"context_line":"    def path_in_stack(self):"},{"line_number":229,"context_line":"        \u0027\u0027\u0027"},{"line_number":230,"context_line":"        If this is not nested return self.name, else return tuples of names"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_1a12e161","line":227,"updated":"2014-10-27 01:57:59.000000000","message":"can we kill these @property please, not adding value esp. if you are calling this recursively.","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"8f0aba05d9d3592fc98e3394157facc17ebdf5b9","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            return path"},{"line_number":225,"context_line":"        return [(None, self)]"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    @property"},{"line_number":228,"context_line":"    def path_in_stack(self):"},{"line_number":229,"context_line":"        \u0027\u0027\u0027"},{"line_number":230,"context_line":"        If this is not nested return self.name, else return tuples of names"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_2916774c","line":227,"in_reply_to":"9aa7fdbe_1a12e161","updated":"2014-10-28 20:12:16.000000000","message":"Done. (I don\u0027t like @property either; root_stack was/is marked with @property. Is it worth changing root_stack as well?)","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"69a74ad778976557d3fac4a053d94dbe8ccf29da","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            return path"},{"line_number":225,"context_line":"        return [(None, self)]"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    @property"},{"line_number":228,"context_line":"    def path_in_stack(self):"},{"line_number":229,"context_line":"        \u0027\u0027\u0027"},{"line_number":230,"context_line":"        If this is not nested return self.name, else return tuples of names"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_937921ca","line":227,"in_reply_to":"9aa7fdbe_2916774c","updated":"2014-10-28 22:05:55.000000000","message":"I wouldn\u0027t touch any existing code, just don\u0027t propagate the same thing with new code.  A separate cleanup change can remove the other decorator use if desired.","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":10588,"name":"Qiu Jian","email":"gothicqiujian@gmail.com"},"change_message_id":"99b7ac1350ebc1d1ddab69423454cc5b276481da","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        \u0027\u0027\u0027"},{"line_number":230,"context_line":"        If this is not nested return self.name, else return tuples of names"},{"line_number":231,"context_line":"        (stack_resource.name, stack.name) in path from the root stack and"},{"line_number":232,"context_line":"        including this this stack."},{"line_number":233,"context_line":"        Return value is a list of tuples of (string, string)."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_26ab108a","line":232,"updated":"2014-10-27 08:52:06.000000000","message":"\u0027this\u0027 is listed twice","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"8f0aba05d9d3592fc98e3394157facc17ebdf5b9","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        \u0027\u0027\u0027"},{"line_number":230,"context_line":"        If this is not nested return self.name, else return tuples of names"},{"line_number":231,"context_line":"        (stack_resource.name, stack.name) in path from the root stack and"},{"line_number":232,"context_line":"        including this this stack."},{"line_number":233,"context_line":"        Return value is a list of tuples of (string, string)."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa7fdbe_090c533a","line":232,"in_reply_to":"9aa7fdbe_26ab108a","updated":"2014-10-28 20:12:16.000000000","message":"Done","commit_id":"aad32a879c29c8319d672de0552b2a9f91e1b693"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d17e542f3186b3dde510338649652cdf215bbce","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        \u0027\u0027\u0027"},{"line_number":216,"context_line":"        If this is not nested return self, else return stack resources"},{"line_number":217,"context_line":"        and stacks in path from the root stack and including this stack"},{"line_number":218,"context_line":"        Return value is a list of (stack_resource, stack) tuples"},{"line_number":219,"context_line":"        \u0027\u0027\u0027"},{"line_number":220,"context_line":"        if self.parent_resource and self.parent_resource.stack:"},{"line_number":221,"context_line":"            path \u003d self.parent_resource.stack.object_path_in_stack()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa7fdbe_af6319dc","line":218,"updated":"2014-10-28 22:14:45.000000000","message":"Should probably use the actual :return: docstring (rst format) here.","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"5a62d7695c6f6d80e2242dd9a16a14372e1938ca","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        \u0027\u0027\u0027"},{"line_number":216,"context_line":"        If this is not nested return self, else return stack resources"},{"line_number":217,"context_line":"        and stacks in path from the root stack and including this stack"},{"line_number":218,"context_line":"        Return value is a list of (stack_resource, stack) tuples"},{"line_number":219,"context_line":"        \u0027\u0027\u0027"},{"line_number":220,"context_line":"        if self.parent_resource and self.parent_resource.stack:"},{"line_number":221,"context_line":"            path \u003d self.parent_resource.stack.object_path_in_stack()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa7fdbe_d21e42bb","line":218,"in_reply_to":"9aa7fdbe_af6319dc","updated":"2014-10-28 23:55:19.000000000","message":"Done","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d17e542f3186b3dde510338649652cdf215bbce","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        If this is not nested return self.name, else return tuples of names"},{"line_number":229,"context_line":"        (stack_resource.name, stack.name) in path from the root stack and"},{"line_number":230,"context_line":"        including this stack."},{"line_number":231,"context_line":"        Return value is a list of tuples of (string, string)."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        \u0027\u0027\u0027"},{"line_number":234,"context_line":"        opis \u003d self.object_path_in_stack()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa7fdbe_ef5d2117","line":231,"updated":"2014-10-28 22:14:45.000000000","message":"ditto on rst tags/formatting.","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"5a62d7695c6f6d80e2242dd9a16a14372e1938ca","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        If this is not nested return self.name, else return tuples of names"},{"line_number":229,"context_line":"        (stack_resource.name, stack.name) in path from the root stack and"},{"line_number":230,"context_line":"        including this stack."},{"line_number":231,"context_line":"        Return value is a list of tuples of (string, string)."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        \u0027\u0027\u0027"},{"line_number":234,"context_line":"        opis \u003d self.object_path_in_stack()"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa7fdbe_f21b46c8","line":231,"in_reply_to":"9aa7fdbe_ef5d2117","updated":"2014-10-28 23:55:19.000000000","message":"Done","commit_id":"d13a78ade3c6ddc11d3713df2a6972151fc46739"},{"author":{"_account_id":7193,"name":"Thomas Spatzier","email":"thomas.spatzier@icloud.com","username":"thomasspatzier"},"change_message_id":"eb1262d412fc0bccd35f324cd5a98bddee2d20bb","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    def path_in_stack(self):"},{"line_number":235,"context_line":"        \u0027\u0027\u0027"},{"line_number":236,"context_line":"        If this is not nested return self.name, else return tuples of names"},{"line_number":237,"context_line":"        (stack_resource.name, stack.name) in path from the root stack and"},{"line_number":238,"context_line":"        including this stack."},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a930d6b_82713a78","line":236,"updated":"2015-01-25 16:46:39.000000000","message":"I think the return value for non-nested is (None, self.name), not just self.name.","commit_id":"018d216a5b2c3c3bf244b39db60950cd05656f2e"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"6d8038c7c33a1271f28a528a56de4e80161e7071","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    def path_in_stack(self):"},{"line_number":235,"context_line":"        \u0027\u0027\u0027"},{"line_number":236,"context_line":"        If this is not nested return self.name, else return tuples of names"},{"line_number":237,"context_line":"        (stack_resource.name, stack.name) in path from the root stack and"},{"line_number":238,"context_line":"        including this stack."},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a930d6b_22a2014b","line":236,"in_reply_to":"1a930d6b_82713a78","updated":"2015-01-27 13:48:26.000000000","message":"Done","commit_id":"018d216a5b2c3c3bf244b39db60950cd05656f2e"}],"heat/tests/test_instance.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0157ca4a599ce9e2baf1604adf2616213330c575","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        return_server \u003d self.fc.servers.list()[1]"},{"line_number":293,"context_line":"        self.m.StubOutWithMock(instances.cfg.CONF,"},{"line_number":294,"context_line":"                               \u0027stack_ids_as_scheduler_hints\u0027)"},{"line_number":295,"context_line":"        instances.cfg.CONF.stack_ids_as_scheduler_hints \u003d True"},{"line_number":296,"context_line":"        # Unroll _create_test_instance, to enable check"},{"line_number":297,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":298,"context_line":"        stack_name \u003d \u0027test_instance_create_with_stack_ids_as_scheduler_hints\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_b63b3d9b","line":295,"updated":"2014-07-02 08:39:09.000000000","message":"You should use cfg.CONF.set_override instead.","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"171e1d308a83e3cde87fb635d0656399be740d25","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        return_server \u003d self.fc.servers.list()[1]"},{"line_number":293,"context_line":"        self.m.StubOutWithMock(instances.cfg.CONF,"},{"line_number":294,"context_line":"                               \u0027stack_ids_as_scheduler_hints\u0027)"},{"line_number":295,"context_line":"        instances.cfg.CONF.stack_ids_as_scheduler_hints \u003d True"},{"line_number":296,"context_line":"        # Unroll _create_test_instance, to enable check"},{"line_number":297,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":298,"context_line":"        stack_name \u003d \u0027test_instance_create_with_stack_ids_as_scheduler_hints\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_9c21e9b6","line":295,"in_reply_to":"baada198_b63b3d9b","updated":"2014-07-02 16:22:52.000000000","message":"Done (didn\u0027t know that thanks)","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"79466d812ce727906e167a17b33213aa44909bff","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        # Unroll _create_test_instance, to enable check"},{"line_number":312,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":313,"context_line":"        stack_name \u003d \u0027test_instance_create_with_stack_scheduler_hints\u0027"},{"line_number":314,"context_line":"        (t, stack) \u003d self._setup_test_stack(stack_name)"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        t[\u0027Resources\u0027][\u0027WebServer\u0027][\u0027Properties\u0027][\u0027ImageId\u0027] \u003d \\"},{"line_number":317,"context_line":"            \u0027CentOS 5.2\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_a6e54f0a","line":314,"updated":"2014-07-07 05:58:33.000000000","message":"Use _get_test_template(stack_name) here and L316-319 can be removal.","commit_id":"82cf10a78951e3942e1aa0b0781ddc3c2479417f"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"1dcae29082c847f8f66beaeb76dc0ebe4cee9e18","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        # Unroll _create_test_instance, to enable check"},{"line_number":312,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":313,"context_line":"        stack_name \u003d \u0027test_instance_create_with_stack_scheduler_hints\u0027"},{"line_number":314,"context_line":"        (t, stack) \u003d self._setup_test_stack(stack_name)"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        t[\u0027Resources\u0027][\u0027WebServer\u0027][\u0027Properties\u0027][\u0027ImageId\u0027] \u003d \\"},{"line_number":317,"context_line":"            \u0027CentOS 5.2\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_d736fdb3","line":314,"in_reply_to":"baada198_a6e54f0a","updated":"2014-07-09 19:18:58.000000000","message":"Done","commit_id":"82cf10a78951e3942e1aa0b0781ddc3c2479417f"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"48474707e28bc9f2302e32d100e6832f14af8a0f","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                return_server)"},{"line_number":528,"context_line":"        self.m.ReplayAll()"},{"line_number":529,"context_line":"        scheduler.TaskRunner(instance.create)()"},{"line_number":530,"context_line":"        self.assertTrue(instance.id \u003e 0)"},{"line_number":531,"context_line":"        self.m.VerifyAll()"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"    def test_instance_validate(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_e1bdadb8","line":530,"updated":"2014-10-23 15:12:49.000000000","message":"Is there a better way to verify scheduler_hints data?","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"d0ec0e95f7836bac8ae67f8d67dcb797853967cc","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                return_server)"},{"line_number":528,"context_line":"        self.m.ReplayAll()"},{"line_number":529,"context_line":"        scheduler.TaskRunner(instance.create)()"},{"line_number":530,"context_line":"        self.assertTrue(instance.id \u003e 0)"},{"line_number":531,"context_line":"        self.m.VerifyAll()"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"    def test_instance_validate(self):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9aa7fdbe_c442603d","line":530,"in_reply_to":"9aa7fdbe_e1bdadb8","updated":"2014-10-24 13:57:48.000000000","message":"More than the check against the expected scheduler hints?","commit_id":"e706cdb497b7d35c4d8cda217414d35f1f8dfd5b"},{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"ca13ad644a2b6f9ef1de4e39b7bbc753226406ba","unresolved":false,"context_lines":[{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    def test_instance_create_with_stack_scheduler_hints(self):"},{"line_number":524,"context_line":"        return_server \u003d self.fc.servers.list()[1]"},{"line_number":525,"context_line":"        instances.cfg.CONF.set_override(\u0027stack_scheduler_hints\u0027, True)"},{"line_number":526,"context_line":"        # Unroll _create_test_instance, to enable check"},{"line_number":527,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":528,"context_line":"        stack_name \u003d \u0027test_instance_create_with_stack_scheduler_hints\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_6cc3ce57","line":525,"updated":"2015-03-17 11:45:44.000000000","message":"could you change to using Constance name instead of literal string.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"},{"author":{"_account_id":14049,"name":"Karolyn Chambers","email":"Karolyn.Chambers@target.com","username":"karolyn-chambers"},"change_message_id":"baa454409a56e6f59cc254ecee60a7100649a39b","unresolved":false,"context_lines":[{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    def test_instance_create_with_stack_scheduler_hints(self):"},{"line_number":524,"context_line":"        return_server \u003d self.fc.servers.list()[1]"},{"line_number":525,"context_line":"        instances.cfg.CONF.set_override(\u0027stack_scheduler_hints\u0027, True)"},{"line_number":526,"context_line":"        # Unroll _create_test_instance, to enable check"},{"line_number":527,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":528,"context_line":"        stack_name \u003d \u0027test_instance_create_with_stack_scheduler_hints\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_d57fb2a9","line":525,"in_reply_to":"9a80dd14_6cc3ce57","updated":"2015-03-18 04:25:03.000000000","message":"I grep-ed all the other test files and they use the literal string in set_override so I think I\u0027ll leave this to be consistent with the other code.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"}],"heat/tests/test_server.py":[{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0157ca4a599ce9e2baf1604adf2616213330c575","unresolved":false,"context_lines":[{"line_number":725,"context_line":"        return_server.id \u003d \u00275678\u0027"},{"line_number":726,"context_line":"        self.m.StubOutWithMock(servers.cfg.CONF,"},{"line_number":727,"context_line":"                               \u0027stack_ids_as_scheduler_hints\u0027)"},{"line_number":728,"context_line":"        servers.cfg.CONF.stack_ids_as_scheduler_hints \u003d True"},{"line_number":729,"context_line":"        # Unroll _create_test_server, to enable check"},{"line_number":730,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":731,"context_line":"        stack_name \u003d \u0027test_server_create_with_stack_ids_as_scheduler_hints_s\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_164ce941","line":728,"updated":"2014-07-02 08:39:09.000000000","message":"Same here, use cfg.CONF.set_override.","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"171e1d308a83e3cde87fb635d0656399be740d25","unresolved":false,"context_lines":[{"line_number":725,"context_line":"        return_server.id \u003d \u00275678\u0027"},{"line_number":726,"context_line":"        self.m.StubOutWithMock(servers.cfg.CONF,"},{"line_number":727,"context_line":"                               \u0027stack_ids_as_scheduler_hints\u0027)"},{"line_number":728,"context_line":"        servers.cfg.CONF.stack_ids_as_scheduler_hints \u003d True"},{"line_number":729,"context_line":"        # Unroll _create_test_server, to enable check"},{"line_number":730,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":731,"context_line":"        stack_name \u003d \u0027test_server_create_with_stack_ids_as_scheduler_hints_s\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_5c175151","line":728,"in_reply_to":"baada198_164ce941","updated":"2014-07-02 16:22:52.000000000","message":"Done","commit_id":"3fba3863b85f30391789ad57f62b872b88dc48cc"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"79466d812ce727906e167a17b33213aa44909bff","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        # Unroll _create_test_server, to enable check"},{"line_number":754,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":755,"context_line":"        stack_name \u003d \u0027test_server_create_with_stack_scheduler_hints_s\u0027"},{"line_number":756,"context_line":"        (t, stack) \u003d self._setup_test_stack(stack_name)"},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"        t[\u0027Resources\u0027][\u0027WebServer\u0027][\u0027Properties\u0027][\u0027image\u0027] \u003d \\"},{"line_number":759,"context_line":"            \u0027CentOS 5.2\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_a670ef72","line":756,"updated":"2014-07-07 05:58:33.000000000","message":"You can use \n self._get_test_template(stack_name, server_name)\nto optimize your codes.So that L757-762 can be removed.","commit_id":"82cf10a78951e3942e1aa0b0781ddc3c2479417f"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"1dcae29082c847f8f66beaeb76dc0ebe4cee9e18","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        # Unroll _create_test_server, to enable check"},{"line_number":754,"context_line":"        # for addition of heat ids (stack id, resource name)"},{"line_number":755,"context_line":"        stack_name \u003d \u0027test_server_create_with_stack_scheduler_hints_s\u0027"},{"line_number":756,"context_line":"        (t, stack) \u003d self._setup_test_stack(stack_name)"},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"        t[\u0027Resources\u0027][\u0027WebServer\u0027][\u0027Properties\u0027][\u0027image\u0027] \u003d \\"},{"line_number":759,"context_line":"            \u0027CentOS 5.2\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_b768a988","line":756,"in_reply_to":"baada198_a670ef72","updated":"2014-07-09 19:18:58.000000000","message":"Done","commit_id":"82cf10a78951e3942e1aa0b0781ddc3c2479417f"},{"author":{"_account_id":7404,"name":"Ethan Lynn","email":"xuanlangjian@gmail.com","username":"GaryLynn"},"change_message_id":"79466d812ce727906e167a17b33213aa44909bff","unresolved":false,"context_lines":[{"line_number":777,"context_line":"        self.m.StubOutWithMock(self.fc.servers, \u0027create\u0027)"},{"line_number":778,"context_line":"        self.fc.servers.create("},{"line_number":779,"context_line":"            image\u003d1, flavor\u003d1, key_name\u003d\u0027test\u0027,"},{"line_number":780,"context_line":"            name\u003dutils.PhysName(stack_name,"},{"line_number":781,"context_line":"                                server.name,"},{"line_number":782,"context_line":"                                limit\u003dserver.physical_resource_name_limit),"},{"line_number":783,"context_line":"            security_groups\u003d[],"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_86fccbb9","line":780,"updated":"2014-07-07 05:58:33.000000000","message":"name\u003dserver_name would be ok.","commit_id":"82cf10a78951e3942e1aa0b0781ddc3c2479417f"},{"author":{"_account_id":8435,"name":"William C. Arnold","email":"barnold@us.ibm.com","username":"barnold"},"change_message_id":"1dcae29082c847f8f66beaeb76dc0ebe4cee9e18","unresolved":false,"context_lines":[{"line_number":777,"context_line":"        self.m.StubOutWithMock(self.fc.servers, \u0027create\u0027)"},{"line_number":778,"context_line":"        self.fc.servers.create("},{"line_number":779,"context_line":"            image\u003d1, flavor\u003d1, key_name\u003d\u0027test\u0027,"},{"line_number":780,"context_line":"            name\u003dutils.PhysName(stack_name,"},{"line_number":781,"context_line":"                                server.name,"},{"line_number":782,"context_line":"                                limit\u003dserver.physical_resource_name_limit),"},{"line_number":783,"context_line":"            security_groups\u003d[],"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_975485cb","line":780,"in_reply_to":"baada198_86fccbb9","updated":"2014-07-09 19:18:58.000000000","message":"Done.","commit_id":"82cf10a78951e3942e1aa0b0781ddc3c2479417f"},{"author":{"_account_id":10487,"name":"Kanagaraj Manickam","email":"mkr1481@gmail.com","username":"kanagarajm"},"change_message_id":"ca13ad644a2b6f9ef1de4e39b7bbc753226406ba","unresolved":false,"context_lines":[{"line_number":908,"context_line":"            name\u003dserver_name,"},{"line_number":909,"context_line":"            security_groups\u003d[],"},{"line_number":910,"context_line":"            userdata\u003dmox.IgnoreArg(),"},{"line_number":911,"context_line":"            scheduler_hints\u003d{\u0027heat_root_stack_id\u0027: stack.root_stack.id,"},{"line_number":912,"context_line":"                             \u0027heat_stack_id\u0027: stack.id,"},{"line_number":913,"context_line":"                             \u0027heat_stack_name\u0027: stack.name,"},{"line_number":914,"context_line":"                             \u0027heat_path_in_stack\u0027: [(None, stack.name)],"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_ac8b061d","line":911,"updated":"2015-03-17 11:45:44.000000000","message":"nit:as these 5 attributes are being used in many places, would you like to make them as constants.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"},{"author":{"_account_id":14049,"name":"Karolyn Chambers","email":"Karolyn.Chambers@target.com","username":"karolyn-chambers"},"change_message_id":"baa454409a56e6f59cc254ecee60a7100649a39b","unresolved":false,"context_lines":[{"line_number":908,"context_line":"            name\u003dserver_name,"},{"line_number":909,"context_line":"            security_groups\u003d[],"},{"line_number":910,"context_line":"            userdata\u003dmox.IgnoreArg(),"},{"line_number":911,"context_line":"            scheduler_hints\u003d{\u0027heat_root_stack_id\u0027: stack.root_stack.id,"},{"line_number":912,"context_line":"                             \u0027heat_stack_id\u0027: stack.id,"},{"line_number":913,"context_line":"                             \u0027heat_stack_name\u0027: stack.name,"},{"line_number":914,"context_line":"                             \u0027heat_path_in_stack\u0027: [(None, stack.name)],"}],"source_content_type":"text/x-python","patch_set":22,"id":"9a80dd14_90c2a884","line":911,"in_reply_to":"9a80dd14_ac8b061d","updated":"2015-03-18 04:25:03.000000000","message":"This seems consistent with other code and I don\u0027t see a common place that I could create a constant that wouldn\u0027t be out of place, so I will leave as is. Thank you.","commit_id":"93800b69949a844845ddcae2194c5bcacb8aa2f6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"63662db307dfad6c6766d34d6ed3837628cf028a","unresolved":false,"context_lines":[{"line_number":903,"context_line":"        nova.NovaClientPlugin._create().MultipleTimes().AndReturn(self.fc)"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":"        self.m.StubOutWithMock(self.fc.servers, \u0027create\u0027)"},{"line_number":906,"context_line":"        self.fc.servers.create("},{"line_number":907,"context_line":"            image\u003d1, flavor\u003d1, key_name\u003d\u0027test\u0027,"},{"line_number":908,"context_line":"            name\u003dserver_name,"},{"line_number":909,"context_line":"            security_groups\u003d[],"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a80dd14_bda2a03c","line":906,"updated":"2015-03-20 14:32:20.000000000","message":"You have a race fail here:\n\nhttp://logs.openstack.org/89/96889/23/gate/gate-heat-python27/4a37783/console.html#_2015-03-20_06_43_41_126\n\nThe userdata is coming in as something else.  I\u0027m not sure why mox.IgnoreArg() isn\u0027t handling that.\n\nIf all else fails, use mock instead of mox since it\u0027s less restrictive and you can use mock.ANY.","commit_id":"bb88d4a0e52a7dfe610cb637f760450e6b729115"},{"author":{"_account_id":14049,"name":"Karolyn Chambers","email":"Karolyn.Chambers@target.com","username":"karolyn-chambers"},"change_message_id":"bd132b56c283cf3192d67b923985a0ce78342d43","unresolved":false,"context_lines":[{"line_number":903,"context_line":"        nova.NovaClientPlugin._create().MultipleTimes().AndReturn(self.fc)"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":"        self.m.StubOutWithMock(self.fc.servers, \u0027create\u0027)"},{"line_number":906,"context_line":"        self.fc.servers.create("},{"line_number":907,"context_line":"            image\u003d1, flavor\u003d1, key_name\u003d\u0027test\u0027,"},{"line_number":908,"context_line":"            name\u003dserver_name,"},{"line_number":909,"context_line":"            security_groups\u003d[],"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a80dd14_a12a767b","line":906,"in_reply_to":"9a80dd14_bda2a03c","updated":"2015-03-20 19:02:55.000000000","message":"I don\u0027t think it\u0027s a race. There\u0027s a parameter missing that was added in the last 2 days since the last rebase. block_device_mapping_v2. Once i pass that in, the test is successful again.","commit_id":"bb88d4a0e52a7dfe610cb637f760450e6b729115"}]}
