)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Limitations:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch only enables, as indicated in the configuration docs, a"},{"line_number":20,"context_line":"single SQL backend to be used (e.g. only one domain-specifc config"},{"line_number":21,"context_line":"file referencing the identity sql driver). This allows for the"},{"line_number":22,"context_line":"(often requested) scenario of service users to be stored in SQL in"},{"line_number":23,"context_line":"a predominantly LDAP installation.  Follow-on patches may remove"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa98f980_9c395fa6","line":20,"updated":"2014-09-14 13:21:49.000000000","message":"change \"specifc\" to \"specific\"","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Limitations:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch only enables, as indicated in the configuration docs, a"},{"line_number":20,"context_line":"single SQL backend to be used (e.g. only one domain-specifc config"},{"line_number":21,"context_line":"file referencing the identity sql driver). This allows for the"},{"line_number":22,"context_line":"(often requested) scenario of service users to be stored in SQL in"},{"line_number":23,"context_line":"a predominantly LDAP installation.  Follow-on patches may remove"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa98f980_f9db524c","line":20,"in_reply_to":"fa98f980_9c395fa6","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"}],"keystone/exception.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7c79f5dd2e27b3b8c1a32814272e9bd7de4f9d93","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"class MultipleSQLDriversInConfig(UnexpectedError):"},{"line_number":402,"context_line":"    message_format \u003d _(\"The Keystone domain configuration file \""},{"line_number":403,"context_line":"                       \"%(config_file)s defines a second sql drivers - \""},{"line_number":404,"context_line":"                       \"only one is permitted.\")"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_599a8514","line":403,"updated":"2014-09-16 01:31:49.000000000","message":"nit: s/a second/additional/","commit_id":"ebf682a599e6d4c76a4c1d6ee1705c72a38da821"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"2d1fa59bcd7db4296501ba8eb1c8e099f16ace0b","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"class MultipleSQLDriversInConfig(UnexpectedError):"},{"line_number":402,"context_line":"    message_format \u003d _(\"The Keystone domain configuration file \""},{"line_number":403,"context_line":"                       \"%(config_file)s defines a second sql drivers - \""},{"line_number":404,"context_line":"                       \"only one is permitted.\")"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_d54631bf","line":403,"in_reply_to":"fa98f980_599a8514","updated":"2014-09-16 08:31:04.000000000","message":"Done","commit_id":"ebf682a599e6d4c76a4c1d6ee1705c72a38da821"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e9b1f33fb976a3853085bfb2b1ae844134401c92","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"class MultipleSQLDriversInConfig(UnexpectedError):"},{"line_number":402,"context_line":"    message_format \u003d _(\"The Keystone domain configuration file \""},{"line_number":403,"context_line":"                       \"%(config_file)s defines an additional sql driver - \""},{"line_number":404,"context_line":"                       \"only one is permitted.\")"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_ad9cf65e","line":403,"updated":"2014-09-16 16:44:20.000000000","message":"(nit) SQL and single quotes","commit_id":"0a8458b1c9ff46913cd333a78e190311b5017524"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"41625e0fc47a560ca8d959cc9bdf0405d973ecad","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":"class MultipleSQLDriversInConfig(UnexpectedError):"},{"line_number":402,"context_line":"    message_format \u003d _(\"The Keystone domain configuration file \""},{"line_number":403,"context_line":"                       \"%(config_file)s defines an additional sql driver - \""},{"line_number":404,"context_line":"                       \"only one is permitted.\")"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_1eec4af3","line":403,"in_reply_to":"fa98f980_ad9cf65e","updated":"2014-09-16 17:59:56.000000000","message":"Done","commit_id":"0a8458b1c9ff46913cd333a78e190311b5017524"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"005fe5298eb519edaefc36874445f770d675abf8","unresolved":false,"context_lines":[{"line_number":401,"context_line":"class MultipleSQLDriversInConfig(UnexpectedError):"},{"line_number":402,"context_line":"    message_format \u003d _(\u0027The Keystone domain configuration file \u0027"},{"line_number":403,"context_line":"                       \u0027%(config_file)s defines an additional SQL driver - \u0027"},{"line_number":404,"context_line":"                       \u0027only one is permitted.\u0027)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"class MigrationNotProvided(Exception):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_1f93485d","line":404,"updated":"2014-09-17 16:45:10.000000000","message":"This violates string freeze, please send a message to the localization team as a heads up.","commit_id":"c0ddc5c14dd2209ceaf5cadf3e898011d3b2474f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3837e0b112aec69ee8ed04cc30b53a58c346ba81","unresolved":false,"context_lines":[{"line_number":401,"context_line":"class MultipleSQLDriversInConfig(UnexpectedError):"},{"line_number":402,"context_line":"    message_format \u003d _(\u0027The Keystone domain configuration file \u0027"},{"line_number":403,"context_line":"                       \u0027%(config_file)s defines an additional SQL driver - \u0027"},{"line_number":404,"context_line":"                       \u0027only one is permitted.\u0027)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"class MigrationNotProvided(Exception):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_1fd988f4","line":404,"in_reply_to":"fa98f980_1f93485d","updated":"2014-09-17 16:51:55.000000000","message":"I sent an email to the i18n list:\n\nhttp://lists.openstack.org/pipermail/openstack-i18n/2014-September/000771.html","commit_id":"c0ddc5c14dd2209ceaf5cadf3e898011d3b2474f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c7c09587f78cf5cf47b74eba7d4e31be0d01c917","unresolved":false,"context_lines":[{"line_number":401,"context_line":"class MultipleSQLDriversInConfig(UnexpectedError):"},{"line_number":402,"context_line":"    message_format \u003d _(\u0027The Keystone domain configuration file \u0027"},{"line_number":403,"context_line":"                       \u0027%(config_file)s defines an additional SQL driver - \u0027"},{"line_number":404,"context_line":"                       \u0027only one is permitted.\u0027)"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"class MigrationNotProvided(Exception):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_7a72a212","line":404,"in_reply_to":"fa98f980_1fd988f4","updated":"2014-09-17 17:27:11.000000000","message":"thanks!","commit_id":"c0ddc5c14dd2209ceaf5cadf3e898011d3b2474f"}],"keystone/identity/backends/sql.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class Identity(identity.Driver):"},{"line_number":78,"context_line":"    def __init__(self, conf\u003dNone):"},{"line_number":79,"context_line":"        super(Identity, self).__init__()"},{"line_number":80,"context_line":"        if conf is None:"},{"line_number":81,"context_line":"            conf \u003d CONF"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_dc3f6785","line":79,"updated":"2014-09-14 13:21:49.000000000","message":"add a comment why this is method is overridden -- primordial support for domain-specific SQL backend.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class Identity(identity.Driver):"},{"line_number":78,"context_line":"    def __init__(self, conf\u003dNone):"},{"line_number":79,"context_line":"        super(Identity, self).__init__()"},{"line_number":80,"context_line":"        if conf is None:"},{"line_number":81,"context_line":"            conf \u003d CONF"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_8853d2e0","line":79,"in_reply_to":"fa98f980_dc3f6785","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class Identity(identity.Driver):"},{"line_number":78,"context_line":"    def __init__(self, conf\u003dNone):"},{"line_number":79,"context_line":"        super(Identity, self).__init__()"},{"line_number":80,"context_line":"        if conf is None:"},{"line_number":81,"context_line":"            conf \u003d CONF"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def default_assignment_driver(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_bc3c6394","line":80,"updated":"2014-09-14 13:21:49.000000000","message":"this doesn\u0027t do anything. Remove it.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class Identity(identity.Driver):"},{"line_number":78,"context_line":"    def __init__(self, conf\u003dNone):"},{"line_number":79,"context_line":"        super(Identity, self).__init__()"},{"line_number":80,"context_line":"        if conf is None:"},{"line_number":81,"context_line":"            conf \u003d CONF"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def default_assignment_driver(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_68486e2d","line":80,"in_reply_to":"fa98f980_bc3c6394","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e9b1f33fb976a3853085bfb2b1ae844134401c92","unresolved":false,"context_lines":[{"line_number":22,"context_line":"# Import assignment sql to ensure that the models defined in there are"},{"line_number":23,"context_line":"# available for the reference from User and Group to Domain.id."},{"line_number":24,"context_line":"from keystone.assignment.backends import sql as assignment_sql  # noqa"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONF \u003d config.CONF"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_edcb5e48","line":25,"updated":"2014-09-16 16:44:20.000000000","message":"(nit) missing a newline","commit_id":"0a8458b1c9ff46913cd333a78e190311b5017524"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"41625e0fc47a560ca8d959cc9bdf0405d973ecad","unresolved":false,"context_lines":[{"line_number":22,"context_line":"# Import assignment sql to ensure that the models defined in there are"},{"line_number":23,"context_line":"# available for the reference from User and Group to Domain.id."},{"line_number":24,"context_line":"from keystone.assignment.backends import sql as assignment_sql  # noqa"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"CONF \u003d config.CONF"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_7eb2b607","line":25,"in_reply_to":"fa98f980_edcb5e48","updated":"2014-09-16 17:59:56.000000000","message":"Done","commit_id":"0a8458b1c9ff46913cd333a78e190311b5017524"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e9b1f33fb976a3853085bfb2b1ae844134401c92","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class Identity(identity.Driver):"},{"line_number":78,"context_line":"    # NOTE(henry-nash): Override the __init__() method so as to take a"},{"line_number":79,"context_line":"    # config parameter to enable sql to be used as a domain-specific driver."},{"line_number":80,"context_line":"    def __init__(self, conf\u003dNone):"},{"line_number":81,"context_line":"        super(Identity, self).__init__()"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def default_assignment_driver(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_482a9830","line":80,"updated":"2014-09-16 16:44:20.000000000","message":"Is this supposed to use the configuration to rig up the driver based on the config passed in or is this just to make the interface the same as the LDAP driver?","commit_id":"0a8458b1c9ff46913cd333a78e190311b5017524"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e4a2f5f50da4ebdbda6dd73403c6bbbdaecdf1fe","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class Identity(identity.Driver):"},{"line_number":78,"context_line":"    # NOTE(henry-nash): Override the __init__() method so as to take a"},{"line_number":79,"context_line":"    # config parameter to enable sql to be used as a domain-specific driver."},{"line_number":80,"context_line":"    def __init__(self, conf\u003dNone):"},{"line_number":81,"context_line":"        super(Identity, self).__init__()"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def default_assignment_driver(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_488d382a","line":80,"in_reply_to":"fa98f980_482a9830","updated":"2014-09-16 16:56:28.000000000","message":"So in the future it might indeed instantiate a unique sql backend, from the details in conf.  However, since today we only support one, really the only crucial thing is the module that is providing the sql driver...which of course is already used to get us to this point in the code.  So in reality, today it is done this way to look like the LDAP case, in the future we might actually use it inside this module.","commit_id":"0a8458b1c9ff46913cd333a78e190311b5017524"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d85d64827340bf1483e392e3606e736cc780772e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    def default_assignment_driver(self):"},{"line_number":85,"context_line":"        return \"keystone.assignment.backends.sql.Assignment\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def is_sql(self):"},{"line_number":88,"context_line":"        return True"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _check_password(self, password, user_ref):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_69d11b2f","line":87,"updated":"2014-09-16 20:26:45.000000000","message":"this could be a property so it\u0027s not all java-y.","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bbd53597a6fbfde921b7a3417fac200d82e17aa7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    def default_assignment_driver(self):"},{"line_number":85,"context_line":"        return \"keystone.assignment.backends.sql.Assignment\""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def is_sql(self):"},{"line_number":88,"context_line":"        return True"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def _check_password(self, password, user_ref):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_960813db","line":87,"in_reply_to":"fa98f980_69d11b2f","updated":"2014-09-17 06:36:13.000000000","message":"Done","commit_id":"57e508461156ae5faeeff072f094bba89c466691"}],"keystone/identity/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            \"\"\""},{"line_number":105,"context_line":"            def is_sql_driver(driver):"},{"line_number":106,"context_line":"                return \u0027backends.sql\u0027 in driver"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            if is_sql_driver(new_config.identity.driver):"},{"line_number":109,"context_line":"                # Is there another sql driver in the specific configs?"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_9c607fa6","line":106,"updated":"2014-09-14 13:21:49.000000000","message":"add a method to the driver instead that returns its type, or better yet returns its capabilities. This isn\u0027t safe because someone might have their own SQL driver and it\u0027s in a different location.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e96e2b6d23a7a24bb6c7f451931c2ae10428df78","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            \"\"\""},{"line_number":105,"context_line":"            def is_sql_driver(driver):"},{"line_number":106,"context_line":"                return \u0027backends.sql\u0027 in driver"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            if is_sql_driver(new_config.identity.driver):"},{"line_number":109,"context_line":"                # Is there another sql driver in the specific configs?"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_ad9a4f5f","line":106,"in_reply_to":"fa98f980_48df2a69","updated":"2014-09-15 21:53:46.000000000","message":"Following our discussion...this is now implemented.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            \"\"\""},{"line_number":105,"context_line":"            def is_sql_driver(driver):"},{"line_number":106,"context_line":"                return \u0027backends.sql\u0027 in driver"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            if is_sql_driver(new_config.identity.driver):"},{"line_number":109,"context_line":"                # Is there another sql driver in the specific configs?"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_48df2a69","line":106,"in_reply_to":"fa98f980_9c607fa6","updated":"2014-09-15 09:49:30.000000000","message":"So we could do that...my only concern is that we\u0027d have to load the object for that....do you think instantiating the class might be conceptually dangerous, since it might upset the underlying sql?  I think our standard one is fine, but who knows what people will put in __init__() ?","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        if multiple_sql_drivers(domain_config[\u0027cfg\u0027]):"},{"line_number":138,"context_line":"            # The addition of this driver would cause us to have more than one"},{"line_number":139,"context_line":"            # sql driver, so ignore it and log a warning."},{"line_number":140,"context_line":"            LOG.warning(_(\u0027More than one SQL driver has been configured, \u0027"},{"line_number":141,"context_line":"                          \u0027ignoring sql config for domain: %s\u0027),"},{"line_number":142,"context_line":"                        domain_name)"},{"line_number":143,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_5c5377e1","line":140,"updated":"2014-09-14 13:21:49.000000000","message":"use _LW","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        if multiple_sql_drivers(domain_config[\u0027cfg\u0027]):"},{"line_number":138,"context_line":"            # The addition of this driver would cause us to have more than one"},{"line_number":139,"context_line":"            # sql driver, so ignore it and log a warning."},{"line_number":140,"context_line":"            LOG.warning(_(\u0027More than one SQL driver has been configured, \u0027"},{"line_number":141,"context_line":"                          \u0027ignoring sql config for domain: %s\u0027),"},{"line_number":142,"context_line":"                        domain_name)"},{"line_number":143,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_99708609","line":140,"in_reply_to":"fa98f980_5c5377e1","updated":"2014-09-15 09:49:30.000000000","message":"changed to LE","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            # sql driver, so ignore it and log a warning."},{"line_number":140,"context_line":"            LOG.warning(_(\u0027More than one SQL driver has been configured, \u0027"},{"line_number":141,"context_line":"                          \u0027ignoring sql config for domain: %s\u0027),"},{"line_number":142,"context_line":"                        domain_name)"},{"line_number":143,"context_line":"        else:"},{"line_number":144,"context_line":"            self[domain] \u003d domain_config"},{"line_number":145,"context_line":"            self._load_driver(assignment_api, domain)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_1c748f66","line":142,"updated":"2014-09-14 13:21:49.000000000","message":"I don\u0027t think it\u0027s safe to log a warning and ignore the config. For one thing, the configs may be loaded in a different order and so you could get different backends ignored on separate reboots. Raise an exception.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            # sql driver, so ignore it and log a warning."},{"line_number":140,"context_line":"            LOG.warning(_(\u0027More than one SQL driver has been configured, \u0027"},{"line_number":141,"context_line":"                          \u0027ignoring sql config for domain: %s\u0027),"},{"line_number":142,"context_line":"                        domain_name)"},{"line_number":143,"context_line":"        else:"},{"line_number":144,"context_line":"            self[domain] \u003d domain_config"},{"line_number":145,"context_line":"            self._load_driver(assignment_api, domain)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_b962aa3b","line":142,"in_reply_to":"fa98f980_1c748f66","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a208c86a649d12ca58dec5e62332813398cb2fbb","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"            LOG.error(_LE(\u0027Found more than one SQL driver had been \u0027"},{"line_number":142,"context_line":"                          \u0027configured, while loading sql config for \u0027"},{"line_number":143,"context_line":"                          \u0027domain: %s\u0027),"},{"line_number":144,"context_line":"                      domain_name)"},{"line_number":145,"context_line":"            raise exception.MultipleSQLDriversInConfig()"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_b3ac7ba0","line":143,"updated":"2014-09-15 16:26:44.000000000","message":"Could this info be build into the MultipleSQLDriversInConfig() exception?\n\nAlso, could the config that the extra sql drivers were found in be printed too? That might be helpful information for the user as well.","commit_id":"087b43bed3bc2932037d55c2a3df07aeef58b2bf"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"6d428271dbec857eb3db5b97e60f0b64e82d27b6","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"            LOG.error(_LE(\u0027Found more than one SQL driver had been \u0027"},{"line_number":142,"context_line":"                          \u0027configured, while loading sql config for \u0027"},{"line_number":143,"context_line":"                          \u0027domain: %s\u0027),"},{"line_number":144,"context_line":"                      domain_name)"},{"line_number":145,"context_line":"            raise exception.MultipleSQLDriversInConfig()"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_422d338e","line":143,"in_reply_to":"fa98f980_b3ac7ba0","updated":"2014-09-15 18:59:46.000000000","message":"Done","commit_id":"087b43bed3bc2932037d55c2a3df07aeef58b2bf"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d85d64827340bf1483e392e3606e736cc780772e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    configured \u003d False"},{"line_number":87,"context_line":"    driver \u003d None"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _load_driver(self, domain_config, assignment_api, domain_id):"},{"line_number":90,"context_line":"        domain_config_driver \u003d ("},{"line_number":91,"context_line":"            importutils.import_object("},{"line_number":92,"context_line":"                domain_config[\u0027cfg\u0027].identity.driver, domain_config[\u0027cfg\u0027]))"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_29ef13eb","line":89,"updated":"2014-09-16 20:26:45.000000000","message":"domain_id isn\u0027t used anymore, so remove it.","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bbd53597a6fbfde921b7a3417fac200d82e17aa7","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    configured \u003d False"},{"line_number":87,"context_line":"    driver \u003d None"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def _load_driver(self, domain_config, assignment_api, domain_id):"},{"line_number":90,"context_line":"        domain_config_driver \u003d ("},{"line_number":91,"context_line":"            importutils.import_object("},{"line_number":92,"context_line":"                domain_config[\u0027cfg\u0027].identity.driver, domain_config[\u0027cfg\u0027]))"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_76c56f09","line":89,"in_reply_to":"fa98f980_29ef13eb","updated":"2014-09-17 06:36:13.000000000","message":"Done","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d85d64827340bf1483e392e3606e736cc780772e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                # Is the standard driver sql?"},{"line_number":111,"context_line":"                if self.driver.is_sql():"},{"line_number":112,"context_line":"                    return True"},{"line_number":113,"context_line":"            return False"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            domain_ref \u003d assignment_api.get_domain_by_name(domain_name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_299d5367","line":113,"updated":"2014-09-16 20:26:45.000000000","message":"if this function did the raise-ing then the caller would be simpler.\n\nAlso, seems like it would be easier to just keep a boolean that indicated whether an sql driver had been loaded already and check that instead of looking through all the backends every time.\n\n self._any_sql \u003d False\n\n driver \u003d self._load_driver(...)\n if driver.is_sql and self._any_sql: raise\n self._any_sql \u003d driver.is_sql","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bbd53597a6fbfde921b7a3417fac200d82e17aa7","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                # Is the standard driver sql?"},{"line_number":111,"context_line":"                if self.driver.is_sql():"},{"line_number":112,"context_line":"                    return True"},{"line_number":113,"context_line":"            return False"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            domain_ref \u003d assignment_api.get_domain_by_name(domain_name)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_968bb31d","line":113,"in_reply_to":"fa98f980_299d5367","updated":"2014-09-17 06:36:13.000000000","message":"yes, I think that is indeed simpler. Done.","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d85d64827340bf1483e392e3606e736cc780772e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            # sql driver, so ignore it and log a warning."},{"line_number":139,"context_line":"            raise exception.MultipleSQLDriversInConfig(config_file\u003dfile_list)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        self[domain] \u003d domain_config"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def setup_domain_drivers(self, standard_driver, assignment_api):"},{"line_number":144,"context_line":"        # This is called by the api call wrapper"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_c99cc760","line":141,"updated":"2014-09-16 20:26:45.000000000","message":"if self._load_driver() doesn\u0027t use domain, then this is the only place it\u0027s used, so probably don\u0027t need the domain variable at line 128...\n\n self[domain_ref[\u0027id\u0027]] \u003d domain_config","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bbd53597a6fbfde921b7a3417fac200d82e17aa7","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            # sql driver, so ignore it and log a warning."},{"line_number":139,"context_line":"            raise exception.MultipleSQLDriversInConfig(config_file\u003dfile_list)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        self[domain] \u003d domain_config"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def setup_domain_drivers(self, standard_driver, assignment_api):"},{"line_number":144,"context_line":"        # This is called by the api call wrapper"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_b6b27704","line":141,"in_reply_to":"fa98f980_c99cc760","updated":"2014-09-17 06:36:13.000000000","message":"Done","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d85d64827340bf1483e392e3606e736cc780772e","unresolved":false,"context_lines":[{"line_number":867,"context_line":"        \"\"\"Indicates if Driver supports domains.\"\"\""},{"line_number":868,"context_line":"        return True"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"    def is_sql(self):"},{"line_number":871,"context_line":"        \"\"\"Indicates if this Driver uses SQL.\"\"\""},{"line_number":872,"context_line":"        return False"},{"line_number":873,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_29c2b334","line":870,"updated":"2014-09-16 20:26:45.000000000","message":"suggest make this a property.","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bbd53597a6fbfde921b7a3417fac200d82e17aa7","unresolved":false,"context_lines":[{"line_number":867,"context_line":"        \"\"\"Indicates if Driver supports domains.\"\"\""},{"line_number":868,"context_line":"        return True"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"    def is_sql(self):"},{"line_number":871,"context_line":"        \"\"\"Indicates if this Driver uses SQL.\"\"\""},{"line_number":872,"context_line":"        return False"},{"line_number":873,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_f6d87ff2","line":870,"in_reply_to":"fa98f980_29c2b334","updated":"2014-09-17 06:36:13.000000000","message":"Done","commit_id":"57e508461156ae5faeeff072f094bba89c466691"}],"keystone/tests/test_backend_ldap.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2136,"context_line":"        # Check that I can read a user with the appropriate domain-selected"},{"line_number":2137,"context_line":"        # driver, but won\u0027t find it via any other domain driver"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"        self.check_user(self.users[\u0027user0\u0027],"},{"line_number":2140,"context_line":"                        self.domains[\u0027domain_default\u0027][\u0027id\u0027], 200)"},{"line_number":2141,"context_line":"        for domain in [self.domains[\u0027domain1\u0027][\u0027id\u0027],"},{"line_number":2142,"context_line":"                       self.domains[\u0027domain2\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_7c659bad","line":2139,"updated":"2014-09-14 13:21:49.000000000","message":"rather change change all these do check_user \u003d self.check_user","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2136,"context_line":"        # Check that I can read a user with the appropriate domain-selected"},{"line_number":2137,"context_line":"        # driver, but won\u0027t find it via any other domain driver"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"        self.check_user(self.users[\u0027user0\u0027],"},{"line_number":2140,"context_line":"                        self.domains[\u0027domain_default\u0027][\u0027id\u0027], 200)"},{"line_number":2141,"context_line":"        for domain in [self.domains[\u0027domain1\u0027][\u0027id\u0027],"},{"line_number":2142,"context_line":"                       self.domains[\u0027domain2\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_623250f3","line":2139,"in_reply_to":"fa98f980_7c659bad","updated":"2014-09-15 09:49:30.000000000","message":"...now why didn\u0027t I think of that.....","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2201,"context_line":"                matchers.HasLength(1))"},{"line_number":2202,"context_line":""},{"line_number":2203,"context_line":"        # Domain3 has a user created before we switched on"},{"line_number":2204,"context_line":"        # multiple backends, plus one created afterwards - and its"},{"line_number":2205,"context_line":"        # backend has not changed - so we should find two."},{"line_number":2206,"context_line":"        self.assertThat("},{"line_number":2207,"context_line":"            self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_9c079fc9","line":2204,"updated":"2014-09-14 13:21:49.000000000","message":"revert these changes they\u0027re unrelated.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2201,"context_line":"                matchers.HasLength(1))"},{"line_number":2202,"context_line":""},{"line_number":2203,"context_line":"        # Domain3 has a user created before we switched on"},{"line_number":2204,"context_line":"        # multiple backends, plus one created afterwards - and its"},{"line_number":2205,"context_line":"        # backend has not changed - so we should find two."},{"line_number":2206,"context_line":"        self.assertThat("},{"line_number":2207,"context_line":"            self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_c204dc16","line":2204,"in_reply_to":"fa98f980_9c079fc9","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2285,"context_line":"class DomainSpecificLDAPandSQLIdentity("},{"line_number":2286,"context_line":"    BaseLDAPIdentity, tests.SQLDriverOverrides, tests.TestCase,"},{"line_number":2287,"context_line":"        BaseMultiLDAPandSQLIdentity):"},{"line_number":2288,"context_line":"    \"\"\"Class to test when all domains use specifc configs, including SQL."},{"line_number":2289,"context_line":""},{"line_number":2290,"context_line":"    We define a set of domains and domain-specific backends:"},{"line_number":2291,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_bc0aa3cf","line":2288,"updated":"2014-09-14 13:21:49.000000000","message":"change \"specifc\" to \"specific\"","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2285,"context_line":"class DomainSpecificLDAPandSQLIdentity("},{"line_number":2286,"context_line":"    BaseLDAPIdentity, tests.SQLDriverOverrides, tests.TestCase,"},{"line_number":2287,"context_line":"        BaseMultiLDAPandSQLIdentity):"},{"line_number":2288,"context_line":"    \"\"\"Class to test when all domains use specifc configs, including SQL."},{"line_number":2289,"context_line":""},{"line_number":2290,"context_line":"    We define a set of domains and domain-specific backends:"},{"line_number":2291,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_e2072016","line":2288,"in_reply_to":"fa98f980_bc0aa3cf","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2420,"context_line":"                      \u0027group in our mapping table\u0027)"},{"line_number":2421,"context_line":""},{"line_number":2422,"context_line":"    def test_user_id_comma(self):"},{"line_number":2423,"context_line":"        self.skipTest(\u0027Only valid if it is guaranteed to be taling to \u0027"},{"line_number":2424,"context_line":"                      \u0027the fakeldap backend\u0027)"},{"line_number":2425,"context_line":""},{"line_number":2426,"context_line":"    def test_user_id_comma_grants(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_1cfbafc1","line":2423,"updated":"2014-09-14 13:21:49.000000000","message":"change \"taling\" to \"talking\" (ant at line 2427).\n\nAlso, why have a test that doesn\u0027t work with real LDAP? just get rid of it.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2420,"context_line":"                      \u0027group in our mapping table\u0027)"},{"line_number":2421,"context_line":""},{"line_number":2422,"context_line":"    def test_user_id_comma(self):"},{"line_number":2423,"context_line":"        self.skipTest(\u0027Only valid if it is guaranteed to be taling to \u0027"},{"line_number":2424,"context_line":"                      \u0027the fakeldap backend\u0027)"},{"line_number":2425,"context_line":""},{"line_number":2426,"context_line":"    def test_user_id_comma_grants(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_4210ec4d","line":2423,"in_reply_to":"fa98f980_1cfbafc1","updated":"2014-09-15 09:49:30.000000000","message":"It\u0027s a weird test, that relies on code that was added to our fake ldap driver...weird, indeed.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2445,"context_line":"        # domain-specific operation, so make the switch straight away."},{"line_number":2446,"context_line":"        self.config_fixture.config("},{"line_number":2447,"context_line":"            group\u003d\u0027identity\u0027, domain_specific_drivers_enabled\u003dTrue,"},{"line_number":2448,"context_line":"            domain_config_dir\u003dtests.TESTCONF + \u0027/domain_configs3\u0027)"},{"line_number":2449,"context_line":"        # Part of the testing counts how many new mappings get created as"},{"line_number":2450,"context_line":"        # we create users, so ensure we are NOT using mapping for the default"},{"line_number":2451,"context_line":"        # LDAP domain so this doesn\u0027t confuse the calculation."}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_7cfcbbb5","line":2448,"updated":"2014-09-14 13:21:49.000000000","message":"we need a more descriptive name for the config directories than \"3\"","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2445,"context_line":"        # domain-specific operation, so make the switch straight away."},{"line_number":2446,"context_line":"        self.config_fixture.config("},{"line_number":2447,"context_line":"            group\u003d\u0027identity\u0027, domain_specific_drivers_enabled\u003dTrue,"},{"line_number":2448,"context_line":"            domain_config_dir\u003dtests.TESTCONF + \u0027/domain_configs3\u0027)"},{"line_number":2449,"context_line":"        # Part of the testing counts how many new mappings get created as"},{"line_number":2450,"context_line":"        # we create users, so ensure we are NOT using mapping for the default"},{"line_number":2451,"context_line":"        # LDAP domain so this doesn\u0027t confuse the calculation."}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_621b3073","line":2448,"in_reply_to":"fa98f980_7cfcbbb5","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2465,"context_line":"        self.setup_initial_domains()"},{"line_number":2466,"context_line":"        self.users \u003d {}"},{"line_number":2467,"context_line":""},{"line_number":2468,"context_line":"        self.clear_database()"},{"line_number":2469,"context_line":"        self.load_fixtures(default_fixtures)"},{"line_number":2470,"context_line":"        self.create_users_across_domains()"},{"line_number":2471,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_9c2ebf41","line":2468,"updated":"2014-09-14 13:21:49.000000000","message":"seems like the database should be cleared before the backends are loaded.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2465,"context_line":"        self.setup_initial_domains()"},{"line_number":2466,"context_line":"        self.users \u003d {}"},{"line_number":2467,"context_line":""},{"line_number":2468,"context_line":"        self.clear_database()"},{"line_number":2469,"context_line":"        self.load_fixtures(default_fixtures)"},{"line_number":2470,"context_line":"        self.create_users_across_domains()"},{"line_number":2471,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_822d7491","line":2468,"in_reply_to":"fa98f980_9c2ebf41","updated":"2014-09-15 09:49:30.000000000","message":"...actually it\u0027s not needed at all here...deleted.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2493,"context_line":"            self.identity_api.domain_configs.reload_domain_driver("},{"line_number":2494,"context_line":"                self.identity_api.assignment_api, domain_id)"},{"line_number":2495,"context_line":""},{"line_number":2496,"context_line":"    def test_default_sql_plus_sql_specifc_driver_fails(self):"},{"line_number":2497,"context_line":"        # First confirm that if ldap is default driver, domain1 can be"},{"line_number":2498,"context_line":"        # loaded as sql"},{"line_number":2499,"context_line":"        self.config_fixture.config("}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_dc24c761","line":2496,"updated":"2014-09-14 13:21:49.000000000","message":"change \"specifc\" to \"specific\"","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2493,"context_line":"            self.identity_api.domain_configs.reload_domain_driver("},{"line_number":2494,"context_line":"                self.identity_api.assignment_api, domain_id)"},{"line_number":2495,"context_line":""},{"line_number":2496,"context_line":"    def test_default_sql_plus_sql_specifc_driver_fails(self):"},{"line_number":2497,"context_line":"        # First confirm that if ldap is default driver, domain1 can be"},{"line_number":2498,"context_line":"        # loaded as sql"},{"line_number":2499,"context_line":"        self.config_fixture.config("}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_c2521c12","line":2496,"in_reply_to":"fa98f980_dc24c761","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2523,"context_line":"        # should have failed to load."},{"line_number":2524,"context_line":"        self.assertIsNone(self.get_config(self.domains[\u0027domain1\u0027][\u0027id\u0027]))"},{"line_number":2525,"context_line":""},{"line_number":2526,"context_line":"    def test_multiple_sql_specifc_drivers_fails(self):"},{"line_number":2527,"context_line":"        self.config_fixture.config("},{"line_number":2528,"context_line":"            group\u003d\u0027identity\u0027,"},{"line_number":2529,"context_line":"            driver\u003d\u0027keystone.identity.backends.ldap.Identity\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_fc27cb60","line":2526,"updated":"2014-09-14 13:21:49.000000000","message":"change \"specifc\" to \"specific\"","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c10a9e027926559421bb847cd081bc627febabcc","unresolved":false,"context_lines":[{"line_number":2523,"context_line":"        # should have failed to load."},{"line_number":2524,"context_line":"        self.assertIsNone(self.get_config(self.domains[\u0027domain1\u0027][\u0027id\u0027]))"},{"line_number":2525,"context_line":""},{"line_number":2526,"context_line":"    def test_multiple_sql_specifc_drivers_fails(self):"},{"line_number":2527,"context_line":"        self.config_fixture.config("},{"line_number":2528,"context_line":"            group\u003d\u0027identity\u0027,"},{"line_number":2529,"context_line":"            driver\u003d\u0027keystone.identity.backends.ldap.Identity\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_a24fd869","line":2526,"in_reply_to":"fa98f980_fc27cb60","updated":"2014-09-15 09:49:30.000000000","message":"Done","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"49464a2fcb8bf4324b3236ed844a9bf83d447063","unresolved":false,"context_lines":[{"line_number":2532,"context_line":"            driver\u003d\u0027keystone.assignment.backends.sql.Assignment\u0027)"},{"line_number":2533,"context_line":"        self.load_backends()"},{"line_number":2534,"context_line":"        # Ensure default, domain1 and domain2 exist"},{"line_number":2535,"context_line":"        self.domain_count \u003d 3"},{"line_number":2536,"context_line":"        self.setup_initial_domains()"},{"line_number":2537,"context_line":"        # Make any identity call to initiate the lazy loading of configs"},{"line_number":2538,"context_line":"        self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_1c22cf51","line":2535,"updated":"2014-09-14 13:21:49.000000000","message":"weird.","commit_id":"eae75984cb61766c15d77bd3b77564ba542925aa"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a208c86a649d12ca58dec5e62332813398cb2fbb","unresolved":false,"context_lines":[{"line_number":2060,"context_line":"        self.assertEqual(initial_mappings + self.domain_specific_count,"},{"line_number":2061,"context_line":"                         len(mapping_sql.list_id_mappings()))"},{"line_number":2062,"context_line":""},{"line_number":2063,"context_line":"    def check_user(self, user, domain_id, expected_status):"},{"line_number":2064,"context_line":"        \"\"\"Check user is in correct backend."},{"line_number":2065,"context_line":""},{"line_number":2066,"context_line":"        As part of the tests, we want to force ourselves to manually"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_93cf7728","line":2063,"updated":"2014-09-15 16:26:44.000000000","message":"should expected_status default to something?","commit_id":"087b43bed3bc2932037d55c2a3df07aeef58b2bf"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"6d428271dbec857eb3db5b97e60f0b64e82d27b6","unresolved":false,"context_lines":[{"line_number":2060,"context_line":"        self.assertEqual(initial_mappings + self.domain_specific_count,"},{"line_number":2061,"context_line":"                         len(mapping_sql.list_id_mappings()))"},{"line_number":2062,"context_line":""},{"line_number":2063,"context_line":"    def check_user(self, user, domain_id, expected_status):"},{"line_number":2064,"context_line":"        \"\"\"Check user is in correct backend."},{"line_number":2065,"context_line":""},{"line_number":2066,"context_line":"        As part of the tests, we want to force ourselves to manually"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_620797ca","line":2063,"in_reply_to":"fa98f980_93cf7728","updated":"2014-09-15 18:59:46.000000000","message":"It could...although I was trying to not disturb the other tests...so probably not worth it..","commit_id":"087b43bed3bc2932037d55c2a3df07aeef58b2bf"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a208c86a649d12ca58dec5e62332813398cb2fbb","unresolved":false,"context_lines":[{"line_number":2083,"context_line":"        else:"},{"line_number":2084,"context_line":"            # TODO(henry-nash): Use AssertRaises here, although"},{"line_number":2085,"context_line":"            # there appears to be an issue with using driver.get_user"},{"line_number":2086,"context_line":"            # inside that construct"},{"line_number":2087,"context_line":"            try:"},{"line_number":2088,"context_line":"                driver.get_user(entity_id)"},{"line_number":2089,"context_line":"            except expected_status:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_33decbda","line":2086,"updated":"2014-09-15 16:26:44.000000000","message":"open a bug to investigate?","commit_id":"087b43bed3bc2932037d55c2a3df07aeef58b2bf"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e2820ccea6d5e41d5cdf93bc9f295efb15d3522","unresolved":false,"context_lines":[{"line_number":2083,"context_line":"        else:"},{"line_number":2084,"context_line":"            # TODO(henry-nash): Use AssertRaises here, although"},{"line_number":2085,"context_line":"            # there appears to be an issue with using driver.get_user"},{"line_number":2086,"context_line":"            # inside that construct"},{"line_number":2087,"context_line":"            try:"},{"line_number":2088,"context_line":"                driver.get_user(entity_id)"},{"line_number":2089,"context_line":"            except expected_status:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_b9037140","line":2086,"in_reply_to":"fa98f980_02f6cbd6","updated":"2014-09-16 01:29:11.000000000","message":"Good deal, just wanted to make sure it didn\u0027t get lost. Thanks for the responses Henry!","commit_id":"087b43bed3bc2932037d55c2a3df07aeef58b2bf"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"6d428271dbec857eb3db5b97e60f0b64e82d27b6","unresolved":false,"context_lines":[{"line_number":2083,"context_line":"        else:"},{"line_number":2084,"context_line":"            # TODO(henry-nash): Use AssertRaises here, although"},{"line_number":2085,"context_line":"            # there appears to be an issue with using driver.get_user"},{"line_number":2086,"context_line":"            # inside that construct"},{"line_number":2087,"context_line":"            try:"},{"line_number":2088,"context_line":"                driver.get_user(entity_id)"},{"line_number":2089,"context_line":"            except expected_status:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa98f980_02f6cbd6","line":2086,"in_reply_to":"fa98f980_33decbda","updated":"2014-09-15 18:59:46.000000000","message":"It\u0027s probably overkill...and it\u0027s just a code style improvement...it\u0027s on my list to come back in for Kilo.","commit_id":"087b43bed3bc2932037d55c2a3df07aeef58b2bf"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"e4e49e61c731f86cb7754b941452ee3549aba0db","unresolved":false,"context_lines":[{"line_number":2030,"context_line":"                \u0027password\u0027: uuid.uuid4().hex,"},{"line_number":2031,"context_line":"                \u0027enabled\u0027: True}"},{"line_number":2032,"context_line":"        user_ref \u003d self.identity_api.create_user(user)"},{"line_number":2033,"context_line":"        # Put the password back in, since this is used later by tests to"},{"line_number":2034,"context_line":"        # authenticate."},{"line_number":2035,"context_line":"        user_ref[\u0027password\u0027] \u003d user[\u0027password\u0027]"},{"line_number":2036,"context_line":"        return user_ref"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_83661e28","line":2033,"updated":"2014-09-16 19:18:38.000000000","message":"you are the only person I have seen kind enough to comment why this is done.  It is done all over the place and I figured out why but nice to see you make it clear","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"bbd53597a6fbfde921b7a3417fac200d82e17aa7","unresolved":false,"context_lines":[{"line_number":2030,"context_line":"                \u0027password\u0027: uuid.uuid4().hex,"},{"line_number":2031,"context_line":"                \u0027enabled\u0027: True}"},{"line_number":2032,"context_line":"        user_ref \u003d self.identity_api.create_user(user)"},{"line_number":2033,"context_line":"        # Put the password back in, since this is used later by tests to"},{"line_number":2034,"context_line":"        # authenticate."},{"line_number":2035,"context_line":"        user_ref[\u0027password\u0027] \u003d user[\u0027password\u0027]"},{"line_number":2036,"context_line":"        return user_ref"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_3656872b","line":2033,"in_reply_to":"fa98f980_83661e28","updated":"2014-09-17 06:36:13.000000000","message":"yw","commit_id":"57e508461156ae5faeeff072f094bba89c466691"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0262363eac59f774718fd74698f0f3a70edb9394","unresolved":false,"context_lines":[{"line_number":2248,"context_line":"            check_user(self.users[\u0027user0\u0027], domain, exception.UserNotFound)"},{"line_number":2249,"context_line":""},{"line_number":2250,"context_line":"        check_user(self.users[\u0027user1\u0027],"},{"line_number":2251,"context_line":"                   self.domains[\u0027domain1\u0027][\u0027id\u0027], 200)"},{"line_number":2252,"context_line":"        for domain in [self.domains[\u0027domain_default\u0027][\u0027id\u0027],"},{"line_number":2253,"context_line":"                       self.domains[\u0027domain2\u0027][\u0027id\u0027],"},{"line_number":2254,"context_line":"                       self.domains[\u0027domain3\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_bcf08792","line":2251,"updated":"2014-09-17 18:13:37.000000000","message":"revert unnecessary whitespace changes","commit_id":"c0ddc5c14dd2209ceaf5cadf3e898011d3b2474f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"7c18592551568821c880b3f42d2db52269672c00","unresolved":false,"context_lines":[{"line_number":2248,"context_line":"            check_user(self.users[\u0027user0\u0027], domain, exception.UserNotFound)"},{"line_number":2249,"context_line":""},{"line_number":2250,"context_line":"        check_user(self.users[\u0027user1\u0027],"},{"line_number":2251,"context_line":"                   self.domains[\u0027domain1\u0027][\u0027id\u0027], 200)"},{"line_number":2252,"context_line":"        for domain in [self.domains[\u0027domain_default\u0027][\u0027id\u0027],"},{"line_number":2253,"context_line":"                       self.domains[\u0027domain2\u0027][\u0027id\u0027],"},{"line_number":2254,"context_line":"                       self.domains[\u0027domain3\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_6a28ff85","line":2251,"in_reply_to":"fa98f980_bcf08792","updated":"2014-09-18 09:18:06.000000000","message":"Done","commit_id":"c0ddc5c14dd2209ceaf5cadf3e898011d3b2474f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0262363eac59f774718fd74698f0f3a70edb9394","unresolved":false,"context_lines":[{"line_number":2256,"context_line":"            check_user(self.users[\u0027user1\u0027], domain, exception.UserNotFound)"},{"line_number":2257,"context_line":""},{"line_number":2258,"context_line":"        check_user(self.users[\u0027user2\u0027],"},{"line_number":2259,"context_line":"                   self.domains[\u0027domain2\u0027][\u0027id\u0027], 200)"},{"line_number":2260,"context_line":"        for domain in [self.domains[\u0027domain_default\u0027][\u0027id\u0027],"},{"line_number":2261,"context_line":"                       self.domains[\u0027domain1\u0027][\u0027id\u0027],"},{"line_number":2262,"context_line":"                       self.domains[\u0027domain3\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_fc292ff3","line":2259,"updated":"2014-09-17 18:13:37.000000000","message":"revert unnecessary whitespace changes","commit_id":"c0ddc5c14dd2209ceaf5cadf3e898011d3b2474f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"7c18592551568821c880b3f42d2db52269672c00","unresolved":false,"context_lines":[{"line_number":2256,"context_line":"            check_user(self.users[\u0027user1\u0027], domain, exception.UserNotFound)"},{"line_number":2257,"context_line":""},{"line_number":2258,"context_line":"        check_user(self.users[\u0027user2\u0027],"},{"line_number":2259,"context_line":"                   self.domains[\u0027domain2\u0027][\u0027id\u0027], 200)"},{"line_number":2260,"context_line":"        for domain in [self.domains[\u0027domain_default\u0027][\u0027id\u0027],"},{"line_number":2261,"context_line":"                       self.domains[\u0027domain1\u0027][\u0027id\u0027],"},{"line_number":2262,"context_line":"                       self.domains[\u0027domain3\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_8a1fe35a","line":2259,"in_reply_to":"fa98f980_fc292ff3","updated":"2014-09-18 09:18:06.000000000","message":"Done","commit_id":"c0ddc5c14dd2209ceaf5cadf3e898011d3b2474f"}]}
