)]}'
{"nova/policy.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cd842ab29f3cfc158b8d1aaf5254f54af9a8219a","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def get_enforcer():"},{"line_number":210,"context_line":"    # This method is used by oslopolicy CLI scripts in order to generate policy"},{"line_number":211,"context_line":"    # files from overrides on disk and defaults in code. We previously had to"},{"line_number":212,"context_line":"    # remove arguments not expected by oslo.config (e.g. `namespace` and"},{"line_number":213,"context_line":"    # `output-file`) to initialize a Config object. Besides those arguments,"},{"line_number":214,"context_line":"    # the only other arguments that can be passed in are already understood by"},{"line_number":215,"context_line":"    # the underlying oslo libraries (oslo.config and oslo.policy). Ultimately,"},{"line_number":216,"context_line":"    # we can just pass an empty list and let oslo do the config lifting for"},{"line_number":217,"context_line":"    # us."},{"line_number":218,"context_line":"    cfg.CONF([], project\u003d\u0027nova\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_cc6341b1","line":215,"range":{"start_line":211,"start_character":57,"end_line":215,"end_character":78},"updated":"2018-04-26 23:57:28.000000000","message":"I kind of feel like this should all be removed from the code and just make sure it\u0027s clear in the commit message, because this will be kind of weird to read in a couple of years. If someone wanted to know what this was like before, they can read the commit message to get that history.","commit_id":"f2e0f9a4b49d04616678e979ec735dba6fd80582"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e1b492edc29f6f0e2eced64c495dbfe159b60b2e","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"def get_enforcer():"},{"line_number":210,"context_line":"    # This method is used by oslopolicy CLI scripts in order to generate policy"},{"line_number":211,"context_line":"    # files from overrides on disk and defaults in code. We previously had to"},{"line_number":212,"context_line":"    # remove arguments not expected by oslo.config (e.g. `namespace` and"},{"line_number":213,"context_line":"    # `output-file`) to initialize a Config object. Besides those arguments,"},{"line_number":214,"context_line":"    # the only other arguments that can be passed in are already understood by"},{"line_number":215,"context_line":"    # the underlying oslo libraries (oslo.config and oslo.policy). Ultimately,"},{"line_number":216,"context_line":"    # we can just pass an empty list and let oslo do the config lifting for"},{"line_number":217,"context_line":"    # us."},{"line_number":218,"context_line":"    cfg.CONF([], project\u003d\u0027nova\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_96e22601","line":215,"range":{"start_line":211,"start_character":57,"end_line":215,"end_character":78},"in_reply_to":"9f6a8fd7_cc6341b1","updated":"2018-04-27 15:43:33.000000000","message":"Done, good call. I omitted this in favor of the commit message, which has most of the context anyway.","commit_id":"f2e0f9a4b49d04616678e979ec735dba6fd80582"}],"nova/tests/unit/test_policy.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cd842ab29f3cfc158b8d1aaf5254f54af9a8219a","unresolved":false,"context_lines":[{"line_number":511,"context_line":"            stderr\u003dsubprocess.PIPE"},{"line_number":512,"context_line":"        )"},{"line_number":513,"context_line":"        ret_val.communicate()"},{"line_number":514,"context_line":"        self.assertEqual(ret_val.returncode, 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_2c72fd7d","line":514,"range":{"start_line":514,"start_character":25,"end_line":514,"end_character":46},"updated":"2018-04-26 23:57:28.000000000","message":"swap the order of these args, since it\u0027s assertEqual(expected, actual) which matters in the MismatchError you get if the assertion fails.","commit_id":"f2e0f9a4b49d04616678e979ec735dba6fd80582"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e1b492edc29f6f0e2eced64c495dbfe159b60b2e","unresolved":false,"context_lines":[{"line_number":511,"context_line":"            stderr\u003dsubprocess.PIPE"},{"line_number":512,"context_line":"        )"},{"line_number":513,"context_line":"        ret_val.communicate()"},{"line_number":514,"context_line":"        self.assertEqual(ret_val.returncode, 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_d6b97ee9","line":514,"range":{"start_line":514,"start_character":25,"end_line":514,"end_character":46},"in_reply_to":"9f6a8fd7_2c72fd7d","updated":"2018-04-27 15:43:33.000000000","message":"Done","commit_id":"f2e0f9a4b49d04616678e979ec735dba6fd80582"}]}
