)]}'
{"patrole_tempest_plugin/tests/api/identity/rbac_base.py":[{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"b265529f85e0ea9a713373bd126bded228493227","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        cls.projects \u003d []"},{"line_number":245,"context_line":"        cls.regions \u003d []"},{"line_number":246,"context_line":"        cls.trusts \u003d []"},{"line_number":247,"context_line":"        cls.tokens \u003d []"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    @classmethod"},{"line_number":250,"context_line":"    def resource_cleanup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_5d638fb2","line":247,"updated":"2017-05-25 15:37:24.000000000","message":"Why is this being created both here and in the class this inherits from?","commit_id":"e04ffe27266fc04ae9e571c99c378c2395eed3e8"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"b265529f85e0ea9a713373bd126bded228493227","unresolved":false,"context_lines":[{"line_number":280,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":281,"context_line":"                cls.trusts_client.delete_trust, trust[\u0027id\u0027])"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        for token in cls.tokens:"},{"line_number":284,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":285,"context_line":"                cls.client.delete_token, token)"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_dd6e7f95","line":283,"updated":"2017-05-25 15:37:24.000000000","message":"See L247","commit_id":"e04ffe27266fc04ae9e571c99c378c2395eed3e8"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"f5dc0ff155c99951b95d39e037a5121aa4973c35","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        cls.projects \u003d []"},{"line_number":239,"context_line":"        cls.regions \u003d []"},{"line_number":240,"context_line":"        cls.trusts \u003d []"},{"line_number":241,"context_line":"        cls.tokens \u003d []"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @classmethod"},{"line_number":244,"context_line":"    def resource_cleanup(cls):"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f201791_4a5fec71","line":241,"updated":"2017-06-22 22:10:55.000000000","message":"Since this is used in both this class and the v2 base class, it can be factored out to BaseIdentityRbacTest","commit_id":"7429c6fae181e7b1d0c095682ebd935ded005b8c"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"20da90ae6bedaf16236068e6dbba14d50a7eb779","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        cls.projects \u003d []"},{"line_number":239,"context_line":"        cls.regions \u003d []"},{"line_number":240,"context_line":"        cls.trusts \u003d []"},{"line_number":241,"context_line":"        cls.tokens \u003d []"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @classmethod"},{"line_number":244,"context_line":"    def resource_cleanup(cls):"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f201791_b32a18d8","line":241,"in_reply_to":"5f201791_4a5fec71","updated":"2017-06-27 12:36:45.000000000","message":"Samantha, thanks for your comments, although I welcome your thoughts here,these comments were somehow missed out for token v2 patrole testcases which is already merged. \n\nWe can definitely do this as part of another patchset for both v2 and v3. Hope this is acceptable.","commit_id":"7429c6fae181e7b1d0c095682ebd935ded005b8c"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"f5dc0ff155c99951b95d39e037a5121aa4973c35","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":275,"context_line":"                cls.trusts_client.delete_trust, trust[\u0027id\u0027])"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        for token in cls.tokens:"},{"line_number":278,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":279,"context_line":"                cls.identity_client.delete_token, token)"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f201791_2a56f05d","line":277,"updated":"2017-06-22 22:10:55.000000000","message":"See L241","commit_id":"7429c6fae181e7b1d0c095682ebd935ded005b8c"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"20da90ae6bedaf16236068e6dbba14d50a7eb779","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":275,"context_line":"                cls.trusts_client.delete_trust, trust[\u0027id\u0027])"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        for token in cls.tokens:"},{"line_number":278,"context_line":"            test_utils.call_and_ignore_notfound_exc("},{"line_number":279,"context_line":"                cls.identity_client.delete_token, token)"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f201791_137f8ce0","line":277,"in_reply_to":"5f201791_2a56f05d","updated":"2017-06-27 12:36:45.000000000","message":"same as above","commit_id":"7429c6fae181e7b1d0c095682ebd935ded005b8c"}],"patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d9ec74d9085ceb8d2a45c1557d16c11b743f8fca","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"},{"line_number":33,"context_line":"        super(IdentityTokenV3RbacTest, cls).skip_checks()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_fc066486","line":33,"updated":"2017-06-14 13:16:42.000000000","message":"Since all the tests do the same skip, add the skip here instead of in each test case.\n\nif CONF.rbac.rbac_test_role \u003d\u003d CONF.identity.admin_role:\n    raise self.skipException(\n        \"Skipped as admin role doesn\u0027t require negative testing\")\n\nAlso, use cls.rbac_utils.is_admin instead of CONF.rbac.rbac_test_role \u003d\u003d CONF.identity.admin_role if possible.","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"8a9b128abfae58f568a3c542aacab950714c23d9","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"},{"line_number":33,"context_line":"        super(IdentityTokenV3RbacTest, cls).skip_checks()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_cf406ca8","line":33,"in_reply_to":"7f231b9d_fc066486","updated":"2017-06-15 12:24:32.000000000","message":"we\u0027ll not be able to use rbac_utils.is_admin from a class method as we dont have access to its instance here","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d9ec74d9085ceb8d2a45c1557d16c11b743f8fca","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":58,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":59,"context_line":"        # skipping negative testcase"},{"line_number":60,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d CONF.identity.admin_role:"},{"line_number":61,"context_line":"            raise self.skipException("},{"line_number":62,"context_line":"                \"skipped as admin role is already tested\")"},{"line_number":63,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_7ce7f413","line":60,"range":{"start_line":60,"start_character":11,"end_line":60,"end_character":63},"updated":"2017-06-14 13:16:42.000000000","message":"self.rbac_utils.is_admin:","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"8a9b128abfae58f568a3c542aacab950714c23d9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":58,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":59,"context_line":"        # skipping negative testcase"},{"line_number":60,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d CONF.identity.admin_role:"},{"line_number":61,"context_line":"            raise self.skipException("},{"line_number":62,"context_line":"                \"skipped as admin role is already tested\")"},{"line_number":63,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_4f169caa","line":60,"range":{"start_line":60,"start_character":11,"end_line":60,"end_character":63},"in_reply_to":"7f231b9d_7ce7f413","updated":"2017-06-15 12:24:32.000000000","message":"removed the check itself","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8300bbc7fa1a440ee973a5cc1b7bfce5853a3d5f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    def test_validate_token_negative(self):"},{"line_number":59,"context_line":"        # Explicit negative test for identity:validate_token policy action."},{"line_number":60,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":61,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":62,"context_line":"        # skipping negative testcase"},{"line_number":63,"context_line":"        alt_token_id \u003d self._setup_alt_token()"},{"line_number":64,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f1d235d_54697df6","line":61,"range":{"start_line":61,"start_character":10,"end_line":61,"end_character":16},"updated":"2017-07-05 15:50:07.000000000","message":"In case","commit_id":"b03c9aec1d8f9108c98fb24a4516d2399a1baddd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8300bbc7fa1a440ee973a5cc1b7bfce5853a3d5f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        # Explicit negative test for identity:validate_token policy action."},{"line_number":60,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":61,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":62,"context_line":"        # skipping negative testcase"},{"line_number":63,"context_line":"        alt_token_id \u003d self._setup_alt_token()"},{"line_number":64,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":65,"context_line":"        e \u003d self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f1d235d_b47d71b3","line":62,"updated":"2017-07-05 15:50:07.000000000","message":"May we move the comment on L61-62 to L34? No need to repeat it every test.","commit_id":"b03c9aec1d8f9108c98fb24a4516d2399a1baddd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8300bbc7fa1a440ee973a5cc1b7bfce5853a3d5f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # Explicit negative test for identity:revoke_token policy action."},{"line_number":81,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":82,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":83,"context_line":"        # skipping negative testcase"},{"line_number":84,"context_line":"        alt_token_id \u003d self._setup_alt_token()"},{"line_number":85,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":86,"context_line":"        e \u003d self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f1d235d_143d45dc","line":83,"updated":"2017-07-05 15:50:07.000000000","message":"Ditto","commit_id":"b03c9aec1d8f9108c98fb24a4516d2399a1baddd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8300bbc7fa1a440ee973a5cc1b7bfce5853a3d5f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        # Explicit negative test for identity:check_token policy action."},{"line_number":102,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":103,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":104,"context_line":"        # skipping negative testcase"},{"line_number":105,"context_line":"        alt_token_id \u003d self._setup_alt_token()"},{"line_number":106,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":107,"context_line":"        e \u003d self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":23,"id":"3f1d235d_d4222db9","line":104,"updated":"2017-07-05 15:50:07.000000000","message":"Ditto","commit_id":"b03c9aec1d8f9108c98fb24a4516d2399a1baddd"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        super(IdentityTokenV3RbacTest, cls).skip_checks()"},{"line_number":34,"context_line":"        # In case of admin, the positive testcase would be used, hence"},{"line_number":35,"context_line":"        # skipping negative testcase"},{"line_number":36,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d CONF.identity.admin_role:"},{"line_number":37,"context_line":"            raise cls.skipException("},{"line_number":38,"context_line":"                \"Skipped as admin role doesn\u0027t require negative testing\")"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_7bfdccaf","line":36,"range":{"start_line":36,"start_character":11,"end_line":36,"end_character":63},"updated":"2017-07-11 22:05:37.000000000","message":"If possible, use:\n\n    cls.rbac_utils.is_admin","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"af426dbb5daa1f8e31c1c6ec4db604f0683712bf","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        super(IdentityTokenV3RbacTest, cls).skip_checks()"},{"line_number":34,"context_line":"        # In case of admin, the positive testcase would be used, hence"},{"line_number":35,"context_line":"        # skipping negative testcase"},{"line_number":36,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d CONF.identity.admin_role:"},{"line_number":37,"context_line":"            raise cls.skipException("},{"line_number":38,"context_line":"                \"Skipped as admin role doesn\u0027t require negative testing\")"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1f1a1f67_25361e54","line":36,"range":{"start_line":36,"start_character":11,"end_line":36,"end_character":63},"in_reply_to":"3f1d235d_7bfdccaf","updated":"2017-07-18 16:55:37.000000000","message":"no.its not possible to use cls.rbac_utils.is_admin inside this clssmethod. I think I had provided my comments earlier too.","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            raise cls.skipException("},{"line_number":38,"context_line":"                \"Skipped as admin role doesn\u0027t require negative testing\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def resource_setup(cls):"},{"line_number":42,"context_line":"        super(IdentityTokenV3RbacTest, cls).resource_setup()"},{"line_number":43,"context_line":"        cls.alt_user_id \u003d cls.os_alt.auth_provider.credentials.user_id"},{"line_number":44,"context_line":"        cls.alt_password \u003d cls.os_alt.auth_provider.credentials.password"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _setup_alt_token(self):"},{"line_number":47,"context_line":"        alt_token_id \u003d self.setup_test_token(self.alt_user_id,"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_3b0874d7","line":44,"range":{"start_line":40,"start_character":0,"end_line":44,"end_character":72},"updated":"2017-07-11 22:05:37.000000000","message":"This is only used below so we can get rid of this to make _setup_alt_token a more useful function.","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        cls.alt_password \u003d cls.os_alt.auth_provider.credentials.password"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _setup_alt_token(self):"},{"line_number":47,"context_line":"        alt_token_id \u003d self.setup_test_token(self.alt_user_id,"},{"line_number":48,"context_line":"                                             self.alt_password)"},{"line_number":49,"context_line":"        return alt_token_id"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @decorators.idempotent_id(\u0027c83c8f1a-79cb-4dc4-b55f-c7d2bfd98b1e\u0027)"},{"line_number":52,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_bb6ec493","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":27},"updated":"2017-07-11 22:05:37.000000000","message":"Can make this one line, i.e.:\n\nalt_user_id \u003d cls.os_alt.auth_provider.credentials.user_id\nalt_password \u003d cls.os_alt.auth_provider.credentials.password\nreturn self.setup_test_token(alt_user_id,\n                             alt_password)","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            \"target.token.user_id\":"},{"line_number":58,"context_line":"            \"os_alt.auth_provider.credentials.user_id\""},{"line_number":59,"context_line":"        })"},{"line_number":60,"context_line":"    def test_validate_token_negative(self):"},{"line_number":61,"context_line":"        # Explicit negative test for identity:validate_token policy action."},{"line_number":62,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":63,"context_line":"        alt_token_id \u003d self._setup_alt_token()"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_5b60d0a5","line":60,"range":{"start_line":60,"start_character":13,"end_line":60,"end_character":21},"updated":"2017-07-11 22:05:37.000000000","message":"show","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"af426dbb5daa1f8e31c1c6ec4db604f0683712bf","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            \"target.token.user_id\":"},{"line_number":58,"context_line":"            \"os_alt.auth_provider.credentials.user_id\""},{"line_number":59,"context_line":"        })"},{"line_number":60,"context_line":"    def test_validate_token_negative(self):"},{"line_number":61,"context_line":"        # Explicit negative test for identity:validate_token policy action."},{"line_number":62,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":63,"context_line":"        alt_token_id \u003d self._setup_alt_token()"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f1a1f67_e504a64c","line":60,"range":{"start_line":60,"start_character":13,"end_line":60,"end_character":21},"in_reply_to":"3f1d235d_5b60d0a5","updated":"2017-07-18 16:55:37.000000000","message":"Done","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            \"target.token.user_id\":"},{"line_number":77,"context_line":"            \"os_alt.auth_provider.credentials.user_id\""},{"line_number":78,"context_line":"        })"},{"line_number":79,"context_line":"    def test_revoke_token_negative(self):"},{"line_number":80,"context_line":"        # Explicit negative test for identity:revoke_token policy action."},{"line_number":81,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":82,"context_line":"        alt_token_id \u003d self._setup_alt_token()"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_9b5428cc","line":79,"range":{"start_line":79,"start_character":13,"end_line":79,"end_character":19},"updated":"2017-07-11 22:05:37.000000000","message":"delete","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"af426dbb5daa1f8e31c1c6ec4db604f0683712bf","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            \"target.token.user_id\":"},{"line_number":77,"context_line":"            \"os_alt.auth_provider.credentials.user_id\""},{"line_number":78,"context_line":"        })"},{"line_number":79,"context_line":"    def test_revoke_token_negative(self):"},{"line_number":80,"context_line":"        # Explicit negative test for identity:revoke_token policy action."},{"line_number":81,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":82,"context_line":"        alt_token_id \u003d self._setup_alt_token()"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f1a1f67_3a66d52b","line":79,"range":{"start_line":79,"start_character":13,"end_line":79,"end_character":19},"in_reply_to":"3f1d235d_9b5428cc","updated":"2017-07-18 16:55:37.000000000","message":"Done","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b3ba79438550ab5e3359a6a6de23152d4ad04fc0","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class IdentityTokenV3RbacTest(rbac_base.BaseIdentityV3RbacTest):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":26,"id":"1f1a1f67_b7e43b0e","line":29,"updated":"2017-07-18 18:21:51.000000000","message":"I was mistaken. Need \u0027admin\u0027 here as well. There\u0027s a way around that but would need to be done separately in another commit so that \u0027admin\u0027 doesn\u0027t need to be added here unless explicitly consumed by one of the tests below.","commit_id":"4d192f03351042f8fda5619203ad80a0c9a3ecc6"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"fd560e98f67d85306c5f3e35e460002595aab3e6","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class IdentityTokenV3RbacTest(rbac_base.BaseIdentityV3RbacTest):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027, \u0027alt\u0027]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_8867deb7","line":29,"range":{"start_line":29,"start_character":18,"end_line":29,"end_character":45},"updated":"2017-07-18 20:01:44.000000000","message":"Requiring admin here is addressed by: https://review.openstack.org/#/c/484931/","commit_id":"ccfa23e3888730ef292cead216ddc1fb68e6f00a"}],"patrole_tempest_plugin/tests/api/identity/v3/test_tokens_rbac.py":[{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"b265529f85e0ea9a713373bd126bded228493227","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 ATT Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_bdee2beb","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":20},"updated":"2017-05-25 15:37:24.000000000","message":"AT\u0026T","commit_id":"e04ffe27266fc04ae9e571c99c378c2395eed3e8"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"b265529f85e0ea9a713373bd126bded228493227","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        return token_id"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":32,"context_line":"                                 rule\u003d\"identity:validate_token\")"},{"line_number":33,"context_line":"    @decorators.idempotent_id(\u0027201e2fe5-2023-4bce-9189-78b51520a91e\u0027)"},{"line_number":34,"context_line":"    def test_validate_token(self):"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ff0f0b1f_dde1dffe","line":32,"updated":"2017-05-25 15:37:24.000000000","message":"The policies associated with all of these tests has a special rule, so I don\u0027t think the traditional use of our decorator is going to work here (which most likely explains the overpermission errors you\u0027re getting in the gate).","commit_id":"e04ffe27266fc04ae9e571c99c378c2395eed3e8"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e0d74ef3ccafc097ba20d1e470d65b8567c7df12","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        token_id \u003d self.setup_test_token(user_id\u003duser_id, password\u003dpassword)"},{"line_number":29,"context_line":"        return token_id"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @decorators.idempotent_id(\u0027201e2fe5-2023-4bce-9189-78b51520a91e\u0027)"},{"line_number":32,"context_line":"    @rbac_rule_validation.action("},{"line_number":33,"context_line":"        service\u003d\"keystone\","},{"line_number":34,"context_line":"        rule\u003d\"identity:validate_token\","}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_dd98981c","line":31,"updated":"2017-05-26 16:54:54.000000000","message":"I believe all of these require negative tests since all of the policies contain the rule \"rule:token_subject\" which is defined as \"user_id:%(target.token.user_id)s\". Consequently, all these tests should be passing regardless of the role.\n\nWe should create an alt_token that uses the os_alt.auth_provider.credentials.user_id for the token user_id and do credentials \u003d [\u0027primary\u0027, \u0027alt\u0027] at the top of the file.","commit_id":"9244af96559b27674e8d2d1ab08e29ae5a6343a1"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"19c97610d9325a1225689ad111a6db0ec11ebd91","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        token_id \u003d self.setup_test_token(user_id\u003duser_id, password\u003dpassword)"},{"line_number":29,"context_line":"        return token_id"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @decorators.idempotent_id(\u0027201e2fe5-2023-4bce-9189-78b51520a91e\u0027)"},{"line_number":32,"context_line":"    @rbac_rule_validation.action("},{"line_number":33,"context_line":"        service\u003d\"keystone\","},{"line_number":34,"context_line":"        rule\u003d\"identity:validate_token\","}],"source_content_type":"text/x-python","patch_set":9,"id":"df140735_f20da035","line":31,"in_reply_to":"ff0f0b1f_dd98981c","updated":"2017-05-31 12:31:47.000000000","message":"Done","commit_id":"9244af96559b27674e8d2d1ab08e29ae5a6343a1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e0d74ef3ccafc097ba20d1e470d65b8567c7df12","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        service\u003d\"keystone\","},{"line_number":34,"context_line":"        rule\u003d\"identity:validate_token\","},{"line_number":35,"context_line":"        extra_target_data\u003d{"},{"line_number":36,"context_line":"            \"target.token.user_id\": \"os.auth_provider.credentials.user_id\""},{"line_number":37,"context_line":"        })"},{"line_number":38,"context_line":"    def test_validate_token(self):"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ff0f0b1f_7d262c19","line":36,"range":{"start_line":36,"start_character":37,"end_line":36,"end_character":39},"updated":"2017-05-26 16:54:54.000000000","message":"This should be changed to os_primary (but the issue also exists in test_trusts_rbac so we can do this in a follow-up patch).","commit_id":"9244af96559b27674e8d2d1ab08e29ae5a6343a1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":85,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":86,"context_line":"        # skipping negative testcase"},{"line_number":87,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d \"admin\":"},{"line_number":88,"context_line":"            raise self.skipException("},{"line_number":89,"context_line":"                \"skipped as admin role is already tested \")"},{"line_number":90,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_0c4fa734","line":87,"range":{"start_line":87,"start_character":11,"end_line":87,"end_character":46},"updated":"2017-06-01 18:30:46.000000000","message":"Should be CONF.rbac.rbac_test_role \u003d\u003d CONF.identity.admin_role. See: https://review.openstack.org/#/c/468608/","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        # skipping negative testcase"},{"line_number":87,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d \"admin\":"},{"line_number":88,"context_line":"            raise self.skipException("},{"line_number":89,"context_line":"                \"skipped as admin role is already tested \")"},{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":92,"context_line":"            e \u003d self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_ecd47322","line":89,"range":{"start_line":89,"start_character":56,"end_line":89,"end_character":57},"updated":"2017-06-01 18:30:46.000000000","message":"nit: extra space","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":92,"context_line":"            e \u003d self.assertRaises(lib_exc.Forbidden,"},{"line_number":93,"context_line":"                                  self.client.show_token,"},{"line_number":94,"context_line":"                                  self.alt_token_id)"},{"line_number":95,"context_line":"            raise e"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @decorators.idempotent_id(\u002742a299db-fe0a-4ea0-9824-0bfd13155886\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_6cd2a302","line":94,"range":{"start_line":94,"start_character":39,"end_line":94,"end_character":51},"updated":"2017-06-01 18:30:46.000000000","message":"See comments under test_check_token_existence","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":127,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":128,"context_line":"        # skipping negative testcase"},{"line_number":129,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d \"admin\":"},{"line_number":130,"context_line":"            raise self.skipException("},{"line_number":131,"context_line":"                \"skipped as admin role is already tested \")"},{"line_number":132,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_ccd9af57","line":129,"range":{"start_line":129,"start_character":11,"end_line":129,"end_character":46},"updated":"2017-06-01 18:30:46.000000000","message":"See above.","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        # skipping negative testcase"},{"line_number":129,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d \"admin\":"},{"line_number":130,"context_line":"            raise self.skipException("},{"line_number":131,"context_line":"                \"skipped as admin role is already tested \")"},{"line_number":132,"context_line":"        else:"},{"line_number":133,"context_line":"            self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":134,"context_line":"            e \u003d self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_0c1687f2","line":131,"range":{"start_line":131,"start_character":56,"end_line":131,"end_character":57},"updated":"2017-06-01 18:30:46.000000000","message":"nit: extra space","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":134,"context_line":"            e \u003d self.assertRaises(lib_exc.Forbidden,"},{"line_number":135,"context_line":"                                  self.client.delete_token,"},{"line_number":136,"context_line":"                                  self.alt_token_id)"},{"line_number":137,"context_line":"            raise e"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @decorators.idempotent_id(\u00273554d218-8cd6-4730-a1b2-0e22f9b78f45\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_2cc70b67","line":136,"range":{"start_line":136,"start_character":39,"end_line":136,"end_character":51},"updated":"2017-06-01 18:30:46.000000000","message":"See comments under test_check_token_existence","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            \"target.token.user_id\":"},{"line_number":145,"context_line":"            \"os_primary.auth_provider.credentials.user_id\""},{"line_number":146,"context_line":"        })"},{"line_number":147,"context_line":"    def test_check_token_exsitence(self):"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        \"\"\"Check Token existence"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_6c7f4315","line":147,"range":{"start_line":147,"start_character":8,"end_line":147,"end_character":34},"updated":"2017-06-01 18:30:46.000000000","message":"test_check_token_existence","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        rule\u003d\"identity:check_token\","},{"line_number":162,"context_line":"        extra_target_data\u003d{"},{"line_number":163,"context_line":"            \"target.token.user_id\":"},{"line_number":164,"context_line":"            \"os_alt.auth_provider.credentials.user_id\""},{"line_number":165,"context_line":"        })"},{"line_number":166,"context_line":"    def test_check_token_negative(self):"},{"line_number":167,"context_line":"        # Explicit negative test for identity:check_token policy action."}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_8cb857e5","line":164,"range":{"start_line":164,"start_character":13,"end_line":164,"end_character":19},"updated":"2017-06-01 18:30:46.000000000","message":"See comment on L178.","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            \"target.token.user_id\":"},{"line_number":164,"context_line":"            \"os_alt.auth_provider.credentials.user_id\""},{"line_number":165,"context_line":"        })"},{"line_number":166,"context_line":"    def test_check_token_negative(self):"},{"line_number":167,"context_line":"        # Explicit negative test for identity:check_token policy action."},{"line_number":168,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":169,"context_line":"        # Incase of admin, the positive testcase would be used, hence"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_cc952f35","line":166,"range":{"start_line":166,"start_character":8,"end_line":166,"end_character":33},"updated":"2017-06-01 18:30:46.000000000","message":"test_check_token_existence_negative","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        # Assert expected exception is Forbidden and then reraise it."},{"line_number":169,"context_line":"        # Incase of admin, the positive testcase would be used, hence"},{"line_number":170,"context_line":"        # skipping negative testcase"},{"line_number":171,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d \"admin\":"},{"line_number":172,"context_line":"            raise self.skipException("},{"line_number":173,"context_line":"                \"skipped as admin role is already tested \")"},{"line_number":174,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_acdafb47","line":171,"range":{"start_line":171,"start_character":11,"end_line":171,"end_character":46},"updated":"2017-06-01 18:30:46.000000000","message":"See above.","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        # skipping negative testcase"},{"line_number":171,"context_line":"        if CONF.rbac.rbac_test_role \u003d\u003d \"admin\":"},{"line_number":172,"context_line":"            raise self.skipException("},{"line_number":173,"context_line":"                \"skipped as admin role is already tested \")"},{"line_number":174,"context_line":"        else:"},{"line_number":175,"context_line":"            self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":176,"context_line":"            e \u003d self.assertRaises(lib_exc.Forbidden,"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_2c194b21","line":173,"range":{"start_line":173,"start_character":56,"end_line":173,"end_character":57},"updated":"2017-06-01 18:30:46.000000000","message":"nit: extra space","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5a268b617543f8949086a80f5cd805b2c378eb0f","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":176,"context_line":"            e \u003d self.assertRaises(lib_exc.Forbidden,"},{"line_number":177,"context_line":"                                  self.client.check_token_existence,"},{"line_number":178,"context_line":"                                  self.alt_token_id)"},{"line_number":179,"context_line":"            raise e"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_ecbd93d8","line":178,"range":{"start_line":178,"start_character":39,"end_line":178,"end_character":51},"updated":"2017-06-01 18:30:46.000000000","message":"I think os_primary should be used on L164 if you\u0027re going to do negative test, or else you\u0027re using the alt user_id and the alt token_id which should be allowed.","commit_id":"e5452f96fb53d7de4566f485ae0596b2af6d30fc"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d9ec74d9085ceb8d2a45c1557d16c11b743f8fca","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import config"},{"line_number":17,"context_line":"from tempest.lib import decorators"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_1c4480b6","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":26},"updated":"2017-06-14 13:16:42.000000000","message":"Unused.","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"8a9b128abfae58f568a3c542aacab950714c23d9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import config"},{"line_number":17,"context_line":"from tempest.lib import decorators"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_ef02086f","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":26},"in_reply_to":"7f231b9d_1c4480b6","updated":"2017-06-15 12:24:32.000000000","message":"Done","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d9ec74d9085ceb8d2a45c1557d16c11b743f8fca","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"},{"line_number":20,"context_line":"from patrole_tempest_plugin.tests.api.identity import rbac_base"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d config.CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IdentityTokenV3RbacTest(rbac_base.BaseIdentityV3RbacTest):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_5c3af833","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":18},"updated":"2017-06-14 13:16:42.000000000","message":"Unused.","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"8a9b128abfae58f568a3c542aacab950714c23d9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"},{"line_number":20,"context_line":"from patrole_tempest_plugin.tests.api.identity import rbac_base"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"CONF \u003d config.CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IdentityTokenV3RbacTest(rbac_base.BaseIdentityV3RbacTest):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_cffbcc76","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":18},"in_reply_to":"7f231b9d_5c3af833","updated":"2017-06-15 12:24:32.000000000","message":"Done","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d9ec74d9085ceb8d2a45c1557d16c11b743f8fca","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IdentityTokenV3RbacTest(rbac_base.BaseIdentityV3RbacTest):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def skip_checks(cls):"},{"line_number":29,"context_line":"        super(IdentityTokenV3RbacTest, cls).skip_checks()"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_9c38903d","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":57},"updated":"2017-06-14 13:16:42.000000000","message":"Unused.","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"8a9b128abfae58f568a3c542aacab950714c23d9","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class IdentityTokenV3RbacTest(rbac_base.BaseIdentityV3RbacTest):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @classmethod"},{"line_number":28,"context_line":"    def skip_checks(cls):"},{"line_number":29,"context_line":"        super(IdentityTokenV3RbacTest, cls).skip_checks()"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_4f2d7cfc","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":57},"in_reply_to":"7f231b9d_9c38903d","updated":"2017-06-15 12:24:32.000000000","message":"Done","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d9ec74d9085ceb8d2a45c1557d16c11b743f8fca","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        cls.user_id \u003d cls.os_primary.auth_provider.credentials.user_id"},{"line_number":35,"context_line":"        cls.password \u003d cls.os_primary.auth_provider.credentials.password"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _setup_token(self):"},{"line_number":38,"context_line":"        token_id \u003d self.setup_test_token(self.user_id, self.password)"},{"line_number":39,"context_line":"        return token_id"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027201e2fe5-2023-4bce-9189-78b51520a91e\u0027)"},{"line_number":42,"context_line":"    @rbac_rule_validation.action("}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_fc79c4fb","line":39,"range":{"start_line":37,"start_character":0,"end_line":39,"end_character":23},"updated":"2017-06-14 13:16:42.000000000","message":"This is an unnecessary wrapper. Just use self.setup_test_token directly in the tests.","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23363,"name":"Pradeep Kumar","email":"pk5294@att.com","username":"pradeepkumarks"},"change_message_id":"8a9b128abfae58f568a3c542aacab950714c23d9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        cls.user_id \u003d cls.os_primary.auth_provider.credentials.user_id"},{"line_number":35,"context_line":"        cls.password \u003d cls.os_primary.auth_provider.credentials.password"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _setup_token(self):"},{"line_number":38,"context_line":"        token_id \u003d self.setup_test_token(self.user_id, self.password)"},{"line_number":39,"context_line":"        return token_id"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027201e2fe5-2023-4bce-9189-78b51520a91e\u0027)"},{"line_number":42,"context_line":"    @rbac_rule_validation.action("}],"source_content_type":"text/x-python","patch_set":19,"id":"7f231b9d_0f330464","line":39,"range":{"start_line":37,"start_character":0,"end_line":39,"end_character":23},"in_reply_to":"7f231b9d_fc79c4fb","updated":"2017-06-15 12:24:32.000000000","message":"Done","commit_id":"828d38039a2108d5fa04687b20c5a8a776007feb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            \"target.token.user_id\":"},{"line_number":36,"context_line":"            \"os_primary.auth_provider.credentials.user_id\""},{"line_number":37,"context_line":"        })"},{"line_number":38,"context_line":"    def test_validate_token(self):"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        \"\"\"Validate token (get-token)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_fb431c12","line":38,"range":{"start_line":38,"start_character":13,"end_line":38,"end_character":21},"updated":"2017-07-11 22:05:37.000000000","message":"show","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        })"},{"line_number":38,"context_line":"    def test_validate_token(self):"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        \"\"\"Validate token (get-token)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        RBAC test for Identity V3 get token validation"},{"line_number":43,"context_line":"        \"\"\""},{"line_number":44,"context_line":"        token_id \u003d self.setup_test_token(self.user_id, self.password)"},{"line_number":45,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":46,"context_line":"        self.identity_client.show_token(token_id)"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_9bbf88fa","line":43,"range":{"start_line":40,"start_character":8,"end_line":43,"end_character":11},"updated":"2017-07-11 22:05:37.000000000","message":"These comments don\u0027t add much value.","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            \"target.token.user_id\":"},{"line_number":54,"context_line":"            \"os_primary.auth_provider.credentials.user_id\""},{"line_number":55,"context_line":"        })"},{"line_number":56,"context_line":"    def test_revoke_token(self):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        \"\"\"Revoke token (delete-token)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_3b3ab497","line":56,"range":{"start_line":56,"start_character":13,"end_line":56,"end_character":19},"updated":"2017-07-11 22:05:37.000000000","message":"delete","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        })"},{"line_number":56,"context_line":"    def test_revoke_token(self):"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        \"\"\"Revoke token (delete-token)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        RBAC test for Identity V3 delete token"},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":"        token_id \u003d self.setup_test_token(self.user_id, self.password)"},{"line_number":63,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":64,"context_line":"        self.identity_client.delete_token(token_id)"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_bbc0047e","line":61,"range":{"start_line":58,"start_character":8,"end_line":61,"end_character":11},"updated":"2017-07-11 22:05:37.000000000","message":"Ditto.","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"071699ab67cbb442dd11ad80c62c81b125057175","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        })"},{"line_number":74,"context_line":"    def test_check_token_exsitence(self):"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        \"\"\"Check Token existence"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        RBAC test for Identity v3 token head validation"},{"line_number":79,"context_line":"        \"\"\""},{"line_number":80,"context_line":"        token_id \u003d self.setup_test_token(self.user_id, self.password)"},{"line_number":81,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":82,"context_line":"        self.identity_client.check_token_existence(token_id)"}],"source_content_type":"text/x-python","patch_set":25,"id":"3f1d235d_dbc50090","line":79,"range":{"start_line":76,"start_character":8,"end_line":79,"end_character":11},"updated":"2017-07-11 22:05:37.000000000","message":"Ditto.","commit_id":"97a1ea751e477fd90008f24bad8d515451630919"}]}
