)]}'
{"keystone/common/sql/migrate_repo/versions/014_default_domain.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"7b14a1aaf715e341f9bcadc0fa863816090819c2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            \u0027, \u0027.join([\u0027`%s`\u0027 % k for k in domain.keys()]),"},{"line_number":49,"context_line":"            \u0027, \u0027.join([\u0027:%s\u0027 % k for k in domain.keys()])),"},{"line_number":50,"context_line":"        domain)"},{"line_number":51,"context_line":"    session.commit()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def downgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fguk%3D","line":51,"updated":"2013-01-17 21:08:12.000000000","message":"Don\u0027t we have to migrate the existing resources into the default domain, or is that be done some place else?","commit_id":"9d088a0601b58fa94d290c45a80e8eb1994d6392"}],"keystone/config.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"44c0feb8c4e907d737d44462d172cb5afe620eec","unresolved":false,"context_lines":[{"line_number":138,"context_line":"register_str(\u0027policy_file\u0027, default\u003d\u0027policy.json\u0027)"},{"line_number":139,"context_line":"register_str(\u0027policy_default_rule\u0027, default\u003dNone)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"# identity"},{"line_number":142,"context_line":"register_str(\u0027default_domain_id\u0027, group\u003d\u0027identity\u0027, default\u003d\u0027default\u0027)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"#ssl options"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2FcoE%3D","line":141,"updated":"2013-01-22 05:37:48.000000000","message":"I think we should document what default_domain_id is and the consequences of modifying it. Like if you change the default_domain_id after data migration, there will be severe impacts.","commit_id":"83d4f78800a1555e48dcd738720129cc8aa98a42"}],"keystone/identity/controllers.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"59a78655df4f3186a4547885b06ab6c9a33dde79","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        # carefully orchestrated manual process involving configuration"},{"line_number":447,"context_line":"        # changes, etc)"},{"line_number":448,"context_line":"        if domain_id \u003d\u003d DEFAULT_DOMAIN_ID:"},{"line_number":449,"context_line":"            raise exception.ForbiddenAction(action\u003d\u0027delete the default domain\u0027)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        return self.identity_api.delete_domain(context, domain_id)"},{"line_number":452,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2FhNc%3D","line":449,"updated":"2013-01-17 16:31:26.000000000","message":"If the default domain doesn\u0027t exist, should 404 Not Found be returned rather than 403 Forbidden?\n\nShould the check for if the domain is the default domain be in the identity_api.delete_domain function instead?\n\nLooking at the exception.ForbiddenAction class, the message that\u0027s going to be returned to the user is: \"You are not authorized to perform the requested action: %(action)s\"... but in this case it\u0027s not that you\u0027re not authorized. The message should be clearer.","commit_id":"9d088a0601b58fa94d290c45a80e8eb1994d6392"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"593b6f614fed8dbcab5aeea7791bd0b9f9d2b065","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        # carefully orchestrated manual process involving configuration"},{"line_number":447,"context_line":"        # changes, etc)"},{"line_number":448,"context_line":"        if domain_id \u003d\u003d DEFAULT_DOMAIN_ID:"},{"line_number":449,"context_line":"            raise exception.ForbiddenAction(action\u003d\u0027delete the default domain\u0027)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        return self.identity_api.delete_domain(context, domain_id)"},{"line_number":452,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fgqg%3D","line":449,"in_reply_to":"AAAAM3%2F%2Fguo%3D","updated":"2013-01-17 21:42:05.000000000","message":"Migration only applies to the sql backend, so for a different backend it might not exist. Also, the comment above says that the default domain can be deleted by some manual process.","commit_id":"9d088a0601b58fa94d290c45a80e8eb1994d6392"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"7b14a1aaf715e341f9bcadc0fa863816090819c2","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        # carefully orchestrated manual process involving configuration"},{"line_number":447,"context_line":"        # changes, etc)"},{"line_number":448,"context_line":"        if domain_id \u003d\u003d DEFAULT_DOMAIN_ID:"},{"line_number":449,"context_line":"            raise exception.ForbiddenAction(action\u003d\u0027delete the default domain\u0027)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        return self.identity_api.delete_domain(context, domain_id)"},{"line_number":452,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2Fguo%3D","line":449,"in_reply_to":"AAAAM3%2F%2FhNc%3D","updated":"2013-01-17 21:08:12.000000000","message":"Default should *always* exist or upgrade/migration has gone horribly wrong.","commit_id":"9d088a0601b58fa94d290c45a80e8eb1994d6392"}]}
