)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Resource backend is SQL only now"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Resource backend is SQL only now. This has been done to avoid the"},{"line_number":10,"context_line":"need to backport signficantly painful Foreign Key dropping backports."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Resource is highly relational data and it makes sense to allow the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f436f4f_b8eaf4d4","line":9,"updated":"2017-08-14 18:08:43.000000000","message":"Duplicate sentence.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Resource is highly relational data and it makes sense to allow the"},{"line_number":13,"context_line":"use of FKs from other subsystems to project/domains."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic3831d1c7ae41fe4d406d60a013770cc1258584f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f436f4f_18d10024","line":15,"updated":"2017-08-14 18:08:43.000000000","message":"This justification here, from a developer perspective makes sense, but having numbers and input from operators would be good.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6874b50447a5acca8ad959bfb5e94594d1d7a89a","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Resource is highly relational data and it makes sense to allow the"},{"line_number":13,"context_line":"use of FKs from other subsystems to project/domains."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ic3831d1c7ae41fe4d406d60a013770cc1258584f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f436f4f_b3a697aa","line":15,"in_reply_to":"9f436f4f_18d10024","updated":"2017-08-14 18:50:25.000000000","message":"If an operator is using non-SQL resource, I\u0027d be shocked, short of carrying custom code they aren\u0027t contributing anyway. It is effectively impossible to do so for any non-EOL OpenStack releases.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"}],"keystone/conf/resource.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    \u0027driver\u0027,"},{"line_number":21,"context_line":"    default\u003d\u0027sql\u0027,"},{"line_number":22,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":23,"context_line":"    deprecated_reason\u003d\u0027Cannot be changed used with SQL Identity and has been \u0027"},{"line_number":24,"context_line":"                      \u0027unable to be used since Ocata. SQL Resource backend is \u0027"},{"line_number":25,"context_line":"                      \u0027a requirement as of Pike. Setting this option no \u0027"},{"line_number":26,"context_line":"                      \u0027longer has an effect on how Keystone operates.\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_dd012a3a","line":23,"updated":"2017-08-14 18:08:43.000000000","message":"s/changed// ?","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    deprecated_reason\u003d\u0027Cannot be changed used with SQL Identity and has been \u0027"},{"line_number":24,"context_line":"                      \u0027unable to be used since Ocata. SQL Resource backend is \u0027"},{"line_number":25,"context_line":"                      \u0027a requirement as of Pike. Setting this option no \u0027"},{"line_number":26,"context_line":"                      \u0027longer has an effect on how Keystone operates.\u0027,"},{"line_number":27,"context_line":"    deprecated_since\u003dversionutils.deprecated.PIKE,"},{"line_number":28,"context_line":"    help\u003dutils.fmt(\"\"\""},{"line_number":29,"context_line":"Entry point for the resource driver in the `keystone.resource` namespace. Only"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_988bb01d","line":26,"updated":"2017-08-14 18:08:43.000000000","message":"Removing this makes it so that people can\u0027t plug in their own sql backend if they are writing their own. Why can\u0027t we have one option, that defaults to sql, and leave this as is?","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6874b50447a5acca8ad959bfb5e94594d1d7a89a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    deprecated_reason\u003d\u0027Cannot be changed used with SQL Identity and has been \u0027"},{"line_number":24,"context_line":"                      \u0027unable to be used since Ocata. SQL Resource backend is \u0027"},{"line_number":25,"context_line":"                      \u0027a requirement as of Pike. Setting this option no \u0027"},{"line_number":26,"context_line":"                      \u0027longer has an effect on how Keystone operates.\u0027,"},{"line_number":27,"context_line":"    deprecated_since\u003dversionutils.deprecated.PIKE,"},{"line_number":28,"context_line":"    help\u003dutils.fmt(\"\"\""},{"line_number":29,"context_line":"Entry point for the resource driver in the `keystone.resource` namespace. Only"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_d3747b38","line":26,"in_reply_to":"9f436f4f_988bb01d","updated":"2017-08-14 18:50:25.000000000","message":"If SQL identity, in any way shape or form, is used, Resource is required, you cannot run non-SQL resource and any form of SQL identity. Non-SQL identity (LDAP as default), is exceedingly rare. No one is plugging their own resource backend.\n\nThe options are: 1) backport dropping FK migrations *or* 2) this fix. There are no other options.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"}],"keystone/resource/backends/sql.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"e056917e7710ee737ef40fd5d508cba10a5809cf","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class Resource(base.ResourceDriverBase):"},{"line_number":25,"context_line":"    # TODO(morgan): Merge all of this code into the manager, Resource backend"},{"line_number":26,"context_line":"    # is only SQL. There is no configurable driver."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def default_assignment_driver(self):"},{"line_number":29,"context_line":"        return \u0027sql\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_aabefafb","line":26,"updated":"2017-08-15 19:00:52.000000000","message":"well, manager is responsible for the business logic, while driver is responsible for dealing with backend specific logic (which means how the data is stored). \n\nif you\u0027re talking about putting this all into the manager that inherits from keystone/common/manager.py and is in resource/core.py I am opposed to it as I don;t see any benefit on not following what we do elsewhere in keystone (and what the layers are actually documented for)","commit_id":"3d46c8a5d93529b4050bab635486cfa6b05c9a85"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"2a2b856914b0c6ee864b867f2101ca7425c8da73","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class Resource(base.ResourceDriverBase):"},{"line_number":25,"context_line":"    # TODO(morgan): Merge all of this code into the manager, Resource backend"},{"line_number":26,"context_line":"    # is only SQL. There is no configurable driver."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def default_assignment_driver(self):"},{"line_number":29,"context_line":"        return \u0027sql\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_cacdbe85","line":26,"in_reply_to":"9f436f4f_0a2aa62a","updated":"2017-08-15 19:05:32.000000000","message":"well, it\u0027s designed to also do that, but not just\n\nsee https://github.com/openstack/keystone/blob/master/keystone/common/manager.py#L153-L162","commit_id":"3d46c8a5d93529b4050bab635486cfa6b05c9a85"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a632e56c05e02a7d7d6e2f684ec2c24b8a13628c","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class Resource(base.ResourceDriverBase):"},{"line_number":25,"context_line":"    # TODO(morgan): Merge all of this code into the manager, Resource backend"},{"line_number":26,"context_line":"    # is only SQL. There is no configurable driver."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def default_assignment_driver(self):"},{"line_number":29,"context_line":"        return \u0027sql\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_0a2aa62a","line":26,"in_reply_to":"9f436f4f_4a0b0ed5","updated":"2017-08-15 19:03:58.000000000","message":"the Manager could do the work in this case, the only reason for a manager is a pivot point for multiple backends.","commit_id":"3d46c8a5d93529b4050bab635486cfa6b05c9a85"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"3e6ed5d0e78e463adb735d347d817e569765e79b","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class Resource(base.ResourceDriverBase):"},{"line_number":25,"context_line":"    # TODO(morgan): Merge all of this code into the manager, Resource backend"},{"line_number":26,"context_line":"    # is only SQL. There is no configurable driver."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def default_assignment_driver(self):"},{"line_number":29,"context_line":"        return \u0027sql\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f436f4f_4a0b0ed5","line":26,"in_reply_to":"9f436f4f_aabefafb","updated":"2017-08-15 19:02:00.000000000","message":"if you mean removing the driver abstract interface in resource/core.py in favor of this single implementation (there will still be a driver), I am okay as it wont make snese to have an interface just for this","commit_id":"3d46c8a5d93529b4050bab635486cfa6b05c9a85"}],"keystone/resource/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __init__(self):"},{"line_number":54,"context_line":"        resource_driver \u003d CONF.resource.driver"},{"line_number":55,"context_line":"        super(Manager, self).__init__(resource_driver)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _get_hierarchy_depth(self, parents_list):"},{"line_number":58,"context_line":"        return len(parents_list) + 1"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_3d6a76ec","side":"PARENT","line":55,"updated":"2017-08-14 18:08:43.000000000","message":"Why not just keep this as-is and use the default sql backend?","commit_id":"99b3641fa0eb99d903488b2f04f9b69b79b3ff16"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # SQL Identity in some form. Even if SQL Identity is not used, there"},{"line_number":58,"context_line":"        # is almost no reason to have non-SQL Resource. Keystone requires"},{"line_number":59,"context_line":"        # SQL in a number of ways, this simply codifies it plainly for resource"},{"line_number":60,"context_line":"        self.driver \u003d resource_sql.Resource()"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def _get_hierarchy_depth(self, parents_list):"},{"line_number":63,"context_line":"        return len(parents_list) + 1"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_389ba466","line":60,"updated":"2017-08-14 18:08:43.000000000","message":"What if a deployment is using something else in Ocata? When they upgrade to Pike, they see the deprecation, but they don\u0027t really have any time to migrate.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6874b50447a5acca8ad959bfb5e94594d1d7a89a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # SQL Identity in some form. Even if SQL Identity is not used, there"},{"line_number":58,"context_line":"        # is almost no reason to have non-SQL Resource. Keystone requires"},{"line_number":59,"context_line":"        # SQL in a number of ways, this simply codifies it plainly for resource"},{"line_number":60,"context_line":"        self.driver \u003d resource_sql.Resource()"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def _get_hierarchy_depth(self, parents_list):"},{"line_number":63,"context_line":"        return len(parents_list) + 1"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f436f4f_93def30e","line":60,"in_reply_to":"9f436f4f_389ba466","updated":"2017-08-14 18:50:25.000000000","message":"They can\u0027t in Ocata either. This is not a Pike problem, the issue was introduced in Ocata and fixing it is backporting a FK drop to Ocata. This fix should be backported to Ocata as well, but I was focused on the Pike RC.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"}],"releasenotes/notes/resource-backend-sql-only-03154d8712b36bd0.yaml":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The resource backend cannot be configured to anything but SQL if the SQL"},{"line_number":5,"context_line":"    Identity backend is being used. The resource backend must now be SQL which"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9f436f4f_dd224ab9","line":2,"updated":"2017-08-14 18:08:43.000000000","message":"This could also justify an upgrade note, since deployments configuring something other than SQL for the resource backend will be impacted on upgrade.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8e9ddb539d03fe4362f549ab64779ba93fa39521","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The resource backend cannot be configured to anything but SQL if the SQL"},{"line_number":5,"context_line":"    Identity backend is being used. The resource backend must now be SQL which"},{"line_number":6,"context_line":"    allows for the use of Foreign Keys to domains/projects wherever desired."},{"line_number":7,"context_line":"    This makes managing project relationships and such much more straight"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9f436f4f_38596434","line":4,"updated":"2017-08-14 18:08:43.000000000","message":"This patch doesn\u0027t take into account the identity backend at all when determining which resource backend to use. It always uses the sql backend, regardless of the backend being used for identity.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6874b50447a5acca8ad959bfb5e94594d1d7a89a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"deprecations:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The resource backend cannot be configured to anything but SQL if the SQL"},{"line_number":5,"context_line":"    Identity backend is being used. The resource backend must now be SQL which"},{"line_number":6,"context_line":"    allows for the use of Foreign Keys to domains/projects wherever desired."},{"line_number":7,"context_line":"    This makes managing project relationships and such much more straight"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9f436f4f_13fb2379","line":4,"in_reply_to":"9f436f4f_38596434","updated":"2017-08-14 18:50:25.000000000","message":"That is correct. Almost every single deployment uses sql identity of some sort. If that is the case (even domain-specific drivers) you cannot use anything but resource SQL.","commit_id":"c0477886ff1a4f8cb2bc9e4b0f931f6986457374"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"fc6620717db29185344e8d90b9cd92138f12ccb6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The resource backend cannot be configured to anything but SQL if the SQL"},{"line_number":5,"context_line":"    Identity backend is being used. The resource backend must now be SQL which"},{"line_number":6,"context_line":"    allows for the use of Foreign Keys to domains/projects wherever desired."},{"line_number":7,"context_line":"    This makes managing project relationships and such much more straight"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f436f4f_46bb14c4","line":4,"updated":"2017-08-15 14:39:39.000000000","message":"I still think this would be something to pass across the mailing list. I\u0027ll work on a note.","commit_id":"3d46c8a5d93529b4050bab635486cfa6b05c9a85"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e3504c4fade8e7eac7400acb8e6c05795a809e3e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The resource backend cannot be configured to anything but SQL if the SQL"},{"line_number":5,"context_line":"    Identity backend is being used. The resource backend must now be SQL which"},{"line_number":6,"context_line":"    allows for the use of Foreign Keys to domains/projects wherever desired."},{"line_number":7,"context_line":"    This makes managing project relationships and such much more straight"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9f436f4f_11d0a4c8","line":4,"in_reply_to":"9f436f4f_46bb14c4","updated":"2017-08-15 14:39:55.000000000","message":"I threw this up on the mailing list: \n\nhttp://lists.openstack.org/pipermail/openstack-dev/2017-August/121139.html","commit_id":"3d46c8a5d93529b4050bab635486cfa6b05c9a85"}]}
