)]}'
{"oslo_context/context.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"141ab3bafd42d5a907be12bef87ecbfbad66dd72","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                 user_id\u003dNone,"},{"line_number":196,"context_line":"                 project_id\u003dNone,"},{"line_number":197,"context_line":"                 domain_id\u003dNone,"},{"line_number":198,"context_line":"                 system\u003dNone,"},{"line_number":199,"context_line":"                 user_domain_id\u003dNone,"},{"line_number":200,"context_line":"                 project_domain_id\u003dNone,"},{"line_number":201,"context_line":"                 is_admin\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_c42acd2a","line":198,"updated":"2018-04-10 20:05:16.000000000","message":"Do we ever create a context without using keyword arguments? Should this new one be added to the end of the argument list?","commit_id":"304ab1085499290e2ecb307ddfefcf07e5807198"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"752aa76d7762f7380af472dd91c797ad78a14c4d","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                 user_id\u003dNone,"},{"line_number":196,"context_line":"                 project_id\u003dNone,"},{"line_number":197,"context_line":"                 domain_id\u003dNone,"},{"line_number":198,"context_line":"                 system\u003dNone,"},{"line_number":199,"context_line":"                 user_domain_id\u003dNone,"},{"line_number":200,"context_line":"                 project_domain_id\u003dNone,"},{"line_number":201,"context_line":"                 is_admin\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_1e545b20","line":198,"in_reply_to":"bf659307_c42acd2a","updated":"2018-04-23 14:05:44.000000000","message":"I suppose someone could if they wanted to, but it ends up being a lot of context to maintain for the callers. I recently hit this with nova\u0027s wrapped version of oslo.context [0] [1]. I\u0027ll move this to the end of the arg list so that it doesn\u0027t break people who aren\u0027t creating context objects with kwargs.\n\n[0] https://github.com/openstack/nova/blob/c6db1fc78a01ef04075431d6a9cf7c813e286d13/nova/context.py\n[1] https://github.com/openstack/nova/blob/c6db1fc78a01ef04075431d6a9cf7c813e286d13/nova/tests/unit/test_policy.py#L37","commit_id":"304ab1085499290e2ecb307ddfefcf07e5807198"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5f3acc6c8dc93798e173af5ac87ab5637d60f41d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_fe440249","line":52,"updated":"2018-04-23 16:15:37.000000000","message":"So this header indicates that the *request* is for a system-scoped functionality? Or does the header indicate that the *requestor* has the ability to perform a system-scoped function?","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b6c4ff0d230c7c3bf6c8ad8cb532ec2b54f1880f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_4d6d42ca","line":52,"in_reply_to":"9f6a8fd7_170f5937","updated":"2018-04-23 19:22:39.000000000","message":"OK. Sorry for my beginner questions :(\n\nThese headers would not be modifiable by some middleman, though, right? I mean, if the \"switch\" for whether a request can perform a system-scoped action is just a header in an HTTP request, that would be easily modifiable/attackable.\n\nSo I presume this is not the case and that these headers are coming from some token that has been pre-authorized and sent from Keystone, right?\n\nAgain, sorry for the n00b questions.","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"53a3c64fccade53144355f7382c8d1fbc86efd89","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_aff651d6","line":52,"in_reply_to":"9f6a8fd7_4d6d42ca","updated":"2018-04-23 22:34:59.000000000","message":"This is decoded from the token and injected by KSM (and oslo_context) after the token is validated and read off the wire. In theory (It is something we explicitly test for in KSM - but i\u0027m not seeing the line of code at a quick glance), we are supposed to set/clear all headers we care about prior to setting the values.\n\nThe HTTP_X_ headers are translated from the actual X-\u003cwhatever\u003e-header.\n\nSo, This is abusable if you\u0027re between KSM and the application in the WSGI pipeline. KSM looks like it needs some updates for clearing X-SYSTEM...\n\n\nNow on to the reason I\u0027m adding a -1:\n\nWe need to STOP using X-Prefixed headers. This should not land as a X-System. This is a bad name for the header.\n\nSee https://tools.ietf.org/html/rfc6648","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"2d214ec4f4eae1b9231c89dedc1f572e0eafb8ec","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_c76efcfe","line":52,"in_reply_to":"9f6a8fd7_a1265867","updated":"2018-04-24 15:30:26.000000000","message":"I like Jay\u0027s proposed header name.","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b63c73eb9ca8a6f5c9b35e88ed4a4ea0d8741b3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_a1265867","line":52,"in_reply_to":"9f6a8fd7_a13f3885","updated":"2018-04-24 14:15:51.000000000","message":"I wouldn\u0027t be opposed to that, +1","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5a238068c6697a6c7ee686194e6979c5b48ff6a0","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_c2582f89","line":52,"in_reply_to":"9f6a8fd7_aff651d6","updated":"2018-04-24 13:18:27.000000000","message":"That\u0027s fair, Morgan. Do you have any other suggestions for a possible name?","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6be939839760815a8eb22881cc3fb59ad76997e3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_a13f3885","line":52,"in_reply_to":"9f6a8fd7_c2582f89","updated":"2018-04-24 14:12:23.000000000","message":"How about openstack-system-scope?","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"640f8bc5470cb6dd4944c3d03a00b4a7443667c9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_6ab1f546","line":52,"in_reply_to":"9f6a8fd7_c76efcfe","updated":"2018-04-24 15:39:08.000000000","message":"Done","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1dcec1b54376e672053655ef2681e0522cbe7c4a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_X_SYSTEM\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f6a8fd7_170f5937","line":52,"in_reply_to":"9f6a8fd7_fe440249","updated":"2018-04-23 18:25:35.000000000","message":"The later, modeling the project header above. Unless we don\u0027t want to process that information via headers (I don\u0027t see a header for domain_id, which can also carry authorization)?\n\nI guess the alternative would be to make services pass in attributes from the token they receive for a request.","commit_id":"e752d81b3c934930c6f38dc61491641bf9623e92"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3fbab222f848ec658a6268ae4f340dc5cd1a18cb","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_0a2079ab","line":52,"updated":"2018-04-24 16:15:28.000000000","message":"Does the HTTP_ prefix need to be put on here? I\u0027m not sure what this HTTP_ prefix does, but it seems all the other headers have it?","commit_id":"390f66b24bb839651fb2e1ff7345d87192482e5a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"049e5ba39f26ccac03823ea887a4106409c9cded","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_70ac84ec","line":52,"in_reply_to":"9f6a8fd7_0a2079ab","updated":"2018-04-24 17:12:16.000000000","message":"I think it does need to be here. \n\nThe HTTP_ prefix, iirc, that is translating from the X-\u003cblah\u003e header on the wire.","commit_id":"390f66b24bb839651fb2e1ff7345d87192482e5a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"ac8be5f7078523656c100e9e13182dc3793e4d9b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_d086b066","line":52,"in_reply_to":"9f6a8fd7_70ac84ec","updated":"2018-04-24 17:12:43.000000000","message":"We should check.","commit_id":"390f66b24bb839651fb2e1ff7345d87192482e5a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c0bee1ed7591f26145d47fc073f9b7492b7abed9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_203d598e","line":52,"in_reply_to":"9f6a8fd7_ad1f2206","updated":"2018-04-24 21:34:04.000000000","message":"You\u0027re both right. We do need the actual HTTP_ bit. \n\nWebOb does a translation when setting headers [0]. Keystonemiddleware subclasses the request implementation of WebOb [1], which makes us susceptible to that translation. Somehow that\u0027s handled after ksm processing of the requests and before the request object is handed off to subsequent nova middleware (NovaKeystoneContext) to build nova\u0027s context object, which subclasses oslo.context.\n\nTotally clear now... I think?\n\n[0]https://github.com/Pylons/webob/blob/4e8c7ecc20bed6ce6c64daa3dcb97cc328058e8c/src/webob/headers.py#L111-L115\n[1] https://github.com/openstack/keystonemiddleware/blob/686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45/keystonemiddleware/auth_token/_request.py#L72","commit_id":"390f66b24bb839651fb2e1ff7345d87192482e5a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e6bbbe17e21c5b361e8d4414d5d9887083107143","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_ad1f2206","line":52,"in_reply_to":"9f6a8fd7_ad95e288","updated":"2018-04-24 20:57:08.000000000","message":"Running some tests locally to pull out these headers yields http://paste.openstack.org/raw/719869/","commit_id":"390f66b24bb839651fb2e1ff7345d87192482e5a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dd4e93862a5bb5380ac9795fdd7e7309e2cc8344","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_ad95e288","line":52,"in_reply_to":"9f6a8fd7_d086b066","updated":"2018-04-24 20:52:59.000000000","message":"Doing some digging here. Keystonemiddleware scrubs these values when it receives a request [0][1] and rebuilds them from the values of the token [2][3], pending the token is valid.\n\nIn the case of project ids, it appears ksm only translates to X-Project-Id [4].\n\n[0] https://github.com/openstack/keystonemiddleware/blob/686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45/keystonemiddleware/auth_token/__init__.py#L614\n[1] https://github.com/openstack/keystonemiddleware/blob/686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45/keystonemiddleware/auth_token/_request.py#L219-L222\n[2] https://github.com/openstack/keystonemiddleware/blob/686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45/keystonemiddleware/auth_token/__init__.py#L651-L652\n[3] https://github.com/openstack/keystonemiddleware/blob/686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45/keystonemiddleware/auth_token/_request.py#L161-L171\n[4] https://github.com/openstack/keystonemiddleware/blob/686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45/keystonemiddleware/auth_token/_request.py#L79","commit_id":"390f66b24bb839651fb2e1ff7345d87192482e5a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d34ef2fb87ae760b8cd1f02be628a5f5fdd284c3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_c00c9d95","line":52,"range":{"start_line":52,"start_character":16,"end_line":52,"end_character":43},"updated":"2018-04-24 22:03:47.000000000","message":"Should this be:\n\n  HTTP_OPENSTACK_SYSTEM_SCOPE\n\nor just:\n\n  HTTP_OPENSTACK_SYSTEM\n\n? None of the other headers actually reference the term \"scope\".","commit_id":"c4d55eb2b4057b522b184e155121e54d0d6da84c"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccc86870f2b171419d042d2fb55529cb3936773f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_d270d442","line":52,"range":{"start_line":52,"start_character":16,"end_line":52,"end_character":43},"in_reply_to":"9f6a8fd7_03f37f75","updated":"2018-04-25 23:21:52.000000000","message":"Any reason to not maintain the X-? That\u0027s kind of a standard way of defining a non-standard header.","commit_id":"c4d55eb2b4057b522b184e155121e54d0d6da84c"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"105e6f15bb0b769022d44d0e1e10262c528a3e03","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_494fc491","line":52,"range":{"start_line":52,"start_character":16,"end_line":52,"end_character":43},"in_reply_to":"9f6a8fd7_661260b7","updated":"2018-05-02 16:02:00.000000000","message":"I\u0027ll post it here: https://tools.ietf.org/html/rfc6648\n\nWe should not add more X- prefixed headers. I think OPENSTACK_SYSTEM_SCOPE is very clear and far better indicator than X_System_Scope","commit_id":"c4d55eb2b4057b522b184e155121e54d0d6da84c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"1b23fe5b853e74201f30cd502f85204baec7d392","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_03f37f75","line":52,"range":{"start_line":52,"start_character":16,"end_line":52,"end_character":43},"in_reply_to":"9f6a8fd7_c00c9d95","updated":"2018-04-24 23:31:15.000000000","message":"I think OPENSTACK_SYSTEM_SCOPE is crisp and clear.","commit_id":"c4d55eb2b4057b522b184e155121e54d0d6da84c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"46ec4eda7b8db97429b400c59f80d3333d426ec6","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_661260b7","line":52,"range":{"start_line":52,"start_character":16,"end_line":52,"end_character":43},"in_reply_to":"9f6a8fd7_d270d442","updated":"2018-04-26 14:05:16.000000000","message":"Morgan had input on this in patch set 3 [0].\n\n[0] https://review.openstack.org/#/c/530509/3/oslo_context/context.py","commit_id":"c4d55eb2b4057b522b184e155121e54d0d6da84c"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccc86870f2b171419d042d2fb55529cb3936773f","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                 service_project_domain_name\u003dNone,"},{"line_number":222,"context_line":"                 service_roles\u003dNone,"},{"line_number":223,"context_line":"                 global_request_id\u003dNone,"},{"line_number":224,"context_line":"                 system\u003dNone):"},{"line_number":225,"context_line":"        \"\"\"Initialize the RequestContext"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_d2be94ac","line":224,"updated":"2018-04-25 23:21:52.000000000","message":"I\u0027m out of the loop here - what is this value? a boolean, did you make it an id? \n\nIf it\u0027s a boolean i\u0027d prefer the full system_scope\u003dFalse or is_system_scope\u003dFalse - otherwise go system_id. \n\nSomehow name is so i\u0027ve got an idea what i\u0027m supposed to pass here.","commit_id":"c4d55eb2b4057b522b184e155121e54d0d6da84c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"46ec4eda7b8db97429b400c59f80d3333d426ec6","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                 service_project_domain_name\u003dNone,"},{"line_number":222,"context_line":"                 service_roles\u003dNone,"},{"line_number":223,"context_line":"                 global_request_id\u003dNone,"},{"line_number":224,"context_line":"                 system\u003dNone):"},{"line_number":225,"context_line":"        \"\"\"Initialize the RequestContext"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_867c54ec","line":224,"in_reply_to":"9f6a8fd7_d2be94ac","updated":"2018-04-26 14:05:16.000000000","message":"Right now it\u0027s a dictionary.\n\n  {\u0027all\u0027: True}\n\nis the only possible value to get from keystone current, but I left it that way in case we expand it out to support scoping to specific services within the system.\n\nThoughts?","commit_id":"c4d55eb2b4057b522b184e155121e54d0d6da84c"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8224a2bf43c5b91cc0be95c90f2c59567e780b6f","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                 service_project_domain_name\u003dNone,"},{"line_number":222,"context_line":"                 service_roles\u003dNone,"},{"line_number":223,"context_line":"                 global_request_id\u003dNone,"},{"line_number":224,"context_line":"                 system\u003dNone):"},{"line_number":225,"context_line":"        \"\"\"Initialize the RequestContext"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_05f29e9a","line":224,"updated":"2018-05-15 16:03:27.000000000","message":"There are a lot of ways to interpret \"system\" as a variable name. Can we make this more descriptive? Maybe \"system_scope\"?","commit_id":"34078d7d48a321d00fe1338a8b87f558c2acd12d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7507247db7d5267789b1dc1c87137002e44d8d34","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                 service_project_domain_name\u003dNone,"},{"line_number":222,"context_line":"                 service_roles\u003dNone,"},{"line_number":223,"context_line":"                 global_request_id\u003dNone,"},{"line_number":224,"context_line":"                 system\u003dNone):"},{"line_number":225,"context_line":"        \"\"\"Initialize the RequestContext"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_8bcf9d27","line":224,"in_reply_to":"5f7c97a3_05f29e9a","updated":"2018-05-15 19:10:10.000000000","message":"Done","commit_id":"34078d7d48a321d00fe1338a8b87f558c2acd12d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8224a2bf43c5b91cc0be95c90f2c59567e780b6f","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        :param is_admin_project: Whether the specified project is specified in"},{"line_number":230,"context_line":"                                 the token as the admin project. Defaults to"},{"line_number":231,"context_line":"                                 True for backwards compatibility."},{"line_number":232,"context_line":"        :type is_admin_project: bool"},{"line_number":233,"context_line":"        \"\"\""},{"line_number":234,"context_line":"        # setting to private variables to avoid triggering subclass properties"},{"line_number":235,"context_line":"        self._user_id \u003d user_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_e5bd22b7","line":232,"updated":"2018-05-15 16:03:27.000000000","message":"Somewhere along the line we stopped documenting the parameters to this method here in the docstring. You don\u0027t have to go back and do all of them in this patch, but it would be helpful to at least add docs for the new one. We can cover the others in a separate patch.","commit_id":"34078d7d48a321d00fe1338a8b87f558c2acd12d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7507247db7d5267789b1dc1c87137002e44d8d34","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        :param is_admin_project: Whether the specified project is specified in"},{"line_number":230,"context_line":"                                 the token as the admin project. Defaults to"},{"line_number":231,"context_line":"                                 True for backwards compatibility."},{"line_number":232,"context_line":"        :type is_admin_project: bool"},{"line_number":233,"context_line":"        \"\"\""},{"line_number":234,"context_line":"        # setting to private variables to avoid triggering subclass properties"},{"line_number":235,"context_line":"        self._user_id \u003d user_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_6bafa129","line":232,"in_reply_to":"5f7c97a3_e5bd22b7","updated":"2018-05-15 19:10:10.000000000","message":"Done. Took a crack at describing it, but let me know if it\u0027s not clear.","commit_id":"34078d7d48a321d00fe1338a8b87f558c2acd12d"},{"author":{"_account_id":11589,"name":"Harry Rybacki","email":"hrybacki@redhat.com","username":"hrybacki"},"change_message_id":"cfd616194bd8a7256af3413a246bd984dbea5ddc","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        with either deprecated values or additional attributes used by that"},{"line_number":311,"context_line":"        service specific policy."},{"line_number":312,"context_line":"        \"\"\""},{"line_number":313,"context_line":"        # NOTE(jamielennox): We need a way to allow projects to provide old"},{"line_number":314,"context_line":"        # deprecated policy values that trigger a warning when used in favour"},{"line_number":315,"context_line":"        # of our standard ones. This object acts like a dict but only values"},{"line_number":316,"context_line":"        # from oslo.policy don\u0027t show a warning."},{"line_number":317,"context_line":"        return _DeprecatedPolicyValues({"},{"line_number":318,"context_line":"            \u0027user_id\u0027: self.user_id,"},{"line_number":319,"context_line":"            \u0027user_domain_id\u0027: self.user_domain_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_e1b09f45","line":316,"range":{"start_line":313,"start_character":8,"end_line":316,"end_character":48},"updated":"2018-05-16 14:42:18.000000000","message":"Have we done this already?","commit_id":"de869a47affb819d39ec3623d7caec536c487d1d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4943b243395f5569b86f93ec7703d1482eb1279b","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        with either deprecated values or additional attributes used by that"},{"line_number":311,"context_line":"        service specific policy."},{"line_number":312,"context_line":"        \"\"\""},{"line_number":313,"context_line":"        # NOTE(jamielennox): We need a way to allow projects to provide old"},{"line_number":314,"context_line":"        # deprecated policy values that trigger a warning when used in favour"},{"line_number":315,"context_line":"        # of our standard ones. This object acts like a dict but only values"},{"line_number":316,"context_line":"        # from oslo.policy don\u0027t show a warning."},{"line_number":317,"context_line":"        return _DeprecatedPolicyValues({"},{"line_number":318,"context_line":"            \u0027user_id\u0027: self.user_id,"},{"line_number":319,"context_line":"            \u0027user_domain_id\u0027: self.user_domain_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_2139b7f0","line":316,"range":{"start_line":313,"start_character":8,"end_line":316,"end_character":48},"in_reply_to":"5f7c97a3_e1b09f45","updated":"2018-05-16 15:08:06.000000000","message":"Yeah - it looks like the warning is handled by the _DeprecatedPolicyValues class. The dictionary here is getting passing in as data and not the deprecated values.","commit_id":"de869a47affb819d39ec3623d7caec536c487d1d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"fc2054d9c9c036df70cc4e1e491ae506cdbc353f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_bc6f2e26","line":52,"updated":"2018-05-16 15:31:51.000000000","message":"Should the key here also be system_scope?","commit_id":"cf409f11824778c711616e615df4dc61b344fb09"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"fa91b221f626929a0ac56addf8ea74a52ea902f9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027project_id\u0027: [\u0027HTTP_X_PROJECT_ID\u0027,"},{"line_number":50,"context_line":"                   \u0027HTTP_X_TENANT_ID\u0027,"},{"line_number":51,"context_line":"                   \u0027HTTP_X_TENANT\u0027],"},{"line_number":52,"context_line":"    \u0027system\u0027: [\u0027HTTP_OPENSTACK_SYSTEM_SCOPE\u0027],"},{"line_number":53,"context_line":"    \u0027user_domain_id\u0027: [\u0027HTTP_X_USER_DOMAIN_ID\u0027],"},{"line_number":54,"context_line":"    \u0027project_domain_id\u0027: [\u0027HTTP_X_PROJECT_DOMAIN_ID\u0027],"},{"line_number":55,"context_line":"    \u0027user_name\u0027: [\u0027HTTP_X_USER_NAME\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_7508c8d8","line":52,"in_reply_to":"5f7c97a3_bc6f2e26","updated":"2018-05-16 18:03:35.000000000","message":"Done","commit_id":"cf409f11824778c711616e615df4dc61b344fb09"}],"oslo_context/tests/test_context.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8224a2bf43c5b91cc0be95c90f2c59567e780b6f","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                          \u0027service_roles\u0027: service_roles},"},{"line_number":567,"context_line":"                         ctx.to_policy_values())"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        system \u003d \u0027all\u0027"},{"line_number":570,"context_line":"        ctx \u003d context.RequestContext(user\u003duser,"},{"line_number":571,"context_line":"                                     user_domain\u003duser_domain,"},{"line_number":572,"context_line":"                                     system\u003dsystem,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_c5c90626","line":569,"updated":"2018-05-15 16:03:27.000000000","message":"On IRC you mentioned that this was a special value. Should it be kept as a const or enum or something?","commit_id":"34078d7d48a321d00fe1338a8b87f558c2acd12d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7507247db7d5267789b1dc1c87137002e44d8d34","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                          \u0027service_roles\u0027: service_roles},"},{"line_number":567,"context_line":"                         ctx.to_policy_values())"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        system \u003d \u0027all\u0027"},{"line_number":570,"context_line":"        ctx \u003d context.RequestContext(user\u003duser,"},{"line_number":571,"context_line":"                                     user_domain\u003duser_domain,"},{"line_number":572,"context_line":"                                     system\u003dsystem,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_0baaad17","line":569,"in_reply_to":"5f7c97a3_c5c90626","updated":"2018-05-15 19:10:10.000000000","message":"Done","commit_id":"34078d7d48a321d00fe1338a8b87f558c2acd12d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1bc6645bdfe591c577095a395ac224af39daa553","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# NOTE(lbragstad): This string has special meaning in that the value ``all``"},{"line_number":28,"context_line":"# represents the entire deployment system."},{"line_number":29,"context_line":"SYSTEM_ALL \u003d \u0027all\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def generate_id(name):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_868234ff","line":29,"updated":"2018-05-15 18:06:56.000000000","message":"Should the special value be defined in the production code? Are other applications going to want to refer to it?","commit_id":"de869a47affb819d39ec3623d7caec536c487d1d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ae2640d7c4b2ef556b2ad58b43c0a71157a94f94","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# NOTE(lbragstad): This string has special meaning in that the value ``all``"},{"line_number":28,"context_line":"# represents the entire deployment system."},{"line_number":29,"context_line":"SYSTEM_ALL \u003d \u0027all\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def generate_id(name):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_9316f3a7","line":29,"in_reply_to":"5f7c97a3_868234ff","updated":"2018-05-15 21:52:41.000000000","message":"No probably not. Should this be a class variable instead then?","commit_id":"de869a47affb819d39ec3623d7caec536c487d1d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"782575ed7325de805b9ec0d5b57ee8e995bd85ac","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# NOTE(lbragstad): This string has special meaning in that the value ``all``"},{"line_number":28,"context_line":"# represents the entire deployment system."},{"line_number":29,"context_line":"SYSTEM_ALL \u003d \u0027all\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"def generate_id(name):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_cb8b42bd","line":29,"in_reply_to":"5f7c97a3_9316f3a7","updated":"2018-05-16 13:56:52.000000000","message":"When we talked on IRC, I thought \u0027all\u0027 was one of several special values and that we would want to put those in a well-defined place. If nothing else in oslo.context or another application is going to use it, then you could just go back to using an inline literal in the test.","commit_id":"de869a47affb819d39ec3623d7caec536c487d1d"},{"author":{"_account_id":11589,"name":"Harry Rybacki","email":"hrybacki@redhat.com","username":"hrybacki"},"change_message_id":"290acd227e3c22312cbd6a1a6bd539509483209b","unresolved":false,"context_lines":[{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        # NOTE(lbragstad): This string has special meaning in that the value"},{"line_number":570,"context_line":"        # ``all`` represents the entire deployment system."},{"line_number":571,"context_line":"        system_all \u003d \u0027all\u0027"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        ctx \u003d context.RequestContext(user\u003duser,"},{"line_number":574,"context_line":"                                     user_domain\u003duser_domain,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_e1c73f95","line":571,"range":{"start_line":571,"start_character":8,"end_line":571,"end_character":18},"updated":"2018-05-16 14:46:12.000000000","message":"SYSTEM_ALL ?","commit_id":"cf409f11824778c711616e615df4dc61b344fb09"},{"author":{"_account_id":11589,"name":"Harry Rybacki","email":"hrybacki@redhat.com","username":"hrybacki"},"change_message_id":"4d56df12d552757e07e01598a4bf01e6e19a6a85","unresolved":false,"context_lines":[{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        # NOTE(lbragstad): This string has special meaning in that the value"},{"line_number":570,"context_line":"        # ``all`` represents the entire deployment system."},{"line_number":571,"context_line":"        system_all \u003d \u0027all\u0027"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        ctx \u003d context.RequestContext(user\u003duser,"},{"line_number":574,"context_line":"                                     user_domain\u003duser_domain,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_01227bb9","line":571,"range":{"start_line":571,"start_character":8,"end_line":571,"end_character":18},"in_reply_to":"5f7c97a3_01afdb29","updated":"2018-05-16 15:08:35.000000000","message":"Sorry, I meant \u0027should we make this all caps to indicate a constant?\u0027\n\nI don\u0027t feel strongly about \u0027system_all\u0027 but I don\u0027t think we should use either \u0027system\u0027 or \u0027all\u0027 alone, anywhere, ever if possible :P","commit_id":"cf409f11824778c711616e615df4dc61b344fb09"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6f19c50b9e24c08f53b6c3b419ea840b0a5c269d","unresolved":false,"context_lines":[{"line_number":568,"context_line":""},{"line_number":569,"context_line":"        # NOTE(lbragstad): This string has special meaning in that the value"},{"line_number":570,"context_line":"        # ``all`` represents the entire deployment system."},{"line_number":571,"context_line":"        system_all \u003d \u0027all\u0027"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        ctx \u003d context.RequestContext(user\u003duser,"},{"line_number":574,"context_line":"                                     user_domain\u003duser_domain,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_01afdb29","line":571,"range":{"start_line":571,"start_character":8,"end_line":571,"end_character":18},"in_reply_to":"5f7c97a3_e1c73f95","updated":"2018-05-16 15:05:21.000000000","message":"Yeah - I tried to make the variable name here more descriptive based on one of Doug\u0027s previous comments.\n\nMaybe now that I\u0027ve commented it, we don\u0027t need _all bit?","commit_id":"cf409f11824778c711616e615df4dc61b344fb09"}]}
