)]}'
{"oslo_context/context.py":[{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"1862fc0c2e899437ff02565bf85127c283dcaa16","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"def _moved_msg(new_name, old_name):"},{"line_number":61,"context_line":"    if old_name:"},{"line_number":62,"context_line":"        deprecated_msg \u003d \"%(old_name)s is deprecated in favour of %(new_name)s\""},{"line_number":63,"context_line":"        deprecated_msg \u003d deprecated_msg % {\u0027old_name\u0027: old_name,"},{"line_number":64,"context_line":"                                           \u0027new_name\u0027: new_name}"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_fdae0897","line":62,"updated":"2016-06-27 15:36:23.000000000","message":"I think we need to mention deprecated in Newton, will be removed in P.","commit_id":"9eaf142a3ffc79b2572c9cbd745518076619453f"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"1862fc0c2e899437ff02565bf85127c283dcaa16","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                 read_only\u003dFalse, show_deleted\u003dFalse, request_id\u003dNone,"},{"line_number":102,"context_line":"                 resource_uuid\u003dNone, overwrite\u003dTrue, roles\u003dNone,"},{"line_number":103,"context_line":"                 user_name\u003dNone, project_name\u003dNone, domain_name\u003dNone,"},{"line_number":104,"context_line":"                 user_domain_name\u003dNone, project_domain_name\u003dNone):"},{"line_number":105,"context_line":"        \"\"\"Initialize the RequestContext"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_5d3e3c2a","line":104,"updated":"2016-06-27 15:36:23.000000000","message":"What\u0027s the point if we do not enable _ids to be named arguments.  How do we encourage projects to use the right id?","commit_id":"9eaf142a3ffc79b2572c9cbd745518076619453f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3b1940ab8c8aa79b95ea89c0aaf9c9feab8bdb72","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                 read_only\u003dFalse, show_deleted\u003dFalse, request_id\u003dNone,"},{"line_number":102,"context_line":"                 resource_uuid\u003dNone, overwrite\u003dTrue, roles\u003dNone,"},{"line_number":103,"context_line":"                 user_name\u003dNone, project_name\u003dNone, domain_name\u003dNone,"},{"line_number":104,"context_line":"                 user_domain_name\u003dNone, project_domain_name\u003dNone):"},{"line_number":105,"context_line":"        \"\"\"Initialize the RequestContext"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_c2cdd2b8","line":104,"in_reply_to":"3aaa91ec_5d3e3c2a","updated":"2016-06-29 00:13:29.000000000","message":"So I can\u0027t immediately see any way to do that in a compatible way. We could add the _id params to __init__ and then do like:\n\nself.user_domain_id \u003d user_domain_id or user_domain \n\nHowever I think this confuses the from_dict because it\u0027s inspecting __init__ args (yuk). Maybe not if we just add a **kwargs here and do \n\nself.user_domain_id \u003d kwargs.pop(\u0027user_domain_id\u0027, user_domain)","commit_id":"9eaf142a3ffc79b2572c9cbd745518076619453f"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"1862fc0c2e899437ff02565bf85127c283dcaa16","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                \u0027tenant\u0027: self.project_id,"},{"line_number":178,"context_line":"                \u0027domain\u0027: self.domain_id,"},{"line_number":179,"context_line":"                \u0027user_domain\u0027: self.user_domain_id,"},{"line_number":180,"context_line":"                \u0027project_domain\u0027: self.project_domain_id,"},{"line_number":181,"context_line":"                \u0027is_admin\u0027: self.is_admin,"},{"line_number":182,"context_line":"                \u0027read_only\u0027: self.read_only,"},{"line_number":183,"context_line":"                \u0027show_deleted\u0027: self.show_deleted,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_fd5d687a","line":180,"updated":"2016-06-27 15:36:23.000000000","message":"Same as with arguments statement, how do we get projects to adopt using _ids.  \n\nDo we need to provide both in to_dict for a period of time?  Seems messy.","commit_id":"9eaf142a3ffc79b2572c9cbd745518076619453f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3b1940ab8c8aa79b95ea89c0aaf9c9feab8bdb72","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                \u0027tenant\u0027: self.project_id,"},{"line_number":178,"context_line":"                \u0027domain\u0027: self.domain_id,"},{"line_number":179,"context_line":"                \u0027user_domain\u0027: self.user_domain_id,"},{"line_number":180,"context_line":"                \u0027project_domain\u0027: self.project_domain_id,"},{"line_number":181,"context_line":"                \u0027is_admin\u0027: self.is_admin,"},{"line_number":182,"context_line":"                \u0027read_only\u0027: self.read_only,"},{"line_number":183,"context_line":"                \u0027show_deleted\u0027: self.show_deleted,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_8208eada","line":180,"in_reply_to":"3aaa91ec_fd5d687a","updated":"2016-06-29 00:13:29.000000000","message":"So i don\u0027t know. \n\nMy feeling here is changing the arguments in to_dict is going to be backwards incompatible for anyone using to_dict for messaging. Providing everything twice is going to add a fair bit of overhead for no reason and unless we fix the from_dict thing (yuk) it\u0027s still not going to work. \n\nIt may be we have to do a to_rpc_values like we have with policy and logging and deprecate to_dict, and hopefully do that one better - but i\u0027m still not sure how we\u0027d handle the transition of possibly different code on the sender and receiver.\n\nSo yea, i don\u0027t know but i don\u0027t think this is a bad intermediate step.","commit_id":"9eaf142a3ffc79b2572c9cbd745518076619453f"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"7353e0581d6b7f741d12e44bc2054d2b7f50248f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.request_id \u003d request_id"},{"line_number":132,"context_line":"        if overwrite or not get_current():"},{"line_number":133,"context_line":"            self.update_store()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # NOTE(jamielennox): To prevent circular lookups on subclasses that might"},{"line_number":136,"context_line":"    # point user to user_id we make both user/user_id tenant/project_id point"},{"line_number":137,"context_line":"    # to the same private variable rather than each other."}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_54af3d2b","line":134,"updated":"2016-07-08 01:27:42.000000000","message":"Use https://github.com/openstack/debtcollector/blob/master/debtcollector/moves.py#L90 ?\n\nOr https://github.com/openstack/debtcollector/blob/master/debtcollector/moves.py#L152 ?","commit_id":"63a356607d8e51cb0bb1a73cf1e6cae5e3d8230e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"5ef51437c3f4686ab8685440a25a9bcc63972710","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.request_id \u003d request_id"},{"line_number":132,"context_line":"        if overwrite or not get_current():"},{"line_number":133,"context_line":"            self.update_store()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # NOTE(jamielennox): To prevent circular lookups on subclasses that might"},{"line_number":136,"context_line":"    # point user to user_id we make both user/user_id tenant/project_id point"},{"line_number":137,"context_line":"    # to the same private variable rather than each other."}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_f7d46bbe","line":134,"in_reply_to":"1aa78d24_54af3d2b","updated":"2016-07-08 01:45:49.000000000","message":"There is not currently a dependency on debtcollector and i\u0027m always hesitant to add new deps, particularly in libraries but this is a library that will only be consumed by services so probably ok.","commit_id":"63a356607d8e51cb0bb1a73cf1e6cae5e3d8230e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"57c65ba14553e7b5a63a3769cc7cdbdec46afe11","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.request_id \u003d request_id"},{"line_number":132,"context_line":"        if overwrite or not get_current():"},{"line_number":133,"context_line":"            self.update_store()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # NOTE(jamielennox): To prevent circular lookups on subclasses that might"},{"line_number":136,"context_line":"    # point user to user_id we make both user/user_id tenant/project_id point"},{"line_number":137,"context_line":"    # to the same private variable rather than each other."}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_d7168f57","line":134,"in_reply_to":"1aa78d24_f7d46bbe","updated":"2016-07-08 01:51:42.000000000","message":"Also i would still need to write my own warnings for the user/project deprecations. They are tricky because many subclasses are already doing some version of this rename so both user and user_id point to a private property rather than each other which debtcollector doesn\u0027t support.","commit_id":"63a356607d8e51cb0bb1a73cf1e6cae5e3d8230e"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bc1ba111a0781d54c1960c65165e295e0854ced9","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        # setting to private variables to avoid triggering subclass properties"},{"line_number":124,"context_line":"        self._user_id \u003d user"},{"line_number":125,"context_line":"        self._project_id \u003d tenant"},{"line_number":126,"context_line":"        self._domain_id \u003d domain"},{"line_number":127,"context_line":"        self._user_domain_id \u003d user_domain"},{"line_number":128,"context_line":"        self._project_domain_id \u003d project_domain"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_2fa048a5","line":125,"updated":"2016-08-12 19:55:09.000000000","message":"Are we sure that we don\u0027t have any places passing objects for these values?","commit_id":"2adb8cae198f098bd5f8c8e13bbf6736b254afd3"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4b1b6c92e43eceead680ee1d1fe8eaa568b3aa82","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        # setting to private variables to avoid triggering subclass properties"},{"line_number":124,"context_line":"        self._user_id \u003d user"},{"line_number":125,"context_line":"        self._project_id \u003d tenant"},{"line_number":126,"context_line":"        self._domain_id \u003d domain"},{"line_number":127,"context_line":"        self._user_domain_id \u003d user_domain"},{"line_number":128,"context_line":"        self._project_domain_id \u003d project_domain"}],"source_content_type":"text/x-python","patch_set":10,"id":"3ac371cc_ba2f6ef5","line":125,"in_reply_to":"9ad45d7e_2fa048a5","updated":"2016-08-15 00:36:42.000000000","message":"I\u0027ve never seen it done that way because everyone is passing these values down from the headers set by auth_token middleware. \n\nI\u0027ve got an ongoing effort to make projects use RequestContext.from_environ below and haven\u0027t seen any problems. This change would be inline with the from_environ settings.","commit_id":"2adb8cae198f098bd5f8c8e13bbf6736b254afd3"},{"author":{"_account_id":9459,"name":".Haifeng Yan","email":"yanheven@qq.com","username":"yan"},"change_message_id":"175780b9c118d81fd3a0ec82146c691cd1c040cd","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                \u0027user_domain_id\u0027: self.user_domain_id,"},{"line_number":185,"context_line":"                \u0027project_id\u0027: self.project_id,"},{"line_number":186,"context_line":"                \u0027project_domain_id\u0027: self.project_domain_id,"},{"line_number":187,"context_line":"                \u0027roles\u0027: self.roles,"},{"line_number":188,"context_line":"                \u0027is_admin_project\u0027: self.is_admin_project}"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def to_dict(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_8d496f91","line":187,"range":{"start_line":187,"start_character":30,"end_line":187,"end_character":35},"updated":"2016-07-23 08:01:39.000000000","message":"should roles also move?","commit_id":"2adb8cae198f098bd5f8c8e13bbf6736b254afd3"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"a43cc5070a5f6f434f67062adff82f0f615b366d","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                \u0027user_domain_id\u0027: self.user_domain_id,"},{"line_number":185,"context_line":"                \u0027project_id\u0027: self.project_id,"},{"line_number":186,"context_line":"                \u0027project_domain_id\u0027: self.project_domain_id,"},{"line_number":187,"context_line":"                \u0027roles\u0027: self.roles,"},{"line_number":188,"context_line":"                \u0027is_admin_project\u0027: self.is_admin_project}"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def to_dict(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bacf61ea_f7284e35","line":187,"range":{"start_line":187,"start_character":30,"end_line":187,"end_character":35},"in_reply_to":"dada55a8_8d496f91","updated":"2016-07-30 18:57:07.000000000","message":"I\u0027m not so worried about that one. Whilst roles do have a name and id the id is essentially ignored everywhere and not passed through auth_token middleware.\n\nWe can argue over that one in a later review if you like.","commit_id":"2adb8cae198f098bd5f8c8e13bbf6736b254afd3"}]}
