)]}'
{"neutron/context.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"48cbcde8945115e59117d9f2b3ef0325574bcdda","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":"        return values"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_20407007","line":97,"updated":"2016-09-19 17:04:19.000000000","message":"how did you come up to the list? I see where tenant_id comes from (it\u0027s used for custom OwnerCheck), but where is is_admin used? How can we make sure nothing else used in the past missed here? How do we deprecate policy options?","commit_id":"44ccb42f7c13a6ae142223e693d40720c0a1eb7a"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c6dffc840eb5f61dff93f829f1335194419aaccf","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":"        return values"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_f7fd1b3c","line":97,"in_reply_to":"7a8ec9b2_1da48cb7","updated":"2016-09-21 02:50:11.000000000","message":"yes, absolutely. And this has been the problem with these changes so far. \n\nHowever the default brings in project_id and user_id, we add tenant_id and is_admin here. Theoretically people can be enforcing on _name params but that\u0027s a really bad idea. \n\nI\u0027m adding is_admin as a likely used key, but i\u0027m not sure if the others really are.","commit_id":"44ccb42f7c13a6ae142223e693d40720c0a1eb7a"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0e0cd00e9c169221ca986ed5df2f904f2f40da5e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":"        return values"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_581c7e77","line":97,"in_reply_to":"7a8ec9b2_20407007","updated":"2016-09-20 06:51:07.000000000","message":"I also don\u0027t see \u0027is_admin\u0027 in the policy file in my setup (I do see tenant_id).","commit_id":"44ccb42f7c13a6ae142223e693d40720c0a1eb7a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"671b5ecdca75f6c2792fcfa1604e466f998764a1","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":"        return values"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_739078ed","line":97,"in_reply_to":"7a8ec9b2_581c7e77","updated":"2016-09-20 08:11:18.000000000","message":"Right. But may still be used somewhere, because policy files are supposed to be modifiable.\n\nSo I wonder whether we can safely contract the dict used for policy validations at all.","commit_id":"44ccb42f7c13a6ae142223e693d40720c0a1eb7a"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"e5e672f1942b738a0478e66b63b8bcb84d7d7e77","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":"        return values"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_aa06ef1d","line":97,"in_reply_to":"7a8ec9b2_739078ed","updated":"2016-09-20 12:35:34.000000000","message":"I don\u0027t see is_admin used anywhere definitively in neutron. It was however previously available and something that other services rely on sometimes so i thought it possible a custom policy might be using it. \n\nWe can always skip it for now and see if anyone complains.","commit_id":"44ccb42f7c13a6ae142223e693d40720c0a1eb7a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"6efc7790e88330090e9c31393d3cd8b8d365c93e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":"        return values"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_1da48cb7","line":97,"in_reply_to":"7a8ec9b2_aa06ef1d","updated":"2016-09-20 13:17:10.000000000","message":"Well my concern is a bit vice versa actually: let\u0027s say some custom policies rely on some keys that are present in to_dict() but not in to_policy_values(). It\u0027s potentially a breaking change, isn\u0027t it? Wouldn\u0027t it make sense to sync any missing keys from to_dict() into the newly added method?","commit_id":"44ccb42f7c13a6ae142223e693d40720c0a1eb7a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"3c2e02dcefa813c91b45e785969fe87c03ee06b0","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":"        return values"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_d5c5653c","line":97,"in_reply_to":"7a8ec9b2_f7fd1b3c","updated":"2016-09-24 14:09:53.000000000","message":"\u003e but that\u0027s a really bad idea\n\nit\u0027s a question though of whether reducing the dict should be the goal for the patch. I prefer we split matters and first switch to the new function, then maybe clean up the list in a separate change.","commit_id":"44ccb42f7c13a6ae142223e693d40720c0a1eb7a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f1b8b361c2a6aa4089b541d10c5b77c244de8e17","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # NOTE(jamielennox): These are almost certainly unused and non-standard"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_3804a548","line":96,"updated":"2016-11-02 09:35:02.000000000","message":"what about project_id?","commit_id":"8e85b568b165ebae720c3bb94f799f8cd5f72a2b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5e8fe4cd2b05ee987b04d7e8ee2a99a22b93b82a","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def to_policy_values(self):"},{"line_number":95,"context_line":"        values \u003d super(ContextBase, self).to_policy_values()"},{"line_number":96,"context_line":"        values[\u0027tenant_id\u0027] \u003d self.tenant_id"},{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # NOTE(jamielennox): These are almost certainly unused and non-standard"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_8c484089","line":96,"in_reply_to":"ba5da102_3804a548","updated":"2016-11-25 12:48:34.000000000","message":"It\u0027s in the base class already.","commit_id":"8e85b568b165ebae720c3bb94f799f8cd5f72a2b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5e8fe4cd2b05ee987b04d7e8ee2a99a22b93b82a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        values[\u0027is_admin\u0027] \u003d self.is_admin"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # NOTE(jamielennox): These are almost certainly unused and non-standard"},{"line_number":100,"context_line":"        # but kept for backwards compatibility. Remove them ASAP."},{"line_number":101,"context_line":"        values[\u0027user\u0027] \u003d self.user"},{"line_number":102,"context_line":"        values[\u0027tenant\u0027] \u003d self.tenant,"},{"line_number":103,"context_line":"        values[\u0027domain\u0027] \u003d self.domain,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_87249baf","line":100,"range":{"start_line":100,"start_character":48,"end_line":100,"end_character":65},"updated":"2016-11-25 12:48:34.000000000","message":"I assume that\u0027s in Pike because https://review.openstack.org/#/c/314901/2 will be released in Ocata, and we need to have a cycle with the deprecation warnings.","commit_id":"8e85b568b165ebae720c3bb94f799f8cd5f72a2b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"20ca5420cd8b070e54177f1db8a0adce6503b88f","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # NOTE(jamielennox): These are almost certainly unused and non-standard"},{"line_number":100,"context_line":"        # but kept for backwards compatibility. Remove them ASAP."},{"line_number":101,"context_line":"        values[\u0027user\u0027] \u003d self.user"},{"line_number":102,"context_line":"        values[\u0027tenant\u0027] \u003d self.tenant,"},{"line_number":103,"context_line":"        values[\u0027domain\u0027] \u003d self.domain,"},{"line_number":104,"context_line":"        values[\u0027user_domain\u0027] \u003d self.user_domain,"},{"line_number":105,"context_line":"        values[\u0027project_domain\u0027] \u003d self.project_domain,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a71b18c_fc5ef6e7","line":102,"updated":"2016-12-02 10:46:31.000000000","message":"ok you have a serious issue here: see the commas at the end ending up as tuples. I am glad @garyk asked for a unit test.","commit_id":"8e85b568b165ebae720c3bb94f799f8cd5f72a2b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"62f7def78a190578dee2a3128a99e19e31d3b706","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        values[\u0027project_domain\u0027] \u003d self.project_domain,"},{"line_number":106,"context_line":"        values[\u0027tenant_name\u0027] \u003d self.tenant_name,"},{"line_number":107,"context_line":"        values[\u0027project_name\u0027] \u003d self.tenant_name,"},{"line_number":108,"context_line":"        values[\u0027user_name\u0027] \u003d self.user_name,"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        return values"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_842e3941","line":108,"range":{"start_line":108,"start_character":16,"end_line":108,"end_character":25},"updated":"2016-11-01 23:16:10.000000000","message":"This is not the entire dict, but everything that may at a stretch be useful for policy. \n\nI want to move this forward, but am certain I\u0027ll be looping back in a year or two to finally remove them.","commit_id":"8e85b568b165ebae720c3bb94f799f8cd5f72a2b"}]}
