)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"0ceff4f26993c84894ebada16068ea54f51dbd58","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-06-22 18:44:47 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support nested domains to provide addional project namespaces"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow customers to utilise sub-domains to create namespaces"},{"line_number":10,"context_line":"within a parent domain, so as to aleviate the restrictions of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3aaa91ec_e4cab719","line":7,"range":{"start_line":7,"start_character":34,"end_line":7,"end_character":42},"updated":"2016-06-22 17:53:36.000000000","message":"additional","commit_id":"e7435e12f86190c4fd82897b25af1df30b5360ae"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8b09074d1f02420512b10ddd21dddec87b6f9d56","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-06-22 18:44:47 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support nested domains to provide addional project namespaces"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow customers to utilise sub-domains to create namespaces"},{"line_number":10,"context_line":"within a parent domain, so as to aleviate the restrictions of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3aaa91ec_5f5eed12","line":7,"range":{"start_line":7,"start_character":34,"end_line":7,"end_character":42},"in_reply_to":"3aaa91ec_e4cab719","updated":"2016-06-22 20:22:16.000000000","message":"Done","commit_id":"e7435e12f86190c4fd82897b25af1df30b5360ae"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"0ceff4f26993c84894ebada16068ea54f51dbd58","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Support nested domains to provide addional project namespaces"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow customers to utilise sub-domains to create namespaces"},{"line_number":10,"context_line":"within a parent domain, so as to aleviate the restrictions of"},{"line_number":11,"context_line":"project name constraints."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TODO: Add Identity spec changes for this proposal"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3aaa91ec_64d7e7bf","line":10,"range":{"start_line":10,"start_character":33,"end_line":10,"end_character":41},"updated":"2016-06-22 17:53:36.000000000","message":"alleviate","commit_id":"e7435e12f86190c4fd82897b25af1df30b5360ae"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8b09074d1f02420512b10ddd21dddec87b6f9d56","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Support nested domains to provide addional project namespaces"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow customers to utilise sub-domains to create namespaces"},{"line_number":10,"context_line":"within a parent domain, so as to aleviate the restrictions of"},{"line_number":11,"context_line":"project name constraints."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TODO: Add Identity spec changes for this proposal"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3aaa91ec_bf9b91c8","line":10,"range":{"start_line":10,"start_character":33,"end_line":10,"end_character":41},"in_reply_to":"3aaa91ec_64d7e7bf","updated":"2016-06-22 20:22:16.000000000","message":"Done","commit_id":"e7435e12f86190c4fd82897b25af1df30b5360ae"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5804c01cb3e643dc3083927a43b78025dd08f88c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TODO: Add Identity spec changes for this proposal"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is indended as an alternative to the proposals for"},{"line_number":16,"context_line":"relaxing the project name constraints and supporting"},{"line_number":17,"context_line":"hierarchical project naming."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I9e65d595b18ee3e498176d057f0f1ee1a68ad572"},{"line_number":20,"context_line":"Implements: blueprint hierarchical-domains"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3aaa91ec_e43477fc","line":17,"range":{"start_line":15,"start_character":0,"end_line":17,"end_character":28},"updated":"2016-06-23 00:50:37.000000000","message":"link ?","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"7f0f7a3ff18c4ca16dce7e0f69005883ad3f849b","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TODO: Add Identity spec changes for this proposal"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This spec is indended as an alternative to the proposals for"},{"line_number":16,"context_line":"relaxing the project name constraints and supporting"},{"line_number":17,"context_line":"hierarchical project naming."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I9e65d595b18ee3e498176d057f0f1ee1a68ad572"},{"line_number":20,"context_line":"Implements: blueprint hierarchical-domains"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3aaa91ec_0fc1c22e","line":17,"range":{"start_line":15,"start_character":0,"end_line":17,"end_character":28},"in_reply_to":"3aaa91ec_e43477fc","updated":"2016-06-23 08:26:24.000000000","message":"agreed, i will add those","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"}],"api/v3/identity-api-v3.rst":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"81c952153add985512be75eeff863aa5fe62cbea","unresolved":false,"context_lines":[{"line_number":13,"context_line":"-------------------------"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"- Microversioning of the Identity API."},{"line_number":16,"context_line":"- Nested domains"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"What\u0027s New in Version 3.6"},{"line_number":19,"context_line":"-------------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_c21ca615","line":16,"updated":"2016-07-05 17:33:39.000000000","message":"I think we need to point out an important fact that domain names are no longer required to be \"globally unique\". Therefore, its full path must \"always be specified\".","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"a1f7b72b00543ad37d86cd1ee97b57568f3a0e31","unresolved":false,"context_lines":[{"line_number":13,"context_line":"-------------------------"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"- Microversioning of the Identity API."},{"line_number":16,"context_line":"- Nested domains"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"What\u0027s New in Version 3.6"},{"line_number":19,"context_line":"-------------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_c27306e6","line":16,"in_reply_to":"1aa78d24_c21ca615","updated":"2016-07-05 17:40:06.000000000","message":"yes they are, a domain name always contains the path (e.g. that\u0027s what you get from a GET /domain). We describe around line 900","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"116f785d62040cbb9945505cb20641319ca73807","unresolved":false,"context_lines":[{"line_number":993,"context_line":""},{"line_number":994,"context_line":"    {"},{"line_number":995,"context_line":"        \"project\": {"},{"line_number":996,"context_line":"            \"domain_id\": \"3f69d9\","},{"line_number":997,"context_line":"            \"enabled\": true,"},{"line_number":998,"context_line":"            \"id\": \"263fd9\","},{"line_number":999,"context_line":"            \"links\": {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_d5690327","line":996,"range":{"start_line":996,"start_character":32,"end_line":996,"end_character":34},"updated":"2016-07-05 16:34:51.000000000","message":"Why do we need both? Project\u0027s parent must always be a domain right?","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"81c952153add985512be75eeff863aa5fe62cbea","unresolved":false,"context_lines":[{"line_number":993,"context_line":""},{"line_number":994,"context_line":"    {"},{"line_number":995,"context_line":"        \"project\": {"},{"line_number":996,"context_line":"            \"domain_id\": \"3f69d9\","},{"line_number":997,"context_line":"            \"enabled\": true,"},{"line_number":998,"context_line":"            \"id\": \"263fd9\","},{"line_number":999,"context_line":"            \"links\": {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_c2cae66d","line":996,"range":{"start_line":996,"start_character":32,"end_line":996,"end_character":34},"in_reply_to":"1aa78d24_797129e0","updated":"2016-07-05 17:33:39.000000000","message":"I still don\u0027t understand why we need to show both. If \"parent_id\" is None or \"\" or absent, then by definition it is a top level domain right?","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"a1f7b72b00543ad37d86cd1ee97b57568f3a0e31","unresolved":false,"context_lines":[{"line_number":993,"context_line":""},{"line_number":994,"context_line":"    {"},{"line_number":995,"context_line":"        \"project\": {"},{"line_number":996,"context_line":"            \"domain_id\": \"3f69d9\","},{"line_number":997,"context_line":"            \"enabled\": true,"},{"line_number":998,"context_line":"            \"id\": \"263fd9\","},{"line_number":999,"context_line":"            \"links\": {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_421c3677","line":996,"range":{"start_line":996,"start_character":32,"end_line":996,"end_character":34},"in_reply_to":"1aa78d24_c2cae66d","updated":"2016-07-05 17:40:06.000000000","message":"yes, but this is not a create project example....this is what you get when reading an entity - and when you get an entity, you get all the attributes.....","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e57a21d15dd38d7b3f97b4b9d21c68ed89192e18","unresolved":false,"context_lines":[{"line_number":993,"context_line":""},{"line_number":994,"context_line":"    {"},{"line_number":995,"context_line":"        \"project\": {"},{"line_number":996,"context_line":"            \"domain_id\": \"3f69d9\","},{"line_number":997,"context_line":"            \"enabled\": true,"},{"line_number":998,"context_line":"            \"id\": \"263fd9\","},{"line_number":999,"context_line":"            \"links\": {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_797129e0","line":996,"range":{"start_line":996,"start_character":32,"end_line":996,"end_character":34},"in_reply_to":"1aa78d24_d5690327","updated":"2016-07-05 16:42:50.000000000","message":"For a top level project the parent is the domain yes. This is just showing an example entity that might be returned. You would not have to specify both on create, for example.","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"}],"specs/keystone/newton/hierarchical-domains.rst":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"0ceff4f26993c84894ebada16068ea54f51dbd58","unresolved":false,"context_lines":[{"line_number":67,"context_line":"- Creating a sub domain will only be possible via the project API (which has"},{"line_number":68,"context_line":"  built in support for hierarchies). The existing domain API will see sub"},{"line_number":69,"context_line":"  domains (with the name as the path) and can perform any other CRUD operation"},{"line_number":70,"context_line":"  (except create)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"In Mitaka, we laid the ground work for allowing the specification of a"},{"line_number":73,"context_line":"path in an API request, by supporting an optional ability to make sure"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3aaa91ec_6421a7b4","line":70,"updated":"2016-06-22 17:53:36.000000000","message":"We may have any problem with the domain name update using the domain API? for example, we need forbidden change the full path for a subdomain, or something like that.","commit_id":"e7435e12f86190c4fd82897b25af1df30b5360ae"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8b09074d1f02420512b10ddd21dddec87b6f9d56","unresolved":false,"context_lines":[{"line_number":67,"context_line":"- Creating a sub domain will only be possible via the project API (which has"},{"line_number":68,"context_line":"  built in support for hierarchies). The existing domain API will see sub"},{"line_number":69,"context_line":"  domains (with the name as the path) and can perform any other CRUD operation"},{"line_number":70,"context_line":"  (except create)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"In Mitaka, we laid the ground work for allowing the specification of a"},{"line_number":73,"context_line":"path in an API request, by supporting an optional ability to make sure"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3aaa91ec_1f6465e3","line":70,"in_reply_to":"3aaa91ec_6421a7b4","updated":"2016-06-22 20:22:16.000000000","message":"Agreed, maybe we only all GET (and possibly DELETE) for sub-domains, via the domain API","commit_id":"e7435e12f86190c4fd82897b25af1df30b5360ae"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"0ceff4f26993c84894ebada16068ea54f51dbd58","unresolved":false,"context_lines":[{"line_number":121,"context_line":"a configuration option - however the confusion of having to know the"},{"line_number":122,"context_line":"separator for a given cloud (before you authenticate), seems to create a worse"},{"line_number":123,"context_line":"problem than simply having a fixed separator in the first place, so it is"},{"line_number":124,"context_line":"proposed that we do not allow the separator to be modified."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"In order to not have to have assignments replicated manually between the"},{"line_number":127,"context_line":"domains, the domain entity will be augmented to add an attribute that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3aaa91ec_a4026f09","line":124,"updated":"2016-06-22 17:53:36.000000000","message":"++ for not use config option and just choose / as a separator","commit_id":"e7435e12f86190c4fd82897b25af1df30b5360ae"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5804c01cb3e643dc3083927a43b78025dd08f88c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"conceptually possible, but in practice is hard to administer, for instance:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"- If the users are in LDAP, then this configuration must be duplicated"},{"line_number":38,"context_line":"- Assignments would need to duplicated manually between the domains"},{"line_number":39,"context_line":"- The cloud admin (think public cloud) would have to be involved every time"},{"line_number":40,"context_line":"  a customer wanted to add a domain to create a new name space"},{"line_number":41,"context_line":"- The top level project (which is now a domain) must be unique across all other"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_3f0de837","line":38,"range":{"start_line":38,"start_character":2,"end_line":38,"end_character":67},"updated":"2016-06-23 00:50:37.000000000","message":"Even with subdomains, assignments should be domain-bounded","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8d8e296d269b7e4e38fb991a44f167984ac90a52","unresolved":false,"context_lines":[{"line_number":35,"context_line":"conceptually possible, but in practice is hard to administer, for instance:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"- If the users are in LDAP, then this configuration must be duplicated"},{"line_number":38,"context_line":"- Assignments would need to duplicated manually between the domains"},{"line_number":39,"context_line":"- The cloud admin (think public cloud) would have to be involved every time"},{"line_number":40,"context_line":"  a customer wanted to add a domain to create a new name space"},{"line_number":41,"context_line":"- The top level project (which is now a domain) must be unique across all other"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_afb50eef","line":38,"range":{"start_line":38,"start_character":2,"end_line":38,"end_character":67},"in_reply_to":"3aaa91ec_3f0de837","updated":"2016-06-23 08:25:58.000000000","message":"By default, yes.","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5804c01cb3e643dc3083927a43b78025dd08f88c","unresolved":false,"context_lines":[{"line_number":67,"context_line":"- Creating a sub domain will only be possible via the project API (which has"},{"line_number":68,"context_line":"  built in support for hierarchies). The existing domain API will see sub"},{"line_number":69,"context_line":"  domains (with the name as the path) and can perform any other CRUD operation"},{"line_number":70,"context_line":"  (except create)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"In Mitaka, we laid the ground work for allowing the specification of a"},{"line_number":73,"context_line":"path in an API request, by supporting an optional ability to make sure"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_3fecc88e","line":70,"updated":"2016-06-23 00:50:37.000000000","message":"May be worth it to mention that subdomains cannot be moved ?","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8d8e296d269b7e4e38fb991a44f167984ac90a52","unresolved":false,"context_lines":[{"line_number":67,"context_line":"- Creating a sub domain will only be possible via the project API (which has"},{"line_number":68,"context_line":"  built in support for hierarchies). The existing domain API will see sub"},{"line_number":69,"context_line":"  domains (with the name as the path) and can perform any other CRUD operation"},{"line_number":70,"context_line":"  (except create)."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"In Mitaka, we laid the ground work for allowing the specification of a"},{"line_number":73,"context_line":"path in an API request, by supporting an optional ability to make sure"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_2fcabe6d","line":70,"in_reply_to":"3aaa91ec_3fecc88e","updated":"2016-06-23 08:25:58.000000000","message":"will do","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5804c01cb3e643dc3083927a43b78025dd08f88c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    }"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"It is proposed that we now enable this capability, as part of a microversion"},{"line_number":99,"context_line":"change of the Identity API.  A 3.7 server will also default \u0027url_safe\u0027 to"},{"line_number":100,"context_line":"\u0027strict\u0027 mode. We will mark this config option as deprecated, so that we can"},{"line_number":101,"context_line":"remove the ability to turn it off in two releases. Until that point, if"},{"line_number":102,"context_line":"strictness is turned off in a 3.7 or 3.8 server, then a path name will no"},{"line_number":103,"context_line":"longer be accepted in the auth request."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_1f646c20","line":100,"range":{"start_line":99,"start_character":29,"end_line":100,"end_character":15},"updated":"2016-06-23 00:50:37.000000000","message":"This may break people running on the defaults. But deployers are expected to understand and customize the config anyways","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8d8e296d269b7e4e38fb991a44f167984ac90a52","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    }"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"It is proposed that we now enable this capability, as part of a microversion"},{"line_number":99,"context_line":"change of the Identity API.  A 3.7 server will also default \u0027url_safe\u0027 to"},{"line_number":100,"context_line":"\u0027strict\u0027 mode. We will mark this config option as deprecated, so that we can"},{"line_number":101,"context_line":"remove the ability to turn it off in two releases. Until that point, if"},{"line_number":102,"context_line":"strictness is turned off in a 3.7 or 3.8 server, then a path name will no"},{"line_number":103,"context_line":"longer be accepted in the auth request."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_6fa206b0","line":100,"range":{"start_line":99,"start_character":29,"end_line":100,"end_character":15},"in_reply_to":"3aaa91ec_1f646c20","updated":"2016-06-23 08:25:58.000000000","message":"agreed.","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5804c01cb3e643dc3083927a43b78025dd08f88c","unresolved":false,"context_lines":[{"line_number":116,"context_line":"project hierarchy depth is controlled). Clients will need to take account"},{"line_number":117,"context_line":"of this size increase of this attribute."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"The separator used in such path naming will be the forward slash character"},{"line_number":120,"context_line":"`/`. It would be possible to make the separator configurable by deployment via"},{"line_number":121,"context_line":"a configuration option - however the confusion of having to know the"},{"line_number":122,"context_line":"separator for a given cloud (before you authenticate), seems to create a worse"},{"line_number":123,"context_line":"problem than simply having a fixed separator in the first place, so it is"},{"line_number":124,"context_line":"proposed that we do not allow the separator to be modified."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"In order to not have to have assignments replicated manually between the"},{"line_number":127,"context_line":"domains, the domain entity will be augmented to add an attribute that"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_9a3b4ad1","line":124,"range":{"start_line":119,"start_character":0,"end_line":124,"end_character":59},"updated":"2016-06-23 00:50:37.000000000","message":"++\n\nand having a fixed separator helps on cloud interoperability","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5804c01cb3e643dc3083927a43b78025dd08f88c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"problem than simply having a fixed separator in the first place, so it is"},{"line_number":124,"context_line":"proposed that we do not allow the separator to be modified."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"In order to not have to have assignments replicated manually between the"},{"line_number":127,"context_line":"domains, the domain entity will be augmented to add an attribute that"},{"line_number":128,"context_line":"enables assignments to be inherited to sub domains below it (and hence to any"},{"line_number":129,"context_line":"projects below them). Such inheritance will be off by default."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Alternatives"},{"line_number":132,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_5a6f22c5","line":129,"range":{"start_line":126,"start_character":0,"end_line":129,"end_character":62},"updated":"2016-06-23 00:50:37.000000000","message":"I think the subdomain is the one that should allow assignments from domains above it to cross its bounds.\n\nThink of reseller usecase","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"49d7417cda04f80e4cc124b99a7912863059da98","unresolved":false,"context_lines":[{"line_number":123,"context_line":"problem than simply having a fixed separator in the first place, so it is"},{"line_number":124,"context_line":"proposed that we do not allow the separator to be modified."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"In order to not have to have assignments replicated manually between the"},{"line_number":127,"context_line":"domains, the domain entity will be augmented to add an attribute that"},{"line_number":128,"context_line":"enables assignments to be inherited to sub domains below it (and hence to any"},{"line_number":129,"context_line":"projects below them). Such inheritance will be off by default."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Alternatives"},{"line_number":132,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_555ea576","line":129,"range":{"start_line":126,"start_character":0,"end_line":129,"end_character":62},"in_reply_to":"3aaa91ec_0108672b","updated":"2016-06-23 13:47:20.000000000","message":"Although we are only talking about whether we let inherited assignments through....if the parent domain wants to wait for the child to add the assignment, then they just don\u0027t make the assignment inherited.","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"0a2531a81f81daa3ab4013f45b0ab32f41817e11","unresolved":false,"context_lines":[{"line_number":123,"context_line":"problem than simply having a fixed separator in the first place, so it is"},{"line_number":124,"context_line":"proposed that we do not allow the separator to be modified."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"In order to not have to have assignments replicated manually between the"},{"line_number":127,"context_line":"domains, the domain entity will be augmented to add an attribute that"},{"line_number":128,"context_line":"enables assignments to be inherited to sub domains below it (and hence to any"},{"line_number":129,"context_line":"projects below them). Such inheritance will be off by default."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Alternatives"},{"line_number":132,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_0108672b","line":129,"range":{"start_line":126,"start_character":0,"end_line":129,"end_character":62},"in_reply_to":"3aaa91ec_4fbaaac1","updated":"2016-06-23 12:58:44.000000000","message":"I\u0027d rather the way it was written on spec... Since the parent domain can have the control on their resources.\n\nThinking on the reseller use case, It is simpler to be controlled by any contract case, when the admin in a parent domain, can not have any role in the subdomains, instead of wait for the admin in a subdomain give or not this control.","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8d8e296d269b7e4e38fb991a44f167984ac90a52","unresolved":false,"context_lines":[{"line_number":123,"context_line":"problem than simply having a fixed separator in the first place, so it is"},{"line_number":124,"context_line":"proposed that we do not allow the separator to be modified."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"In order to not have to have assignments replicated manually between the"},{"line_number":127,"context_line":"domains, the domain entity will be augmented to add an attribute that"},{"line_number":128,"context_line":"enables assignments to be inherited to sub domains below it (and hence to any"},{"line_number":129,"context_line":"projects below them). Such inheritance will be off by default."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Alternatives"},{"line_number":132,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_4fbaaac1","line":129,"range":{"start_line":126,"start_character":0,"end_line":129,"end_character":62},"in_reply_to":"3aaa91ec_5a6f22c5","updated":"2016-06-23 08:25:58.000000000","message":"yeah, i\u0027ve heard both arguments...let me think about this one","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5804c01cb3e643dc3083927a43b78025dd08f88c","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"We could chose to store the name for new domains (created via 3.7 or later) as"},{"line_number":145,"context_line":"their full path (in which case the field size must be increased since it is"},{"line_number":146,"context_line":"currently 64 characters), or calculate the path on-demand."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"REST API Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_da5672d1","line":146,"range":{"start_line":146,"start_character":48,"end_line":146,"end_character":57},"updated":"2016-06-23 00:50:37.000000000","message":"on-demand will require multiple queries to DB, unless we have https://review.openstack.org/#/c/285521/","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8d8e296d269b7e4e38fb991a44f167984ac90a52","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"We could chose to store the name for new domains (created via 3.7 or later) as"},{"line_number":145,"context_line":"their full path (in which case the field size must be increased since it is"},{"line_number":146,"context_line":"currently 64 characters), or calculate the path on-demand."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"REST API Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_efa436a7","line":146,"range":{"start_line":146,"start_character":48,"end_line":146,"end_character":57},"in_reply_to":"3aaa91ec_da5672d1","updated":"2016-06-23 08:25:58.000000000","message":"yes, that\u0027s exactly what i was thinking...although since the domain hierarchy is likely to be pretty static, this would get cached very quickly so probably not too inefficient even without closure tables.","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"eaded3bf9ea1b4cc5795ad1ed8fd891073dcaaeb","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"We could chose to store the name for new domains (created via 3.7 or later) as"},{"line_number":145,"context_line":"their full path (in which case the field size must be increased since it is"},{"line_number":146,"context_line":"currently 64 characters), or calculate the path on-demand."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"REST API Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_993fb8d5","line":146,"range":{"start_line":146,"start_character":48,"end_line":146,"end_character":57},"in_reply_to":"3aaa91ec_efa436a7","updated":"2016-06-23 10:19:50.000000000","message":"++","commit_id":"22f3cd1600cb6ad85161e946988e46c9027bb1d5"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"0864c40a42ad5e52064436c444eda0ebb0c2599b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  \"foo/bar\". Hence domain names remain unique across all domains. This name"},{"line_number":65,"context_line":"  can be used as a domain name in an authentication scoped, just as can"},{"line_number":66,"context_line":"  existing (top level) domain names."},{"line_number":67,"context_line":"- Creating a sub domain will only be possible via the project API (which has"},{"line_number":68,"context_line":"  built in support for hierarchies). The existing domain API will see sub"},{"line_number":69,"context_line":"  domains (with the name as the path) when getting or listing domain(s),"},{"line_number":70,"context_line":"  but will not be able to perform other CRUD operations on these sub domains."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_f8cfac26","line":67,"updated":"2016-06-23 22:20:59.000000000","message":"So you would create a subdomain using the project API not the domain API?  That seems a little non-intuitive. Is it not possible to have a subdomain API inside the domain API or have wrappers in the domain API that call the project sub-domain API?\n\nWhile I don\u0027t love this being in project compared to the other two alternatives listed below this seems the lessor of the evils.  The other two alternatives had so many -1s hanging off them they looked like porcupines :-)","commit_id":"728f4185f1fb461257f74b454482a775deb83408"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"f2722aeb49df25ca811153b3f2e52f2cc64caaee","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  \"foo/bar\". Hence domain names remain unique across all domains. This name"},{"line_number":65,"context_line":"  can be used as a domain name in an authentication scoped, just as can"},{"line_number":66,"context_line":"  existing (top level) domain names."},{"line_number":67,"context_line":"- Creating a sub domain will only be possible via the project API (which has"},{"line_number":68,"context_line":"  built in support for hierarchies). The existing domain API will see sub"},{"line_number":69,"context_line":"  domains (with the name as the path) when getting or listing domain(s),"},{"line_number":70,"context_line":"  but will not be able to perform other CRUD operations on these sub domains."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3aaa91ec_80f70a58","line":67,"in_reply_to":"3aaa91ec_f8cfac26","updated":"2016-06-24 02:29:19.000000000","message":"So this has to seen in the context of Mitaka, where we added full support for domain CRUD via the project API now that domains are actually just projects (with the \"is_domain\" attribute). We are effectively trying to freeze (and probably one day deprecate the domain API). I\u0027ll explain this rationale ore clearly.","commit_id":"728f4185f1fb461257f74b454482a775deb83408"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"116f785d62040cbb9945505cb20641319ca73807","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  names of existing domains (since there are only top level domains today),"},{"line_number":62,"context_line":"  but only new (sub) domains. i.e. if an existing domain called \"foo\" has a"},{"line_number":63,"context_line":"  sub domain created called \"bar\", the name of that sub-domain will be"},{"line_number":64,"context_line":"  \"foo/bar\". Hence domain names remain unique across all domains. This name"},{"line_number":65,"context_line":"  can be used as a domain name in an authentication scoped, just as can"},{"line_number":66,"context_line":"  existing (top level) domain names."},{"line_number":67,"context_line":"- In Mitaka, we augmented the project API to support the equivalent of the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_f95eb910","line":64,"range":{"start_line":64,"start_character":12,"end_line":64,"end_character":66},"updated":"2016-07-05 16:34:51.000000000","message":"I read this as we can\u0027t have a domain hierarchy like \"/foo/foo\" as domain names are still required to be *globally unique\". Therefore, no API backward compatibility concerns. If that\u0027s the case, I like it!","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e57a21d15dd38d7b3f97b4b9d21c68ed89192e18","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  names of existing domains (since there are only top level domains today),"},{"line_number":62,"context_line":"  but only new (sub) domains. i.e. if an existing domain called \"foo\" has a"},{"line_number":63,"context_line":"  sub domain created called \"bar\", the name of that sub-domain will be"},{"line_number":64,"context_line":"  \"foo/bar\". Hence domain names remain unique across all domains. This name"},{"line_number":65,"context_line":"  can be used as a domain name in an authentication scoped, just as can"},{"line_number":66,"context_line":"  existing (top level) domain names."},{"line_number":67,"context_line":"- In Mitaka, we augmented the project API to support the equivalent of the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_d95f7d3f","line":64,"range":{"start_line":64,"start_character":12,"end_line":64,"end_character":66},"in_reply_to":"1aa78d24_f95eb910","updated":"2016-07-05 16:42:50.000000000","message":"No, you could have /foo/foo since the name of the top domain is \"foo\" and the name of its child is \"foo/foo\".  The name always includes the path.","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ceb93d6b8d50a2ff52a4bb5d99206ad78bfa319a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  \"foo/bar\". Hence domain names remain unique across all domains. This name"},{"line_number":65,"context_line":"  can be used as a domain name in an authentication scoped, just as can"},{"line_number":66,"context_line":"  existing (top level) domain names."},{"line_number":67,"context_line":"- In Mitaka, we augmented the project API to support the equivalent of the"},{"line_number":68,"context_line":"  domain API (with the eventual intention of removing the domain API). Given"},{"line_number":69,"context_line":"  that only the project API has built in support for hierarchies, creating a"},{"line_number":70,"context_line":"  sub domain will only be possible via the project API. The project API can"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3aaa91ec_d6c31889","line":67,"updated":"2016-06-27 21:50:32.000000000","message":"This is very helpful","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"116f785d62040cbb9945505cb20641319ca73807","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            \"scope\": {"},{"line_number":93,"context_line":"                \"project\": {"},{"line_number":94,"context_line":"                    \"domain\": {"},{"line_number":95,"context_line":"                        \"name\": \"acme.com/projectA\""},{"line_number":96,"context_line":"                    },"},{"line_number":97,"context_line":"                    \"name\": \"production\""},{"line_number":98,"context_line":"                }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_99b5f5ef","line":95,"range":{"start_line":95,"start_character":33,"end_line":95,"end_character":51},"updated":"2016-07-05 16:34:51.000000000","message":"why do we need to specify the full path if domain name is still required to be globally unique?","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e57a21d15dd38d7b3f97b4b9d21c68ed89192e18","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            \"scope\": {"},{"line_number":93,"context_line":"                \"project\": {"},{"line_number":94,"context_line":"                    \"domain\": {"},{"line_number":95,"context_line":"                        \"name\": \"acme.com/projectA\""},{"line_number":96,"context_line":"                    },"},{"line_number":97,"context_line":"                    \"name\": \"production\""},{"line_number":98,"context_line":"                }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1aa78d24_3935e1f6","line":95,"range":{"start_line":95,"start_character":33,"end_line":95,"end_character":51},"in_reply_to":"1aa78d24_99b5f5ef","updated":"2016-07-05 16:42:50.000000000","message":"because the name really is \"acme.com/projectA\"","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"ceb93d6b8d50a2ff52a4bb5d99206ad78bfa319a","unresolved":false,"context_lines":[{"line_number":129,"context_line":"proposed that we do not allow the separator to be modified."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"In order to not have to have assignments replicated manually between domains in"},{"line_number":132,"context_line":"a hierarchy, it would be beneficial to be able to control whether inherited"},{"line_number":133,"context_line":"assignments are honored within a child domain. For simplicity, this is"},{"line_number":134,"context_line":"covered by a separate specification:"},{"line_number":135,"context_line":"`\u003chttps://blueprints.launchpad.net/keystone/+spec/inherit-from-parent\u003e`_"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3aaa91ec_96407009","line":132,"updated":"2016-06-27 21:50:32.000000000","message":"good point","commit_id":"e88c1fe6856ea5097a3843c5baf4ec79391b481e"}]}
