)]}'
{"specs/lite-specs.rst":[{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"1463395b00be62a2aebe92059d47b4fcf4dbd648","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    contains \"#\" could not be analyzed."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":":solution:"},{"line_number":49,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. And the"},{"line_number":50,"context_line":"    tenant id in Keystone is a 32-digit hexadecimal number. So we should not"},{"line_number":51,"context_line":"    allow that the member id contain any special characters. It doesn\u0027t include"},{"line_number":52,"context_line":"    \u0027-\u0027 for that we should keep the backward compatibility."}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_021b8f1c","line":49,"updated":"2016-05-18 16:15:40.000000000","message":"I am not sure about this. So does Keystone allow you to create a tenant with \u0027#\u0027 (Or any other special character)? If the answer to that question is NO, then should we even be handling this as a Glance problem and instead to look to fix this in Keystone?","commit_id":"0682ea99509bfee14aa0a936b8e9782e33600627"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"17b19ccb348de908e4a58be01314da3f49029d27","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    contains \"#\" could not be analyzed."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":":solution:"},{"line_number":49,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. And the"},{"line_number":50,"context_line":"    tenant id in Keystone is a 32-digit hexadecimal number. So we should not"},{"line_number":51,"context_line":"    allow that the member id contain any special characters. It doesn\u0027t include"},{"line_number":52,"context_line":"    \u0027-\u0027 for that we should keep the backward compatibility."}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_77fa02bf","line":49,"in_reply_to":"bab6814e_021b8f1c","updated":"2016-05-19 03:38:00.000000000","message":"the tenend id is created autolly by keystone. Users could not specified it. But in Glance user could specified the member id  (tenant id)whom they want share images with. So this id should follow the tenant id rule.\n\nI dont\u0027 think we should fix this in keystone. Since we use something in keystone, then we should follow its rule in keystone.","commit_id":"0682ea99509bfee14aa0a936b8e9782e33600627"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"42c43a0b829229ffd72dd6b55f2ea1106275e01d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. And the"},{"line_number":50,"context_line":"    tenant id in Keystone is a 32-digit hexadecimal number. So we should not"},{"line_number":51,"context_line":"    allow that the member id contain any special characters. It doesn\u0027t include"},{"line_number":52,"context_line":"    \u0027-\u0027 for that we should keep the backward compatibility."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":":impacts:"},{"line_number":55,"context_line":"    APIimpact: The create member requests which contain any special characters"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7aa08908_2f4e48c2","line":52,"updated":"2016-06-16 16:39:29.000000000","message":"Is it true that the tenantId in keystone MUST be a 32-digit hex number?  Where are the constraints around the tenantId published?","commit_id":"0682ea99509bfee14aa0a936b8e9782e33600627"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"9bc6999b164a93ffd72a729b8dd93f46c06d09b7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. And the"},{"line_number":50,"context_line":"    tenant id in Keystone is a 32-digit hexadecimal number. So we should not"},{"line_number":51,"context_line":"    allow that the member id contain any special characters. It doesn\u0027t include"},{"line_number":52,"context_line":"    \u0027-\u0027 for that we should keep the backward compatibility."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":":impacts:"},{"line_number":55,"context_line":"    APIimpact: The create member requests which contain any special characters"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dada55a8_eedc4548","line":52,"in_reply_to":"5a9d85d2_0a5f4a73","updated":"2016-07-25 10:15:22.000000000","message":"I think we cannot limit our members to only tenants/projects created after V2 removal. That would break the functionality for every single cloud that has upgraded from pre V3 and possible still tenants/projects that has ID specified out of the new creation rules.","commit_id":"0682ea99509bfee14aa0a936b8e9782e33600627"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"e02dd643363d57792431b9a5adfa41447d937e17","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. And the"},{"line_number":50,"context_line":"    tenant id in Keystone is a 32-digit hexadecimal number. So we should not"},{"line_number":51,"context_line":"    allow that the member id contain any special characters. It doesn\u0027t include"},{"line_number":52,"context_line":"    \u0027-\u0027 for that we should keep the backward compatibility."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":":impacts:"},{"line_number":55,"context_line":"    APIimpact: The create member requests which contain any special characters"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a9d85d2_0a5f4a73","line":52,"in_reply_to":"7aa08908_2f4e48c2","updated":"2016-06-20 01:53:57.000000000","message":"Really a nice question, Brian. I checked Keystone and here is the answer:\n1. Keystone V2 allow users to create tenant(project) with id. This id could be any value. Once the tenant is created, it\u0027s id can\u0027t be updated anymore.\nhttps://github.com/openstack/keystone/blob/master/keystone/resource/controllers.py#L103\n\n2. Keystone V3 doesn\u0027t allow users to create/update project with id .It\u0027s hard coded here to be a 32-digit hex number:\nhttps://github.com/openstack/keystone/blob/master/keystone/resource/controllers.py#L242\nhttps://github.com/openstack/keystone/blob/master/keystone/common/controller.py#L720\n\nV2 is deprecated in Mitaka and users are suggested to use V3. So I think we should first don\u0027t allow users to create a member id with \"#\" in Glance in this cycle. Then limit the member id to a 32-digit hex number in the next cycle. A Log.warning is welcome IMO.\n\nWhat do you think, guys?","commit_id":"0682ea99509bfee14aa0a936b8e9782e33600627"}],"specs/newton/approved/glance/lite-specs.rst":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"End of Add functionality to soft delete the tasks"},{"line_number":87,"context_line":"+++++++++++++++++++++++++++++++++++++++++++++++++"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"\u003cMember Id Should Not Contain Special Characters\u003e"},{"line_number":90,"context_line":"-------------------------------------------------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":":problem:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_d79de65a","line":89,"updated":"2016-07-27 15:29:04.000000000","message":"\"Special characters\" is super vague, and it\u0027s never really defined here beyond \"#\".","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"-------------------------------------------------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":":problem:"},{"line_number":93,"context_line":"    Now,the member id in create member API could contain any character. It will"},{"line_number":94,"context_line":"    lead an error that if the member id contain some characters like \"#\", the"},{"line_number":95,"context_line":"    member could not be deleted any more. The reason is that the url which"},{"line_number":96,"context_line":"    contains \"#\" could not be analyzed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_b7b5d2d1","line":93,"updated":"2016-07-27 15:29:04.000000000","message":"nit: missing a space after the comma\n\nnit: s/id/ID/","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":":problem:"},{"line_number":93,"context_line":"    Now,the member id in create member API could contain any character. It will"},{"line_number":94,"context_line":"    lead an error that if the member id contain some characters like \"#\", the"},{"line_number":95,"context_line":"    member could not be deleted any more. The reason is that the url which"},{"line_number":96,"context_line":"    contains \"#\" could not be analyzed."},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_37ca8250","line":94,"updated":"2016-07-27 15:29:04.000000000","message":"nit: s/lead/lead to/\n\nnit: s/id/ID/\n\nAgain, \"some characters\" needs to be very explicitly defined if this is going to be respected.","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    Now,the member id in create member API could contain any character. It will"},{"line_number":94,"context_line":"    lead an error that if the member id contain some characters like \"#\", the"},{"line_number":95,"context_line":"    member could not be deleted any more. The reason is that the url which"},{"line_number":96,"context_line":"    contains \"#\" could not be analyzed."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":":solution:"},{"line_number":99,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. In"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_37f8c27c","line":96,"updated":"2016-07-27 15:29:04.000000000","message":"\"could not be analyzed\" is also vague. What does this phrase mean? What sort of issue occurs, and most importantly, *why*?","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    contains \"#\" could not be analyzed."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":":solution:"},{"line_number":99,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. In"},{"line_number":100,"context_line":"    Keystone V2, administrators can create a tenant with id. This id could be"},{"line_number":101,"context_line":"    any value. Once the tenant is created, it\u0027s id can\u0027t be updated anymore."},{"line_number":102,"context_line":"    But in Keystone V3, tenant id is hard coded to be a 32-digit hex number. So"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_77207af8","line":99,"updated":"2016-07-27 15:29:04.000000000","message":"nit: s/id/ID/\n\nnit: missing a space after \"tenant\", and tenant and project should really be reversed, as \"tenant\" is the legacy nomenclature, and \"project\" is the preferred nomenclature.","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":":solution:"},{"line_number":99,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. In"},{"line_number":100,"context_line":"    Keystone V2, administrators can create a tenant with id. This id could be"},{"line_number":101,"context_line":"    any value. Once the tenant is created, it\u0027s id can\u0027t be updated anymore."},{"line_number":102,"context_line":"    But in Keystone V3, tenant id is hard coded to be a 32-digit hex number. So"},{"line_number":103,"context_line":"    according to the difference between Keystone V2 and V3, we should not allow"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_f7590a90","line":100,"updated":"2016-07-27 15:29:04.000000000","message":"nit: There is no such thing as \"keystone V2\" but keystone does have a v2 API, so this should read \"keystone\u0027s v2 API\".\n\nnit: s/tenant/project/\n\nnit: s/id/ID/g\n\nI don\u0027t even know if the assertion in this \"solution\" is valid (this assertion should really be part of the problem statement, as it is NOT a solution). There\u0027s also not citation to API docs, or anything, which would make it easier to verify the claim.","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    Usually, a member id in Glance means a Keystone tenant(project) id. In"},{"line_number":100,"context_line":"    Keystone V2, administrators can create a tenant with id. This id could be"},{"line_number":101,"context_line":"    any value. Once the tenant is created, it\u0027s id can\u0027t be updated anymore."},{"line_number":102,"context_line":"    But in Keystone V3, tenant id is hard coded to be a 32-digit hex number. So"},{"line_number":103,"context_line":"    according to the difference between Keystone V2 and V3, we should not allow"},{"line_number":104,"context_line":"    that the member id contain any \"#\" character."},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_7776ba3f","line":102,"updated":"2016-07-27 15:29:04.000000000","message":"\"Keystone\u0027s v3 API\" does not have a notion of \"tenants.\" Keystone\u0027s actual expectation is that if you create a project through the HTTP API, then we\u0027re going to assign an immutable 32 character hexidecimal ID, yes, but that\u0027s not to say that you don\u0027t already have existing project IDs in the backend that do not conform to that assumption.\n\nThe ONLY assumption that keystone makes is that project IDs (and in fact, ALL IDs in keystone) are 1-64 character, URL-safe, and immutable. uuid.uuid4().hex is just one implementation which meets that criteria.","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    any value. Once the tenant is created, it\u0027s id can\u0027t be updated anymore."},{"line_number":102,"context_line":"    But in Keystone V3, tenant id is hard coded to be a 32-digit hex number. So"},{"line_number":103,"context_line":"    according to the difference between Keystone V2 and V3, we should not allow"},{"line_number":104,"context_line":"    that the member id contain any \"#\" character."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":":impacts:"},{"line_number":107,"context_line":"    APIimpact: The create member requests which contain any \"#\" character will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_625f1a0f","line":104,"updated":"2016-07-27 15:29:04.000000000","message":"While this statement is true, it strikes me as absurdly narrow.","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"364b82e0088314194df44b7b3ee0290a6c4c600d","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":":impacts:"},{"line_number":107,"context_line":"    APIimpact: The create member requests which contain any \"#\" character will"},{"line_number":108,"context_line":"    return 400 BedRequest."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":":timeline: Newton-3"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bacf61ea_62b6fa3e","line":108,"updated":"2016-07-27 15:29:04.000000000","message":"nit: It\u0027s actually a \"Bad Request\", not a \"bed\" request.","commit_id":"a5d0f5ac76cad44c36eb20e1a92d54c8c0c634be"}]}
