)]}'
{"oslo_policy/generator.py":[{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"94c73082e2be6b59fd6578a353401006557e2774","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            \u0027deprecated since %(since)s in favor of \u0027"},{"line_number":152,"context_line":"            \u0027\"%(name)s\":\"%(check_str)s\".\\n\u0027"},{"line_number":153,"context_line":"            \u0027%(reason)s\\n%(text)s\\n\u0027"},{"line_number":154,"context_line":"            \u0027\"%(old_name)s\": \"%(check_str)s\"\u0027"},{"line_number":155,"context_line":"        ) % {\u0027old_name\u0027: default.deprecated_rule.name,"},{"line_number":156,"context_line":"             \u0027old_check_str\u0027: default.deprecated_rule.check_str,"},{"line_number":157,"context_line":"             \u0027since\u0027: default.deprecated_since,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_9e933250","line":154,"updated":"2018-01-10 23:00:00.000000000","message":"I think the check string should be \"rule:%(name)s\" so old/legacy name becomes an alias of the new name so one doesn\u0027t need to update 2 rules.","commit_id":"3d63d5d0b6d3555ac08c1c6337b1f2b7f90972d4"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bffda357ebf389f5ee71cfc17c6e2dc647b79a20","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            \u0027deprecated since %(since)s in favor of \u0027"},{"line_number":152,"context_line":"            \u0027\"%(name)s\":\"%(check_str)s\".\\n\u0027"},{"line_number":153,"context_line":"            \u0027%(reason)s\\n%(text)s\\n\u0027"},{"line_number":154,"context_line":"            \u0027\"%(old_name)s\": \"%(check_str)s\"\u0027"},{"line_number":155,"context_line":"        ) % {\u0027old_name\u0027: default.deprecated_rule.name,"},{"line_number":156,"context_line":"             \u0027old_check_str\u0027: default.deprecated_rule.check_str,"},{"line_number":157,"context_line":"             \u0027since\u0027: default.deprecated_since,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_beab8e73","line":154,"in_reply_to":"7f96bb07_9e933250","updated":"2018-01-10 23:01:41.000000000","message":"This will actually pull the new check_str, even if it isn\u0027 the default iiuc.","commit_id":"3d63d5d0b6d3555ac08c1c6337b1f2b7f90972d4"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"8613aa4e21e190c259c09ba357380bb9890ff4d7","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            \u0027deprecated since %(since)s in favor of \u0027"},{"line_number":152,"context_line":"            \u0027\"%(name)s\":\"%(check_str)s\".\\n\u0027"},{"line_number":153,"context_line":"            \u0027%(reason)s\\n%(text)s\\n\u0027"},{"line_number":154,"context_line":"            \u0027\"%(old_name)s\": \"%(check_str)s\"\u0027"},{"line_number":155,"context_line":"        ) % {\u0027old_name\u0027: default.deprecated_rule.name,"},{"line_number":156,"context_line":"             \u0027old_check_str\u0027: default.deprecated_rule.check_str,"},{"line_number":157,"context_line":"             \u0027since\u0027: default.deprecated_since,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_9ee1f2d3","line":154,"in_reply_to":"7f96bb07_beab8e73","updated":"2018-01-10 23:04:03.000000000","message":"Then this part of the commit message is false:\n\n\"This makes it so that operators don\u0027t have to change two policies if they override a deprecated policy.\"","commit_id":"3d63d5d0b6d3555ac08c1c6337b1f2b7f90972d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2a5b8bad7c457dc4f892232038a37cd01a2bf306","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # This issues a deprecation warning but aliases the old policy name"},{"line_number":148,"context_line":"        # with the new policy name for compatibility."},{"line_number":149,"context_line":"        deprecated_text \u003d ("},{"line_number":150,"context_line":"            \u0027DEPRECATED\\n\"%(old_name)s\":\"%(old_check_str)s\" has been \u0027"},{"line_number":151,"context_line":"            \u0027deprecated since %(since)s in favor of \u0027"},{"line_number":152,"context_line":"            \u0027\"%(name)s\":\"%(check_str)s\".\u0027"},{"line_number":153,"context_line":"        ) % {\u0027old_name\u0027: default.deprecated_rule.name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_af091696","line":150,"range":{"start_line":150,"start_character":13,"end_line":150,"end_character":24},"updated":"2018-01-19 16:35:04.000000000","message":"Was removing the # intentional? Surely this is going to return something like so:\n\n  DEPRECATED\n  old_name:old_check has be deprecated since X.Y in favor of new_name:new_check\n\nwhich isn\u0027t valid...right?","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"9c5a02210760145d1602f4852dd98b5d9ab302a3","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # This issues a deprecation warning but aliases the old policy name"},{"line_number":148,"context_line":"        # with the new policy name for compatibility."},{"line_number":149,"context_line":"        deprecated_text \u003d ("},{"line_number":150,"context_line":"            \u0027DEPRECATED\\n\"%(old_name)s\":\"%(old_check_str)s\" has been \u0027"},{"line_number":151,"context_line":"            \u0027deprecated since %(since)s in favor of \u0027"},{"line_number":152,"context_line":"            \u0027\"%(name)s\":\"%(check_str)s\".\u0027"},{"line_number":153,"context_line":"        ) % {\u0027old_name\u0027: default.deprecated_rule.name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_8b50a0d6","line":150,"range":{"start_line":150,"start_character":13,"end_line":150,"end_character":24},"in_reply_to":"7f96bb07_4f3c0fbf","updated":"2018-01-22 15:50:56.000000000","message":"https://github.com/openstack/oslo.policy/blob/master/oslo_policy/generator.py#L83 shows the logic","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"76146c8bf57e349f664c63711758520458e01538","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # This issues a deprecation warning but aliases the old policy name"},{"line_number":148,"context_line":"        # with the new policy name for compatibility."},{"line_number":149,"context_line":"        deprecated_text \u003d ("},{"line_number":150,"context_line":"            \u0027DEPRECATED\\n\"%(old_name)s\":\"%(old_check_str)s\" has been \u0027"},{"line_number":151,"context_line":"            \u0027deprecated since %(since)s in favor of \u0027"},{"line_number":152,"context_line":"            \u0027\"%(name)s\":\"%(check_str)s\".\u0027"},{"line_number":153,"context_line":"        ) % {\u0027old_name\u0027: default.deprecated_rule.name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_8a61a814","line":150,"range":{"start_line":150,"start_character":13,"end_line":150,"end_character":24},"in_reply_to":"7f96bb07_af091696","updated":"2018-01-19 17:14:35.000000000","message":"\"text\" variable is now \"deprecated_test\" and used below with _format_help_text. I think _format_help_text will add the #","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"50187e1f9058c2c51cb44e5c34d1c4868d761cca","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        # This issues a deprecation warning but aliases the old policy name"},{"line_number":148,"context_line":"        # with the new policy name for compatibility."},{"line_number":149,"context_line":"        deprecated_text \u003d ("},{"line_number":150,"context_line":"            \u0027DEPRECATED\\n\"%(old_name)s\":\"%(old_check_str)s\" has been \u0027"},{"line_number":151,"context_line":"            \u0027deprecated since %(since)s in favor of \u0027"},{"line_number":152,"context_line":"            \u0027\"%(name)s\":\"%(check_str)s\".\u0027"},{"line_number":153,"context_line":"        ) % {\u0027old_name\u0027: default.deprecated_rule.name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_4f3c0fbf","line":150,"range":{"start_line":150,"start_character":13,"end_line":150,"end_character":24},"in_reply_to":"7f96bb07_af091696","updated":"2018-01-19 17:54:45.000000000","message":"Yeah - I did that because I wanted to have it wrap the lines in the same way it does with other help text. I noticed that without this it seems to get length when rendered. To get around that, I removed the leading # and ran it through the _format_help_text method which will add the leading #.","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"}],"oslo_policy/tests/test_generator.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"9c5a02210760145d1602f4852dd98b5d9ab302a3","unresolved":false,"context_lines":[{"line_number":189,"context_line":"# \"foo:post_bar\":\"role:fizz\" has been deprecated since N in favor of"},{"line_number":190,"context_line":"# \"foo:create_bar\":\"role:fizz\"."},{"line_number":191,"context_line":"\"foo:post_bar\": \"rule:foo:create_bar\""},{"line_number":192,"context_line":"\u0027\u0027\u0027"},{"line_number":193,"context_line":"        stdout \u003d self._capture_stdout()"},{"line_number":194,"context_line":"        with mock.patch(\u0027stevedore.named.NamedExtensionManager\u0027,"},{"line_number":195,"context_line":"                        return_value\u003dtest_mgr) as mock_ext_mgr:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_ab7c7c20","line":192,"updated":"2018-01-22 15:50:56.000000000","message":"shouldn\u0027t we have \"foo:create_bar\":\"role:fizz\" in expected?","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"0bde226570f6dd499b8a0b8682b1a935785cb815","unresolved":false,"context_lines":[{"line_number":189,"context_line":"# \"foo:post_bar\":\"role:fizz\" has been deprecated since N in favor of"},{"line_number":190,"context_line":"# \"foo:create_bar\":\"role:fizz\"."},{"line_number":191,"context_line":"\"foo:post_bar\": \"rule:foo:create_bar\""},{"line_number":192,"context_line":"\u0027\u0027\u0027"},{"line_number":193,"context_line":"        stdout \u003d self._capture_stdout()"},{"line_number":194,"context_line":"        with mock.patch(\u0027stevedore.named.NamedExtensionManager\u0027,"},{"line_number":195,"context_line":"                        return_value\u003dtest_mgr) as mock_ext_mgr:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_134a7bab","line":192,"in_reply_to":"7f96bb07_46d7ed24","updated":"2018-01-23 00:04:53.000000000","message":"thanks for the explanation","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4b748180f1131b94922760cfa179afe283b69703","unresolved":false,"context_lines":[{"line_number":189,"context_line":"# \"foo:post_bar\":\"role:fizz\" has been deprecated since N in favor of"},{"line_number":190,"context_line":"# \"foo:create_bar\":\"role:fizz\"."},{"line_number":191,"context_line":"\"foo:post_bar\": \"rule:foo:create_bar\""},{"line_number":192,"context_line":"\u0027\u0027\u0027"},{"line_number":193,"context_line":"        stdout \u003d self._capture_stdout()"},{"line_number":194,"context_line":"        with mock.patch(\u0027stevedore.named.NamedExtensionManager\u0027,"},{"line_number":195,"context_line":"                        return_value\u003dtest_mgr) as mock_ext_mgr:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_ab755cce","line":192,"in_reply_to":"7f96bb07_ab7c7c20","updated":"2018-01-22 16:03:18.000000000","message":"That bit should be implied since the new default for foo:create_bar is role:fizz. The miss bit is the alias from the old rule to the new rule for compatibility purposes.","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"67d02f0f005cb8135385623785132cbcba8af08d","unresolved":false,"context_lines":[{"line_number":189,"context_line":"# \"foo:post_bar\":\"role:fizz\" has been deprecated since N in favor of"},{"line_number":190,"context_line":"# \"foo:create_bar\":\"role:fizz\"."},{"line_number":191,"context_line":"\"foo:post_bar\": \"rule:foo:create_bar\""},{"line_number":192,"context_line":"\u0027\u0027\u0027"},{"line_number":193,"context_line":"        stdout \u003d self._capture_stdout()"},{"line_number":194,"context_line":"        with mock.patch(\u0027stevedore.named.NamedExtensionManager\u0027,"},{"line_number":195,"context_line":"                        return_value\u003dtest_mgr) as mock_ext_mgr:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_46d7ed24","line":192,"in_reply_to":"7f96bb07_ab7c7c20","updated":"2018-01-22 16:17:26.000000000","message":"The goal is to make the old rule (foo:post_bar) an alias of the name rule (foo:create_bar) so you only have to update the check string once in your environment.\n\nReason to expose old rule is for outdated applications such as Horizon which could still be expecting the old rule name (until you (user/op) update Horizon to latest version or they (dev) update the code to use the new rule name)","commit_id":"2ae04ebdef1bea1cb3ffbca6d04084a417ade99b"}]}
