)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"1096b595045fc4a03078a963daca8a7e2e07b3b8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Henry Nash \u003chenryn@linux.vnet.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-04-25 20:40:28 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Relax the proejct name uniqueness constraints"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Relax the current restriction that a project name must be unique in a domain"},{"line_number":10,"context_line":"(and hence within a project hierarchy), replacing it with simply being unique"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_3f05acc1","line":7,"range":{"start_line":7,"start_character":10,"end_line":7,"end_character":17},"updated":"2016-04-25 20:51:58.000000000","message":"typo: project","commit_id":"96309db68e3e41e4a44f153a299cdee207747e30"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"29c9225540084a4a556b433bddd53d8867484946","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is intended as an alternative to"},{"line_number":14,"context_line":"https://review.openstack.org/#/c/318605/, only one of these two"},{"line_number":15,"context_line":"will be implemented."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Implements blueprint: project-name-relax"},{"line_number":18,"context_line":"Change-Id: Id5931f8f3a73a3cbe09d43dc35b72b204590017c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9abb7d3a_4edf0269","line":15,"updated":"2016-05-31 21:53:21.000000000","message":"How is this spec different than https://review.openstack.org/#/c/318605/ ? It seems that both require project path naming? The name of this spec only seems to care about the name of a project being unique within it\u0027s parent (which doesn\u0027t necessarily need the full path, does it)?","commit_id":"3d6992ad49069079d46f0cbafaed0a6ad720931a"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c811ec0c62ff1fc8d96471f505ffbaf31825fd67","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is intended as an alternative to"},{"line_number":14,"context_line":"https://review.openstack.org/#/c/318605/, only one of these two"},{"line_number":15,"context_line":"will be implemented."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Implements blueprint: project-name-relax"},{"line_number":18,"context_line":"Change-Id: Id5931f8f3a73a3cbe09d43dc35b72b204590017c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9abb7d3a_c94e4c6e","line":15,"in_reply_to":"9abb7d3a_4edf0269","updated":"2016-05-31 22:20:20.000000000","message":"So the key difference is whether the \u0027name\u0027 attribute of a project is returned as full path, or remains just as the leaf name. If it is a full path, then the \u0027name\u0027 attribute effectively remains unique. However, this means that clients must handle decomposing the name if all they want is the leaf name (which is why  the other spec includes a new leaf_name attribute).","commit_id":"3d6992ad49069079d46f0cbafaed0a6ad720931a"}],"api/v3/identity-api-v3.rst":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b1a59346e57024b7ea83df73a531c3b1448df8c","unresolved":false,"context_lines":[{"line_number":900,"context_line":"- ``name`` (string)"},{"line_number":901,"context_line":""},{"line_number":902,"context_line":"  The project name must always be unique across children of its parent project."},{"line_number":903,"context_line":"  Prior to version 3.7*, the name must also be unique within the owning"},{"line_number":904,"context_line":"  domain. A project name for a project acting as a domain must be unique across"},{"line_number":905,"context_line":"  all domains."},{"line_number":906,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_35810190","line":903,"updated":"2016-06-01 15:31:24.000000000","message":"3.7.* ?","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"37fe91fa6b6ea6e3e20e921e544e54311d099b92","unresolved":false,"context_lines":[{"line_number":900,"context_line":"- ``name`` (string)"},{"line_number":901,"context_line":""},{"line_number":902,"context_line":"  The project name must always be unique across children of its parent project."},{"line_number":903,"context_line":"  Prior to version 3.7*, the name must also be unique within the owning"},{"line_number":904,"context_line":"  domain. A project name for a project acting as a domain must be unique across"},{"line_number":905,"context_line":"  all domains."},{"line_number":906,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_ebb31a96","line":903,"in_reply_to":"9abb7d3a_35810190","updated":"2016-06-01 16:00:34.000000000","message":"oops, the \u0027*\u0027 should be dropped.","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b1a59346e57024b7ea83df73a531c3b1448df8c","unresolved":false,"context_lines":[{"line_number":4150,"context_line":"        }"},{"line_number":4151,"context_line":"    }"},{"line_number":4152,"context_line":""},{"line_number":4153,"context_line":"The key requirements when creating a project are to define the domain it will"},{"line_number":4154,"context_line":"owned by, it\u0027s name and where it sits in the project hierarchy."},{"line_number":4155,"context_line":""},{"line_number":4156,"context_line":"Starting with version 3.7, the name can contain a path. If this path is"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_281d2866","line":4153,"updated":"2016-06-01 15:31:24.000000000","message":"it will be*","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"37fe91fa6b6ea6e3e20e921e544e54311d099b92","unresolved":false,"context_lines":[{"line_number":4150,"context_line":"        }"},{"line_number":4151,"context_line":"    }"},{"line_number":4152,"context_line":""},{"line_number":4153,"context_line":"The key requirements when creating a project are to define the domain it will"},{"line_number":4154,"context_line":"owned by, it\u0027s name and where it sits in the project hierarchy."},{"line_number":4155,"context_line":""},{"line_number":4156,"context_line":"Starting with version 3.7, the name can contain a path. If this path is"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_2b81a28f","line":4153,"in_reply_to":"9abb7d3a_281d2866","updated":"2016-06-01 16:00:34.000000000","message":"Done","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"37fe91fa6b6ea6e3e20e921e544e54311d099b92","unresolved":false,"context_lines":[{"line_number":4169,"context_line":"        \"project\": {"},{"line_number":4170,"context_line":"            \"description\": \"Project space for Test Group\","},{"line_number":4171,"context_line":"            \"domain_id\": \"1789d1\","},{"line_number":4172,"context_line":"            \"leaf_name\": \"Dev Group/Test Group\""},{"line_number":4173,"context_line":"        }"},{"line_number":4174,"context_line":"    }"},{"line_number":4175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_86f525ee","line":4172,"range":{"start_line":4172,"start_character":13,"end_line":4172,"end_character":22},"updated":"2016-06-01 16:00:34.000000000","message":"this should be name. not lead_name","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b1a59346e57024b7ea83df73a531c3b1448df8c","unresolved":false,"context_lines":[{"line_number":4180,"context_line":"    {"},{"line_number":4181,"context_line":"        \"project\": {"},{"line_number":4182,"context_line":"            \"description\": \"Project space for Test Group\","},{"line_number":4183,"context_line":"            \"parent_id\": \"1789d1\","},{"line_number":4184,"context_line":"            \"leaf_name\": \"Dev Group/Test Group\""},{"line_number":4185,"context_line":"        }"},{"line_number":4186,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_887ed467","line":4183,"updated":"2016-06-01 15:31:24.000000000","message":"I think this should be 7fa612 according to line 4149","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"37fe91fa6b6ea6e3e20e921e544e54311d099b92","unresolved":false,"context_lines":[{"line_number":4180,"context_line":"    {"},{"line_number":4181,"context_line":"        \"project\": {"},{"line_number":4182,"context_line":"            \"description\": \"Project space for Test Group\","},{"line_number":4183,"context_line":"            \"parent_id\": \"1789d1\","},{"line_number":4184,"context_line":"            \"leaf_name\": \"Dev Group/Test Group\""},{"line_number":4185,"context_line":"        }"},{"line_number":4186,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_a6a4a907","line":4183,"in_reply_to":"9abb7d3a_887ed467","updated":"2016-06-01 16:00:34.000000000","message":"No, this is the parent_id of \"Dev Group\" not \"Test Group\"...i.e. the name specified is relative.  However, it should be \u0027name\", not \"leaf_name\" in this block!","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"}],"specs/keystone/newton/project_name_relax.rst":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"8ee973959af409c2c5d1ce258ca3289e465862b3","unresolved":false,"context_lines":[{"line_number":152,"context_line":"Testing"},{"line_number":153,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"None, above and beyond unit testing"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Documentation Impact"},{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_6e6bc11e","line":155,"updated":"2016-04-27 19:09:34.000000000","message":"I think that would be better have functional tests showing that other services like nova that use project_name or tenant_name on the token keep working well with this change.","commit_id":"1b7f844906294b2ca44165a15dacf484f5edf776"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"1e24a6bebcd9dd71f1649bf28bccaf10a21ebcaa","unresolved":false,"context_lines":[{"line_number":152,"context_line":"Testing"},{"line_number":153,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"None, above and beyond unit testing"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Documentation Impact"},{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_2e6f09fd","line":155,"in_reply_to":"1a122d0e_6e6bc11e","updated":"2016-04-27 19:18:12.000000000","message":"good point - this can end with the same problem that happened with the v3 devstack change.","commit_id":"1b7f844906294b2ca44165a15dacf484f5edf776"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"f05519574ef6dd6b6198301cef2a7aefae960b6a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Due to our heritage of a flat tenant model, a project\u0027s name must be"},{"line_number":22,"context_line":"unique within a domain, regardless of where that project sits in any project"},{"line_number":23,"context_line":"hierarchy within that domain. As project hierarchies grow, this will become"},{"line_number":24,"context_line":"increasingly untenable."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"One of the reasons this could not be relaxed before was that there would be"},{"line_number":27,"context_line":"no way of reliably addressing a project by name within a hierarchy."}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_a8706fdd","line":24,"range":{"start_line":24,"start_character":22,"end_line":24,"end_character":23},"updated":"2016-05-13 18:41:59.000000000","message":"Agreed. I think its the right thing to do.","commit_id":"335ab5451f94fd82c4ed9f409a5b7b0d50053941"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"f05519574ef6dd6b6198301cef2a7aefae960b6a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"unique within their parent. This will be optional, controlled by a"},{"line_number":61,"context_line":"configuration option, which by default is disabled. In order for this option to"},{"line_number":62,"context_line":"be honored, the deployment must be running with url_safe project naming set to"},{"line_number":63,"context_line":"`strict`."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The formal definition for the auth request block is that if the `name` starts"},{"line_number":66,"context_line":"with the separator, then this is considered a fully qualified path to the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_a847cf75","line":63,"range":{"start_line":63,"start_character":7,"end_line":63,"end_character":9},"updated":"2016-05-13 18:41:59.000000000","message":"This is an *optional* feature isn\u0027t it? Meaning it will be disabled by default right?","commit_id":"335ab5451f94fd82c4ed9f409a5b7b0d50053941"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"f05519574ef6dd6b6198301cef2a7aefae960b6a","unresolved":false,"context_lines":[{"line_number":92,"context_line":"- GET /projects"},{"line_number":93,"context_line":"- GET /auth/projects"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"The V2 API list tenants by tenant name will not support the new capability."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"The check to ensure that the url_safe naming is set to `strict` and that the"},{"line_number":98,"context_line":"ability to use path naming is also enabled, will be made at run-time every"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_2b30f9e7","line":95,"updated":"2016-05-13 18:41:59.000000000","message":"What happen to v2 when this capability is enabled? GEt /tenants will result in 404 or something?","commit_id":"335ab5451f94fd82c4ed9f409a5b7b0d50053941"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"f05519574ef6dd6b6198301cef2a7aefae960b6a","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"To be clear, this proposal does not cause the project name stored in the SQL"},{"line_number":110,"context_line":"database to be changed. Rather, it simply allows the specification of a"},{"line_number":111,"context_line":"path for a project name in the API."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"The separator used in such path naming will be the forward slash character"},{"line_number":114,"context_line":"`/`. It would be possible to make the separator configurable by deployment via"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_cba5ed04","line":111,"range":{"start_line":111,"start_character":34,"end_line":111,"end_character":35},"updated":"2016-05-13 18:41:59.000000000","message":"So project name is mutable. I presume we\u0027ll need to update all the paths if we rename a project in the middle?","commit_id":"335ab5451f94fd82c4ed9f409a5b7b0d50053941"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"f05519574ef6dd6b6198301cef2a7aefae960b6a","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            }"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"    }"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"It would be possible, of course, to support a transitionary, optional,"},{"line_number":169,"context_line":"capability that would allow the original request to succeed if the named"},{"line_number":170,"context_line":"project was still unique in the hierarchy. This would be be marked as a"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_0b4c1541","line":167,"updated":"2016-05-13 18:41:59.000000000","message":"The other big concern is backward compatibility. Say I have an existing federation mapping which maps to a project name of a given domain. But now project names are no longer unique with a domain, I presume we will need to update all the affected mappings?","commit_id":"335ab5451f94fd82c4ed9f409a5b7b0d50053941"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"531c80af52dff9158f2a9d3d7f93e294dea86d6b","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            }"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"    }"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"It would be possible, of course, to support a transitionary, optional,"},{"line_number":169,"context_line":"capability that would allow the original request to succeed if the named"},{"line_number":170,"context_line":"project was still unique in the hierarchy. This would be be marked as a"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dab17558_6b07a181","line":167,"in_reply_to":"dab17558_0b4c1541","updated":"2016-05-13 18:45:47.000000000","message":"Correction. The mapping to a project hasn\u0027t been proposed yet. So the only backward compatibility concern is when existing scripts using domain name and project name combination. Those scripts will need to be migrated.","commit_id":"335ab5451f94fd82c4ed9f409a5b7b0d50053941"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"29c9225540084a4a556b433bddd53d8867484946","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"It is proposed that we now enable this capability, and at the same time relax"},{"line_number":59,"context_line":"the naming restrictions on projects, such that their names only need to be"},{"line_number":60,"context_line":"unique within their parent. Since this change is potentially backwardly"},{"line_number":61,"context_line":"incompatible, this will be tied to a microversion of the Idenitity"},{"line_number":62,"context_line":"API. Individual APIs affected by this change will only operate if url_safe"},{"line_number":63,"context_line":"project naming has been set to `strict`, otherwise they will return an error"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9abb7d3a_2eaefee5","line":60,"updated":"2016-05-31 21:53:21.000000000","message":"nit: backwards","commit_id":"3d6992ad49069079d46f0cbafaed0a6ad720931a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"1b1a59346e57024b7ea83df73a531c3b1448df8c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            },"},{"line_number":111,"context_line":"            \"scope\": {"},{"line_number":112,"context_line":"                \"project\": {"},{"line_number":113,"context_line":"                    \"name\": \"/development\""},{"line_number":114,"context_line":"                }"},{"line_number":115,"context_line":"            }"},{"line_number":116,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_55664551","line":113,"updated":"2016-06-01 15:31:24.000000000","message":"This should be acme.com since it\u0027s the domain, right?","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"b9ef59a959fdbd604523a45c0d635f3045f0bf24","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            },"},{"line_number":111,"context_line":"            \"scope\": {"},{"line_number":112,"context_line":"                \"project\": {"},{"line_number":113,"context_line":"                    \"name\": \"/development\""},{"line_number":114,"context_line":"                }"},{"line_number":115,"context_line":"            }"},{"line_number":116,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9abb7d3a_f3682cf7","line":113,"in_reply_to":"9abb7d3a_55664551","updated":"2016-06-01 17:21:05.000000000","message":"yep, sorry!","commit_id":"b06d5ec7a6d91f5049565a127c8d74d74b11c22c"}]}
