)]}'
{"etc/heat/heat.conf.sample":[{"author":{"_account_id":8328,"name":"Mike Spreitzer","email":"mspreitz@us.ibm.com","username":"mspreitz"},"change_message_id":"97e0d2d9a65865b1e03af9b0686f48f376029702","unresolved":false,"context_lines":[{"line_number":107,"context_line":"#heat_stack_user_role\u003dheat_stack_user"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"# Keystone domain ID which contains heat template-defined"},{"line_number":110,"context_line":"# users. (string value)"},{"line_number":111,"context_line":"#stack_user_domain\u003d\u003cNone\u003e"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"# Keystone domain name which contains heat template-defined"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1ae5cdf2_bc69068e","line":110,"updated":"2014-06-11 16:56:49.000000000","message":"It wouldn\u0027t hurt to extend this comment to indicate that stack_user_domain_name is an alternative.","commit_id":"13c430ec4f14aaf8fbbdcbb41bef47fa63fcd504"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"5ea7082ad5ab6883bea2c6794d3d901b34f46536","unresolved":false,"context_lines":[{"line_number":107,"context_line":"#heat_stack_user_role\u003dheat_stack_user"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"# Keystone domain ID which contains heat template-defined"},{"line_number":110,"context_line":"# users. (string value)"},{"line_number":111,"context_line":"#stack_user_domain\u003d\u003cNone\u003e"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"# Keystone domain name which contains heat template-defined"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1ae5cdf2_cf4b9f5d","line":110,"in_reply_to":"1ae5cdf2_1fd74c4c","updated":"2014-06-25 15:49:07.000000000","message":"Wouldn\u0027t it be possible to reuse the same option?","commit_id":"13c430ec4f14aaf8fbbdcbb41bef47fa63fcd504"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"1d130418fc7988bdfcdb12293850d24a44f1bd9e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"#heat_stack_user_role\u003dheat_stack_user"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"# Keystone domain ID which contains heat template-defined"},{"line_number":110,"context_line":"# users. (string value)"},{"line_number":111,"context_line":"#stack_user_domain\u003d\u003cNone\u003e"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"# Keystone domain name which contains heat template-defined"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1ae5cdf2_1fd74c4c","line":110,"in_reply_to":"1ae5cdf2_bc69068e","updated":"2014-06-11 17:28:02.000000000","message":"++ will do. I\u0027m mulling over testing so i expect at least one more patchset here. \n\nDebating on if I want to try and streamline the code a bit proposed, it might be a little unreadable though. (readability trumps \"clever\")","commit_id":"13c430ec4f14aaf8fbbdcbb41bef47fa63fcd504"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"427edc3ca8f0f391357313a3c9178ef57895cc2f","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"# Keystone domain ID which contains heat template-defined"},{"line_number":110,"context_line":"# users. (string value)"},{"line_number":111,"context_line":"#stack_user_domain\u003d\u003cNone\u003e"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"# Keystone domain name which contains heat template-defined"},{"line_number":114,"context_line":"# users. If `stack_user_domain` option is set, this option is"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1ae5cdf2_6ffb3d7b","line":111,"updated":"2014-06-11 20:48:05.000000000","message":"I\u0027d suggest a follow-up patch to rename this to stack_user_domain_id so that it is not ambiguous as to which one should be used.","commit_id":"13c430ec4f14aaf8fbbdcbb41bef47fa63fcd504"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"73de5b4af80da52b314a3910bc6ff9629c2b7184","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"# Keystone domain ID which contains heat template-defined"},{"line_number":110,"context_line":"# users. (string value)"},{"line_number":111,"context_line":"#stack_user_domain\u003d\u003cNone\u003e"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"# Keystone domain name which contains heat template-defined"},{"line_number":114,"context_line":"# users. If `stack_user_domain` option is set, this option is"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1ae5cdf2_632c369a","line":111,"in_reply_to":"1ae5cdf2_6ffb3d7b","updated":"2014-06-11 23:01:28.000000000","message":"Ah i\u0027ll do a deprecated option and rename this one in the next patch!","commit_id":"13c430ec4f14aaf8fbbdcbb41bef47fa63fcd504"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"8d2328d44145793266136063c41edc798d14bec9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"#stack_user_domain_id\u003d\u003cNone\u003e"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Keystone domain name which contains heat template-defined"},{"line_number":116,"context_line":"# users. If `stack_user_domain` option is set, this option is"},{"line_number":117,"context_line":"# ignored. (string value)"},{"line_number":118,"context_line":"#stack_user_domain_name\u003d\u003cNone\u003e"},{"line_number":119,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"baada198_d1dc2215","line":116,"updated":"2014-07-02 19:04:38.000000000","message":"Shouldnt this be stack_user_domain_id?","commit_id":"f8a1e271e3aff63d35c4447782b7ef83b156632b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"86b9057f61f059385c4ca3911fa9a7e987751ba3","unresolved":false,"context_lines":[{"line_number":113,"context_line":"#stack_user_domain_id\u003d\u003cNone\u003e"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Keystone domain name which contains heat template-defined"},{"line_number":116,"context_line":"# users. If `stack_user_domain` option is set, this option is"},{"line_number":117,"context_line":"# ignored. (string value)"},{"line_number":118,"context_line":"#stack_user_domain_name\u003d\u003cNone\u003e"},{"line_number":119,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"baada198_79f41c87","line":116,"in_reply_to":"baada198_d1dc2215","updated":"2014-07-02 20:31:17.000000000","message":"Done","commit_id":"f8a1e271e3aff63d35c4447782b7ef83b156632b"}],"heat/common/config.py":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"427edc3ca8f0f391357313a3c9178ef57895cc2f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    cfg.StrOpt(\u0027stack_user_domain_name\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Keystone domain name which contains heat \u0027"},{"line_number":67,"context_line":"                    \u0027template-defined users. If `stack_user_domain` option \u0027"},{"line_number":68,"context_line":"                    \u0027is set, this option is ignored.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027stack_domain_admin\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027Keystone username, a user with roles sufficient to \u0027"},{"line_number":71,"context_line":"                    \u0027manage users and projects in the stack_user_domain.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_2f7a15f1","line":68,"updated":"2014-06-11 20:48:05.000000000","message":"default\u003dheat ?","commit_id":"13c430ec4f14aaf8fbbdcbb41bef47fa63fcd504"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"73de5b4af80da52b314a3910bc6ff9629c2b7184","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    cfg.StrOpt(\u0027stack_user_domain_name\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Keystone domain name which contains heat \u0027"},{"line_number":67,"context_line":"                    \u0027template-defined users. If `stack_user_domain` option \u0027"},{"line_number":68,"context_line":"                    \u0027is set, this option is ignored.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027stack_domain_admin\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027Keystone username, a user with roles sufficient to \u0027"},{"line_number":71,"context_line":"                    \u0027manage users and projects in the stack_user_domain.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_434e5a70","line":68,"in_reply_to":"1ae5cdf2_2f7a15f1","updated":"2014-06-11 23:01:28.000000000","message":"I didn\u0027t see an indication of the default, but i\u0027m still digging through everything (hence WIP).","commit_id":"13c430ec4f14aaf8fbbdcbb41bef47fa63fcd504"},{"author":{"_account_id":8328,"name":"Mike Spreitzer","email":"mspreitz@us.ibm.com","username":"mspreitz"},"change_message_id":"624c9e465c17168881fa26d6fb298d58eca401a6","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    \u0027option will be ignored.\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027stack_user_domain_name\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Keystone domain name which contains heat \u0027"},{"line_number":67,"context_line":"                    \u0027template-defined users. If `stack_user_domain` option \u0027"},{"line_number":68,"context_line":"                    \u0027is set, this option is ignored.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027stack_domain_admin\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027Keystone username, a user with roles sufficient to \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_15fea638","line":67,"updated":"2014-07-02 05:56:24.000000000","message":"The new name of that option should be mentioned, probably in addition to the old name.","commit_id":"aaedbc50d24fa891878614b107d1c2cf07f9b50b"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"d8760dd21eca095d1680cd2bc4d6f358fec26a52","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    \u0027option will be ignored.\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027stack_user_domain_name\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Keystone domain name which contains heat \u0027"},{"line_number":67,"context_line":"                    \u0027template-defined users. If `stack_user_domain` option \u0027"},{"line_number":68,"context_line":"                    \u0027is set, this option is ignored.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027stack_domain_admin\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027Keystone username, a user with roles sufficient to \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_3c5e2413","line":67,"in_reply_to":"baada198_15fea638","updated":"2014-07-02 13:45:28.000000000","message":"I think only the new version, stack_user_domain_id, should be mentioned. The help for that option is automatically going to state that the old one is deprecated.","commit_id":"aaedbc50d24fa891878614b107d1c2cf07f9b50b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"af819ad20ecea798c2aabc1bdf4e5c43f2f4f851","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    \u0027option will be ignored.\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027stack_user_domain_name\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Keystone domain name which contains heat \u0027"},{"line_number":67,"context_line":"                    \u0027template-defined users. If `stack_user_domain` option \u0027"},{"line_number":68,"context_line":"                    \u0027is set, this option is ignored.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027stack_domain_admin\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027Keystone username, a user with roles sufficient to \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_827d021f","line":67,"in_reply_to":"baada198_3c5e2413","updated":"2014-07-02 16:58:51.000000000","message":"Will add to the commit message! Thanks!","commit_id":"aaedbc50d24fa891878614b107d1c2cf07f9b50b"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"8d2328d44145793266136063c41edc798d14bec9","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    \u0027option will be ignored.\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027stack_user_domain_name\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Keystone domain name which contains heat \u0027"},{"line_number":67,"context_line":"                    \u0027template-defined users. If `stack_user_domain` option \u0027"},{"line_number":68,"context_line":"                    \u0027is set, this option is ignored.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027stack_domain_admin\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027Keystone username, a user with roles sufficient to \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_112dbafe","line":67,"updated":"2014-07-02 19:04:38.000000000","message":"And here?","commit_id":"f8a1e271e3aff63d35c4447782b7ef83b156632b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"86b9057f61f059385c4ca3911fa9a7e987751ba3","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    \u0027option will be ignored.\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027stack_user_domain_name\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027Keystone domain name which contains heat \u0027"},{"line_number":67,"context_line":"                    \u0027template-defined users. If `stack_user_domain` option \u0027"},{"line_number":68,"context_line":"                    \u0027is set, this option is ignored.\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027stack_domain_admin\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027Keystone username, a user with roles sufficient to \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_99f3b09d","line":67,"in_reply_to":"baada198_112dbafe","updated":"2014-07-02 20:31:17.000000000","message":"Done","commit_id":"f8a1e271e3aff63d35c4447782b7ef83b156632b"}],"heat/common/heat_keystoneclient.py":[{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"f98de44c5ab8dade2370f52fb620459642b5edaa","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            LOG.warning(_(\u0027stack_user_domain_id or stack_user_domain_name not \u0027"},{"line_number":108,"context_line":"                          \u0027set in heat.conf falling back to using default\u0027))"},{"line_number":109,"context_line":"        LOG.debug(\u0027Using stack domain %s\u0027 % self.stack_domain)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @property"},{"line_number":112,"context_line":"    def client(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_b1216eb6","line":109,"updated":"2014-07-02 19:18:50.000000000","message":"This logic seems odd - the only way to reach here seems to be if self.stack_domain is unset. I think you are missing a self.stack_domain \u003d cfg.CONF.stack_user_domain in the else case above.","commit_id":"f8a1e271e3aff63d35c4447782b7ef83b156632b"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"4050cf3dbfa047ddf8bc887a897b02247233ce17","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            LOG.warning(_(\u0027stack_user_domain_id or stack_user_domain_name not \u0027"},{"line_number":108,"context_line":"                          \u0027set in heat.conf falling back to using default\u0027))"},{"line_number":109,"context_line":"        LOG.debug(\u0027Using stack domain %s\u0027 % self.stack_domain)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @property"},{"line_number":112,"context_line":"    def client(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_d107c21a","line":109,"in_reply_to":"baada198_b1216eb6","updated":"2014-07-02 19:19:50.000000000","message":"Erp, nvm, missed line 100.","commit_id":"f8a1e271e3aff63d35c4447782b7ef83b156632b"}],"heat/tests/test_heatclient.py":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"d8760dd21eca095d1680cd2bc4d6f358fec26a52","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"            self.mock_admin_client.auth_ref.user_id \u003d \u00271234\u0027"},{"line_number":1301,"context_line":""},{"line_number":1302,"context_line":"    def test_enable_stack_domain_user_error_project(self):"},{"line_number":1303,"context_line":"        self._stub_domain_admin_client_domain_get()"},{"line_number":1304,"context_line":"        p \u003d super(KeystoneClientTestDomainName, self)"},{"line_number":1305,"context_line":"        p.test_enable_stack_domain_user_error_project()"},{"line_number":1306,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_3cbaa40a","line":1303,"updated":"2014-07-02 13:45:28.000000000","message":"With this approach, why not just put the call above in a single setUp call, and remove all of the explicit calls?","commit_id":"aaedbc50d24fa891878614b107d1c2cf07f9b50b"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"af819ad20ecea798c2aabc1bdf4e5c43f2f4f851","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"            self.mock_admin_client.auth_ref.user_id \u003d \u00271234\u0027"},{"line_number":1301,"context_line":""},{"line_number":1302,"context_line":"    def test_enable_stack_domain_user_error_project(self):"},{"line_number":1303,"context_line":"        self._stub_domain_admin_client_domain_get()"},{"line_number":1304,"context_line":"        p \u003d super(KeystoneClientTestDomainName, self)"},{"line_number":1305,"context_line":"        p.test_enable_stack_domain_user_error_project()"},{"line_number":1306,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_625f0e73","line":1303,"in_reply_to":"baada198_3cbaa40a","updated":"2014-07-02 16:58:51.000000000","message":"Due to the way Mox works (and my understanding), some of the tests do not call .domain.get() (notably anything that doesn\u0027t say \"stack_domain\" in the test function. Mox will then raise an exception that client.domain.get was expected and not called. \n\nI haven\u0027t seen a way to mark a method stubbed out as \"skip verify\". Though we do want to verify it was called here and not in the tests that shouldn\u0027t call it.\n\nI think this is why I like Mock a little more, I can explicitly test for \u0027was called with args XYZ\" or \"wasn\u0027t called\" or \"was called x number of times\" etc. I didn\u0027t want to mix Mox and Mock in the test and making very confusing.\n\nIf there is a better way, please let me know, I\u0027m happy to update this.","commit_id":"aaedbc50d24fa891878614b107d1c2cf07f9b50b"}]}
