)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"c18b2a8db89550e641a31a567a28d83d9a248ee0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improving help text for conext middleware opts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partial bug:  #1570946"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I61b55e169e37e4bc73a374311283184cd0b26c8b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_c8c8f7aa","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":22},"updated":"2016-07-07 14:22:29.000000000","message":"Partial-Bug: #1570946","commit_id":"3a0ac811c954406c9f5fb1af43a5521a0e1bf0c9"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"026bef9a28981272032b576a26dfe0b4e14fea74","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dharini Chandrasekar \u003cdharini.chandrasekar@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-07-07 15:39:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improving help text for conext middleware opts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partial bug:  #1570946"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aa78d24_c9cc4f37","line":7,"updated":"2016-07-07 16:04:18.000000000","message":"context?","commit_id":"6c73a11d8cd288eb474a8df4dc493fcbaaef242e"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"8a1b727d341e7bb038f80ef5c9922c53f31e005d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dharini Chandrasekar \u003cdharini.chandrasekar@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-07-07 15:39:29 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improving help text for conext middleware opts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partial bug:  #1570946"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aa78d24_a980e38b","line":7,"in_reply_to":"1aa78d24_c9cc4f37","updated":"2016-07-07 16:06:49.000000000","message":"Done","commit_id":"6c73a11d8cd288eb474a8df4dc493fcbaaef242e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"aacf8fc5dc29a78fab923c98a1220732199d6ded","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improving help text for context middleware opts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partial bug:  #1570946"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I61b55e169e37e4bc73a374311283184cd0b26c8b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1aa78d24_53a67cc1","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":14},"updated":"2016-07-12 17:29:50.000000000","message":"extra ws so bug not linked","commit_id":"82fe0f3a31a3113a141d2eaffcf91f242a4d5875"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improving help text for context middleware opts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partial bug: #1570946"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I61b55e169e37e4bc73a374311283184cd0b26c8b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1aa78d24_bcacc89f","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":21},"updated":"2016-07-12 20:31:52.000000000","message":"This should be \"Partial-Bug: #1570946\"","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"}],"glance/api/middleware/context.py":[{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":27,"context_line":"context_opts \u003d ["},{"line_number":28,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027, default\u003dTrue,"},{"line_number":29,"context_line":"                help\u003d_(\"\"\""},{"line_number":30,"context_line":"Boolean value to set the ownsership of an image."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This config option takes in a boolean value to set the owner of an"},{"line_number":33,"context_line":"image. When set to True, the owner of the image is the tenant. When"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_5c9e8463","line":30,"range":{"start_line":30,"start_character":17,"end_line":30,"end_character":20},"updated":"2016-07-12 20:31:52.000000000","message":"How about something like \"Use tenant or the authenticated user as image owner\"?\n\nWe are already mentioning that is a boolean value in the following paragraph, so we can avoid mentioning it here again.","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f4c0f35683663811082d4cb833bcd5e6e3e64405","unresolved":false,"context_lines":[{"line_number":27,"context_line":"context_opts \u003d ["},{"line_number":28,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027, default\u003dTrue,"},{"line_number":29,"context_line":"                help\u003d_(\"\"\""},{"line_number":30,"context_line":"Boolean value to set the ownsership of an image."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This config option takes in a boolean value to set the owner of an"},{"line_number":33,"context_line":"image. When set to True, the owner of the image is the tenant. When"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_bf131a64","line":30,"range":{"start_line":30,"start_character":17,"end_line":30,"end_character":20},"in_reply_to":"1aa78d24_5c9e8463","updated":"2016-07-12 21:03:29.000000000","message":"Done","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                help\u003d_(\"\"\""},{"line_number":30,"context_line":"Boolean value to set the ownsership of an image."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This config option takes in a boolean value to set the owner of an"},{"line_number":33,"context_line":"image. When set to True, the owner of the image is the tenant. When"},{"line_number":34,"context_line":"set to False, the owner of the image will be the authenticated user"},{"line_number":35,"context_line":"issuing the request. Setting it to False makes the image private to"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_3c71f80c","line":32,"range":{"start_line":32,"start_character":47,"end_line":32,"end_character":50},"updated":"2016-07-12 20:31:52.000000000","message":"\"determine\"?","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f4c0f35683663811082d4cb833bcd5e6e3e64405","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                help\u003d_(\"\"\""},{"line_number":30,"context_line":"Boolean value to set the ownsership of an image."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This config option takes in a boolean value to set the owner of an"},{"line_number":33,"context_line":"image. When set to True, the owner of the image is the tenant. When"},{"line_number":34,"context_line":"set to False, the owner of the image will be the authenticated user"},{"line_number":35,"context_line":"issuing the request. Setting it to False makes the image private to"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_df10a65b","line":32,"range":{"start_line":32,"start_character":47,"end_line":32,"end_character":50},"in_reply_to":"1aa78d24_3c71f80c","updated":"2016-07-12 21:03:29.000000000","message":"Done","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":34,"context_line":"set to False, the owner of the image will be the authenticated user"},{"line_number":35,"context_line":"issuing the request. Setting it to False makes the image private to"},{"line_number":36,"context_line":"the associated user and requires explicit image sharing via image"},{"line_number":37,"context_line":"membership if the user wishes to share the image with others."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Services which consume this:"},{"line_number":40,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_7ccc2035","line":37,"range":{"start_line":37,"start_character":54,"end_line":37,"end_character":60},"updated":"2016-07-12 20:31:52.000000000","message":"\"other users of the same tenant\"?\nIs that what you want to say here?","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f4c0f35683663811082d4cb833bcd5e6e3e64405","unresolved":false,"context_lines":[{"line_number":34,"context_line":"set to False, the owner of the image will be the authenticated user"},{"line_number":35,"context_line":"issuing the request. Setting it to False makes the image private to"},{"line_number":36,"context_line":"the associated user and requires explicit image sharing via image"},{"line_number":37,"context_line":"membership if the user wishes to share the image with others."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Services which consume this:"},{"line_number":40,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_7f1d3272","line":37,"range":{"start_line":37,"start_character":54,"end_line":37,"end_character":60},"in_reply_to":"1aa78d24_7ccc2035","updated":"2016-07-12 21:03:29.000000000","message":"Yes.","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027admin_role\u0027, default\u003d\u0027admin\u0027,"},{"line_number":54,"context_line":"               help\u003d_(\"\"\""},{"line_number":55,"context_line":"Config option used to identify an authenticated user as an admin."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This config option takes in a string type value and is used to set"},{"line_number":58,"context_line":"the role of the user to admin. By default the user is granted admin"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_fc8650b7","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":64},"updated":"2016-07-12 20:31:52.000000000","message":"\"Role to identify an admin user\"?","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f4c0f35683663811082d4cb833bcd5e6e3e64405","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027admin_role\u0027, default\u003d\u0027admin\u0027,"},{"line_number":54,"context_line":"               help\u003d_(\"\"\""},{"line_number":55,"context_line":"Config option used to identify an authenticated user as an admin."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This config option takes in a string type value and is used to set"},{"line_number":58,"context_line":"the role of the user to admin. By default the user is granted admin"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_1270650a","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":64},"in_reply_to":"1aa78d24_fc8650b7","updated":"2016-07-12 21:03:29.000000000","message":"Done","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               help\u003d_(\"\"\""},{"line_number":55,"context_line":"Config option used to identify an authenticated user as an admin."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This config option takes in a string type value and is used to set"},{"line_number":58,"context_line":"the role of the user to admin. By default the user is granted admin"},{"line_number":59,"context_line":"role and has all the administartor priviliges. This option can be"},{"line_number":60,"context_line":"changed to a specific member role to limit what the user can do with"},{"line_number":61,"context_line":"the image."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Services which consume this:"},{"line_number":64,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_df1ee65d","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":10},"updated":"2016-07-12 20:31:52.000000000","message":"This isn\u0027t necessarily used to \"set\" the role of a user to make him/her an admin. It\u0027s primarily to determine whether a given user is admin by looking up the associated roles for the role indicated by this configuration option.","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f4c0f35683663811082d4cb833bcd5e6e3e64405","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               help\u003d_(\"\"\""},{"line_number":55,"context_line":"Config option used to identify an authenticated user as an admin."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"This config option takes in a string type value and is used to set"},{"line_number":58,"context_line":"the role of the user to admin. By default the user is granted admin"},{"line_number":59,"context_line":"role and has all the administartor priviliges. This option can be"},{"line_number":60,"context_line":"changed to a specific member role to limit what the user can do with"},{"line_number":61,"context_line":"the image."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Services which consume this:"},{"line_number":64,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_f26af918","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":10},"in_reply_to":"1aa78d24_df1ee65d","updated":"2016-07-12 21:03:29.000000000","message":"Done","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    * glance-scrubber"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Possible values:"},{"line_number":70,"context_line":"    * admin"},{"line_number":71,"context_line":"    * Any member role defined in policy.json"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Related options:"},{"line_number":74,"context_line":"    * None"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_3f5c4a18","line":71,"range":{"start_line":70,"start_character":6,"end_line":71,"end_character":44},"updated":"2016-07-12 20:31:52.000000000","message":"This is any string that\u0027s a valid keystone role.","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f4c0f35683663811082d4cb833bcd5e6e3e64405","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    * glance-scrubber"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Possible values:"},{"line_number":70,"context_line":"    * admin"},{"line_number":71,"context_line":"    * Any member role defined in policy.json"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Related options:"},{"line_number":74,"context_line":"    * None"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_52766d06","line":71,"range":{"start_line":70,"start_character":6,"end_line":71,"end_character":44},"in_reply_to":"1aa78d24_3f5c4a18","updated":"2016-07-12 21:03:29.000000000","message":"Done","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":27,"context_line":"context_opts \u003d ["},{"line_number":28,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027, default\u003dTrue,"},{"line_number":29,"context_line":"                help\u003d_(\"\"\""},{"line_number":30,"context_line":"Config option to identify the tenant or the authenticated user as an"},{"line_number":31,"context_line":"image owner."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This config option takes in a boolean value to determine the owner of"},{"line_number":34,"context_line":"an image. When set to True, the owner of the image is the tenant. When"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_158021f6","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":12},"updated":"2016-07-13 16:31:40.000000000","message":"How about \"Set the image owner to tenant or the authenticated user\"?","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"ee0e9e9567f4399652d3c2d594df6e347c38db82","unresolved":false,"context_lines":[{"line_number":27,"context_line":"context_opts \u003d ["},{"line_number":28,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027, default\u003dTrue,"},{"line_number":29,"context_line":"                help\u003d_(\"\"\""},{"line_number":30,"context_line":"Config option to identify the tenant or the authenticated user as an"},{"line_number":31,"context_line":"image owner."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This config option takes in a boolean value to determine the owner of"},{"line_number":34,"context_line":"an image. When set to True, the owner of the image is the tenant. When"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_c1909b45","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":12},"in_reply_to":"1aa78d24_158021f6","updated":"2016-07-13 16:35:20.000000000","message":"Would you rather suggest just going with something like \"Assign a boolean value to determine the owner of an image\"?","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"53639e8395d3c36f618dd170bfe333f17babad30","unresolved":false,"context_lines":[{"line_number":27,"context_line":"context_opts \u003d ["},{"line_number":28,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027, default\u003dTrue,"},{"line_number":29,"context_line":"                help\u003d_(\"\"\""},{"line_number":30,"context_line":"Config option to identify the tenant or the authenticated user as an"},{"line_number":31,"context_line":"image owner."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This config option takes in a boolean value to determine the owner of"},{"line_number":34,"context_line":"an image. When set to True, the owner of the image is the tenant. When"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_a108ef91","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":12},"in_reply_to":"1aa78d24_c1909b45","updated":"2016-07-13 16:37:43.000000000","message":"I meant this to be for the detailed explanation.","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Config option to identify the tenant or the authenticated user as an"},{"line_number":31,"context_line":"image owner."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This config option takes in a boolean value to determine the owner of"},{"line_number":34,"context_line":"an image. When set to True, the owner of the image is the tenant. When"},{"line_number":35,"context_line":"set to False, the owner of the image will be the authenticated user"},{"line_number":36,"context_line":"issuing the request. Setting it to False makes the image private to"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_c8bba0e3","line":33,"range":{"start_line":33,"start_character":5,"end_line":33,"end_character":11},"updated":"2016-07-13 16:31:40.000000000","message":"configuration","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"53639e8395d3c36f618dd170bfe333f17babad30","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Config option to identify the tenant or the authenticated user as an"},{"line_number":31,"context_line":"image owner."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This config option takes in a boolean value to determine the owner of"},{"line_number":34,"context_line":"an image. When set to True, the owner of the image is the tenant. When"},{"line_number":35,"context_line":"set to False, the owner of the image will be the authenticated user"},{"line_number":36,"context_line":"issuing the request. Setting it to False makes the image private to"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_21cebf59","line":33,"range":{"start_line":33,"start_character":5,"end_line":33,"end_character":11},"in_reply_to":"1aa78d24_c8bba0e3","updated":"2016-07-13 16:37:43.000000000","message":"Would you rather suggest just going with something like \"Assign a boolean value to determine the owner of an image\"?","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               help\u003d_(\"\"\""},{"line_number":57,"context_line":"Role used to identify an authenticated user as administrator."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This config option takes in a string type value for an user role."},{"line_number":60,"context_line":"This role is then looked up to check whether the given user is admin."},{"line_number":61,"context_line":"By default an user has the admin role and has all the administartor"},{"line_number":62,"context_line":"priviliges. This option can be changed to a specific member role to"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_e8b49cf1","line":59,"range":{"start_line":59,"start_character":5,"end_line":59,"end_character":11},"updated":"2016-07-13 16:31:40.000000000","message":"configuration","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               help\u003d_(\"\"\""},{"line_number":57,"context_line":"Role used to identify an authenticated user as administrator."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This config option takes in a string type value for an user role."},{"line_number":60,"context_line":"This role is then looked up to check whether the given user is admin."},{"line_number":61,"context_line":"By default an user has the admin role and has all the administartor"},{"line_number":62,"context_line":"priviliges. This option can be changed to a specific member role to"},{"line_number":63,"context_line":"limit what the user can do with the image."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Services which consume this:"},{"line_number":66,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_26f6d5d6","line":63,"range":{"start_line":59,"start_character":0,"end_line":63,"end_character":42},"updated":"2016-07-13 16:31:40.000000000","message":"This configuration option takes a string value that represents a role to identify an administrative user. Any user with this role receives administrative privileges. And, alternatively this role could also be used to elevate a certain user to administrative privileges.","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    cfg.BoolOpt(\u0027allow_anonymous_access\u0027, default\u003dFalse,"},{"line_number":80,"context_line":"                help\u003d_(\"\"\""},{"line_number":81,"context_line":"Boolean value to permit limited unauthenticated user access."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This config option allows the API to be accessible to unathenticated"},{"line_number":84,"context_line":"users. When set to false, the API cannot be accessed by"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_26c7f545","line":81,"range":{"start_line":81,"start_character":0,"end_line":81,"end_character":17},"updated":"2016-07-13 16:31:40.000000000","message":"How about dropping this?","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                help\u003d_(\"\"\""},{"line_number":81,"context_line":"Boolean value to permit limited unauthenticated user access."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This config option allows the API to be accessible to unathenticated"},{"line_number":84,"context_line":"users. When set to false, the API cannot be accessed by"},{"line_number":85,"context_line":"unauthenticated users. When set to True, unauthenticated users can"},{"line_number":86,"context_line":"access the API with read-only privileges. This however only applies"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_ebddb641","line":83,"range":{"start_line":83,"start_character":5,"end_line":83,"end_character":11},"updated":"2016-07-13 16:31:40.000000000","message":"configuration","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Boolean value to permit limited unauthenticated user access."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This config option allows the API to be accessible to unathenticated"},{"line_number":84,"context_line":"users. When set to false, the API cannot be accessed by"},{"line_number":85,"context_line":"unauthenticated users. When set to True, unauthenticated users can"},{"line_number":86,"context_line":"access the API with read-only privileges. This however only applies"},{"line_number":87,"context_line":"when using ContextMiddleware."}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_86d98924","line":84,"range":{"start_line":84,"start_character":19,"end_line":84,"end_character":24},"updated":"2016-07-13 16:31:40.000000000","message":"False","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"\"\"\")),"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    cfg.IntOpt(\u0027max_request_id_length\u0027, default\u003d64,"},{"line_number":104,"context_line":"               help\u003d_(\"\"\""},{"line_number":105,"context_line":"Integer value to limit the request ID length."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_467961c7","line":103,"updated":"2016-07-13 16:31:40.000000000","message":"we can add \"min\u003d0\" here maybe?","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    cfg.IntOpt(\u0027max_request_id_length\u0027, default\u003d64,"},{"line_number":104,"context_line":"               help\u003d_(\"\"\""},{"line_number":105,"context_line":"Integer value to limit the request ID length."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"This config option takes in an integer to limit the length of the"},{"line_number":108,"context_line":"request ID to those many characters. The default maximum limit on the"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_e644cd73","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":17},"updated":"2016-07-13 16:31:40.000000000","message":"How about dropping this?","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":104,"context_line":"               help\u003d_(\"\"\""},{"line_number":105,"context_line":"Integer value to limit the request ID length."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"This config option takes in an integer to limit the length of the"},{"line_number":108,"context_line":"request ID to those many characters. The default maximum limit on the"},{"line_number":109,"context_line":"length for request ID is 64. Users can change this to any integer"},{"line_number":110,"context_line":"value less than or equal to 64."}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_8b18721f","line":107,"range":{"start_line":107,"start_character":5,"end_line":107,"end_character":11},"updated":"2016-07-13 16:31:40.000000000","message":"configuration","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Integer value to limit the request ID length."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"This config option takes in an integer to limit the length of the"},{"line_number":108,"context_line":"request ID to those many characters. The default maximum limit on the"},{"line_number":109,"context_line":"length for request ID is 64. Users can change this to any integer"},{"line_number":110,"context_line":"value less than or equal to 64."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_c15ffbe2","line":108,"range":{"start_line":108,"start_character":14,"end_line":108,"end_character":35},"updated":"2016-07-13 16:31:40.000000000","message":"\"specified length\"?","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"This config option takes in an integer to limit the length of the"},{"line_number":108,"context_line":"request ID to those many characters. The default maximum limit on the"},{"line_number":109,"context_line":"length for request ID is 64. Users can change this to any integer"},{"line_number":110,"context_line":"value less than or equal to 64."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Services which consumes this:"},{"line_number":113,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_216fdf92","line":110,"range":{"start_line":109,"start_character":29,"end_line":110,"end_character":31},"updated":"2016-07-13 16:31:40.000000000","message":"There is more relevant information here https://bugs.launchpad.net/glance/+bug/1482301","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7f2f3c74db6717b3dd9f567efc41ac63260b04a2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"owner of the image will be the authenticated user issuing the request."},{"line_number":35,"context_line":"Setting it to False makes the image private to the associated user and"},{"line_number":36,"context_line":"sharing with other tenant users requires explicit image sharing via"},{"line_number":37,"context_line":"image mebership."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Services which consume this:"},{"line_number":40,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_eedadf4a","line":37,"range":{"start_line":37,"start_character":6,"end_line":37,"end_character":15},"updated":"2016-07-13 17:53:02.000000000","message":"membership","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":54,"context_line":"               help\u003d_(\"\"\""},{"line_number":55,"context_line":"Role used to identify an authenticated user as administrator."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Provide a string value representing a Keystone role to identify an"},{"line_number":58,"context_line":"administrative user. A role recongnized as having admin-type"},{"line_number":59,"context_line":"priviliges can be provided as a value to enable adminstrative user"},{"line_number":60,"context_line":"operations. Alternatively, this option could also be used to elevate"},{"line_number":61,"context_line":"certain users to having administrative privileges. The default value"},{"line_number":62,"context_line":"is \u0027admin\u0027."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_cbea7574","line":60,"range":{"start_line":57,"start_character":0,"end_line":60,"end_character":11},"updated":"2016-07-13 17:46:05.000000000","message":"This is looking better. \nUsing what you here \n\n\"Provide a string value representing a Keystone role to recognize an administrative user. This role use is used to identify a user as having administrative priviliges.\"","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    cfg.BoolOpt(\u0027allow_anonymous_access\u0027, default\u003dFalse,"},{"line_number":79,"context_line":"                help\u003d_(\"\"\""},{"line_number":80,"context_line":"Allow limited unauthenticated user access."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Assign a boolean value to determine API access for unathenticated"},{"line_number":83,"context_line":"users. When set to False, the API cannot be accessed by"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_6b91c1f1","line":80,"range":{"start_line":80,"start_character":14,"end_line":80,"end_character":41},"updated":"2016-07-13 17:46:05.000000000","message":"\"... access to unauthenticated users\"?","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Provide  an integer value to limit the length of the request ID to"},{"line_number":107,"context_line":"the specified length. The default value is 64. Users can change this"},{"line_number":108,"context_line":"to any ineteger value between 0 and 16384 however keeping in mind"},{"line_number":109,"context_line":"flooding of logs."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Services which consumes this:"},{"line_number":112,"context_line":"    * glance-api"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_4b67a5b7","line":109,"range":{"start_line":108,"start_character":50,"end_line":109,"end_character":15},"updated":"2016-07-13 17:46:05.000000000","message":"\"keeping in mind that a larger value may flood the logs\".\nJust to be a tad more explicit :)","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    * glance-api"},{"line_number":113,"context_line":"    * glare-api"},{"line_number":114,"context_line":"    * glance-registry"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Related options:"},{"line_number":117,"context_line":"    * None"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_ab29e93c","line":115,"updated":"2016-07-13 17:46:05.000000000","message":"Are we missing the \"Possible values\" section here?","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1d1f911e2fc9b716f530c9ee9486253c13df0fdb","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Provide a string value representing a Keystone role to identify an"},{"line_number":58,"context_line":"administrative user. This role is used to identify an user as having"},{"line_number":59,"context_line":"administrative priviliges. Alternatively, this option could also be"},{"line_number":60,"context_line":"used to elevate certain users to have administrative privileges. The"},{"line_number":61,"context_line":"default value is \u0027admin\u0027."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_74d6b9f2","line":59,"range":{"start_line":59,"start_character":15,"end_line":59,"end_character":25},"updated":"2016-07-13 20:05:00.000000000","message":"privileges","commit_id":"64cc25adb45a145d26df3d40b6d6d108234544e7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1d1f911e2fc9b716f530c9ee9486253c13df0fdb","unresolved":false,"context_lines":[{"line_number":59,"context_line":"administrative priviliges. Alternatively, this option could also be"},{"line_number":60,"context_line":"used to elevate certain users to have administrative privileges. The"},{"line_number":61,"context_line":"default value is \u0027admin\u0027."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Services which consume this:"},{"line_number":64,"context_line":"    * glance-api"},{"line_number":65,"context_line":"    * glare-api"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_54d9fdf3","line":62,"updated":"2016-07-13 20:05:00.000000000","message":"I wonder if it would be more clear to replace the 2nd sentence with something like: \"Users with this role will be granted administrative privileges.\", and drop the 3rd sentence completely.","commit_id":"64cc25adb45a145d26df3d40b6d6d108234544e7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"054a003543fabc788e6c7c612b0d71a6a11974df","unresolved":false,"context_lines":[{"line_number":33,"context_line":"True, the owner of the image is the tenant. When set to False, the"},{"line_number":34,"context_line":"owner of the image will be the authenticated user issuing the request."},{"line_number":35,"context_line":"Setting it to False makes the image private to the associated user and"},{"line_number":36,"context_line":"sharing with other tenant users requires explicit image sharing via"},{"line_number":37,"context_line":"image membership."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Services which consume this:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_7df15601","line":36,"range":{"start_line":36,"start_character":13,"end_line":36,"end_character":31},"updated":"2016-07-14 13:35:36.000000000","message":"maybe instead: ... sharing with other users within the same tenant (or \"project\") requires ...","commit_id":"fa583714949e1332fc9737d6c97ef536ef5318bc"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"529525df22eeb9d42e4436e691ba8bf10dffec1f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"True, the owner of the image is the tenant. When set to False, the"},{"line_number":34,"context_line":"owner of the image will be the authenticated user issuing the request."},{"line_number":35,"context_line":"Setting it to False makes the image private to the associated user and"},{"line_number":36,"context_line":"sharing with other tenant users requires explicit image sharing via"},{"line_number":37,"context_line":"image membership."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Services which consume this:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_304a50ad","line":36,"range":{"start_line":36,"start_character":13,"end_line":36,"end_character":31},"in_reply_to":"1aa78d24_7df15601","updated":"2016-07-14 15:20:58.000000000","message":"Done","commit_id":"fa583714949e1332fc9737d6c97ef536ef5318bc"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"e48a10f819211253daa3abfa230b3d09d07f53ee","unresolved":false,"context_lines":[{"line_number":33,"context_line":"True, the owner of the image is the tenant. When set to False, the"},{"line_number":34,"context_line":"owner of the image will be the authenticated user issuing the request."},{"line_number":35,"context_line":"Setting it to False makes the image private to the associated user and"},{"line_number":36,"context_line":"sharing with other users within the same tenant requires explicit"},{"line_number":37,"context_line":"image sharing via image membership."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Services which consume this:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1aa78d24_56fb9447","line":36,"range":{"start_line":36,"start_character":41,"end_line":36,"end_character":47},"updated":"2016-07-14 15:55:01.000000000","message":"I think Brian wants you to mention \"(or project)\" too here.\nProject is the old way of referring to a tenant","commit_id":"b6b36ccefa4133e0fd2dd186c1efe44d30a68e8d"}],"glance/scrubber.py":[{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"542955f7f02412c6122b67fbd94155c12cf99779","unresolved":false,"context_lines":[{"line_number":55,"context_line":"the image."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Services which consume this:"},{"line_number":58,"context_line":"    * glance-api"},{"line_number":59,"context_line":"    * glare-api"},{"line_number":60,"context_line":"    * glance-registry"},{"line_number":61,"context_line":"    * glance-scrubber"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_bae5f1dc","line":58,"updated":"2016-06-30 13:34:20.000000000","message":"Do g-api, g-reg affected by this option?","commit_id":"3a0ac811c954406c9f5fb1af43a5521a0e1bf0c9"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"15772f0fb19f03c77b51974bee9c5cdf6b36a757","unresolved":false,"context_lines":[{"line_number":55,"context_line":"the image."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Services which consume this:"},{"line_number":58,"context_line":"    * glance-api"},{"line_number":59,"context_line":"    * glare-api"},{"line_number":60,"context_line":"    * glance-registry"},{"line_number":61,"context_line":"    * glance-scrubber"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_94238155","line":58,"in_reply_to":"1aa78d24_400b1b7d","updated":"2016-07-07 15:10:46.000000000","message":"Done","commit_id":"3a0ac811c954406c9f5fb1af43a5521a0e1bf0c9"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"c18b2a8db89550e641a31a567a28d83d9a248ee0","unresolved":false,"context_lines":[{"line_number":55,"context_line":"the image."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Services which consume this:"},{"line_number":58,"context_line":"    * glance-api"},{"line_number":59,"context_line":"    * glare-api"},{"line_number":60,"context_line":"    * glance-registry"},{"line_number":61,"context_line":"    * glance-scrubber"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_400b1b7d","line":58,"in_reply_to":"1aa78d24_ae449cb6","updated":"2016-07-07 14:22:29.000000000","message":"Kairat, so the \u0027admin_role\u0027 config opt itself is used in all the services mentioned in this section (via the context like you said). But, this particular definition in the scrubber.py shouldn\u0027t be used by those services. Here comes the tricky part. Since the \u0027admin_role\u0027 config opt is defined in two different places, it must have the same help text for oslo.config to consider it as the same option. If the help text differs, oslo.config throws a DuplicateOpt exception. Hence, the ambiguity. \n\nThe way I see it, the root-cause here is having the same config opt defined at two different places. I tried to correct it here https://review.openstack.org/#/c/313144/\nAs you can see, it\u0027s been held up albeit due to valid concerns. \n\n@Dharini,\nCan we add a note here too (just like the other patch) explaining the reason having the same help text across two definitions?","commit_id":"3a0ac811c954406c9f5fb1af43a5521a0e1bf0c9"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"15e0935e4ee815b09e8c88503eb94487ffcd6363","unresolved":false,"context_lines":[{"line_number":55,"context_line":"the image."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Services which consume this:"},{"line_number":58,"context_line":"    * glance-api"},{"line_number":59,"context_line":"    * glare-api"},{"line_number":60,"context_line":"    * glance-registry"},{"line_number":61,"context_line":"    * glance-scrubber"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_ae449cb6","line":58,"in_reply_to":"3aaa91ec_6da3b100","updated":"2016-07-06 20:32:18.000000000","message":"Hm, from what I see this option is related to scrubber only and it is not consumed by glance or glare (if I understand correctly \"consumed\" as \"used somewhere in code\".\nI also see admin_role option in context.py. So it looks like that value used in g-api.","commit_id":"3a0ac811c954406c9f5fb1af43a5521a0e1bf0c9"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"03c93e238218366704cbb43c84356f8e9e221477","unresolved":false,"context_lines":[{"line_number":55,"context_line":"the image."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Services which consume this:"},{"line_number":58,"context_line":"    * glance-api"},{"line_number":59,"context_line":"    * glare-api"},{"line_number":60,"context_line":"    * glance-registry"},{"line_number":61,"context_line":"    * glance-scrubber"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_6da3b100","line":58,"in_reply_to":"3aaa91ec_bae5f1dc","updated":"2016-07-01 04:08:57.000000000","message":"Both glance-api and glance-registry use this config option to set an admin role for an user and need to be explicitly set in the respective service\u0027s conf files.\nPlease correct me if my understanding is wrong on this.","commit_id":"3a0ac811c954406c9f5fb1af43a5521a0e1bf0c9"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6b1738653a99162dacb52efbceacc3d0496de647","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027admin_role\u0027, default\u003d\u0027admin\u0027,"},{"line_number":56,"context_line":"               help\u003d_(\"\"\""},{"line_number":57,"context_line":"Config option used to identify an authenticated user as an admin."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This config option takes in a string type value and is used to set"},{"line_number":60,"context_line":"the role of the user to admin. By default the user is granted admin"},{"line_number":61,"context_line":"role and has all the administartor priviliges. This option can be"},{"line_number":62,"context_line":"changed to a specific member role to limit what the user can do with"},{"line_number":63,"context_line":"the image."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Services which consume this:"},{"line_number":66,"context_line":"    * glance-api"},{"line_number":67,"context_line":"    * glare-api"},{"line_number":68,"context_line":"    * glance-registry"},{"line_number":69,"context_line":"    * glance-scrubber"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Possible values:"},{"line_number":72,"context_line":"    * admin"},{"line_number":73,"context_line":"    * Any member role defined in policy.json"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Related options:"},{"line_number":76,"context_line":"    * None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"\"\"\")),"},{"line_number":79,"context_line":"    cfg.BoolOpt(\u0027send_identity_headers\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_7fa092f4","line":76,"range":{"start_line":57,"start_character":0,"end_line":76,"end_character":10},"updated":"2016-07-12 20:31:52.000000000","message":"same","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f4c0f35683663811082d4cb833bcd5e6e3e64405","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027admin_role\u0027, default\u003d\u0027admin\u0027,"},{"line_number":56,"context_line":"               help\u003d_(\"\"\""},{"line_number":57,"context_line":"Config option used to identify an authenticated user as an admin."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This config option takes in a string type value and is used to set"},{"line_number":60,"context_line":"the role of the user to admin. By default the user is granted admin"},{"line_number":61,"context_line":"role and has all the administartor priviliges. This option can be"},{"line_number":62,"context_line":"changed to a specific member role to limit what the user can do with"},{"line_number":63,"context_line":"the image."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Services which consume this:"},{"line_number":66,"context_line":"    * glance-api"},{"line_number":67,"context_line":"    * glare-api"},{"line_number":68,"context_line":"    * glance-registry"},{"line_number":69,"context_line":"    * glance-scrubber"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Possible values:"},{"line_number":72,"context_line":"    * admin"},{"line_number":73,"context_line":"    * Any member role defined in policy.json"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Related options:"},{"line_number":76,"context_line":"    * None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"\"\"\")),"},{"line_number":79,"context_line":"    cfg.BoolOpt(\u0027send_identity_headers\u0027, default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_b284f1d2","line":76,"range":{"start_line":57,"start_character":0,"end_line":76,"end_character":10},"in_reply_to":"1aa78d24_7fa092f4","updated":"2016-07-12 21:03:29.000000000","message":"Done","commit_id":"0dcb256a1cb0e9ded4bf8eb966f27af9701c3afd"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a9385566d7e674abc5df24b383781f28fd8b03ed","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               help\u003d_(\"\"\""},{"line_number":57,"context_line":"Role used to identify an authenticated user as administrator."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This config option takes in a string type value for an user role."},{"line_number":60,"context_line":"This role is then looked up to check whether the given user is admin."},{"line_number":61,"context_line":"By default an user has the admin role and has all the administartor"},{"line_number":62,"context_line":"priviliges. This option can be changed to a specific member role to"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_4be96ae5","line":59,"range":{"start_line":59,"start_character":5,"end_line":59,"end_character":11},"updated":"2016-07-13 16:31:40.000000000","message":"configuration","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9375c056a998dbecc592944ba7c2d4ce7a856916","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This config option takes in a string type value for an user role."},{"line_number":60,"context_line":"This role is then looked up to check whether the given user is admin."},{"line_number":61,"context_line":"By default an user has the admin role and has all the administartor"},{"line_number":62,"context_line":"priviliges. This option can be changed to a specific member role to"},{"line_number":63,"context_line":"limit what the user can do with the image."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_beedaf26","line":61,"range":{"start_line":61,"start_character":54,"end_line":61,"end_character":67},"updated":"2016-07-13 15:31:47.000000000","message":"Please correct spelling of \"administrator\".","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9375c056a998dbecc592944ba7c2d4ce7a856916","unresolved":false,"context_lines":[{"line_number":61,"context_line":"By default an user has the admin role and has all the administartor"},{"line_number":62,"context_line":"priviliges. This option can be changed to a specific member role to"},{"line_number":63,"context_line":"limit what the user can do with the image."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Services which consume this:"},{"line_number":66,"context_line":"    * glance-api"},{"line_number":67,"context_line":"    * glare-api"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_72d41be8","line":64,"updated":"2016-07-13 15:31:47.000000000","message":"I find this paragraph confusing.  I thought this option lets an operator say what role a user needs to have in order to be considered an administrator for the purposes of running the scrubber?  For example, in my cloud this role might be called \u0027mycloud:superuser\u0027, and I need to tell the scrubber that users with that role should be treated as administrators.\n\nRereading, I think my misunderstanding is mostly the 3rd sentence, which should say something like, \"By default, a user must have the \u0027admin\u0027 role in order to be recognized as having administrator privileges.\"  There\u0027s a subtle difference between having an admin role (no quotes, we\u0027re talking about what role is used in that cloud to represent an administrator) and having the \u0027admin\u0027 role (with quotes, we\u0027re talking about someone having that sequence of characters occurring in the list of their roles as returned by keystone).\n\nSo I think what you need to say here is:\n- the value for this option is the name of a keystone role\n- Glance will recognize this value as the role a user must have to be considered an administrator\n- the default value is \u0027admin\u0027\n(You don\u0027t have to use bullets, you can turn it into a paragraph.)\n\nFinally, I\u0027m a bit unclear about what you mean by \u0027This option can be changed to a specific member role to limit what the user can do with the image.\u0027  What I mean is that it seems like setting this value does the opposite of limiting a user--if I have role \u0027user\u0027 and this option is set to \u0027user\u0027, then I\u0027m going to be able to act as an administrator even though I\u0027m just a normal user.","commit_id":"10ee56f0a246b67a96a7e78e45a122bcb12fb733"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    cfg.BoolOpt(\u0027delayed_delete\u0027, default\u003dFalse,"},{"line_number":46,"context_line":"                help\u003d_(\u0027Turn on/off delayed delete.\u0027)),"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Note: Though the conf option admin_role is used by other Glance"},{"line_number":49,"context_line":"    # service and their usage differs requiring us to have a differing"},{"line_number":50,"context_line":"    # help text here, oslo.config generator treats them as the same"},{"line_number":51,"context_line":"    # config option and would throw a DuplicateError exception in case"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_eb6ad1ec","line":48,"range":{"start_line":48,"start_character":23,"end_line":48,"end_character":27},"updated":"2016-07-13 17:46:05.000000000","message":"configuration","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                help\u003d_(\u0027Turn on/off delayed delete.\u0027)),"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Note: Though the conf option admin_role is used by other Glance"},{"line_number":49,"context_line":"    # service and their usage differs requiring us to have a differing"},{"line_number":50,"context_line":"    # help text here, oslo.config generator treats them as the same"},{"line_number":51,"context_line":"    # config option and would throw a DuplicateError exception in case"},{"line_number":52,"context_line":"    # of differing help texts. Hence we have the same help text for"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_cb3d55df","line":49,"range":{"start_line":49,"start_character":14,"end_line":49,"end_character":17},"updated":"2016-07-13 17:46:05.000000000","message":"How about replacing the \"and\" with a comma?","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                help\u003d_(\u0027Turn on/off delayed delete.\u0027)),"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Note: Though the conf option admin_role is used by other Glance"},{"line_number":49,"context_line":"    # service and their usage differs requiring us to have a differing"},{"line_number":50,"context_line":"    # help text here, oslo.config generator treats them as the same"},{"line_number":51,"context_line":"    # config option and would throw a DuplicateError exception in case"},{"line_number":52,"context_line":"    # of differing help texts. Hence we have the same help text for"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_0babdd1f","line":49,"range":{"start_line":49,"start_character":6,"end_line":49,"end_character":13},"updated":"2016-07-13 17:46:05.000000000","message":"services","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Note: Though the conf option admin_role is used by other Glance"},{"line_number":49,"context_line":"    # service and their usage differs requiring us to have a differing"},{"line_number":50,"context_line":"    # help text here, oslo.config generator treats them as the same"},{"line_number":51,"context_line":"    # config option and would throw a DuplicateError exception in case"},{"line_number":52,"context_line":"    # of differing help texts. Hence we have the same help text for"},{"line_number":53,"context_line":"    # admin_role here and in context.py."}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_8e019b07","line":50,"range":{"start_line":50,"start_character":20,"end_line":50,"end_character":21},"updated":"2016-07-13 17:46:05.000000000","message":".","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4f29d493c6bf1b04e9013d7012a39649b1a1d559","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Note: Though the conf option admin_role is used by other Glance"},{"line_number":49,"context_line":"    # service and their usage differs requiring us to have a differing"},{"line_number":50,"context_line":"    # help text here, oslo.config generator treats them as the same"},{"line_number":51,"context_line":"    # config option and would throw a DuplicateError exception in case"},{"line_number":52,"context_line":"    # of differing help texts. Hence we have the same help text for"},{"line_number":53,"context_line":"    # admin_role here and in context.py."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027admin_role\u0027, default\u003d\u0027admin\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1aa78d24_ee793f84","line":52,"range":{"start_line":50,"start_character":22,"end_line":52,"end_character":30},"updated":"2016-07-13 17:46:05.000000000","message":"However, oslo.config would then treat them as different configuration options and throws DuplicateError exception.","commit_id":"d0df7c6120e7ee62342e660614d52ee38e2cf67f"}]}
