)]}'
{"keystone/common/sql/migrate_repo/versions/014_add_group_tables.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"866c6dc8e518964aeea184f959c3124a9e9278c6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        sql.Column(\u0027name\u0027, sql.String(64), nullable\u003dFalse),"},{"line_number":32,"context_line":"        sql.Column(\u0027description\u0027, sql.Text()),"},{"line_number":33,"context_line":"        sql.Column(\u0027extra\u0027, sql.Text()),"},{"line_number":34,"context_line":"        sql.UniqueConstraint(\u0027domain_id\u0027, \u0027name\u0027))"},{"line_number":35,"context_line":"    group_table.create(migrate_engine, checkfirst\u003dTrue)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    sql.Table(\u0027user\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6cA%3D","line":34,"updated":"2013-02-14 17:29:19.000000000","message":"Would this force all groups to be domain-specific. I thought we have domain-agnostic groups, no?","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"14ddbe06a708ed773bf9f596e11df76d2ef26960","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        sql.Column(\u0027name\u0027, sql.String(64), nullable\u003dFalse),"},{"line_number":32,"context_line":"        sql.Column(\u0027description\u0027, sql.Text()),"},{"line_number":33,"context_line":"        sql.Column(\u0027extra\u0027, sql.Text()),"},{"line_number":34,"context_line":"        sql.UniqueConstraint(\u0027domain_id\u0027, \u0027name\u0027))"},{"line_number":35,"context_line":"    group_table.create(migrate_engine, checkfirst\u003dTrue)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    sql.Table(\u0027user\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6fk%3D","line":34,"updated":"2013-02-14 17:31:09.000000000","message":"cool, i\u0027ve never seen this expressed in sqlalchemy before","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        sql.Column(\u0027name\u0027, sql.String(64), nullable\u003dFalse),"},{"line_number":32,"context_line":"        sql.Column(\u0027description\u0027, sql.Text()),"},{"line_number":33,"context_line":"        sql.Column(\u0027extra\u0027, sql.Text()),"},{"line_number":34,"context_line":"        sql.UniqueConstraint(\u0027domain_id\u0027, \u0027name\u0027))"},{"line_number":35,"context_line":"    group_table.create(migrate_engine, checkfirst\u003dTrue)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    sql.Table(\u0027user\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6ao%3D","line":34,"in_reply_to":"AAAAM3%2F%2B6cA%3D","updated":"2013-02-14 17:38:29.000000000","message":"No, Groups are owned by a domain, just like Users","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"}],"keystone/common/sql/migrate_repo/versions/016_normalize_domain_ids.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"14ddbe06a708ed773bf9f596e11df76d2ef26960","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        sql.Column(\u0027name\u0027, sql.String(64), unique\u003dTrue, nullable\u003dFalse),"},{"line_number":72,"context_line":"        sql.Column(\u0027extra\u0027, sql.Text()),"},{"line_number":73,"context_line":"        sql.Column(\u0027password\u0027, sql.String(128)),"},{"line_number":74,"context_line":"        sql.Column(\u0027enabled\u0027, sql.Boolean, default\u003dTrue))"},{"line_number":75,"context_line":"    temp_user_table.create(migrate_engine, checkfirst\u003dTrue)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    user_table \u003d sql.Table(\u0027user\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6fc%3D","line":74,"updated":"2013-02-14 17:31:09.000000000","message":"thanks","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":344,"context_line":"    # Finally, change the uniqueness settings for the name attribute"},{"line_number":345,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT user_name_key;\u0027)"},{"line_number":346,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD CONSTRAINT user_dom_name_unique \u0027"},{"line_number":347,"context_line":"                    \u0027UNIQUE (domain_id, name);\u0027)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"def upgrade_project_table_with_col_create(meta, migrate_engine, session):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6j0%3D","line":347,"updated":"2013-02-14 17:12:31.000000000","message":"are the double quotations required? differ from projects below","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"145b0448ed06ed3e16d4cb40abb0b8f45f8b1fc3","unresolved":false,"context_lines":[{"line_number":344,"context_line":"    # Finally, change the uniqueness settings for the name attribute"},{"line_number":345,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT user_name_key;\u0027)"},{"line_number":346,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD CONSTRAINT user_dom_name_unique \u0027"},{"line_number":347,"context_line":"                    \u0027UNIQUE (domain_id, name);\u0027)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"def upgrade_project_table_with_col_create(meta, migrate_engine, session):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6Y8%3D","line":347,"in_reply_to":"AAAAM3%2F%2B6cM%3D","updated":"2013-02-14 18:00:21.000000000","message":"thanks for the info. seemed like they were purposely put there.","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":344,"context_line":"    # Finally, change the uniqueness settings for the name attribute"},{"line_number":345,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT user_name_key;\u0027)"},{"line_number":346,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD CONSTRAINT user_dom_name_unique \u0027"},{"line_number":347,"context_line":"                    \u0027UNIQUE (domain_id, name);\u0027)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"def upgrade_project_table_with_col_create(meta, migrate_engine, session):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6cM%3D","line":347,"in_reply_to":"AAAAM3%2F%2B6j0%3D","updated":"2013-02-14 17:38:29.000000000","message":"Yes, they are required. \u0027user\u0027 is a reserved term in postgresql","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"14ddbe06a708ed773bf9f596e11df76d2ef26960","unresolved":false,"context_lines":[{"line_number":376,"context_line":""},{"line_number":377,"context_line":"def downgrade_user_table_with_col_drop(meta, migrate_engine, session):"},{"line_number":378,"context_line":"    # Revert uniqueness settings for the name attribute"},{"line_number":379,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT \u0027"},{"line_number":380,"context_line":"                    \u0027user_dom_name_unique;\u0027)"},{"line_number":381,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD UNIQUE (name);\u0027)"},{"line_number":382,"context_line":"    session.commit()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6e4%3D","line":379,"updated":"2013-02-14 17:31:09.000000000","message":"drop the quotes for postgres?","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":376,"context_line":""},{"line_number":377,"context_line":"def downgrade_user_table_with_col_drop(meta, migrate_engine, session):"},{"line_number":378,"context_line":"    # Revert uniqueness settings for the name attribute"},{"line_number":379,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT \u0027"},{"line_number":380,"context_line":"                    \u0027user_dom_name_unique;\u0027)"},{"line_number":381,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD UNIQUE (name);\u0027)"},{"line_number":382,"context_line":"    session.commit()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6aE%3D","line":379,"in_reply_to":"AAAAM3%2F%2B6e4%3D","updated":"2013-02-14 17:38:29.000000000","message":"....no, you need them for postgres!","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":378,"context_line":"    # Revert uniqueness settings for the name attribute"},{"line_number":379,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT \u0027"},{"line_number":380,"context_line":"                    \u0027user_dom_name_unique;\u0027)"},{"line_number":381,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD UNIQUE (name);\u0027)"},{"line_number":382,"context_line":"    session.commit()"},{"line_number":383,"context_line":"    # And now go ahead an drop the domain_id column"},{"line_number":384,"context_line":"    domain_table \u003d sql.Table(\u0027domain\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6kQ%3D","line":381,"updated":"2013-02-14 17:12:31.000000000","message":"ADD CONSTRAINT user_name_key UNIQUE (name)","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"145b0448ed06ed3e16d4cb40abb0b8f45f8b1fc3","unresolved":false,"context_lines":[{"line_number":378,"context_line":"    # Revert uniqueness settings for the name attribute"},{"line_number":379,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT \u0027"},{"line_number":380,"context_line":"                    \u0027user_dom_name_unique;\u0027)"},{"line_number":381,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD UNIQUE (name);\u0027)"},{"line_number":382,"context_line":"    session.commit()"},{"line_number":383,"context_line":"    # And now go ahead an drop the domain_id column"},{"line_number":384,"context_line":"    domain_table \u003d sql.Table(\u0027domain\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6Y0%3D","line":381,"in_reply_to":"AAAAM3%2F%2B6b8%3D","updated":"2013-02-14 18:00:21.000000000","message":"cool. i probably should\u0027ve googled if that made sense. figured it\u0027d be faster for you to explain it to me. :)","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":378,"context_line":"    # Revert uniqueness settings for the name attribute"},{"line_number":379,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" DROP CONSTRAINT \u0027"},{"line_number":380,"context_line":"                    \u0027user_dom_name_unique;\u0027)"},{"line_number":381,"context_line":"    session.execute(\u0027ALTER TABLE \"user\" ADD UNIQUE (name);\u0027)"},{"line_number":382,"context_line":"    session.commit()"},{"line_number":383,"context_line":"    # And now go ahead an drop the domain_id column"},{"line_number":384,"context_line":"    domain_table \u003d sql.Table(\u0027domain\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6b8%3D","line":381,"in_reply_to":"AAAAM3%2F%2B6kQ%3D","updated":"2013-02-14 17:38:29.000000000","message":"It will be called that anyway by default...and I am already assuming the default on the upgrade.","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"a975c789b741b251f48b815ae0b17649a921fc07","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        sql.Column(\"enabled\", sql.Boolean, default\u003dTrue),"},{"line_number":106,"context_line":"        sql.Column(\u0027domain_id\u0027, sql.String(64), sql.ForeignKey(\u0027domain.id\u0027),"},{"line_number":107,"context_line":"                   nullable\u003dFalse),"},{"line_number":108,"context_line":"        sql.UniqueConstraint(\u0027domain_id\u0027, \u0027name\u0027))"},{"line_number":109,"context_line":"    user_table.create(migrate_engine, checkfirst\u003dTrue)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    # Finally copy in the data from our temp table and then clean"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B11U%3D","line":108,"updated":"2013-02-17 21:11:59.000000000","message":"You can\u0027t add this after the fact.  Since this upgrade is already in the tree, you need a new upgrade to add this constraint.","commit_id":"8a6ac0b70d9c6efe521a831854699f57f95f3e83"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"cdffd523a96ba65c2a8d49183cdc48c096e8ced4","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        sql.Column(\"enabled\", sql.Boolean, default\u003dTrue),"},{"line_number":106,"context_line":"        sql.Column(\u0027domain_id\u0027, sql.String(64), sql.ForeignKey(\u0027domain.id\u0027),"},{"line_number":107,"context_line":"                   nullable\u003dFalse),"},{"line_number":108,"context_line":"        sql.UniqueConstraint(\u0027domain_id\u0027, \u0027name\u0027))"},{"line_number":109,"context_line":"    user_table.create(migrate_engine, checkfirst\u003dTrue)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    # Finally copy in the data from our temp table and then clean"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2B1zY%3D","line":108,"in_reply_to":"AAAAM3%2F%2B11U%3D","updated":"2013-02-17 22:25:11.000000000","message":"is that true?  I asked Dolph about this on a previous change - and his response is that we only need to maintain the database structure at each major release - i.e. it\u0027s OK to modify this here since 016 has not been yet included in a major release.","commit_id":"8a6ac0b70d9c6efe521a831854699f57f95f3e83"}],"keystone/identity/backends/kvs.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":618,"context_line":"            old_group \u003d self.db.get(\u0027group-%s\u0027 % group_id)"},{"line_number":619,"context_line":"        except exception.NotFound:"},{"line_number":620,"context_line":"            raise exception.GroupNotFound(group_id\u003dgroup_id)"},{"line_number":621,"context_line":"        if group[\u0027id\u0027] !\u003d group_id:"},{"line_number":622,"context_line":"            raise exception.ValidationError(_(\u0027Cannot change group ID\u0027))"},{"line_number":623,"context_line":"        self.db.delete(\u0027group_name-%s\u0027 % old_group[\u0027name\u0027])"},{"line_number":624,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6iA%3D","line":621,"updated":"2013-02-14 17:12:31.000000000","message":"do we need this check? i noticed the other updates methods don\u0027t have it and there is a _require_matching_id() clean up before this is called.","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"25b89ec4918b08bf62ca5b20220060039c49c729","unresolved":false,"context_lines":[{"line_number":618,"context_line":"            old_group \u003d self.db.get(\u0027group-%s\u0027 % group_id)"},{"line_number":619,"context_line":"        except exception.NotFound:"},{"line_number":620,"context_line":"            raise exception.GroupNotFound(group_id\u003dgroup_id)"},{"line_number":621,"context_line":"        if group[\u0027id\u0027] !\u003d group_id:"},{"line_number":622,"context_line":"            raise exception.ValidationError(_(\u0027Cannot change group ID\u0027))"},{"line_number":623,"context_line":"        self.db.delete(\u0027group_name-%s\u0027 % old_group[\u0027name\u0027])"},{"line_number":624,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B5RE%3D","line":621,"in_reply_to":"AAAAM3%2F%2B6Xk%3D","updated":"2013-02-15 09:06:10.000000000","message":"You\u0027re correct - we don\u0027t need it here, I\u0027ll remove.  Nice catch.","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"145b0448ed06ed3e16d4cb40abb0b8f45f8b1fc3","unresolved":false,"context_lines":[{"line_number":618,"context_line":"            old_group \u003d self.db.get(\u0027group-%s\u0027 % group_id)"},{"line_number":619,"context_line":"        except exception.NotFound:"},{"line_number":620,"context_line":"            raise exception.GroupNotFound(group_id\u003dgroup_id)"},{"line_number":621,"context_line":"        if group[\u0027id\u0027] !\u003d group_id:"},{"line_number":622,"context_line":"            raise exception.ValidationError(_(\u0027Cannot change group ID\u0027))"},{"line_number":623,"context_line":"        self.db.delete(\u0027group_name-%s\u0027 % old_group[\u0027name\u0027])"},{"line_number":624,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6Xk%3D","line":621,"in_reply_to":"AAAAM3%2F%2B6ac%3D","updated":"2013-02-14 18:00:21.000000000","message":"in identity controllers, when update is called, in v3 it will run \u0027_require_matching_id()\u0027 which verifies if the obj has the same id as the id you passing in to modify.\n\nalthough now that i look at v2 update_user, update_project, the check is probably useful there.","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":618,"context_line":"            old_group \u003d self.db.get(\u0027group-%s\u0027 % group_id)"},{"line_number":619,"context_line":"        except exception.NotFound:"},{"line_number":620,"context_line":"            raise exception.GroupNotFound(group_id\u003dgroup_id)"},{"line_number":621,"context_line":"        if group[\u0027id\u0027] !\u003d group_id:"},{"line_number":622,"context_line":"            raise exception.ValidationError(_(\u0027Cannot change group ID\u0027))"},{"line_number":623,"context_line":"        self.db.delete(\u0027group_name-%s\u0027 % old_group[\u0027name\u0027])"},{"line_number":624,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6ac%3D","line":621,"in_reply_to":"AAAAM3%2F%2B6iA%3D","updated":"2013-02-14 17:38:29.000000000","message":"So update entity should check against changing the ID (which is not permitted) - update_user certainly does that, for example.  Could you expand on what you mean by _require_matching_id()  ? Thanks","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"}],"tests/test_backend.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"14ddbe06a708ed773bf9f596e11df76d2ef26960","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                          \u0027fake2\u0027,"},{"line_number":262,"context_line":"                          user)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def test_create_duplicate_user_name_in_different_domains(self):"},{"line_number":265,"context_line":"        new_domain \u003d {\u0027id\u0027: uuid.uuid4().hex, \u0027name\u0027: uuid.uuid4().hex}"},{"line_number":266,"context_line":"        self.identity_api.create_domain(new_domain[\u0027id\u0027], new_domain)"},{"line_number":267,"context_line":"        user1 \u003d {\u0027id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6bw%3D","line":264,"updated":"2013-02-14 17:31:09.000000000","message":"yay :)","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        # fail since the names clash"},{"line_number":310,"context_line":"        user1[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":311,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":312,"context_line":"                          self.identity_api.create_user,"},{"line_number":313,"context_line":"                          user1[\u0027id\u0027],"},{"line_number":314,"context_line":"                          user1)"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6ek%3D","line":312,"updated":"2013-02-14 17:12:31.000000000","message":"update_user","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        # fail since the names clash"},{"line_number":310,"context_line":"        user1[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":311,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":312,"context_line":"                          self.identity_api.create_user,"},{"line_number":313,"context_line":"                          user1[\u0027id\u0027],"},{"line_number":314,"context_line":"                          user1)"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6bk%3D","line":312,"in_reply_to":"AAAAM3%2F%2B6ek%3D","updated":"2013-02-14 17:38:29.000000000","message":"oops, good catch, thanks!","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex,"},{"line_number":389,"context_line":"                   \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":390,"context_line":"                   \u0027domain_id\u0027: domain1[\u0027id\u0027]}"},{"line_number":391,"context_line":"        self.identity_api.create_group(project[\u0027id\u0027], project)"},{"line_number":392,"context_line":"        project[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":393,"context_line":"        self.identity_api.update_group(project[\u0027id\u0027], project)"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6fY%3D","line":391,"updated":"2013-02-14 17:12:31.000000000","message":"create_project and update_project below","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex,"},{"line_number":389,"context_line":"                   \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":390,"context_line":"                   \u0027domain_id\u0027: domain1[\u0027id\u0027]}"},{"line_number":391,"context_line":"        self.identity_api.create_group(project[\u0027id\u0027], project)"},{"line_number":392,"context_line":"        project[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":393,"context_line":"        self.identity_api.update_group(project[\u0027id\u0027], project)"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6bc%3D","line":391,"in_reply_to":"AAAAM3%2F%2B6fY%3D","updated":"2013-02-14 17:38:29.000000000","message":"too much copy \u0026 paste...:-)","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        project1 \u003d {\u0027id\u0027: uuid.uuid4().hex,"},{"line_number":401,"context_line":"                    \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":402,"context_line":"                    \u0027domain_id\u0027: domain1[\u0027id\u0027]}"},{"line_number":403,"context_line":"        self.identity_api.create_group(project1[\u0027id\u0027], project1)"},{"line_number":404,"context_line":"        # Now create a second project in domain2 with a potentially clashing"},{"line_number":405,"context_line":"        # name - which should work since we have domain separation"},{"line_number":406,"context_line":"        project2 \u003d {\u0027id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6fU%3D","line":403,"updated":"2013-02-14 17:12:31.000000000","message":"create_project","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        project1 \u003d {\u0027id\u0027: uuid.uuid4().hex,"},{"line_number":401,"context_line":"                    \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":402,"context_line":"                    \u0027domain_id\u0027: domain1[\u0027id\u0027]}"},{"line_number":403,"context_line":"        self.identity_api.create_group(project1[\u0027id\u0027], project1)"},{"line_number":404,"context_line":"        # Now create a second project in domain2 with a potentially clashing"},{"line_number":405,"context_line":"        # name - which should work since we have domain separation"},{"line_number":406,"context_line":"        project2 \u003d {\u0027id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6bY%3D","line":403,"in_reply_to":"AAAAM3%2F%2B6fU%3D","updated":"2013-02-14 17:38:29.000000000","message":"Done","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        # fail since the names clash"},{"line_number":412,"context_line":"        project1[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":413,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":414,"context_line":"                          self.identity_api.create_project,"},{"line_number":415,"context_line":"                          project1[\u0027id\u0027],"},{"line_number":416,"context_line":"                          project1)"},{"line_number":417,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6ew%3D","line":414,"updated":"2013-02-14 17:12:31.000000000","message":"update_project","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"25b89ec4918b08bf62ca5b20220060039c49c729","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        # fail since the names clash"},{"line_number":412,"context_line":"        project1[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":413,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":414,"context_line":"                          self.identity_api.create_project,"},{"line_number":415,"context_line":"                          project1[\u0027id\u0027],"},{"line_number":416,"context_line":"                          project1)"},{"line_number":417,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B5MU%3D","line":414,"in_reply_to":"AAAAM3%2F%2B6bU%3D","updated":"2013-02-15 09:06:10.000000000","message":"...and actually this uncovered a bug in the update_project in the backend that was not, unlike User and Group, copying all the attributes over when doing an update (i.e. domain_id was not being updated)","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        # fail since the names clash"},{"line_number":412,"context_line":"        project1[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":413,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":414,"context_line":"                          self.identity_api.create_project,"},{"line_number":415,"context_line":"                          project1[\u0027id\u0027],"},{"line_number":416,"context_line":"                          project1)"},{"line_number":417,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6bU%3D","line":414,"in_reply_to":"AAAAM3%2F%2B6ew%3D","updated":"2013-02-14 17:38:29.000000000","message":"Done","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":1769,"context_line":"        # fail since the names clash"},{"line_number":1770,"context_line":"        group1[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":1771,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":1772,"context_line":"                          self.identity_api.create_group,"},{"line_number":1773,"context_line":"                          group1[\u0027id\u0027],"},{"line_number":1774,"context_line":"                          group1)"},{"line_number":1775,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6e0%3D","line":1772,"updated":"2013-02-14 17:12:31.000000000","message":"update_group","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":1769,"context_line":"        # fail since the names clash"},{"line_number":1770,"context_line":"        group1[\u0027domain_id\u0027] \u003d domain2[\u0027id\u0027]"},{"line_number":1771,"context_line":"        self.assertRaises(exception.Conflict,"},{"line_number":1772,"context_line":"                          self.identity_api.create_group,"},{"line_number":1773,"context_line":"                          group1[\u0027id\u0027],"},{"line_number":1774,"context_line":"                          group1)"},{"line_number":1775,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6bQ%3D","line":1772,"in_reply_to":"AAAAM3%2F%2B6e0%3D","updated":"2013-02-14 17:38:29.000000000","message":"Done","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"}],"tests/test_backend_ldap.py":[{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1122354\u0027)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    def test_create_duplicate_group_name_in_different_domains(self):"},{"line_number":512,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    def test_create_duplicate_user_name_in_different_domains(self):"},{"line_number":515,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3YY%3D","line":512,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug cited - should be 1122354","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c9f3210c01f0a572152f96e6d20aab5e2473cedd","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1122354\u0027)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    def test_create_duplicate_group_name_in_different_domains(self):"},{"line_number":512,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    def test_create_duplicate_user_name_in_different_domains(self):"},{"line_number":515,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3Pc%3D","line":512,"in_reply_to":"AAAAM3%2F%2B3YY%3D","updated":"2013-02-16 03:41:22.000000000","message":"yep, dead right!  Will fix all the others too.","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    def test_create_duplicate_user_name_in_different_domains(self):"},{"line_number":515,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def test_create_duplicate_project_name_in_different_domains(self):"},{"line_number":518,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3YQ%3D","line":515,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    def test_create_duplicate_project_name_in_different_domains(self):"},{"line_number":518,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def test_create_duplicate_group_name_fails(self):"},{"line_number":521,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1092187\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3YI%3D","line":518,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":521,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1092187\u0027)"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    def test_move_user_between_domains(self):"},{"line_number":524,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def test_move_user_between_domains_with_clashing_names_fails(self):"},{"line_number":527,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3YE%3D","line":524,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":524,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def test_move_user_between_domains_with_clashing_names_fails(self):"},{"line_number":527,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def test_move_group_between_domains(self):"},{"line_number":530,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3Xw%3D","line":527,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":527,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    def test_move_group_between_domains(self):"},{"line_number":530,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def test_move_group_between_domains_with_clashing_names_fails(self):"},{"line_number":533,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3X0%3D","line":530,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def test_move_group_between_domains_with_clashing_names_fails(self):"},{"line_number":533,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_move_project_between_domains(self):"},{"line_number":536,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3X4%3D","line":533,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def test_move_project_between_domains(self):"},{"line_number":536,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    def test_move_project_between_domains_with_clashing_names_fails(self):"},{"line_number":539,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3X8%3D","line":536,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"b6d1a729e551ef3c7149c06c019908d4d08ccc85","unresolved":false,"context_lines":[{"line_number":536,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    def test_move_project_between_domains_with_clashing_names_fails(self):"},{"line_number":539,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1119770\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B3YA%3D","line":539,"updated":"2013-02-16 01:38:41.000000000","message":"wrong bug","commit_id":"4d513c264c7d80bfa70b4d3176e3e4dad57b0690"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"13ea5f3d8e1a92dda3b8778b9ed6522345f89895","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1122354\u0027)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    def test_create_duplicate_group_name_in_different_domains(self):"},{"line_number":512,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1122354\u0027)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"    def test_create_duplicate_user_name_in_different_domains(self):"},{"line_number":515,"context_line":"        raise nose.exc.SkipTest(\u0027Blocked by bug 1122354\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2BzwU%3D","line":512,"updated":"2013-02-18 20:37:41.000000000","message":"merge conflict is here -- and this bug isn\u0027t correct? it\u0027s marked invalid and references a bug that\u0027s already fix committed","commit_id":"8a6ac0b70d9c6efe521a831854699f57f95f3e83"}],"tests/test_sql_upgrade.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26ca845ef729a18a52db7f56faf8bf9d1f0f4a26","unresolved":false,"context_lines":[{"line_number":477,"context_line":"        cmd \u003d this_table.insert().values(user)"},{"line_number":478,"context_line":"        self.engine.execute(cmd)"},{"line_number":479,"context_line":"        cmd \u003d this_table.delete(id\u003duser[\u0027id\u0027])"},{"line_number":480,"context_line":"        self.engine.execute(cmd)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        # Now, the Project table."},{"line_number":483,"context_line":"        this_table \u003d sqlalchemy.Table(\u0027project\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6do%3D","line":480,"updated":"2013-02-14 17:12:31.000000000","message":"delete action is never verified. are we doing this to make sure the correct item is deleted?","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"db1c1def60b78e71acad473274ffd565e9ee634c","unresolved":false,"context_lines":[{"line_number":477,"context_line":"        cmd \u003d this_table.insert().values(user)"},{"line_number":478,"context_line":"        self.engine.execute(cmd)"},{"line_number":479,"context_line":"        cmd \u003d this_table.delete(id\u003duser[\u0027id\u0027])"},{"line_number":480,"context_line":"        self.engine.execute(cmd)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        # Now, the Project table."},{"line_number":483,"context_line":"        this_table \u003d sqlalchemy.Table(\u0027project\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6a4%3D","line":480,"in_reply_to":"AAAAM3%2F%2B6bg%3D","updated":"2013-02-14 17:38:29.000000000","message":"So this is to do with a bug I raised (#1125046) and a restriction this implementation has, as noted in the commit comment.  We have now created two users with the same name in different domains...when the test tries to teardown to 0, it will fail because we cannot go back to a single global domain space.  However, I should have at least added a comment here to that effect.","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"14ddbe06a708ed773bf9f596e11df76d2ef26960","unresolved":false,"context_lines":[{"line_number":477,"context_line":"        cmd \u003d this_table.insert().values(user)"},{"line_number":478,"context_line":"        self.engine.execute(cmd)"},{"line_number":479,"context_line":"        cmd \u003d this_table.delete(id\u003duser[\u0027id\u0027])"},{"line_number":480,"context_line":"        self.engine.execute(cmd)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"        # Now, the Project table."},{"line_number":483,"context_line":"        this_table \u003d sqlalchemy.Table(\u0027project\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B6bg%3D","line":480,"in_reply_to":"AAAAM3%2F%2B6do%3D","updated":"2013-02-14 17:31:09.000000000","message":"i\u0027m curious why the deletes are necessary as well -- what\u0027s being asserted?","commit_id":"a96adc02ac1337f4f3268cb542d21657f99825bb"}]}
