)]}'
{"patrole_tempest_plugin/tests/api/identity/v3/test_roles_rbac.py":[{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"25309b8f49f60f266e2b0c579378d678a7377d6c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        cls.role \u003d cls.setup_test_role()"},{"line_number":38,"context_line":"        cls.implies_role \u003d cls.setup_test_role()"},{"line_number":39,"context_line":"        if not CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":40,"context_line":"            cls.user \u003d cls.setup_test_user()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":43,"context_line":"                                 rules\u003d[\"identity:create_role\"])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_eee2b301","line":40,"range":{"start_line":40,"start_character":12,"end_line":40,"end_character":44},"updated":"2019-09-06 00:59:50.000000000","message":"instead of creating a user can this use the alt creds user to act upon. that would do less skipping","commit_id":"c01682cef65811b268837d776062eeaf2ab0b40a"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"b1b5aac1fa122d8ede2ed0d050902f2237aa4e5a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        cls.role \u003d cls.setup_test_role()"},{"line_number":38,"context_line":"        cls.implies_role \u003d cls.setup_test_role()"},{"line_number":39,"context_line":"        if not CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":40,"context_line":"            cls.user \u003d cls.setup_test_user()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":43,"context_line":"                                 rules\u003d[\"identity:create_role\"])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_902e6ca3","line":40,"range":{"start_line":40,"start_character":12,"end_line":40,"end_character":44},"in_reply_to":"5faad753_df675025","updated":"2019-09-10 20:57:25.000000000","message":"Thanks for the reviews. In next PS, I refactored so that the tests that create a new user are in a different class","commit_id":"c01682cef65811b268837d776062eeaf2ab0b40a"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ad0b948d01bb6e2fb463074dbf4ff5977a21ad74","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        cls.role \u003d cls.setup_test_role()"},{"line_number":38,"context_line":"        cls.implies_role \u003d cls.setup_test_role()"},{"line_number":39,"context_line":"        if not CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":40,"context_line":"            cls.user \u003d cls.setup_test_user()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":43,"context_line":"                                 rules\u003d[\"identity:create_role\"])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_df675025","line":40,"range":{"start_line":40,"start_character":12,"end_line":40,"end_character":44},"in_reply_to":"5faad753_eee2b301","updated":"2019-09-06 22:58:43.000000000","message":"I think it could be risky to do so, but it is a possible alternative. However, I think we are better off creating a separate class for all of these tests. Doing this here makes the code harder to maintain because if any other test accesses self.user without the skip check then an exception will be raised.","commit_id":"c01682cef65811b268837d776062eeaf2ab0b40a"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"53b362caa40f4bc59b565c8708ca56a0ea13897d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        cls.group \u003d cls.setup_test_group()"},{"line_number":32,"context_line":"        cls.role \u003d cls.setup_test_role()"},{"line_number":33,"context_line":"        cls.implies_role \u003d cls.setup_test_role()"},{"line_number":34,"context_line":"        cls.user \u003d cls.setup_test_user()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":37,"context_line":"                                 rules\u003d[\"identity:create_role\"])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_014480b6","side":"PARENT","line":34,"range":{"start_line":34,"start_character":8,"end_line":34,"end_character":40},"updated":"2019-09-19 17:58:30.000000000","message":"++","commit_id":"d9b68e81a0eccb95bf24be7afaf6a9e1745ea979"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"73faee53b0c2aca0e83600568800e18cc49a2a21","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        cls.group \u003d cls.setup_test_group()"},{"line_number":32,"context_line":"        cls.role \u003d cls.setup_test_role()"},{"line_number":33,"context_line":"        cls.implies_role \u003d cls.setup_test_role()"},{"line_number":34,"context_line":"        cls.user \u003d cls.setup_test_user()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":37,"context_line":"                                 rules\u003d[\"identity:create_role\"])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_53f56b82","side":"PARENT","line":34,"range":{"start_line":34,"start_character":8,"end_line":34,"end_character":40},"in_reply_to":"3fa7e38b_014480b6","updated":"2019-09-19 19:05:43.000000000","message":"Thanks for the review. I assume that \"++\" means nothing right?","commit_id":"d9b68e81a0eccb95bf24be7afaf6a9e1745ea979"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"53b362caa40f4bc59b565c8708ca56a0ea13897d","unresolved":false,"context_lines":[{"line_number":269,"context_line":"            self.roles_client.list_all_role_inference_rules()"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class IdentityRolesV3NewUserRbacTest(IdentityRolesV3RbacTest):"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    @classmethod"},{"line_number":275,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_e14fe4ba","line":272,"range":{"start_line":272,"start_character":37,"end_line":272,"end_character":60},"updated":"2019-09-19 17:58:30.000000000","message":"This should inherit from class IdentityRolesV3RbacTest(rbac_base.BaseIdentityV3RbacTest):\n to avoid rerunning the same tests 2 times.\n\nAlso, the class name isn\u0027t really pointing out what this is for. Could we rename it to `IdentityRolesUserCreationV3RbacTest` instead?\n\nAlso adding a comment underneath it like:\n\n\"\"\"Tests identity roles v3 API endpoints that require user creation. This is in a separate class to better manage immutable user source feature flag.\"\"\"","commit_id":"a913d68b430a47207d2070bbe08ed36f0adcc32f"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"73faee53b0c2aca0e83600568800e18cc49a2a21","unresolved":false,"context_lines":[{"line_number":269,"context_line":"            self.roles_client.list_all_role_inference_rules()"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class IdentityRolesV3NewUserRbacTest(IdentityRolesV3RbacTest):"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    @classmethod"},{"line_number":275,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_13eff3b0","line":272,"range":{"start_line":272,"start_character":37,"end_line":272,"end_character":60},"in_reply_to":"3fa7e38b_e14fe4ba","updated":"2019-09-19 19:05:43.000000000","message":"Whoops, yes you are right. Let me update this. Will also change the class name and add the comment. Thanks. \n\nWill need to name the class to something shorter like \u0027IdentityRolesUserCreateV3RbacTest\u0027 to avoid the error below. \n\n\n Details: {u\u0027message\u0027: u\"Invalid input for field \u0027name\u0027: u\u0027tempest-IdentityRolesUserCreationV3RbacTest-test_domain-1141604187\u0027 is too long\\n\\nFailed validating \u0027maxLength\u0027 in schema[\u0027properties\u0027][\u0027name\u0027]:\\n    {\u0027maxLength\u0027: 64,\\n     \u0027minLength\u0027: 1,\\n","commit_id":"a913d68b430a47207d2070bbe08ed36f0adcc32f"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"53b362caa40f4bc59b565c8708ca56a0ea13897d","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    @classmethod"},{"line_number":275,"context_line":"    def skip_checks(cls):"},{"line_number":276,"context_line":"        super(IdentityRolesV3NewUserRbacTest, cls).skip_checks()"},{"line_number":277,"context_line":"        if CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":278,"context_line":"            raise cls.skipException(\u0027Skipped because environment has an \u0027"},{"line_number":279,"context_line":"                                    \u0027immutable user source and solely \u0027"},{"line_number":280,"context_line":"                                    \u0027provides read-only access to users.\u0027)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @classmethod"},{"line_number":283,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_413a7834","line":280,"range":{"start_line":277,"start_character":0,"end_line":280,"end_character":74},"updated":"2019-09-19 17:58:30.000000000","message":"++","commit_id":"a913d68b430a47207d2070bbe08ed36f0adcc32f"}],"patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"cc67d02ef398d57658b968db904be98bd89df48f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        if not CONF.identity_feature_enabled.trust:"},{"line_number":34,"context_line":"            raise cls.skipException("},{"line_number":35,"context_line":"                \"%s skipped as trust feature isn\u0027t enabled\" % cls.__name__)"},{"line_number":36,"context_line":"        if CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":37,"context_line":"            raise cls.skipException(\u0027Skipped because environment has an \u0027"},{"line_number":38,"context_line":"                                    \u0027immutable user source and solely \u0027"},{"line_number":39,"context_line":"                                    \u0027provides read-only access to users.\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_a0d9ff56","line":39,"range":{"start_line":36,"start_character":8,"end_line":39,"end_character":74},"updated":"2019-08-25 14:41:48.000000000","message":"Makes sense because of L50, also consistent with Tempest: https://github.com/openstack/tempest/blob/e535cb5124095e90315264844af81fa5e8b131f7/tempest/api/identity/admin/v3/test_trusts.py#L37","commit_id":"441c40bf919fc764a920ffe2920552d5502b85ef"},{"author":{"_account_id":17887,"name":"Doug Schveninger","email":"ds6901@att.com","username":"Doug.Schveninger"},"change_message_id":"25309b8f49f60f266e2b0c579378d678a7377d6c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # user_id:%(trust.trustor_user_id)s will thereby evaluate to"},{"line_number":46,"context_line":"        # \"primary user\u0027s user_id:primary user\u0027s user_id\" which evaluates to"},{"line_number":47,"context_line":"        # true."},{"line_number":48,"context_line":"        cls.trustor_user_id \u003d cls.os_primary.credentials.user_id"},{"line_number":49,"context_line":"        cls.trustor_project_id \u003d cls.os_primary.credentials.project_id"},{"line_number":50,"context_line":"        cls.trustee_user_id \u003d cls.setup_test_user()[\u0027id\u0027]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # The \"unauthorized_user_id\" does not have permissions to create a"},{"line_number":53,"context_line":"        # trust because the user_id in \"user_id:%(trust.trustor_user_id)s\" (the"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_8e769f3e","line":50,"range":{"start_line":48,"start_character":8,"end_line":50,"end_character":57},"updated":"2019-09-06 00:59:50.000000000","message":"could you use admin creds for setup and trustor then primary for trustee and alt for unauthorized","commit_id":"c01682cef65811b268837d776062eeaf2ab0b40a"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"b1b5aac1fa122d8ede2ed0d050902f2237aa4e5a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # user_id:%(trust.trustor_user_id)s will thereby evaluate to"},{"line_number":46,"context_line":"        # \"primary user\u0027s user_id:primary user\u0027s user_id\" which evaluates to"},{"line_number":47,"context_line":"        # true."},{"line_number":48,"context_line":"        cls.trustor_user_id \u003d cls.os_primary.credentials.user_id"},{"line_number":49,"context_line":"        cls.trustor_project_id \u003d cls.os_primary.credentials.project_id"},{"line_number":50,"context_line":"        cls.trustee_user_id \u003d cls.setup_test_user()[\u0027id\u0027]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # The \"unauthorized_user_id\" does not have permissions to create a"},{"line_number":53,"context_line":"        # trust because the user_id in \"user_id:%(trust.trustor_user_id)s\" (the"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_240e5932","line":50,"range":{"start_line":48,"start_character":8,"end_line":50,"end_character":57},"in_reply_to":"5faad753_8e769f3e","updated":"2019-09-10 20:57:25.000000000","message":"I didn\u0027t try this yet, but can try in future commit","commit_id":"c01682cef65811b268837d776062eeaf2ab0b40a"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"1a0009fe4a760c9d316a020b774203ff6129785a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            raise cls.skipException("},{"line_number":35,"context_line":"                \"%s skipped as trust feature isn\u0027t enabled\" % cls.__name__)"},{"line_number":36,"context_line":"        if CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":37,"context_line":"            raise cls.skipException(\u0027Skipped because environment has an \u0027"},{"line_number":38,"context_line":"                                    \u0027immutable user source and solely \u0027"},{"line_number":39,"context_line":"                                    \u0027provides read-only access to users.\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_84175ba4","line":39,"range":{"start_line":37,"start_character":12,"end_line":39,"end_character":74},"updated":"2019-10-01 19:56:50.000000000","message":"gmann blocked another PR over this: https://review.opendev.org/#/c/683834/1\n\nI replied to him in that PR above. I think that there is precedence for this so I am fine with this. This is regards to the compatibility of this exception with regards to which test runner is being used. Just want to get clarification before +2ing this.","commit_id":"a858411a3fb7e7aff101d49765ca60b24ff5c501"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"5ac3da78c46a32b0e5515686b70e21ea8730779c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            raise cls.skipException("},{"line_number":35,"context_line":"                \"%s skipped as trust feature isn\u0027t enabled\" % cls.__name__)"},{"line_number":36,"context_line":"        if CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":37,"context_line":"            raise cls.skipException(\u0027Skipped because environment has an \u0027"},{"line_number":38,"context_line":"                                    \u0027immutable user source and solely \u0027"},{"line_number":39,"context_line":"                                    \u0027provides read-only access to users.\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_a6979b90","line":39,"range":{"start_line":37,"start_character":12,"end_line":39,"end_character":74},"in_reply_to":"3fa7e38b_84175ba4","updated":"2019-10-08 13:42:59.000000000","message":"Thanks, I read over the conversation in the linked review. Will make updates if requested to.","commit_id":"a858411a3fb7e7aff101d49765ca60b24ff5c501"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"181fbaf4a642e549a767e5719a339f4a3b2c664c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            raise cls.skipException("},{"line_number":35,"context_line":"                \"%s skipped as trust feature isn\u0027t enabled\" % cls.__name__)"},{"line_number":36,"context_line":"        if CONF.identity_feature_enabled.immutable_user_source:"},{"line_number":37,"context_line":"            raise cls.skipException(\u0027Skipped because environment has an \u0027"},{"line_number":38,"context_line":"                                    \u0027immutable user source and solely \u0027"},{"line_number":39,"context_line":"                                    \u0027provides read-only access to users.\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_21db674e","line":39,"range":{"start_line":37,"start_character":12,"end_line":39,"end_character":74},"in_reply_to":"3fa7e38b_a6979b90","updated":"2020-01-03 02:10:25.000000000","message":"we have handled that in test base class. this is ok now.","commit_id":"a858411a3fb7e7aff101d49765ca60b24ff5c501"}]}
