)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9ff8d4c8_8e23e83a","updated":"2022-01-07 07:48:03.000000000","message":"Sadly this is currently broken, see inline.\n\nIt would be good to extend the functional tests with extra role assignments so that the case of a non-working filter can be detected.\n\nAlso I think a release note would be useful.","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"dd66bb7c9d64e3c6369c7c8b82c4e3167fa71c48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0a2829c0_1641a936","updated":"2022-01-07 07:58:07.000000000","message":"This is only a part implementation (cloud layer, but proxy layer is missing). Moreover in a R1 branch a heavy refactor happened here and will be merged in next few weeks which will be conflicting with that change.","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"5ec63148e8aecbe6ec3e0e2f772870bb805274ba","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3361df73_ca5c5b46","in_reply_to":"0425b968_430f3108","updated":"2022-01-07 16:47:32.000000000","message":"you can either wait or have a look in the feature/r1 branch and make change into it (at least you can start playing around there)","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":30810,"name":"James Kirsch","email":"generalfuzz@gmail.com","username":"generalfuzz"},"change_message_id":"843fec936f6a23a6cc68176f1891558783aed21b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0425b968_430f3108","in_reply_to":"0a2829c0_1641a936","updated":"2022-01-07 16:28:38.000000000","message":"Is there a patchset for the refactor? Could I try to put this in there, or should I wait until it lands?","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"}],"openstack/cloud/_identity.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":1159,"context_line":"                del filters[k]"},{"line_number":1160,"context_line":"        for k in (\u0027project\u0027, \u0027domain\u0027, \u0027system\u0027):"},{"line_number":1161,"context_line":"            if k in filters:"},{"line_number":1162,"context_line":"                filters[\u0027scope.\u0027 + k + \u0027.id\u0027] \u003d filters[k]"},{"line_number":1163,"context_line":"                del filters[k]"},{"line_number":1164,"context_line":"        if \u0027os_inherit_extension_inherited_to\u0027 in filters:"},{"line_number":1165,"context_line":"            filters[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"357f0706_4ea337af","line":1162,"updated":"2022-01-07 07:48:03.000000000","message":"According to the api-ref, the filter name should be \"scope.system\" only? Doing a local test, the current filter has no effect, always returns all role assignments.\n\nIn addition, keystone client checks for the value and only allows \"all\", I wonder whether we should do the same here, since filtering for e.g. \"any\" instead also returns all role assignments.\nhttps://opendev.org/openstack/python-keystoneclient/src/branch/master/keystoneclient/v3/role_assignments.py#L59-L62","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":1188,"context_line":"            * \u0027include_subtree\u0027 (boolean) - Include subtree"},{"line_number":1189,"context_line":""},{"line_number":1190,"context_line":"            \u0027user\u0027 and \u0027group\u0027 are mutually exclusive, as are \u0027domain\u0027,"},{"line_number":1191,"context_line":"            \u0027project\u0027, and \u0027system\u0027"},{"line_number":1192,"context_line":""},{"line_number":1193,"context_line":"            NOTE: For keystone v2, only user, project, and role are used."},{"line_number":1194,"context_line":"                  Project and user are both required in filters."}],"source_content_type":"text/x-python","patch_set":3,"id":"7a22400c_8796dc8a","line":1191,"range":{"start_line":1191,"start_character":21,"end_line":1191,"end_character":22},"updated":"2022-01-07 07:48:03.000000000","message":"No comma here, missing dot at the end of the line.","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":"                - id: \u003crole id\u003e"},{"line_number":1200,"context_line":"                - user|group: \u003cuser or group id\u003e"},{"line_number":1201,"context_line":"                - project|domain: \u003cproject or domain id\u003e"},{"line_number":1202,"context_line":""},{"line_number":1203,"context_line":"        :raises: ``OpenStackCloudException``: if something goes wrong during"},{"line_number":1204,"context_line":"            the OpenStack API call."}],"source_content_type":"text/x-python","patch_set":3,"id":"f2dbea13_8bfd8234","line":1201,"updated":"2022-01-07 07:48:03.000000000","message":"This part is missing for system scope role assignments, which might be considered a bug (unrelated to this patch).","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":1402,"context_line":"            if data.get(\u0027project\u0027) is None and data.get(\u0027domain\u0027) is None \\"},{"line_number":1403,"context_line":"                    and system is None:"},{"line_number":1404,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":1405,"context_line":"                    \u0027Must specify either a domain, project, or system\u0027)"},{"line_number":1406,"context_line":""},{"line_number":1407,"context_line":"            # For v3, figure out the assignment type and build the URL"},{"line_number":1408,"context_line":"            if system:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3898cec1_67800ff3","line":1405,"range":{"start_line":1405,"start_character":58,"end_line":1405,"end_character":59},"updated":"2022-01-07 07:48:03.000000000","message":"No comma here","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":1407,"context_line":"            # For v3, figure out the assignment type and build the URL"},{"line_number":1408,"context_line":"            if system:"},{"line_number":1409,"context_line":"                url \u003d \"/system\""},{"line_number":1410,"context_line":"            else:"},{"line_number":1411,"context_line":"                if data.get(\u0027domain\u0027):"},{"line_number":1412,"context_line":"                    url \u003d \"/domains/{}\".format(data[\u0027domain\u0027])"},{"line_number":1413,"context_line":"                else:"},{"line_number":1414,"context_line":"                    url \u003d \"/projects/{}\".format(data[\u0027project\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"1dd88ba3_e290bfce","line":1411,"range":{"start_line":1410,"start_character":12,"end_line":1411,"end_character":18},"updated":"2022-01-07 07:48:03.000000000","message":"Use elif to avoid the extra indentation?","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":1487,"context_line":"            if data.get(\u0027project\u0027) is None and data.get(\u0027domain\u0027) is None \\"},{"line_number":1488,"context_line":"                    and system is None:"},{"line_number":1489,"context_line":"                raise exc.OpenStackCloudException("},{"line_number":1490,"context_line":"                    \u0027Must specify either a domain, project, or system\u0027)"},{"line_number":1491,"context_line":""},{"line_number":1492,"context_line":"            # For v3, figure out the assignment type and build the URL"},{"line_number":1493,"context_line":"            if system:"}],"source_content_type":"text/x-python","patch_set":3,"id":"dec65066_63b6a7c9","line":1490,"range":{"start_line":1490,"start_character":58,"end_line":1490,"end_character":59},"updated":"2022-01-07 07:48:03.000000000","message":"No comma here","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":1492,"context_line":"            # For v3, figure out the assignment type and build the URL"},{"line_number":1493,"context_line":"            if system:"},{"line_number":1494,"context_line":"                url \u003d \"/system/\""},{"line_number":1495,"context_line":"            else:"},{"line_number":1496,"context_line":"                if data.get(\u0027domain\u0027):"},{"line_number":1497,"context_line":"                    url \u003d \"/domains/{}\".format(data[\u0027domain\u0027])"},{"line_number":1498,"context_line":"                else:"},{"line_number":1499,"context_line":"                    url \u003d \"/projects/{}\".format(data[\u0027project\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"08f6144a_487bf6ea","line":1496,"range":{"start_line":1495,"start_character":12,"end_line":1496,"end_character":18},"updated":"2022-01-07 07:48:03.000000000","message":"elif?","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"}],"openstack/tests/functional/cloud/test_identity.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"95ca535f64f48e51173620e8367c151b9372fb45","unresolved":true,"context_lines":[{"line_number":259,"context_line":"        user \u003d self._create_user(name\u003duser_name,"},{"line_number":260,"context_line":"                                 email\u003duser_email)"},{"line_number":261,"context_line":"        self.assertTrue(self.operator_cloud.grant_role("},{"line_number":262,"context_line":"            role_name, user\u003duser[\u0027id\u0027], system\u003dTrue, wait\u003dTrue))"},{"line_number":263,"context_line":"        assignments \u003d self.operator_cloud.list_role_assignments({"},{"line_number":264,"context_line":"            \u0027role\u0027: role[\u0027id\u0027],"},{"line_number":265,"context_line":"            \u0027user\u0027: user[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"35f4b5af_2a05e20a","line":262,"updated":"2022-01-07 07:48:03.000000000","message":"Do we really need to wait? Most tests above don\u0027t use this and I don\u0027t see where this would be an async operation.","commit_id":"27f9b28c904f783aa49848901fcf8e56c3c7ccb2"}]}
