)]}'
{"keystone/tests/unit/test_v3_auth.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d3727cb8313a84501c5b8d1730b7ba9c4b04ca30","unresolved":false,"context_lines":[{"line_number":4033,"context_line":"            trustor_user_id\u003dself.user_id,"},{"line_number":4034,"context_line":"            trustee_user_id\u003dtrustee_user[\u0027id\u0027],"},{"line_number":4035,"context_line":"            project_id\u003dself.project_id,"},{"line_number":4036,"context_line":"            impersonation\u003dFalse,"},{"line_number":4037,"context_line":"            role_ids\u003d[self.role_id])"},{"line_number":4038,"context_line":""},{"line_number":4039,"context_line":"        # Create a trust"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_1a13aa5c","line":4036,"updated":"2015-07-01 13:28:30.000000000","message":"I\u0027d like to come up with a comment explaining this, but I don\u0027t have anything yet, suggestions welcome :)","commit_id":"1e7fd92ff4796352c3ed111a4bbf509a2750d687"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"092b4ee7f0db7f1e60aa2b64a646006661bc7f7c","unresolved":false,"context_lines":[{"line_number":4033,"context_line":"            trustor_user_id\u003dself.user_id,"},{"line_number":4034,"context_line":"            trustee_user_id\u003dtrustee_user[\u0027id\u0027],"},{"line_number":4035,"context_line":"            project_id\u003dself.project_id,"},{"line_number":4036,"context_line":"            impersonation\u003dFalse,"},{"line_number":4037,"context_line":"            role_ids\u003d[self.role_id])"},{"line_number":4038,"context_line":""},{"line_number":4039,"context_line":"        # Create a trust"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_5fdd926d","line":4036,"updated":"2015-07-01 18:20:11.000000000","message":"AHAHAHA Really? *facepalm*","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"5afba7dabd505e6a7afc3e52579f2851b15e2575","unresolved":false,"context_lines":[{"line_number":4033,"context_line":"            trustor_user_id\u003dself.user_id,"},{"line_number":4034,"context_line":"            trustee_user_id\u003dtrustee_user[\u0027id\u0027],"},{"line_number":4035,"context_line":"            project_id\u003dself.project_id,"},{"line_number":4036,"context_line":"            impersonation\u003dFalse,"},{"line_number":4037,"context_line":"            role_ids\u003d[self.role_id])"},{"line_number":4038,"context_line":""},{"line_number":4039,"context_line":"        # Create a trust"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_627c7d1f","line":4036,"in_reply_to":"ba3cc151_5fdd926d","updated":"2015-07-01 18:49:56.000000000","message":"yeah wtf? :)","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"72697d36083c64014bdec321991e83b04fbbdeb8","unresolved":false,"context_lines":[{"line_number":4033,"context_line":"            trustor_user_id\u003dself.user_id,"},{"line_number":4034,"context_line":"            trustee_user_id\u003dtrustee_user[\u0027id\u0027],"},{"line_number":4035,"context_line":"            project_id\u003dself.project_id,"},{"line_number":4036,"context_line":"            impersonation\u003dFalse,"},{"line_number":4037,"context_line":"            role_ids\u003d[self.role_id])"},{"line_number":4038,"context_line":""},{"line_number":4039,"context_line":"        # Create a trust"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_18ff20ab","line":4036,"updated":"2015-07-01 21:29:31.000000000","message":"wink, wink","commit_id":"91a0b29809cb71c1b2df1642d6c34a3f60a801ed"}],"keystone/token/providers/common.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"092b4ee7f0db7f1e60aa2b64a646006661bc7f7c","unresolved":false,"context_lines":[{"line_number":501,"context_line":"            # NOTE(lbragstad): Check if the token provider being used actually"},{"line_number":502,"context_line":"            # supports bind authentication methods before proceeding."},{"line_number":503,"context_line":"            if not self._supports_bind_authentication:"},{"line_number":504,"context_line":"                raise exception.NotImplemented()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # for V2, trust is stashed in metadata_ref"},{"line_number":507,"context_line":"        if (CONF.trust.enabled and not trust and metadata_ref and"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_df6522b5","line":504,"updated":"2015-07-01 18:20:11.000000000","message":"suggest moving this down a layer, if you use an @property you could make the @property raise notImplemented. the @property can also be an @abstractproperty on the base class.","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"682165fc9ef26fddb7d161a965d034ffa7cb14c6","unresolved":false,"context_lines":[{"line_number":501,"context_line":"            # NOTE(lbragstad): Check if the token provider being used actually"},{"line_number":502,"context_line":"            # supports bind authentication methods before proceeding."},{"line_number":503,"context_line":"            if not self._supports_bind_authentication:"},{"line_number":504,"context_line":"                raise exception.NotImplemented()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # for V2, trust is stashed in metadata_ref"},{"line_number":507,"context_line":"        if (CONF.trust.enabled and not trust and metadata_ref and"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_a28605d9","line":504,"in_reply_to":"ba3cc151_c239c9a5","updated":"2015-07-01 18:53:25.000000000","message":"Done, see https://review.openstack.org/#/c/197699/","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"5afba7dabd505e6a7afc3e52579f2851b15e2575","unresolved":false,"context_lines":[{"line_number":501,"context_line":"            # NOTE(lbragstad): Check if the token provider being used actually"},{"line_number":502,"context_line":"            # supports bind authentication methods before proceeding."},{"line_number":503,"context_line":"            if not self._supports_bind_authentication:"},{"line_number":504,"context_line":"                raise exception.NotImplemented()"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        # for V2, trust is stashed in metadata_ref"},{"line_number":507,"context_line":"        if (CONF.trust.enabled and not trust and metadata_ref and"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_c239c9a5","line":504,"in_reply_to":"ba3cc151_df6522b5","updated":"2015-07-01 18:49:56.000000000","message":"++","commit_id":"89051852c593005579224370e3ec7f7125dae19a"}],"keystone/token/providers/fernet/core.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"5afba7dabd505e6a7afc3e52579f2851b15e2575","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        :raises keystone.exception.NotImplemented: when called"},{"line_number":206,"context_line":"        \"\"\""},{"line_number":207,"context_line":"        return self.token_formatter.create_token("},{"line_number":208,"context_line":"            token_data[\u0027token\u0027].get(\u0027user\u0027, {}).get(\u0027id\u0027),"},{"line_number":209,"context_line":"            token_data[\u0027token\u0027][\u0027expires_at\u0027],"},{"line_number":210,"context_line":"            token_data[\u0027token\u0027][\u0027audit_ids\u0027],"},{"line_number":211,"context_line":"            methods\u003dtoken_data[\u0027token\u0027].get(\u0027methods\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_62f9ddc6","line":208,"updated":"2015-07-01 18:49:56.000000000","message":"why not token_data[\u0027token\u0027][\u0027user\u0027][\u0027id\u0027]? Isn\u0027t user ID mandatory?","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a7af34276a436e9d004e7f9d3055287e5c3b2053","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        :raises keystone.exception.NotImplemented: when called"},{"line_number":206,"context_line":"        \"\"\""},{"line_number":207,"context_line":"        return self.token_formatter.create_token("},{"line_number":208,"context_line":"            token_data[\u0027token\u0027].get(\u0027user\u0027, {}).get(\u0027id\u0027),"},{"line_number":209,"context_line":"            token_data[\u0027token\u0027][\u0027expires_at\u0027],"},{"line_number":210,"context_line":"            token_data[\u0027token\u0027][\u0027audit_ids\u0027],"},{"line_number":211,"context_line":"            methods\u003dtoken_data[\u0027token\u0027].get(\u0027methods\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_02a9f123","line":208,"in_reply_to":"ba3cc151_62f9ddc6","updated":"2015-07-01 18:56:01.000000000","message":"Done","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"682165fc9ef26fddb7d161a965d034ffa7cb14c6","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        :raises keystone.exception.NotImplemented: when called"},{"line_number":206,"context_line":"        \"\"\""},{"line_number":207,"context_line":"        return self.token_formatter.create_token("},{"line_number":208,"context_line":"            token_data[\u0027token\u0027].get(\u0027user\u0027, {}).get(\u0027id\u0027),"},{"line_number":209,"context_line":"            token_data[\u0027token\u0027][\u0027expires_at\u0027],"},{"line_number":210,"context_line":"            token_data[\u0027token\u0027][\u0027audit_ids\u0027],"},{"line_number":211,"context_line":"            methods\u003dtoken_data[\u0027token\u0027].get(\u0027methods\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_e2672d4b","line":208,"in_reply_to":"ba3cc151_62f9ddc6","updated":"2015-07-01 18:53:25.000000000","message":"It is, but I was just playing it safe, I can respin","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"092b4ee7f0db7f1e60aa2b64a646006661bc7f7c","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            domain_id\u003dtoken_data[\u0027token\u0027].get(\u0027domain\u0027, {}).get(\u0027id\u0027),"},{"line_number":213,"context_line":"            project_id\u003dtoken_data[\u0027token\u0027].get(\u0027project\u0027, {}).get(\u0027id\u0027),"},{"line_number":214,"context_line":"            trust_id\u003dtoken_data[\u0027token\u0027].get(\u0027OS-TRUST:trust\u0027, {}).get(\u0027id\u0027),"},{"line_number":215,"context_line":"            federated_info\u003dself._build_federated_info(token_data)"},{"line_number":216,"context_line":"        )"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_ff6a6680","line":215,"updated":"2015-07-01 18:20:11.000000000","message":"This will need to be extended to handle V2 tokens as well. but that can come when we need it.","commit_id":"89051852c593005579224370e3ec7f7125dae19a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"682165fc9ef26fddb7d161a965d034ffa7cb14c6","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            domain_id\u003dtoken_data[\u0027token\u0027].get(\u0027domain\u0027, {}).get(\u0027id\u0027),"},{"line_number":213,"context_line":"            project_id\u003dtoken_data[\u0027token\u0027].get(\u0027project\u0027, {}).get(\u0027id\u0027),"},{"line_number":214,"context_line":"            trust_id\u003dtoken_data[\u0027token\u0027].get(\u0027OS-TRUST:trust\u0027, {}).get(\u0027id\u0027),"},{"line_number":215,"context_line":"            federated_info\u003dself._build_federated_info(token_data)"},{"line_number":216,"context_line":"        )"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_c2c9c927","line":215,"in_reply_to":"ba3cc151_ff6a6680","updated":"2015-07-01 18:53:25.000000000","message":"Yep, I have a feeling this is going to be split up into _exract_v2_token_data and _extract_v3_token_data methods and _get_token_id will just call to what one is appropriate depending on what type of token we\u0027re dealing with.","commit_id":"89051852c593005579224370e3ec7f7125dae19a"}]}
