)]}'
{"glance_store/_drivers/swift/store.py":[{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    cfg.BoolOpt(\u0027swift_store_ssl_compression\u0027,"},{"line_number":252,"context_line":"                default\u003dTrue,"},{"line_number":253,"context_line":"                help\u003d_(\"\"\""},{"line_number":254,"context_line":"Determine SSL layer compression for HTTPS Swift requests."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"Provide a boolean value to determine whether or not to compress"},{"line_number":257,"context_line":"HTTPS Swift requests for images at the SSL layer. By default,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_abbe7a62","line":254,"range":{"start_line":254,"start_character":0,"end_line":254,"end_character":9},"updated":"2016-08-11 17:31:12.000000000","message":"Let\u0027s drop this.","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    cfg.BoolOpt(\u0027swift_store_ssl_compression\u0027,"},{"line_number":252,"context_line":"                default\u003dTrue,"},{"line_number":253,"context_line":"                help\u003d_(\"\"\""},{"line_number":254,"context_line":"Determine SSL layer compression for HTTPS Swift requests."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"Provide a boolean value to determine whether or not to compress"},{"line_number":257,"context_line":"HTTPS Swift requests for images at the SSL layer. By default,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_5ea49506","line":254,"range":{"start_line":254,"start_character":0,"end_line":254,"end_character":9},"in_reply_to":"9ad45d7e_abbe7a62","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":257,"context_line":"HTTPS Swift requests for images at the SSL layer. By default,"},{"line_number":258,"context_line":"compression is enabled."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"When using Swift as the backend store for Glance image storage,"},{"line_number":261,"context_line":"the images may be compressed before storage for efficient utlization"},{"line_number":262,"context_line":"of the infrastructure. The SSL layer compression of HTTPS Swift"},{"line_number":263,"context_line":"requests can be set using this option. If set to False, SSL layer"},{"line_number":264,"context_line":"compression of HTTPS swift requests is disabled. Disbaling this"},{"line_number":265,"context_line":"option may improve performance for images which are already in a"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_6bad679a","line":262,"range":{"start_line":260,"start_character":0,"end_line":262,"end_character":22},"updated":"2016-08-11 17:31:12.000000000","message":"SSL compression probably doesn\u0027t help with efficient storage. It\u0027s only compressed over the https connection. Compressing the image data on storage side, swift in this case, is a different aspect altogether.","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":257,"context_line":"HTTPS Swift requests for images at the SSL layer. By default,"},{"line_number":258,"context_line":"compression is enabled."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"When using Swift as the backend store for Glance image storage,"},{"line_number":261,"context_line":"the images may be compressed before storage for efficient utlization"},{"line_number":262,"context_line":"of the infrastructure. The SSL layer compression of HTTPS Swift"},{"line_number":263,"context_line":"requests can be set using this option. If set to False, SSL layer"},{"line_number":264,"context_line":"compression of HTTPS swift requests is disabled. Disbaling this"},{"line_number":265,"context_line":"option may improve performance for images which are already in a"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_3ea7210c","line":262,"range":{"start_line":260,"start_character":0,"end_line":262,"end_character":22},"in_reply_to":"9ad45d7e_6bad679a","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":284,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":285,"context_line":"zero and there is no retry on a failed image download."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"When Swift is used as the backend storage for Glance images and"},{"line_number":288,"context_line":"there is an image download failure, setting the"},{"line_number":289,"context_line":"``swift_store_retry_get_count`` ensures that the download is"},{"line_number":290,"context_line":"attempted these many times upon a donwload failure before sending"},{"line_number":291,"context_line":"an error message."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"Possible values:"},{"line_number":294,"context_line":"    * Zero"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_86f0cdff","line":291,"range":{"start_line":287,"start_character":0,"end_line":291,"end_character":17},"updated":"2016-08-11 17:31:12.000000000","message":"This repeats most of what is already said in the above paragraph. We can drop this paragraph or merge it with the above paragraph if there\u0027s anything that you would like to retain.","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":284,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":285,"context_line":"zero and there is no retry on a failed image download."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"When Swift is used as the backend storage for Glance images and"},{"line_number":288,"context_line":"there is an image download failure, setting the"},{"line_number":289,"context_line":"``swift_store_retry_get_count`` ensures that the download is"},{"line_number":290,"context_line":"attempted these many times upon a donwload failure before sending"},{"line_number":291,"context_line":"an error message."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"Possible values:"},{"line_number":294,"context_line":"    * Zero"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7ead19e8","line":291,"range":{"start_line":287,"start_character":0,"end_line":291,"end_character":17},"in_reply_to":"9ad45d7e_86f0cdff","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":305,"context_line":"Wait time in seconds before requesting a new user token."},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":308,"context_line":"interval for Glance store before it can request a new token."},{"line_number":309,"context_line":"By default, glance_store requests for a new token, 60 seconds"},{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_13edfdb6","line":308,"range":{"start_line":308,"start_character":13,"end_line":308,"end_character":25},"updated":"2016-08-11 17:31:12.000000000","message":"Swift storage driver","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":305,"context_line":"Wait time in seconds before requesting a new user token."},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":308,"context_line":"interval for Glance store before it can request a new token."},{"line_number":309,"context_line":"By default, glance_store requests for a new token, 60 seconds"},{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_1e85fd58","line":308,"range":{"start_line":308,"start_character":13,"end_line":308,"end_character":25},"in_reply_to":"9ad45d7e_13edfdb6","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":308,"context_line":"interval for Glance store before it can request a new token."},{"line_number":309,"context_line":"By default, glance_store requests for a new token, 60 seconds"},{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"When Swift is used as the storage backend for Glance images,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_93ea8d72","line":309,"range":{"start_line":309,"start_character":49,"end_line":309,"end_character":50},"updated":"2016-08-11 17:31:12.000000000","message":"This can be dropped","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":308,"context_line":"interval for Glance store before it can request a new token."},{"line_number":309,"context_line":"By default, glance_store requests for a new token, 60 seconds"},{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"When Swift is used as the storage backend for Glance images,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_53c2d5e9","line":309,"range":{"start_line":309,"start_character":50,"end_line":309,"end_character":51},"updated":"2016-08-11 17:31:12.000000000","message":"when it is 60 seconds or less?","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":308,"context_line":"interval for Glance store before it can request a new token."},{"line_number":309,"context_line":"By default, glance_store requests for a new token, 60 seconds"},{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"When Swift is used as the storage backend for Glance images,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_fe87495e","line":309,"range":{"start_line":309,"start_character":49,"end_line":309,"end_character":50},"in_reply_to":"9ad45d7e_93ea8d72","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":309,"context_line":"By default, glance_store requests for a new token, 60 seconds"},{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"When Swift is used as the storage backend for Glance images,"},{"line_number":313,"context_line":"a token is generated permitting Glance to access the Swift store."},{"line_number":314,"context_line":"Upon a token expiry, glance_store would typically request a new"},{"line_number":315,"context_line":"user token to continue access to Swift store.  Setting"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_4b15039a","line":312,"range":{"start_line":312,"start_character":0,"end_line":312,"end_character":60},"updated":"2016-08-11 17:31:12.000000000","message":"This is redundant because if one is configuring swift config options, they are using it as a storage backend.","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":309,"context_line":"By default, glance_store requests for a new token, 60 seconds"},{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"When Swift is used as the storage backend for Glance images,"},{"line_number":313,"context_line":"a token is generated permitting Glance to access the Swift store."},{"line_number":314,"context_line":"Upon a token expiry, glance_store would typically request a new"},{"line_number":315,"context_line":"user token to continue access to Swift store.  Setting"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_5e7bf57a","line":312,"range":{"start_line":312,"start_character":0,"end_line":312,"end_character":60},"in_reply_to":"9ad45d7e_4b15039a","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"When Swift is used as the storage backend for Glance images,"},{"line_number":313,"context_line":"a token is generated permitting Glance to access the Swift store."},{"line_number":314,"context_line":"Upon a token expiry, glance_store would typically request a new"},{"line_number":315,"context_line":"user token to continue access to Swift store.  Setting"},{"line_number":316,"context_line":"``swift_store_expire_soon_interval`` ensures that glance_store"},{"line_number":317,"context_line":"requests for a new user token these many seconds before the current"},{"line_number":318,"context_line":"token expiry. This helps in preventing a possible time lag."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Possible values:"},{"line_number":321,"context_line":"    * Zero"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_0e53143a","line":318,"range":{"start_line":313,"start_character":0,"end_line":318,"end_character":59},"updated":"2016-08-11 17:31:12.000000000","message":"How about the following?\n\nTypically, Swift storage driver fetches a new token upon the expiration of current token to ensure continued access to Swift. However, the Swift transactions (like uploading objects) may not recover well if the token expires on the fly. Hence, by fetching a new token, we make sure the token is never expired or close to expiration before a transaction is attempted.","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":310,"context_line":"prior to the current token expiration."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"When Swift is used as the storage backend for Glance images,"},{"line_number":313,"context_line":"a token is generated permitting Glance to access the Swift store."},{"line_number":314,"context_line":"Upon a token expiry, glance_store would typically request a new"},{"line_number":315,"context_line":"user token to continue access to Swift store.  Setting"},{"line_number":316,"context_line":"``swift_store_expire_soon_interval`` ensures that glance_store"},{"line_number":317,"context_line":"requests for a new user token these many seconds before the current"},{"line_number":318,"context_line":"token expiry. This helps in preventing a possible time lag."},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Possible values:"},{"line_number":321,"context_line":"    * Zero"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_3e7e016a","line":318,"range":{"start_line":313,"start_character":0,"end_line":318,"end_character":59},"in_reply_to":"9ad45d7e_0e53143a","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    cfg.BoolOpt(\u0027swift_store_use_trusts\u0027,"},{"line_number":329,"context_line":"                default\u003dTrue,"},{"line_number":330,"context_line":"                help\u003d_(\"\"\""},{"line_number":331,"context_line":"Determining trust for multi-tenant Swift store."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Provide a boolean value to determine expiration of authentication"},{"line_number":334,"context_line":"tokens for Swift store during uploading/downloading of image data"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_0e2af48f","line":331,"range":{"start_line":331,"start_character":0,"end_line":331,"end_character":17},"updated":"2016-08-11 17:31:12.000000000","message":"Use trusts?","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    cfg.BoolOpt(\u0027swift_store_use_trusts\u0027,"},{"line_number":329,"context_line":"                default\u003dTrue,"},{"line_number":330,"context_line":"                help\u003d_(\"\"\""},{"line_number":331,"context_line":"Determining trust for multi-tenant Swift store."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Provide a boolean value to determine expiration of authentication"},{"line_number":334,"context_line":"tokens for Swift store during uploading/downloading of image data"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_9e99edc6","line":331,"range":{"start_line":331,"start_character":0,"end_line":331,"end_character":17},"in_reply_to":"9ad45d7e_0e2af48f","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"6a07c4e7d249f46f7c52dc74c72a42be94b013db","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                help\u003d_(\"\"\""},{"line_number":331,"context_line":"Determining trust for multi-tenant Swift store."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Provide a boolean value to determine expiration of authentication"},{"line_number":334,"context_line":"tokens for Swift store during uploading/downloading of image data"},{"line_number":335,"context_line":"in a multi-tenant scenario. By default, expiry of tokens during"},{"line_number":336,"context_line":"the access to image data is prevented."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"Create a trust for each add/get request to multi-tenant store in"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_e9167a4a","line":335,"range":{"start_line":333,"start_character":0,"end_line":335,"end_character":27},"updated":"2016-08-11 17:31:12.000000000","message":"How are trusts determining the expiration of auth tokens? Although I\u0027m no expert on trusts, they eliminate the need for auth tokens by establishing a trust.","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"143b808f8f5dcb0d0c4b2902c8fbc4f7b13ec21d","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                help\u003d_(\"\"\""},{"line_number":331,"context_line":"Determining trust for multi-tenant Swift store."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Provide a boolean value to determine expiration of authentication"},{"line_number":334,"context_line":"tokens for Swift store during uploading/downloading of image data"},{"line_number":335,"context_line":"in a multi-tenant scenario. By default, expiry of tokens during"},{"line_number":336,"context_line":"the access to image data is prevented."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"Create a trust for each add/get request to multi-tenant store in"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7e94f989","line":335,"range":{"start_line":333,"start_character":0,"end_line":335,"end_character":27},"in_reply_to":"9ad45d7e_e9167a4a","updated":"2016-08-11 18:45:49.000000000","message":"Done","commit_id":"ea5d980e084f3c36cb6b4ca19c3456c43321080f"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"0f1b600599966681038008e5a3464ca4526d3c81","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Provide an integer value representing the number of times an image"},{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. If set,"},{"line_number":285,"context_line":"``swift_store_retry_get_count`` ensures that the download is"},{"line_number":286,"context_line":"attempted these many times upon a donwload failure before sending"},{"line_number":287,"context_line":"an error message."}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_81ccf289","line":284,"range":{"start_line":284,"start_character":55,"end_line":284,"end_character":61},"updated":"2016-08-11 19:12:55.000000000","message":"This is always set because it has a default.\nSo, let\u0027s say something like \"When set to a integer value greater than zero\"","commit_id":"75486e6daed9081bacf700d38caea858632f62a4"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"d05fa3ed6110d6dbbe4f2fa7b2a14f4b73309310","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Provide an integer value representing the number of times an image"},{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. If set,"},{"line_number":285,"context_line":"``swift_store_retry_get_count`` ensures that the download is"},{"line_number":286,"context_line":"attempted these many times upon a donwload failure before sending"},{"line_number":287,"context_line":"an error message."}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_442208a4","line":284,"range":{"start_line":284,"start_character":55,"end_line":284,"end_character":61},"in_reply_to":"9ad45d7e_81ccf289","updated":"2016-08-11 19:25:24.000000000","message":"Done","commit_id":"75486e6daed9081bacf700d38caea858632f62a4"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"0f1b600599966681038008e5a3464ca4526d3c81","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"},{"line_number":310,"context_line":"Swift. However, the Swift transactions (like uploading images)"},{"line_number":311,"context_line":"may not recover well if the token expires on the fly. Hence, by"},{"line_number":312,"context_line":"fetching a new token, we make sure that the token does not expire"},{"line_number":313,"context_line":"or is close to expiry before a transaction is attempted."}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_0195a231","line":310,"range":{"start_line":310,"start_character":55,"end_line":310,"end_character":61},"updated":"2016-08-11 19:12:55.000000000","message":"Swift doesn\u0027t recognize \"images\", just \"objects\" (that happen to be images for Glance) .","commit_id":"75486e6daed9081bacf700d38caea858632f62a4"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"d05fa3ed6110d6dbbe4f2fa7b2a14f4b73309310","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"},{"line_number":310,"context_line":"Swift. However, the Swift transactions (like uploading images)"},{"line_number":311,"context_line":"may not recover well if the token expires on the fly. Hence, by"},{"line_number":312,"context_line":"fetching a new token, we make sure that the token does not expire"},{"line_number":313,"context_line":"or is close to expiry before a transaction is attempted."}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_a43dc4c5","line":310,"range":{"start_line":310,"start_character":55,"end_line":310,"end_character":61},"in_reply_to":"9ad45d7e_0195a231","updated":"2016-08-11 19:25:24.000000000","message":"Done","commit_id":"75486e6daed9081bacf700d38caea858632f62a4"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"0f1b600599966681038008e5a3464ca4526d3c81","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                help\u003d_(\"\"\""},{"line_number":326,"context_line":"Use trusts for multi-tenant Swift store."},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Provide a boolean value to set trusts for Swift store in a"},{"line_number":329,"context_line":"multi-tenant scenario. By default, Swift store uses trusts"},{"line_number":330,"context_line":"and the need for auth tokens during the access to image"},{"line_number":331,"context_line":"data is prevented."}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_e1acce8d","line":328,"range":{"start_line":328,"start_character":27,"end_line":328,"end_character":30},"updated":"2016-08-11 19:12:55.000000000","message":"use","commit_id":"75486e6daed9081bacf700d38caea858632f62a4"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"d05fa3ed6110d6dbbe4f2fa7b2a14f4b73309310","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                help\u003d_(\"\"\""},{"line_number":326,"context_line":"Use trusts for multi-tenant Swift store."},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Provide a boolean value to set trusts for Swift store in a"},{"line_number":329,"context_line":"multi-tenant scenario. By default, Swift store uses trusts"},{"line_number":330,"context_line":"and the need for auth tokens during the access to image"},{"line_number":331,"context_line":"data is prevented."}],"source_content_type":"text/x-python","patch_set":2,"id":"9ad45d7e_843880d4","line":328,"range":{"start_line":328,"start_character":27,"end_line":328,"end_character":30},"in_reply_to":"9ad45d7e_e1acce8d","updated":"2016-08-11 19:25:24.000000000","message":"Done","commit_id":"75486e6daed9081bacf700d38caea858632f62a4"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"3b0b98621cc4aed90b2474977c92a66420bb4fd0","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"},{"line_number":310,"context_line":"Swift. However, the Swift transactions (like accessing image"},{"line_number":311,"context_line":"objects for download) may not recover well if the token expires"},{"line_number":312,"context_line":"on the fly. Hence, by fetching a new token, we make sure that"},{"line_number":313,"context_line":"the token does not expire or is close to expiry before a"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_44b208e6","line":310,"range":{"start_line":310,"start_character":16,"end_line":310,"end_character":19},"updated":"2016-08-11 19:41:30.000000000","message":"I\u0027d say \"some\" instead.","commit_id":"f36eac186d5370b543ae5be3c7c5aa55496a4837"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"3b0b98621cc4aed90b2474977c92a66420bb4fd0","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"},{"line_number":310,"context_line":"Swift. However, the Swift transactions (like accessing image"},{"line_number":311,"context_line":"objects for download) may not recover well if the token expires"},{"line_number":312,"context_line":"on the fly. Hence, by fetching a new token, we make sure that"},{"line_number":313,"context_line":"the token does not expire or is close to expiry before a"},{"line_number":314,"context_line":"transaction is attempted."}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_c4a718a5","line":311,"range":{"start_line":310,"start_character":40,"end_line":311,"end_character":20},"updated":"2016-08-11 19:41:30.000000000","message":"If you want to specific, I\u0027d say \"like uploading image segments\" .. The auth token expiration problem is seen mostly with uploads. Downloads are a different story. Once a download commences, it doesn\u0027t matter if the token expires.","commit_id":"f36eac186d5370b543ae5be3c7c5aa55496a4837"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c86828454aee12d48a2e4f25c659732c240bd6a1","unresolved":false,"context_lines":[{"line_number":260,"context_line":"When using Swift as the backend store for Glance image storage,"},{"line_number":261,"context_line":"SSL layer compression of HTTPS Swift requests can be set using"},{"line_number":262,"context_line":"this option. If set to False, SSL layer compression of HTTPS"},{"line_number":263,"context_line":"Swift requests is disabled. Disbaling this option may improve"},{"line_number":264,"context_line":"performance for images which are already in a compressed format,"},{"line_number":265,"context_line":"eg qcow2."},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_6ae6f3e8","line":263,"range":{"start_line":263,"start_character":28,"end_line":263,"end_character":37},"updated":"2016-08-11 20:56:33.000000000","message":"s/Disbaling/Disabling/","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":260,"context_line":"When using Swift as the backend store for Glance image storage,"},{"line_number":261,"context_line":"SSL layer compression of HTTPS Swift requests can be set using"},{"line_number":262,"context_line":"this option. If set to False, SSL layer compression of HTTPS"},{"line_number":263,"context_line":"Swift requests is disabled. Disbaling this option may improve"},{"line_number":264,"context_line":"performance for images which are already in a compressed format,"},{"line_number":265,"context_line":"eg qcow2."},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_ce760a05","line":263,"range":{"start_line":263,"start_character":28,"end_line":263,"end_character":37},"in_reply_to":"9ad45d7e_6ae6f3e8","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c86828454aee12d48a2e4f25c659732c240bd6a1","unresolved":false,"context_lines":[{"line_number":262,"context_line":"this option. If set to False, SSL layer compression of HTTPS"},{"line_number":263,"context_line":"Swift requests is disabled. Disbaling this option may improve"},{"line_number":264,"context_line":"performance for images which are already in a compressed format,"},{"line_number":265,"context_line":"eg qcow2."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"Possible values:"},{"line_number":268,"context_line":"    * True"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_cad55fe5","line":265,"range":{"start_line":265,"start_character":0,"end_line":265,"end_character":2},"updated":"2016-08-11 20:56:33.000000000","message":"s/eg/for example,/","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":262,"context_line":"this option. If set to False, SSL layer compression of HTTPS"},{"line_number":263,"context_line":"Swift requests is disabled. Disbaling this option may improve"},{"line_number":264,"context_line":"performance for images which are already in a compressed format,"},{"line_number":265,"context_line":"eg qcow2."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"Possible values:"},{"line_number":268,"context_line":"    * True"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_ee65ce44","line":265,"range":{"start_line":265,"start_character":0,"end_line":265,"end_character":2},"in_reply_to":"9ad45d7e_cad55fe5","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c86828454aee12d48a2e4f25c659732c240bd6a1","unresolved":false,"context_lines":[{"line_number":280,"context_line":"request fails."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Provide an integer value representing the number of times an image"},{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. When set to"},{"line_number":285,"context_line":"a positive integer value, ``swift_store_retry_get_count`` ensures"},{"line_number":286,"context_line":"that the download is attempted these many times upon a donwload"},{"line_number":287,"context_line":"failure before sending an error message."}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_2a7cfbea","line":284,"range":{"start_line":283,"start_character":46,"end_line":284,"end_character":54},"updated":"2016-08-11 20:56:33.000000000","message":"I think this would be more clear as:\n\nThe default value is zero (no retry on a failed image download).","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":280,"context_line":"request fails."},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Provide an integer value representing the number of times an image"},{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. When set to"},{"line_number":285,"context_line":"a positive integer value, ``swift_store_retry_get_count`` ensures"},{"line_number":286,"context_line":"that the download is attempted these many times upon a donwload"},{"line_number":287,"context_line":"failure before sending an error message."}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_4e597a8d","line":284,"range":{"start_line":283,"start_character":46,"end_line":284,"end_character":54},"in_reply_to":"9ad45d7e_2a7cfbea","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"5c1387a8aa4d68f372485b07eb279ec626f319ee","unresolved":false,"context_lines":[{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. When set to"},{"line_number":285,"context_line":"a positive integer value, ``swift_store_retry_get_count`` ensures"},{"line_number":286,"context_line":"that the download is attempted these many times upon a donwload"},{"line_number":287,"context_line":"failure before sending an error message."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_6a0ef3e5","line":286,"updated":"2016-08-11 20:38:12.000000000","message":"nit: possibly change to \"these many more times\" to make it clearer?","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c86828454aee12d48a2e4f25c659732c240bd6a1","unresolved":false,"context_lines":[{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. When set to"},{"line_number":285,"context_line":"a positive integer value, ``swift_store_retry_get_count`` ensures"},{"line_number":286,"context_line":"that the download is attempted these many times upon a donwload"},{"line_number":287,"context_line":"failure before sending an error message."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_8ad9a7f5","line":286,"range":{"start_line":286,"start_character":31,"end_line":286,"end_character":36},"updated":"2016-08-11 20:56:33.000000000","message":"s/these/this/  (the referent is singular: value)","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. When set to"},{"line_number":285,"context_line":"a positive integer value, ``swift_store_retry_get_count`` ensures"},{"line_number":286,"context_line":"that the download is attempted these many times upon a donwload"},{"line_number":287,"context_line":"failure before sending an error message."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_ce4d6ac5","line":286,"in_reply_to":"9ad45d7e_6a0ef3e5","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero and there is no retry on a failed image download. When set to"},{"line_number":285,"context_line":"a positive integer value, ``swift_store_retry_get_count`` ensures"},{"line_number":286,"context_line":"that the download is attempted these many times upon a donwload"},{"line_number":287,"context_line":"failure before sending an error message."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_8e57f256","line":286,"range":{"start_line":286,"start_character":31,"end_line":286,"end_character":36},"in_reply_to":"9ad45d7e_8ad9a7f5","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"5c1387a8aa4d68f372485b07eb279ec626f319ee","unresolved":false,"context_lines":[{"line_number":298,"context_line":"               min\u003d0,"},{"line_number":299,"context_line":"               default\u003d60,"},{"line_number":300,"context_line":"               help\u003d_(\"\"\""},{"line_number":301,"context_line":"Wait time in seconds before requesting a new user token."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":304,"context_line":"interval for Swift storage driver before it can request a new"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_6a59d38d","line":301,"range":{"start_line":301,"start_character":0,"end_line":301,"end_character":55},"updated":"2016-08-11 20:38:12.000000000","message":"In my understanding (which may be incorrect), this option does not really represent a \"wait\" time. Rather it indicates how close to the expiration should a new token be fetched. I would change the title to something like that. I.e. \"Time in seconds before token expiration when a new token should be requested\"","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"5c1387a8aa4d68f372485b07eb279ec626f319ee","unresolved":false,"context_lines":[{"line_number":300,"context_line":"               help\u003d_(\"\"\""},{"line_number":301,"context_line":"Wait time in seconds before requesting a new user token."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":304,"context_line":"interval for Swift storage driver before it can request a new"},{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_2abfdb61","line":304,"range":{"start_line":303,"start_character":25,"end_line":304,"end_character":55},"updated":"2016-08-11 20:38:12.000000000","message":"My suggestion: \"...representing the time in seconds as the interval before token expiration for the Swift storage driver when it should request...\"","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c86828454aee12d48a2e4f25c659732c240bd6a1","unresolved":false,"context_lines":[{"line_number":298,"context_line":"               min\u003d0,"},{"line_number":299,"context_line":"               default\u003d60,"},{"line_number":300,"context_line":"               help\u003d_(\"\"\""},{"line_number":301,"context_line":"Wait time in seconds before requesting a new user token."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":304,"context_line":"interval for Swift storage driver before it can request a new"},{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_d5c22052","line":305,"range":{"start_line":301,"start_character":0,"end_line":305,"end_character":6},"updated":"2016-08-11 20:56:33.000000000","message":"I think the one-line description and this first sentence need to be rewritten.  This option isn\u0027t really \"wait time\", it\u0027s actually the opposite, that is, the driver is allowed to request a new token this many seconds *before* the current token\u0027s expiration time.\n\nMaybe something like:\n\nTime in seconds when a user token is considered so close to expiration that a new token should be requested.\n\nThen I\u0027d suggest deleting the first paragraph and move up the paragraph beginning \"Typically,\" (it does a nice job of explaining what the option is for).  Then after that, you could add a sentence (as a paragraph on its own) about the default value.","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":298,"context_line":"               min\u003d0,"},{"line_number":299,"context_line":"               default\u003d60,"},{"line_number":300,"context_line":"               help\u003d_(\"\"\""},{"line_number":301,"context_line":"Wait time in seconds before requesting a new user token."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":304,"context_line":"interval for Swift storage driver before it can request a new"},{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_0e666229","line":305,"range":{"start_line":301,"start_character":0,"end_line":305,"end_character":6},"in_reply_to":"9ad45d7e_d5c22052","updated":"2016-08-11 23:40:02.000000000","message":"Brian and Alex, \nI have tried to put this up the best way possible. (I still know this can be explained better verbally than in words). \nDo let me know if we can make this whole description better in any way. \n\nAnd thanks to Hemanth for the very explanative \"Typically..\" paragraph suggestion.","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"5c1387a8aa4d68f372485b07eb279ec626f319ee","unresolved":false,"context_lines":[{"line_number":303,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":304,"context_line":"interval for Swift storage driver before it can request a new"},{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_6a6c3308","line":306,"range":{"start_line":306,"start_character":17,"end_line":306,"end_character":24},"updated":"2016-08-11 20:38:12.000000000","message":"Is \"or less\" accurate here? Is this option merely suggestive?","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"51ade1b7839afaf5299eac9ace7b66b524482274","unresolved":false,"context_lines":[{"line_number":303,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":304,"context_line":"interval for Swift storage driver before it can request a new"},{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_627f2a15","line":306,"range":{"start_line":306,"start_character":17,"end_line":306,"end_character":24},"in_reply_to":"9ad45d7e_4e117a5c","updated":"2016-08-12 04:13:14.000000000","message":"It\u0027s usually 60 seconds. Meaning you can\u0027t renew a token when it\u0027s 61 seconds from expiration but you can renew when it\u0027s 59 seconds from expiration. Basically, it\u0027s a 60second window from the token expiration during which you must request for a new token. \n\nConsider this, what if the process was uploading an image segment that began before it was 60 seconds from expiration and finishes the upload after it\u0027s 60 seconds but before the expiration. It\u0027d should still go ahead and request the new token before attempting the next transaction. Although in reality there would be multiple processes doing multiple simultaneous transactions. So, one or the other process will end up requesting the new token close to the 60 second mark.","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":303,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":304,"context_line":"interval for Swift storage driver before it can request a new"},{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_4e117a5c","line":306,"range":{"start_line":306,"start_character":17,"end_line":306,"end_character":24},"in_reply_to":"9ad45d7e_6a6c3308","updated":"2016-08-11 23:40:02.000000000","message":"I verified this with Hemanth and he clarified that there can be no guarantee on the exact time when the request is sent (depending on the token expiration time)","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c86828454aee12d48a2e4f25c659732c240bd6a1","unresolved":false,"context_lines":[{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"},{"line_number":310,"context_line":"Swift. However, some Swift transactions (like uploading image"},{"line_number":311,"context_line":"segments) may not recover well if the token expires on the fly."}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_f59e4461","line":308,"range":{"start_line":308,"start_character":11,"end_line":308,"end_character":16},"updated":"2016-08-11 20:56:33.000000000","message":"s/Swift/the Swift/","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":305,"context_line":"token. By default, the Swift storage driver requests for a new"},{"line_number":306,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Typically, Swift storage driver fetches a new token upon the"},{"line_number":309,"context_line":"expiration of the current token to ensure continued access to"},{"line_number":310,"context_line":"Swift. However, some Swift transactions (like uploading image"},{"line_number":311,"context_line":"segments) may not recover well if the token expires on the fly."}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_2e14064b","line":308,"range":{"start_line":308,"start_character":11,"end_line":308,"end_character":16},"in_reply_to":"9ad45d7e_f59e4461","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"5c1387a8aa4d68f372485b07eb279ec626f319ee","unresolved":false,"context_lines":[{"line_number":334,"context_line":"Create a trust for each add/get request to multi-tenant store in"},{"line_number":335,"context_line":"order to prevent authentication token from expiring during"},{"line_number":336,"context_line":"uploading/downloading data by setting ``swift_store_use_trusts``"},{"line_number":337,"context_line":"to ``True``. If set to ``False``, an user token is used"},{"line_number":338,"context_line":"for Swift connection and there is no overhead on trust creation."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"NOTE: This option is considered only and only if"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_ca00bf04","line":337,"range":{"start_line":337,"start_character":34,"end_line":337,"end_character":36},"updated":"2016-08-11 20:38:12.000000000","message":"nit: \"a\" instead of \"an\"","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c86828454aee12d48a2e4f25c659732c240bd6a1","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                help\u003d_(\"\"\""},{"line_number":327,"context_line":"Use trusts for multi-tenant Swift store."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"Provide a boolean value to determine the use of trusts for Swift"},{"line_number":330,"context_line":"store in a multi-tenant scenario. By default, Swift store uses"},{"line_number":331,"context_line":"trusts and the need for auth tokens during the access to image"},{"line_number":332,"context_line":"data is prevented."},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"Create a trust for each add/get request to multi-tenant store in"},{"line_number":335,"context_line":"order to prevent authentication token from expiring during"},{"line_number":336,"context_line":"uploading/downloading data by setting ``swift_store_use_trusts``"},{"line_number":337,"context_line":"to ``True``. If set to ``False``, an user token is used"},{"line_number":338,"context_line":"for Swift connection and there is no overhead on trust creation."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"NOTE: This option is considered only and only if"},{"line_number":341,"context_line":"``swift_store_multi_tenant`` is set to ``True``"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_35661c2a","line":338,"range":{"start_line":329,"start_character":0,"end_line":338,"end_character":64},"updated":"2016-08-11 20:56:33.000000000","message":"I suggest combining these paragraphs into something like:\n\nThis option instructs the Swift store to create a trust for each add/get request when the multi-tenant store is in use.  Using trusts allows the Swift store to avoid problems that can be caused by an authentication token expiring during the upload or download of data.\n\nSetting setting ``swift_store_use_trusts``\nto ``True`` enables the use of trusts. If set to ``False``, a user token is used for the Swift connection instead, eliminating the overhead of trust creation.","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                help\u003d_(\"\"\""},{"line_number":327,"context_line":"Use trusts for multi-tenant Swift store."},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"Provide a boolean value to determine the use of trusts for Swift"},{"line_number":330,"context_line":"store in a multi-tenant scenario. By default, Swift store uses"},{"line_number":331,"context_line":"trusts and the need for auth tokens during the access to image"},{"line_number":332,"context_line":"data is prevented."},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"Create a trust for each add/get request to multi-tenant store in"},{"line_number":335,"context_line":"order to prevent authentication token from expiring during"},{"line_number":336,"context_line":"uploading/downloading data by setting ``swift_store_use_trusts``"},{"line_number":337,"context_line":"to ``True``. If set to ``False``, an user token is used"},{"line_number":338,"context_line":"for Swift connection and there is no overhead on trust creation."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"NOTE: This option is considered only and only if"},{"line_number":341,"context_line":"``swift_store_multi_tenant`` is set to ``True``"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_09293c8a","line":338,"range":{"start_line":329,"start_character":0,"end_line":338,"end_character":64},"in_reply_to":"9ad45d7e_35661c2a","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"5c1387a8aa4d68f372485b07eb279ec626f319ee","unresolved":false,"context_lines":[{"line_number":337,"context_line":"to ``True``. If set to ``False``, an user token is used"},{"line_number":338,"context_line":"for Swift connection and there is no overhead on trust creation."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"NOTE: This option is considered only and only if"},{"line_number":341,"context_line":"``swift_store_multi_tenant`` is set to ``True``"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_9538a8d4","line":340,"range":{"start_line":340,"start_character":32,"end_line":340,"end_character":48},"updated":"2016-08-11 20:38:12.000000000","message":"change to either of:\n\n\"...if and only if...\"\n\"...only if...\"\n\"This option is only considered if...\"","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"fed9b60e38c14044cd7700879b2d21666267e4bd","unresolved":false,"context_lines":[{"line_number":337,"context_line":"to ``True``. If set to ``False``, an user token is used"},{"line_number":338,"context_line":"for Swift connection and there is no overhead on trust creation."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"NOTE: This option is considered only and only if"},{"line_number":341,"context_line":"``swift_store_multi_tenant`` is set to ``True``"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_e92b0880","line":340,"range":{"start_line":340,"start_character":32,"end_line":340,"end_character":48},"in_reply_to":"9ad45d7e_9538a8d4","updated":"2016-08-11 23:40:02.000000000","message":"Done","commit_id":"89cc6e7bf2121cb860e03c3271347f02228f2fed"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7b9b6fc346d8682e709ea3c1fa08e0fe39bdac66","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Provide an integer value representing the number of times an image"},{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero(no retry on a failed image download). When set to a positive"},{"line_number":285,"context_line":"integer value, ``swift_store_retry_get_count`` ensures that the"},{"line_number":286,"context_line":"download is attempted this many more times upon a donwload failure"},{"line_number":287,"context_line":"before sending an error message."}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_60bfe4fb","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":7},"updated":"2016-08-15 16:50:26.000000000","message":"s/zero(no/zero (no/","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"c2f3838afa464628e85e3168b3857573d802d414","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Provide an integer value representing the number of times an image"},{"line_number":283,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":284,"context_line":"zero(no retry on a failed image download). When set to a positive"},{"line_number":285,"context_line":"integer value, ``swift_store_retry_get_count`` ensures that the"},{"line_number":286,"context_line":"download is attempted this many more times upon a donwload failure"},{"line_number":287,"context_line":"before sending an error message."}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_544a66c6","line":284,"range":{"start_line":284,"start_character":0,"end_line":284,"end_character":7},"in_reply_to":"3ac371cc_60bfe4fb","updated":"2016-08-15 18:08:11.000000000","message":"Done","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7b9b6fc346d8682e709ea3c1fa08e0fe39bdac66","unresolved":false,"context_lines":[{"line_number":298,"context_line":"               min\u003d0,"},{"line_number":299,"context_line":"               default\u003d60,"},{"line_number":300,"context_line":"               help\u003d_(\"\"\""},{"line_number":301,"context_line":"Time in seconds before current token expiration when a new token"},{"line_number":302,"context_line":"must be requested."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":305,"context_line":"interval before token expiration for the Swift storage driver"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_808dc033","line":302,"range":{"start_line":301,"start_character":0,"end_line":302,"end_character":18},"updated":"2016-08-15 16:50:26.000000000","message":"How about:\n\nTime in seconds defining the size of the window in which a new token may be requested before the current token is due to expire.","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"c2f3838afa464628e85e3168b3857573d802d414","unresolved":false,"context_lines":[{"line_number":298,"context_line":"               min\u003d0,"},{"line_number":299,"context_line":"               default\u003d60,"},{"line_number":300,"context_line":"               help\u003d_(\"\"\""},{"line_number":301,"context_line":"Time in seconds before current token expiration when a new token"},{"line_number":302,"context_line":"must be requested."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":305,"context_line":"interval before token expiration for the Swift storage driver"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_3447eabc","line":302,"range":{"start_line":301,"start_character":0,"end_line":302,"end_character":18},"in_reply_to":"3ac371cc_808dc033","updated":"2016-08-15 18:08:11.000000000","message":"Done","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7b9b6fc346d8682e709ea3c1fa08e0fe39bdac66","unresolved":false,"context_lines":[{"line_number":301,"context_line":"Time in seconds before current token expiration when a new token"},{"line_number":302,"context_line":"must be requested."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":305,"context_line":"interval before token expiration for the Swift storage driver"},{"line_number":306,"context_line":"when it should request a new token. By default, the Swift"},{"line_number":307,"context_line":"storage driver requests for a new token 60 seconds or less"},{"line_number":308,"context_line":"before the current token expiration."},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Typically, the Swift storage driver fetches a new token upon the"},{"line_number":311,"context_line":"expiration of the current token to ensure continued access to"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_00c8b054","line":308,"range":{"start_line":304,"start_character":0,"end_line":308,"end_character":36},"updated":"2016-08-15 16:50:26.000000000","message":"I\u0027d suggest deleting this paragraph.","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"c2f3838afa464628e85e3168b3857573d802d414","unresolved":false,"context_lines":[{"line_number":301,"context_line":"Time in seconds before current token expiration when a new token"},{"line_number":302,"context_line":"must be requested."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"Provide an integer value representing time in seconds as the"},{"line_number":305,"context_line":"interval before token expiration for the Swift storage driver"},{"line_number":306,"context_line":"when it should request a new token. By default, the Swift"},{"line_number":307,"context_line":"storage driver requests for a new token 60 seconds or less"},{"line_number":308,"context_line":"before the current token expiration."},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Typically, the Swift storage driver fetches a new token upon the"},{"line_number":311,"context_line":"expiration of the current token to ensure continued access to"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_94121eb3","line":308,"range":{"start_line":304,"start_character":0,"end_line":308,"end_character":36},"in_reply_to":"3ac371cc_00c8b054","updated":"2016-08-15 18:08:11.000000000","message":"Retaining the last line of this paragraph alone.","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7b9b6fc346d8682e709ea3c1fa08e0fe39bdac66","unresolved":false,"context_lines":[{"line_number":338,"context_line":"the Swift connection instead, eliminating the overhead of trust"},{"line_number":339,"context_line":"creation."},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"NOTE: This option is considered if only and only if"},{"line_number":342,"context_line":"``swift_store_multi_tenant`` is set to ``True``"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_807e60e2","line":341,"range":{"start_line":341,"start_character":32,"end_line":341,"end_character":51},"updated":"2016-08-15 16:50:26.000000000","message":"s/if only and only if/only when/","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"c2f3838afa464628e85e3168b3857573d802d414","unresolved":false,"context_lines":[{"line_number":338,"context_line":"the Swift connection instead, eliminating the overhead of trust"},{"line_number":339,"context_line":"creation."},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"NOTE: This option is considered if only and only if"},{"line_number":342,"context_line":"``swift_store_multi_tenant`` is set to ``True``"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_14274e13","line":341,"range":{"start_line":341,"start_character":32,"end_line":341,"end_character":51},"in_reply_to":"3ac371cc_807e60e2","updated":"2016-08-15 18:08:11.000000000","message":"Done","commit_id":"0983ce9bbff267b53d88c57bc8d4bf3372eeba81"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"be4c75a03d1d43549092a95ef34e5260db486d7e","unresolved":false,"context_lines":[{"line_number":343,"context_line":"segments) may not recover well if the token expires on the fly."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"Hence, by fetching a new token before the current token expiration,"},{"line_number":346,"context_line":"as set with this configuration option, we make sure that the token"},{"line_number":347,"context_line":"does not expire or is close to expiry before a transaction is"},{"line_number":348,"context_line":"attempted. by default, the Swift storage driver requests for a new"},{"line_number":349,"context_line":"token 60 seconds or less before the current token expiration."}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_0eb10190","line":346,"range":{"start_line":346,"start_character":0,"end_line":346,"end_character":37},"updated":"2016-08-15 17:24:58.000000000","message":"Let\u0027s get rid of this. This really isn\u0027t adding any value. What do you think?","commit_id":"cea4ee93638c9a2e92122d030287a71a56ac658b"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"877706579508cb19fa1456f9b2032dd3d21d72ef","unresolved":false,"context_lines":[{"line_number":343,"context_line":"segments) may not recover well if the token expires on the fly."},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"Hence, by fetching a new token before the current token expiration,"},{"line_number":346,"context_line":"as set with this configuration option, we make sure that the token"},{"line_number":347,"context_line":"does not expire or is close to expiry before a transaction is"},{"line_number":348,"context_line":"attempted. by default, the Swift storage driver requests for a new"},{"line_number":349,"context_line":"token 60 seconds or less before the current token expiration."}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_1440eea4","line":346,"range":{"start_line":346,"start_character":0,"end_line":346,"end_character":37},"in_reply_to":"3ac371cc_0eb10190","updated":"2016-08-15 18:08:23.000000000","message":"Done","commit_id":"cea4ee93638c9a2e92122d030287a71a56ac658b"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"be4c75a03d1d43549092a95ef34e5260db486d7e","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Hence, by fetching a new token before the current token expiration,"},{"line_number":346,"context_line":"as set with this configuration option, we make sure that the token"},{"line_number":347,"context_line":"does not expire or is close to expiry before a transaction is"},{"line_number":348,"context_line":"attempted. by default, the Swift storage driver requests for a new"},{"line_number":349,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_ce8369cb","line":348,"range":{"start_line":348,"start_character":11,"end_line":348,"end_character":13},"updated":"2016-08-15 17:24:58.000000000","message":"By","commit_id":"cea4ee93638c9a2e92122d030287a71a56ac658b"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"877706579508cb19fa1456f9b2032dd3d21d72ef","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Hence, by fetching a new token before the current token expiration,"},{"line_number":346,"context_line":"as set with this configuration option, we make sure that the token"},{"line_number":347,"context_line":"does not expire or is close to expiry before a transaction is"},{"line_number":348,"context_line":"attempted. by default, the Swift storage driver requests for a new"},{"line_number":349,"context_line":"token 60 seconds or less before the current token expiration."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_d483f6ca","line":348,"range":{"start_line":348,"start_character":11,"end_line":348,"end_character":13},"in_reply_to":"3ac371cc_ce8369cb","updated":"2016-08-15 18:08:23.000000000","message":"Done","commit_id":"cea4ee93638c9a2e92122d030287a71a56ac658b"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"b8815eb3a57528407bd182ee213388ef0a653f25","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_e278bcc6","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"updated":"2016-08-16 16:59:34.000000000","message":"Maciej brought up a good point where a min value of 0 removed the ability to disable an option by setting it to -1. This may be the case for this particular option as I see the following code:\n\n``allow_retry \u003d self.conf.glance_store.swift_store_retry_get_count \u003e 0``\n\nwhence allow_retry is used to enable/disable some code paths. I think we need to change the min value to -1 here.","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"bfacd73eafba2eaa7b9476b96a00a5521bc46881","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_e8cffd7c","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_25793ef7","updated":"2016-08-16 17:29:41.000000000","message":"Brian, I think this code will disable the option if it sees a -1 instead of treating it as \"unlimited\" as in other conf opts.","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"04adc66faf724f9b9988480bf10d6509ae9688f8","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_085ff90e","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_25793ef7","updated":"2016-08-16 17:26:51.000000000","message":"Good point, I didn\u0027t think about that, sounds like we need to test this out. This will apply to all options where a min restriction was added.","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f33a96bda036ee26266620f75beccc405545c10b","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_abb5ffee","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_a8b7c584","updated":"2016-08-16 17:51:32.000000000","message":"I think the problem here is that if min\u003d0 and a config file has -1, the api will refuse to start because a ConfigFileValueError will be thrown.   I just tried this in devstack (though I used a boolean config option):\n\n    2016-08-16 17:46:34.644 TRACE glance ConfigFileValueError: Value for option show_multiple_locations is not valid: Unexpected boolean value \u0027positively\u0027\n    2016-08-16 17:46:34.644 TRACE glance\ng-api failed to start\n\nSo if an operator currently has -1 for this value, the api will refuse to start on a file that previously worked.","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"bfacd73eafba2eaa7b9476b96a00a5521bc46881","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_68066dcf","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_e278bcc6","updated":"2016-08-16 17:29:41.000000000","message":"Alex, I think here having a min\u003d0 is okay as a value of \u00270\u0027 here also disables the option. Just like -1 would. \nBut this point definitely needs to be considered for the opts where we might have set a min-0 value.","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"4ba036d0e8764556140337b4f39dc0a8bf7bcb15","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_e5556650","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_e278bcc6","updated":"2016-08-16 17:16:28.000000000","message":"Alex, that indeed is a good point. However, I don\u0027t know if that applies here.\n\nThe only usage of ``allow_retry`` I saw is here [0]. And, that isn\u0027t sensitive to whether swift_store_retry_get_count is 0 or -1. Both 0 and -1 will evaluate to False and everything positive should evaluate to True. So, I\u0027m thinking we are fine here. Let me know if I missing your point here.\n\n[0] https://github.com/openstack/glance_store/blob/master/glance_store/_drivers/swift/store.py#L653-L655","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0b625b983cb1ee3177f58d344b4a2fca371fa8e4","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_25793ef7","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_e278bcc6","updated":"2016-08-16 17:16:43.000000000","message":"This is a tough call, because for this kind of option, -1 usually means \"unlimited\", which isn\u0027t supported for this particular option.  What happens if this code processes an old config file where this value is -1?  Does Glance refuse to start, or does it log a message and use the default value?","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"04adc66faf724f9b9988480bf10d6509ae9688f8","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_4878d18f","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_e5556650","updated":"2016-08-16 17:26:51.000000000","message":"Hemanth, you\u0027re right, it only checks for the value \u003e 0, I should\u0027ve looked at the code more carefully.","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"e39b6684d7753177b6560d902dd3ec45b0a6f8bb","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_e8d25dff","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_e8cffd7c","updated":"2016-08-16 17:32:06.000000000","message":"Dharini, \nWhat do you mean by disabling the option?","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"4344d97aa19cc9d984c47b36c7bb580ed8df5b20","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_a8b7c584","line":313,"range":{"start_line":313,"start_character":15,"end_line":313,"end_character":20},"in_reply_to":"3ac371cc_e8d25dff","updated":"2016-08-16 17:40:41.000000000","message":"Hemanth, I meant \"not allowing a retry for download\" by \"disable\". I inferred that setting a 0 or negative integer will prevent download retries.","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0b625b983cb1ee3177f58d344b4a2fca371fa8e4","unresolved":false,"context_lines":[{"line_number":319,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":320,"context_line":"zero (no retry on a failed image download). When set to a positive"},{"line_number":321,"context_line":"integer value, ``swift_store_retry_get_count`` ensures that the"},{"line_number":322,"context_line":"download is attempted this many more times upon a donwload failure"},{"line_number":323,"context_line":"before sending an error message."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_458c3a35","line":322,"range":{"start_line":322,"start_character":50,"end_line":322,"end_character":58},"updated":"2016-08-16 17:16:43.000000000","message":"s/donwload/download/","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"bfacd73eafba2eaa7b9476b96a00a5521bc46881","unresolved":false,"context_lines":[{"line_number":319,"context_line":"download must be retried before erroring out. The default value is"},{"line_number":320,"context_line":"zero (no retry on a failed image download). When set to a positive"},{"line_number":321,"context_line":"integer value, ``swift_store_retry_get_count`` ensures that the"},{"line_number":322,"context_line":"download is attempted this many more times upon a donwload failure"},{"line_number":323,"context_line":"before sending an error message."},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"Possible values:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_28cab56d","line":322,"range":{"start_line":322,"start_character":50,"end_line":322,"end_character":58},"in_reply_to":"3ac371cc_458c3a35","updated":"2016-08-16 17:29:41.000000000","message":"Done","commit_id":"e77d75211e615b4e5c038a07dee7bfa56cb12929"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"6c6bd993362e70351be4562f88424392b78ecadf","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_6b902744","line":313,"updated":"2016-08-16 17:52:41.000000000","message":"I think we need to continue the discussion taking place at this line on PS7.","commit_id":"cbe1e5d43db38a989b703e0995c70b2f8665d363"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"eb3ff7c437460b4fbe28039764d159fdbccfd5d6","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_a87693d4","line":313,"in_reply_to":"3ac371cc_537235ae","updated":"2016-08-17 01:40:41.000000000","message":"Yes, we can set a max value as well.\n\nI don\u0027t know what a sane max would be. I mean, I think something like 5 or 10 makes sense (10 being still a tad high in my opinion). But, I don\u0027t know if they are sane numbers for everyone.  Since this max restriction would be in code, it won\u0027t even be configurable. So, the operators are pretty much stuck if we set a max that is lower than what someone needs.","commit_id":"cbe1e5d43db38a989b703e0995c70b2f8665d363"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f04ff272a9601aaa1f26ceaaec2a7ba7d4d6a6ad","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_537235ae","line":313,"in_reply_to":"3ac371cc_6b902744","updated":"2016-08-16 21:53:57.000000000","message":"Do we have ability to set the \"max\" value for config?\n\nmost likely yes, so can we have that one here to indicate an operator who wants to keep retrying?\n\nAs an operator, I would really want to avoid a infinite retry state as it may become a reason for DOS (inadvertently).","commit_id":"cbe1e5d43db38a989b703e0995c70b2f8665d363"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9383eaae273bf19f85025a35e7f4ffc8183b5c96","unresolved":false,"context_lines":[{"line_number":310,"context_line":"\"\"\")),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027swift_store_retry_get_count\u0027,"},{"line_number":312,"context_line":"               default\u003d0,"},{"line_number":313,"context_line":"               min\u003d0,"},{"line_number":314,"context_line":"               help\u003d_(\"\"\""},{"line_number":315,"context_line":"The number of times a Swift download will be retried before the"},{"line_number":316,"context_line":"request fails."}],"source_content_type":"text/x-python","patch_set":8,"id":"3ac371cc_7e5d5514","line":313,"in_reply_to":"3ac371cc_a87693d4","updated":"2016-08-17 13:27:03.000000000","message":"I did some googling around and couldn\u0027t find anyone who imposes a max value for this (either timeout time or retry count).  The primary reason is that it\u0027s sensitive to workload, hardware, network, etc.  So it\u0027s possible that any sane value we picked might be too low for a particular application, and any large value we picked wouldn\u0027t really do any good for preventing people from DOSing themselves, since that value minus 1 would still represent a really, really long time.\n\nI think maybe a warning for this kind of option would suffice.  Maybe we can get oslo.config to implement a \u0027common_sense_required\u003dTrue\u0027 flag.  Maybe a boilerplate message like this would do the trick:\n\nWARNING: This option, if set too high, may introduce performance problems.  If you choose to set it, be sure to monitor your system so that you can tune this option to an optimal value for your particular deployment.\n\n(That\u0027s probably a bit wordy, but you get the idea.)","commit_id":"cbe1e5d43db38a989b703e0995c70b2f8665d363"}]}
