)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c6b3a09f440366c9cfd1364e5c61478a7b84d0c3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Base on the original proposal, this patch add a new db migration"},{"line_number":19,"context_line":"script to mark the idp\u0027s domain_id unique in db."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"NOTE: If the there are more than one idps related to the same"},{"line_number":22,"context_line":"domain, the migration will fail."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I13ecb0ab0434f5614f31d151e708f299cf8e8adb"},{"line_number":25,"context_line":"Closes-bug: #1760843"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bf659307_abb2e892","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":32},"updated":"2018-04-11 19:30:15.000000000","message":"Hmmm - Do we have a way to handle this?","commit_id":"87251464a9c936cc5ca0e3369015441a21f9a30e"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"6af51d15c9336a8ba9f4c36b8eba9a03c21a3aa3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Base on the original proposal, this patch add a new db migration"},{"line_number":19,"context_line":"script to mark the idp\u0027s domain_id unique in db."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"NOTE: If the there are more than one idps related to the same"},{"line_number":22,"context_line":"domain, the migration will fail."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I13ecb0ab0434f5614f31d151e708f299cf8e8adb"},{"line_number":25,"context_line":"Closes-bug: #1760843"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bf659307_d35caa1a","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":32},"in_reply_to":"bf659307_abb2e892","updated":"2018-04-12 00:34:42.000000000","message":"this is a huge blocker. Without this properly discussed and handled, this review can\u0027t proceed.","commit_id":"87251464a9c936cc5ca0e3369015441a21f9a30e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ec48342762301d88ac7e9dfd9f73e1faceeb5336","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update IdP sql model"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Base on the database schema, the domain_id colume in identity_provider"},{"line_number":10,"context_line":"is not unique and has the ForeignKey for project.id. But the IdP sql"},{"line_number":11,"context_line":"model is different. It marks the domain_id is unique and the ForeignKey"},{"line_number":12,"context_line":"is lost."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f6a8fd7_b3565c06","line":9,"range":{"start_line":9,"start_character":43,"end_line":9,"end_character":49},"updated":"2018-04-16 21:17:13.000000000","message":"column*","commit_id":"85dde3a84fc1e018f679d43b60f75d9ea904c268"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"849c29e2650bce2133f618263646bdf264a18977","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update IdP sql model"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Base on the database schema, the domain_id colume in identity_provider"},{"line_number":10,"context_line":"is not unique and has the ForeignKey for project.id. But the IdP sql"},{"line_number":11,"context_line":"model is different. It marks the domain_id is unique and the ForeignKey"},{"line_number":12,"context_line":"is lost."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f6a8fd7_c708ea29","line":9,"range":{"start_line":9,"start_character":43,"end_line":9,"end_character":49},"in_reply_to":"9f6a8fd7_b3565c06","updated":"2018-04-17 01:33:42.000000000","message":"Done","commit_id":"85dde3a84fc1e018f679d43b60f75d9ea904c268"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ec48342762301d88ac7e9dfd9f73e1faceeb5336","unresolved":false,"context_lines":[{"line_number":12,"context_line":"is lost."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch removed the unique restriction and added ForeignKey back."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I13ecb0ab0434f5614f31d151e708f299cf8e8adb"},{"line_number":17,"context_line":"Closes-bug: #1760843"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f6a8fd7_d374309c","line":15,"updated":"2018-04-16 21:17:13.000000000","message":"We could summarize the final bit of this commit message clarifying the end result:\n\n  This patch removes the unique restriction and adds the\n  FK back, ultimately making the relationship between\n  domains and identity provider 1:many.","commit_id":"85dde3a84fc1e018f679d43b60f75d9ea904c268"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"849c29e2650bce2133f618263646bdf264a18977","unresolved":false,"context_lines":[{"line_number":12,"context_line":"is lost."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch removed the unique restriction and added ForeignKey back."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I13ecb0ab0434f5614f31d151e708f299cf8e8adb"},{"line_number":17,"context_line":"Closes-bug: #1760843"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f6a8fd7_e70dee37","line":15,"in_reply_to":"9f6a8fd7_d374309c","updated":"2018-04-17 01:33:42.000000000","message":"Done","commit_id":"85dde3a84fc1e018f679d43b60f75d9ea904c268"}],"keystone/federation/backends/sql.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ed8dd2769c4ab05532da003b5df025fb00e70fe3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    mutable_attributes \u003d frozenset([\u0027description\u0027, \u0027enabled\u0027, \u0027remote_ids\u0027])"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    id \u003d sql.Column(sql.String(64), primary_key\u003dTrue)"},{"line_number":58,"context_line":"    domain_id \u003d sql.Column(sql.String(64), sql.ForeignKey(\u0027project.id\u0027),"},{"line_number":59,"context_line":"                           nullable\u003dFalse)"},{"line_number":60,"context_line":"    enabled \u003d sql.Column(sql.Boolean, nullable\u003dFalse)"},{"line_number":61,"context_line":"    description \u003d sql.Column(sql.Text(), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f6a8fd7_7201c804","line":58,"range":{"start_line":58,"start_character":43,"end_line":58,"end_character":71},"updated":"2018-04-25 22:49:18.000000000","message":"cmurphy may have thoughts here, i know we were talking about it last week.","commit_id":"cee989c9686398536b35c1fb674efe573cc03b95"}],"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8b3eda784fd5148150290c2b65078b84d4cf3d9f","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"                        expected_status\u003dhttp_client.CREATED)"},{"line_number":1017,"context_line":"        self.assertValidResponse(resp, \u0027identity_provider\u0027, dummy_validator,"},{"line_number":1018,"context_line":"                                 keys_to_check\u003dkeys_to_check,"},{"line_number":1019,"context_line":"                                 ref\u003dbody)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def test_cannot_update_idp_domain(self):"},{"line_number":1022,"context_line":"        # create new idp"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_733be4d0","line":1019,"updated":"2018-04-16 21:14:28.000000000","message":"nit: We could bolster this test with another assertion that just performs a self.get() on each idp and just checks to make sure they have the same domain id.","commit_id":"85dde3a84fc1e018f679d43b60f75d9ea904c268"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"849c29e2650bce2133f618263646bdf264a18977","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"                        expected_status\u003dhttp_client.CREATED)"},{"line_number":1017,"context_line":"        self.assertValidResponse(resp, \u0027identity_provider\u0027, dummy_validator,"},{"line_number":1018,"context_line":"                                 keys_to_check\u003dkeys_to_check,"},{"line_number":1019,"context_line":"                                 ref\u003dbody)"},{"line_number":1020,"context_line":""},{"line_number":1021,"context_line":"    def test_cannot_update_idp_domain(self):"},{"line_number":1022,"context_line":"        # create new idp"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f6a8fd7_a70ff62c","line":1019,"in_reply_to":"9f6a8fd7_733be4d0","updated":"2018-04-17 01:33:42.000000000","message":"Done","commit_id":"85dde3a84fc1e018f679d43b60f75d9ea904c268"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e823581aaa0279650bec1265070c128bfff157f2","unresolved":false,"context_lines":[{"line_number":993,"context_line":"        # since it wasn\u0027t auto-generated"},{"line_number":994,"context_line":"        self.assertIsNotNone(PROVIDERS.resource_api.get_domain(domain[\u0027id\u0027]))"},{"line_number":995,"context_line":""},{"line_number":996,"context_line":"    def test_create_idp_domain_id_unique_constraint(self):"},{"line_number":997,"context_line":"        # create domain and add domain_id to keys to check"},{"line_number":998,"context_line":"        domain \u003d unit.new_domain_ref()"},{"line_number":999,"context_line":"        PROVIDERS.resource_api.create_domain(domain[\u0027id\u0027], domain)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_bb74b369","side":"PARENT","line":996,"range":{"start_line":996,"start_character":8,"end_line":996,"end_character":51},"updated":"2018-04-19 00:36:18.000000000","message":"maybe you could split this patch into two? First one, you add the changes in the SQL model and add a wip decorator to this test (so it is expected it will fail). Second one you would rewrite the test (like you did here) and remove the wip decorator.","commit_id":"780f9710fa0945a4d5e23aaae1c2505e94441c3e"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"521ce123ffc3deff111799659548e5c45b50ea6a","unresolved":false,"context_lines":[{"line_number":994,"context_line":"        # since it wasn\u0027t auto-generated"},{"line_number":995,"context_line":"        self.assertIsNotNone(PROVIDERS.resource_api.get_domain(domain[\u0027id\u0027]))"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"    @test_utils.wip(\"Keystone never support IdP:domain \u003d 1:1. This test should\""},{"line_number":998,"context_line":"                    \"be fixed to make sure IdP:domain is n:1\", bug\u003d\u00271760843\u0027)"},{"line_number":999,"context_line":"    def test_create_idp_domain_id_unique_constraint(self):"},{"line_number":1000,"context_line":"        # create domain and add domain_id to keys to check"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f6a8fd7_41efddaf","line":997,"range":{"start_line":997,"start_character":36,"end_line":997,"end_character":43},"updated":"2018-04-28 15:10:37.000000000","message":"typo: s/support/supported","commit_id":"cee989c9686398536b35c1fb674efe573cc03b95"}],"releasenotes/notes/bug-1760843-e0340ee5305d71de.yaml":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bd268e8431acc15498d35857871b7d70dad232de","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 1760843 \u003chttps://bugs.launchpad.net/keystone/+bug/1760843\u003e`_]"},{"line_number":5,"context_line":"    An Identity Provider (IdP) should be related (1:1) to a domain so that"},{"line_number":6,"context_line":"    federated users properly belong to a domain and can be uniquely"},{"line_number":7,"context_line":"    identified by their domain + unique_id. Now a domain can only contain one"},{"line_number":8,"context_line":"    IdP."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bf659307_0b6f54fc","line":7,"range":{"start_line":7,"start_character":50,"end_line":7,"end_character":56},"updated":"2018-04-11 19:31:25.000000000","message":"This should be the inverse, shouldn\u0027t it? An identity provider can belong to only one domain, right?","commit_id":"87251464a9c936cc5ca0e3369015441a21f9a30e"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"6af51d15c9336a8ba9f4c36b8eba9a03c21a3aa3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 1760843 \u003chttps://bugs.launchpad.net/keystone/+bug/1760843\u003e`_]"},{"line_number":5,"context_line":"    An Identity Provider (IdP) should be related (1:1) to a domain so that"},{"line_number":6,"context_line":"    federated users properly belong to a domain and can be uniquely"},{"line_number":7,"context_line":"    identified by their domain + unique_id. Now a domain can only contain one"},{"line_number":8,"context_line":"    IdP."},{"line_number":9,"context_line":"upgrade:"},{"line_number":10,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bf659307_f340ce37","line":7,"range":{"start_line":7,"start_character":50,"end_line":7,"end_character":56},"in_reply_to":"bf659307_0b6f54fc","updated":"2018-04-12 00:34:42.000000000","message":"+1","commit_id":"87251464a9c936cc5ca0e3369015441a21f9a30e"}]}
