)]}'
{"nova/context.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6a4e1fc84e7bb06b30157501f8497baa39c21482","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            \u0027instance_lock_checked\u0027: getattr(self, \u0027instance_lock_checked\u0027,"},{"line_number":175,"context_line":"                                             False)"},{"line_number":176,"context_line":"        })"},{"line_number":177,"context_line":"        return values"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @classmethod"},{"line_number":180,"context_line":"    def from_dict(cls, values):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_480c6942","line":177,"updated":"2016-07-25 09:46:08.000000000","message":"Should we not replace all uses of this?\n\nIt would be good to see a unit test to show we are not missing and extra data, like quota_class, etc?","commit_id":"13acb4221fe8ff8000b8395892e3bb14ce6c5a2b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e39de644181095313f74c1234b2c03bb5f8babfb","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            \u0027instance_lock_checked\u0027: getattr(self, \u0027instance_lock_checked\u0027,"},{"line_number":175,"context_line":"                                             False)"},{"line_number":176,"context_line":"        })"},{"line_number":177,"context_line":"        return values"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @classmethod"},{"line_number":180,"context_line":"    def from_dict(cls, values):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_0780fc45","line":177,"in_reply_to":"bacf61ea_c3ef4c1c","updated":"2016-09-19 13:16:02.000000000","message":"Totally agreed with you. The new things we are adding are very targeted.","commit_id":"13acb4221fe8ff8000b8395892e3bb14ce6c5a2b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b073dfcf60f410ab50f8d6373608cee7a15c8704","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            \u0027instance_lock_checked\u0027: getattr(self, \u0027instance_lock_checked\u0027,"},{"line_number":175,"context_line":"                                             False)"},{"line_number":176,"context_line":"        })"},{"line_number":177,"context_line":"        return values"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @classmethod"},{"line_number":180,"context_line":"    def from_dict(cls, values):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_c3ef4c1c","line":177,"in_reply_to":"dada55a8_480c6942","updated":"2016-07-31 05:39:31.000000000","message":"well this is a bit of the problem. I consider the primary usage of to_dict to be for rpc, not for policy. \n\nWe still need this, but i\u0027m trying to cut down the information being passed into policy. For example i cannot imagine what you would do with read_deleted, request_id, or almost all of these variables in a policy enforcement setting.","commit_id":"13acb4221fe8ff8000b8395892e3bb14ce6c5a2b"}],"nova/policy.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6a4e1fc84e7bb06b30157501f8497baa39c21482","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":113,"context_line":"            LOG.exception(_LE(\u0027Policy not registered\u0027))"},{"line_number":114,"context_line":"    except Exception:"},{"line_number":115,"context_line":"        credentials.pop(\u0027auth_token\u0027, None)"},{"line_number":116,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":117,"context_line":"            LOG.debug(\u0027Policy check for %(action)s failed with credentials \u0027"},{"line_number":118,"context_line":"                      \u0027%(credentials)s\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_687ccdb5","line":115,"updated":"2016-07-25 09:46:08.000000000","message":"I could see this being harder to maintain long term, working out what to drop when logging the info. But it seems like a good plan.","commit_id":"13acb4221fe8ff8000b8395892e3bb14ce6c5a2b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e39de644181095313f74c1234b2c03bb5f8babfb","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":113,"context_line":"            LOG.exception(_LE(\u0027Policy not registered\u0027))"},{"line_number":114,"context_line":"    except Exception:"},{"line_number":115,"context_line":"        credentials.pop(\u0027auth_token\u0027, None)"},{"line_number":116,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":117,"context_line":"            LOG.debug(\u0027Policy check for %(action)s failed with credentials \u0027"},{"line_number":118,"context_line":"                      \u0027%(credentials)s\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_27d098f7","line":115,"in_reply_to":"bacf61ea_83e2742d","updated":"2016-09-19 13:16:02.000000000","message":"Basically, its really had to debug policy issues, as a deployer, without doing something a bit like this. I think alaski added this:\nhttps://github.com/openstack/nova/commit/e4532efcfe52a9d99a2286045a3304f7ff880bc5\n\nI am sure there is a much better way to architect this.","commit_id":"13acb4221fe8ff8000b8395892e3bb14ce6c5a2b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b073dfcf60f410ab50f8d6373608cee7a15c8704","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":113,"context_line":"            LOG.exception(_LE(\u0027Policy not registered\u0027))"},{"line_number":114,"context_line":"    except Exception:"},{"line_number":115,"context_line":"        credentials.pop(\u0027auth_token\u0027, None)"},{"line_number":116,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":117,"context_line":"            LOG.debug(\u0027Policy check for %(action)s failed with credentials \u0027"},{"line_number":118,"context_line":"                      \u0027%(credentials)s\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bacf61ea_83e2742d","line":115,"in_reply_to":"dada55a8_687ccdb5","updated":"2016-07-31 05:39:31.000000000","message":"yea, this is kind of an issue because we want the context object to be the source of what we\u0027re enforcing policy on, and nova to not have to worry about that at all. \n\nThis is not something i\u0027ve seen in other services.","commit_id":"13acb4221fe8ff8000b8395892e3bb14ce6c5a2b"}]}
