)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"245840177c1a54594e13158dc22eba3ab673c5c6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"52d4159a_d56e7cb5","updated":"2022-12-22 15:05:52.000000000","message":"Please help to give some hints about the comments.","commit_id":"51fc58621f9cc05e29803bcab56eb15e8c1a90a6"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"9bc07f4017b74cca767db16b2409e1eae7b8f412","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bfd2e89a_755a271e","in_reply_to":"52d4159a_d56e7cb5","updated":"2023-01-04 06:43:32.000000000","message":"Done","commit_id":"51fc58621f9cc05e29803bcab56eb15e8c1a90a6"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d43776a63026fa6d5ec84216541a7b09596d1c1e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3ae09189_de87f795","updated":"2023-01-11 03:16:14.000000000","message":"Because this is user-facing change, IMO it\u0027s better to have a release note. Do you mind adding one ?\n\nI\u0027m fine with a separate follow-up patch since this already has one +2, and I\u0027ll merge this if you prefer a separate patch.","commit_id":"5dbddb9da44c793bceeb0b69535ad3c3a96a023f"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"9bc07f4017b74cca767db16b2409e1eae7b8f412","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7e5314ad_02fee12d","updated":"2023-01-04 06:43:32.000000000","message":"Thanks for pointing out the error part.\nI took parameter_defaults into concern.\nPlease help to review it again.\nAny comments or suggestions are welcome!","commit_id":"5dbddb9da44c793bceeb0b69535ad3c3a96a023f"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"8e53801e747e2eef75d3d6f163f507b832776f72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"199276e1_f3cae124","updated":"2023-01-10 02:23:35.000000000","message":"recheck","commit_id":"5dbddb9da44c793bceeb0b69535ad3c3a96a023f"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"20207250020b5f820ae135e84fddc1ef1f6fc4ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8b96de7e_136f2c46","updated":"2023-01-11 00:56:29.000000000","message":"recheck","commit_id":"5dbddb9da44c793bceeb0b69535ad3c3a96a023f"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"8b1483025e8bba3c12e68350577fc5659f846e8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c1546320_39dbb813","in_reply_to":"3ae09189_de87f795","updated":"2023-01-11 08:19:00.000000000","message":"I added a release note for this issue.\nPlease help review it.","commit_id":"5dbddb9da44c793bceeb0b69535ad3c3a96a023f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"acb3d31f2a149f9c495e440feeffe7573b1862af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"74aeb5a8_6f102c17","updated":"2023-01-11 08:52:20.000000000","message":"I didn\u0027t notice the pep8 error, my bad. If we have to update the change then it\u0027d make more sense to add release note in this in a sngle commit. I squashed the two changes and will abandon the release note commit.","commit_id":"3add5acf16e67db267d48f2b75e1f619a0dba93e"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"40c21cb5c5c1f99c170d1bc41228a2a6ae036027","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a06ff117_27e98f36","updated":"2023-01-19 03:23:18.000000000","message":"Hi,\n\nMay I ask if there are any concerns about the patch?\nAny comments and suggestions are welcome!","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"},{"author":{"_account_id":30073,"name":"Brendan Shephard","email":"bshephar@bne-home.net","username":"bshephar"},"change_message_id":"f514e91c74f693a5a30122af13c41a48e72eb7e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3489392f_8256b081","updated":"2023-01-26 10:11:16.000000000","message":"It might be nice to follow this up with a unit test that validates hidden parameters specifically. ie, we could create a unit test to parse a template featuring a hidden param and validate that it returns ******.\n\nBut the implementation looks good and addresses the issue raised in the bug.","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"8b173e369117a9dc43596ca0e3c69c5710ce23c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"13b38dda_d94f32ff","updated":"2023-01-12 03:56:08.000000000","message":"recheck","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"8062b07e062b5d0f528270f5d7449c14d30c2cc3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7ccdb574_2ac6fa77","updated":"2023-01-11 10:28:05.000000000","message":"recheck","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"2ac87b8b009a495377405c16df8c43991ab5fa1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9f790485_2a3c7c09","updated":"2023-01-27 12:16:08.000000000","message":"recheck","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"f5a168ecc7a026b13e9c74cdec928addde0f10a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e65db374_505cdf6c","updated":"2023-01-27 14:34:43.000000000","message":"recheck","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"6c48b3c263d2de321af7aae053b1c6a9a657ca8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fd3a97af_3d51f277","updated":"2023-01-12 01:03:31.000000000","message":"recheck","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"87f702e1de676a8db9cdeb5e4444721902b81ef5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8cf69894_296e6348","in_reply_to":"3489392f_8256b081","updated":"2023-01-27 12:49:14.000000000","message":"I have keyed task #47229 to follow this up.\nThanks for your advice.","commit_id":"1305a3152f75c6e62ec5094ea2bfc38f165204cf"}],"heat/engine/service.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"7f17427923304a9a79b49507352a91c4e1ffe602","unresolved":true,"context_lines":[{"line_number":1358,"context_line":"        tmpl \u003d templatem.Template.load(cnxt, s.raw_template_id, s.raw_template)"},{"line_number":1359,"context_line":"        env \u003d copy.deepcopy(s.raw_template.environment)"},{"line_number":1360,"context_line":"        for param_name in env.get(env_fmt.PARAMETERS, {}).keys():"},{"line_number":1361,"context_line":"            if not tmpl.param_schemata()[param_name].hidden:"},{"line_number":1362,"context_line":"                continue"},{"line_number":1363,"context_line":"            env[env_fmt.PARAMETERS][param_name] \u003d str(\u0027******\u0027)"},{"line_number":1364,"context_line":"        return env"}],"source_content_type":"text/x-python","patch_set":1,"id":"6985ff4e_1a03c609","line":1361,"updated":"2022-12-21 03:36:09.000000000","message":"Environment files are allowed to contain keys that don\u0027t correspond to a parameter in the template. This code will currently crash in that case (which suggests we should add a test for it).\n\nAlso, keys may correspond to parameters that are defined in _nested_ templates - if those are marked \u0027hidden\u0027 then that wouldn\u0027t be respected here either. I _think_ you can fix this by replacing param_schemata() with all_param_schemata().","commit_id":"51fc58621f9cc05e29803bcab56eb15e8c1a90a6"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"6b8d09eb2cea8202a4a718846c51e0199aa8a831","unresolved":true,"context_lines":[{"line_number":1358,"context_line":"        tmpl \u003d templatem.Template.load(cnxt, s.raw_template_id, s.raw_template)"},{"line_number":1359,"context_line":"        env \u003d copy.deepcopy(s.raw_template.environment)"},{"line_number":1360,"context_line":"        for param_name in env.get(env_fmt.PARAMETERS, {}).keys():"},{"line_number":1361,"context_line":"            if not tmpl.param_schemata()[param_name].hidden:"},{"line_number":1362,"context_line":"                continue"},{"line_number":1363,"context_line":"            env[env_fmt.PARAMETERS][param_name] \u003d str(\u0027******\u0027)"},{"line_number":1364,"context_line":"        return env"}],"source_content_type":"text/x-python","patch_set":1,"id":"f9359811_2ed57dff","line":1361,"in_reply_to":"343e3d3b_6dd94a9c","updated":"2023-01-03 23:57:33.000000000","message":"Sorry, my fault, I was mixing up two separate sections: parameters, and parameter_defaults.\nparameters keys are required to be defined in the root template\nparamater_defaults keys are not, and may in fact be referenced only in a nested template.\n\nSo this patch is fine for parameters.\nThe same issue exists for parameter_defaults, and you\u0027d have to go searching through all nested templates (perhaps using tmpl.all_param_schemata()) to check for a definition that might have the \u0027hidden\u0027 flag.","commit_id":"51fc58621f9cc05e29803bcab56eb15e8c1a90a6"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"245840177c1a54594e13158dc22eba3ab673c5c6","unresolved":true,"context_lines":[{"line_number":1358,"context_line":"        tmpl \u003d templatem.Template.load(cnxt, s.raw_template_id, s.raw_template)"},{"line_number":1359,"context_line":"        env \u003d copy.deepcopy(s.raw_template.environment)"},{"line_number":1360,"context_line":"        for param_name in env.get(env_fmt.PARAMETERS, {}).keys():"},{"line_number":1361,"context_line":"            if not tmpl.param_schemata()[param_name].hidden:"},{"line_number":1362,"context_line":"                continue"},{"line_number":1363,"context_line":"            env[env_fmt.PARAMETERS][param_name] \u003d str(\u0027******\u0027)"},{"line_number":1364,"context_line":"        return env"}],"source_content_type":"text/x-python","patch_set":1,"id":"343e3d3b_6dd94a9c","line":1361,"in_reply_to":"6985ff4e_1a03c609","updated":"2022-12-22 15:05:52.000000000","message":"Sorry, I\u0027m a newbie on this project but working hard to contribute to it.\nI have surveyed your comments and tried to reproduce the issue.\nHere are some investigations:\n1. Environment files are allowed to contain keys that don\u0027t correspond to a parameter in the template\nI created an env yaml which contains a key in [parameters] section that doesn\u0027t show up in the template\u0027s parameter.\nWhen I use it to create a stack, it will fail because the parameter doesn\u0027t define in the template.\nIt seems like Parameters::validate() will validate if all user-provided parameters are actually defined in the template.\n\n2. Keys may correspond to parameters that are defined in _nested_ templates\nI defined parameters that were marked as hidden in a template (resource.yaml) and use a different template (app.yaml) to use it as resources.\nTo pass user-provided parameters to resource.yaml, app.yaml also needs to define parameters.\nI have tested the \u0027stack show\u0027 command and it also shows plain text if parameters don\u0027t mark as hidden in app.yaml.\n\nI think there may have some scenarios that I don\u0027t consider.\nCould you please give me some hints about it?","commit_id":"51fc58621f9cc05e29803bcab56eb15e8c1a90a6"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"8b1483025e8bba3c12e68350577fc5659f846e8a","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"        tmpl \u003d templatem.Template.load(cnxt, s.raw_template_id, s.raw_template)"},{"line_number":1359,"context_line":"        env \u003d copy.deepcopy(s.raw_template.environment)"},{"line_number":1360,"context_line":"        for param_name in env.get(env_fmt.PARAMETERS, {}).keys():"},{"line_number":1361,"context_line":"            if not tmpl.param_schemata()[param_name].hidden:"},{"line_number":1362,"context_line":"                continue"},{"line_number":1363,"context_line":"            env[env_fmt.PARAMETERS][param_name] \u003d str(\u0027******\u0027)"},{"line_number":1364,"context_line":"        return env"}],"source_content_type":"text/x-python","patch_set":1,"id":"b314439a_605e0043","line":1361,"in_reply_to":"ec402c1a_ff49ef83","updated":"2023-01-11 08:19:00.000000000","message":"I missed a coding style problem and have fixed it.\nPlease help review it again.\nSorry for any inconvenience.","commit_id":"51fc58621f9cc05e29803bcab56eb15e8c1a90a6"},{"author":{"_account_id":35639,"name":"ChengEn, Du","display_name":"Chengen Du","email":"chengen.du@canonical.com","username":"chengendu"},"change_message_id":"9bc07f4017b74cca767db16b2409e1eae7b8f412","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"        tmpl \u003d templatem.Template.load(cnxt, s.raw_template_id, s.raw_template)"},{"line_number":1359,"context_line":"        env \u003d copy.deepcopy(s.raw_template.environment)"},{"line_number":1360,"context_line":"        for param_name in env.get(env_fmt.PARAMETERS, {}).keys():"},{"line_number":1361,"context_line":"            if not tmpl.param_schemata()[param_name].hidden:"},{"line_number":1362,"context_line":"                continue"},{"line_number":1363,"context_line":"            env[env_fmt.PARAMETERS][param_name] \u003d str(\u0027******\u0027)"},{"line_number":1364,"context_line":"        return env"}],"source_content_type":"text/x-python","patch_set":1,"id":"ec402c1a_ff49ef83","line":1361,"in_reply_to":"f9359811_2ed57dff","updated":"2023-01-04 06:43:32.000000000","message":"Done","commit_id":"51fc58621f9cc05e29803bcab56eb15e8c1a90a6"}]}
