)]}'
{"tempest/api/identity/admin/v3/test_roles.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"153f706e6ca8ed25d28242152c1e3a4157360e25","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        rules \u003d self.roles_client.list_all_role_inference_rules()["},{"line_number":386,"context_line":"            \u0027role_inferences\u0027]"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        # NOTE(jaosorior): With the work related to the define-default-roles"},{"line_number":389,"context_line":"        # blueprint, we now have \u0027admin\u0027, \u0027member\u0027 and \u0027reader\u0027 by default. So"},{"line_number":390,"context_line":"        # we filter every other implied role to only take into account the ones"},{"line_number":391,"context_line":"        # relates to this test."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_e520d9b2","line":388,"range":{"start_line":388,"start_character":56,"end_line":388,"end_character":76},"updated":"2018-06-12 20:37:00.000000000","message":"basic-default-roles? \n\nhttps://blueprints.launchpad.net/openstack/?searchtext\u003dbasic-default-roles","commit_id":"a19225a6e5874817f62adafb8165be067faf04d0"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"3e03697dc9fd6ef5b4c5d9726ea6f66ce89df722","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        rules \u003d self.roles_client.list_all_role_inference_rules()["},{"line_number":386,"context_line":"            \u0027role_inferences\u0027]"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        # NOTE(jaosorior): With the work related to the define-default-roles"},{"line_number":389,"context_line":"        # blueprint, we now have \u0027admin\u0027, \u0027member\u0027 and \u0027reader\u0027 by default. So"},{"line_number":390,"context_line":"        # we filter every other implied role to only take into account the ones"},{"line_number":391,"context_line":"        # relates to this test."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_c7b4b784","line":388,"range":{"start_line":388,"start_character":56,"end_line":388,"end_character":76},"in_reply_to":"5f7c97a3_e520d9b2","updated":"2018-06-13 08:39:35.000000000","message":"I just took the topic.","commit_id":"a19225a6e5874817f62adafb8165be067faf04d0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"153f706e6ca8ed25d28242152c1e3a4157360e25","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        def is_implied_role_relevant(rule):"},{"line_number":396,"context_line":"            return any(r for r in rule[\u0027implies\u0027] if r[\u0027id\u0027] in relevant_roles)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        relevant_rules \u003d filter(is_implied_role_relevant, rules)"},{"line_number":399,"context_line":"        # Sort the rules by the number of inferences, since there should be 1"},{"line_number":400,"context_line":"        # inference between \"roles[2]\" and \"role\" and 2 inferences for"},{"line_number":401,"context_line":"        # \"roles[0]\": between \"roles[1]\" and \"roles[2]\"."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_a5ff4100","line":398,"range":{"start_line":398,"start_character":8,"end_line":398,"end_character":22},"updated":"2018-06-12 20:37:00.000000000","message":"This is still a list of roles, isn\u0027t it? Maybe the term rules is confusing me here?","commit_id":"a19225a6e5874817f62adafb8165be067faf04d0"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"3e03697dc9fd6ef5b4c5d9726ea6f66ce89df722","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        def is_implied_role_relevant(rule):"},{"line_number":396,"context_line":"            return any(r for r in rule[\u0027implies\u0027] if r[\u0027id\u0027] in relevant_roles)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        relevant_rules \u003d filter(is_implied_role_relevant, rules)"},{"line_number":399,"context_line":"        # Sort the rules by the number of inferences, since there should be 1"},{"line_number":400,"context_line":"        # inference between \"roles[2]\" and \"role\" and 2 inferences for"},{"line_number":401,"context_line":"        # \"roles[0]\": between \"roles[1]\" and \"roles[2]\"."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_678a83bc","line":398,"range":{"start_line":398,"start_character":8,"end_line":398,"end_character":22},"in_reply_to":"5f7c97a3_a5ff4100","updated":"2018-06-13 08:39:35.000000000","message":"...ish? maybe? so the term rules had already been used all over the place. If you see the definition below as it was, you would obtain the sorted_rules from sorting the \"rules\" you get from \"list_all_role_inference_rules\".\n\nIt is effectively a list of all the roles and the implications. relevant rules is the same, except that we filter out everything that it\u0027s not relevant to this test.","commit_id":"a19225a6e5874817f62adafb8165be067faf04d0"}]}
