)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to protect data and live migrate can perform."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch adds:"},{"line_number":13,"context_line":" - creation a cinder volume for amphora"},{"line_number":14,"context_line":" - boot amphora with cinder volume"},{"line_number":15,"context_line":" - config options for cinder client"},{"line_number":16,"context_line":" - unit tests for cinder functionality"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"5f7c97a3_e3ffcc63","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":34},"updated":"2018-07-03 11:27:48.000000000","message":"Can these two steps be performed by creating volume backend instance with config delete_on_terminal ?","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to protect data and live migrate can perform."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch adds:"},{"line_number":13,"context_line":" - creation a cinder volume for amphora"},{"line_number":14,"context_line":" - boot amphora with cinder volume"},{"line_number":15,"context_line":" - config options for cinder client"},{"line_number":16,"context_line":" - unit tests for cinder functionality"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_faf224e4","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":34},"in_reply_to":"5f7c97a3_e3ffcc63","updated":"2018-10-22 14:34:11.000000000","message":"Can you add some details? what do you mean about delete_on_terminal?","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"}],"etc/octavia.conf":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":359,"context_line":"# Nova supports: anti-affinity and soft-anti-affinity"},{"line_number":360,"context_line":"# anti_affinity_policy \u003d anti-affinity"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"# If want to use volume based for Amphorae"},{"line_number":363,"context_line":"# use_cinder \u003d "},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"[cinder]"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_63ebbca3","line":362,"range":{"start_line":362,"start_character":2,"end_line":362,"end_character":42},"updated":"2018-07-03 11:27:48.000000000","message":"What about:\n\"Whether enable volume backend nova instance.\"","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":359,"context_line":"# Nova supports: anti-affinity and soft-anti-affinity"},{"line_number":360,"context_line":"# anti_affinity_policy \u003d anti-affinity"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"# If want to use volume based for Amphorae"},{"line_number":363,"context_line":"# use_cinder \u003d "},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"[cinder]"}],"source_content_type":"text/plain","patch_set":7,"id":"3f79a3b5_5fa22afd","line":362,"range":{"start_line":362,"start_character":2,"end_line":362,"end_character":42},"in_reply_to":"5f7c97a3_63ebbca3","updated":"2018-10-22 14:34:11.000000000","message":"ok","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":6579,"name":"Nir Magnezi","email":"nmagnezi@redhat.com","username":"nmagnezi"},"change_message_id":"331c733797b6acd060a372997448797ddb9138f9","unresolved":false,"context_lines":[{"line_number":360,"context_line":"# anti_affinity_policy \u003d anti-affinity"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"# If want to use volume based for Amphorae"},{"line_number":363,"context_line":"# use_cinder \u003d "},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"[cinder]"},{"line_number":366,"context_line":"# The name of the glance service in the keystone catalog"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_7b62f7af","line":363,"range":{"start_line":363,"start_character":14,"end_line":363,"end_character":15},"updated":"2018-06-03 21:16:18.000000000","message":"nit: whitespace.","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"cd0c9f58db11a17a1dc904daae7d9a1f40642488","unresolved":false,"context_lines":[{"line_number":360,"context_line":"# anti_affinity_policy \u003d anti-affinity"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"# If want to use volume based for Amphorae"},{"line_number":363,"context_line":"# use_cinder \u003d "},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"[cinder]"},{"line_number":366,"context_line":"# The name of the glance service in the keystone catalog"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_aa1ef3b8","line":363,"range":{"start_line":363,"start_character":14,"end_line":363,"end_character":15},"in_reply_to":"5f7c97a3_7b62f7af","updated":"2018-06-04 08:01:10.000000000","message":"Will fix","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":363,"context_line":"# use_cinder \u003d "},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"[cinder]"},{"line_number":366,"context_line":"# The name of the glance service in the keystone catalog"},{"line_number":367,"context_line":"# service_name \u003d"},{"line_number":368,"context_line":"# Custom cinder endpoint if override is necessary"},{"line_number":369,"context_line":"# endpoint \u003d"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_0328c8eb","line":366,"range":{"start_line":366,"start_character":18,"end_line":366,"end_character":24},"updated":"2018-07-03 11:27:48.000000000","message":"s/cinder","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":363,"context_line":"# use_cinder \u003d "},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"[cinder]"},{"line_number":366,"context_line":"# The name of the glance service in the keystone catalog"},{"line_number":367,"context_line":"# service_name \u003d"},{"line_number":368,"context_line":"# Custom cinder endpoint if override is necessary"},{"line_number":369,"context_line":"# endpoint \u003d"}],"source_content_type":"text/plain","patch_set":7,"id":"3f79a3b5_df587a26","line":366,"range":{"start_line":366,"start_character":18,"end_line":366,"end_character":24},"in_reply_to":"5f7c97a3_0328c8eb","updated":"2018-10-22 14:34:11.000000000","message":"fix","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":376,"context_line":"# the OpenStack services."},{"line_number":377,"context_line":"# endpoint_type \u003d publicURL"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"# CA certificates file to verify neutron connections when TLS is enabled"},{"line_number":380,"context_line":"# insecure \u003d False"},{"line_number":381,"context_line":"# ca_certificates_file \u003d"},{"line_number":382,"context_line":""}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_232b84ea","line":379,"range":{"start_line":379,"start_character":33,"end_line":379,"end_character":40},"updated":"2018-07-03 11:27:48.000000000","message":"neutron?","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":376,"context_line":"# the OpenStack services."},{"line_number":377,"context_line":"# endpoint_type \u003d publicURL"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"# CA certificates file to verify neutron connections when TLS is enabled"},{"line_number":380,"context_line":"# insecure \u003d False"},{"line_number":381,"context_line":"# ca_certificates_file \u003d"},{"line_number":382,"context_line":""}],"source_content_type":"text/plain","patch_set":7,"id":"3f79a3b5_1f5fd210","line":379,"range":{"start_line":379,"start_character":33,"end_line":379,"end_character":40},"in_reply_to":"5f7c97a3_232b84ea","updated":"2018-10-22 14:34:11.000000000","message":"fix","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":384,"context_line":"# availability_zone \u003d"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"# Size of root volume for Amphora Instance when use Cinder"},{"line_number":387,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiples of 8"},{"line_number":388,"context_line":"# volume_size \u003d 16"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"# Type of volume for Amphorae volume root disk"},{"line_number":391,"context_line":"# volume_type \u003d basic"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_035f6875","line":388,"range":{"start_line":387,"start_character":35,"end_line":388,"end_character":18},"updated":"2018-07-03 11:27:48.000000000","message":"16 may not be a general value for root size default value, for many cloud deployment the image_min_size are always 20/40/50.","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":384,"context_line":"# availability_zone \u003d"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"# Size of root volume for Amphora Instance when use Cinder"},{"line_number":387,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiples of 8"},{"line_number":388,"context_line":"# volume_size \u003d 16"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"# Type of volume for Amphorae volume root disk"},{"line_number":391,"context_line":"# volume_type \u003d basic"}],"source_content_type":"text/plain","patch_set":7,"id":"3f79a3b5_ff91b69c","line":388,"range":{"start_line":387,"start_character":35,"end_line":388,"end_character":18},"in_reply_to":"5f7c97a3_035f6875","updated":"2018-10-22 14:34:11.000000000","message":"And administrators of those clouds can use this option for setting another value.","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":387,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiples of 8"},{"line_number":388,"context_line":"# volume_size \u003d 16"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"# Type of volume for Amphorae volume root disk"},{"line_number":391,"context_line":"# volume_type \u003d basic"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"# Interval time to wait volume is created in available state"},{"line_number":394,"context_line":"# volume_create_retry_interval \u003d 5"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_e35b4c83","line":391,"range":{"start_line":390,"start_character":0,"end_line":391,"end_character":21},"updated":"2018-07-03 11:27:48.000000000","message":"volume type not found may cause volume create fail, so, live empty is the proper way. Let the cinder to use the default volume type.","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":387,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiples of 8"},{"line_number":388,"context_line":"# volume_size \u003d 16"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"# Type of volume for Amphorae volume root disk"},{"line_number":391,"context_line":"# volume_type \u003d basic"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"# Interval time to wait volume is created in available state"},{"line_number":394,"context_line":"# volume_create_retry_interval \u003d 5"}],"source_content_type":"text/plain","patch_set":7,"id":"3f79a3b5_dfb4fa1f","line":391,"range":{"start_line":390,"start_character":0,"end_line":391,"end_character":21},"in_reply_to":"5f7c97a3_e35b4c83","updated":"2018-10-22 14:34:11.000000000","message":"yes, I agree","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"37a7935160cf8fbbf1c14bfb39b1d5d67948717a","unresolved":false,"context_lines":[{"line_number":382,"context_line":"# anti_affinity_policy \u003d anti-affinity"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"# Whether enable volume backend nova instance"},{"line_number":385,"context_line":"# use_cinder \u003d"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"[cinder]"},{"line_number":388,"context_line":"# The name of the cinder service in the keystone catalog"}],"source_content_type":"text/plain","patch_set":9,"id":"3f79a3b5_038b15c1","line":385,"updated":"2018-11-16 22:37:53.000000000","message":"Please include the default here:\n# use_cinder \u003d False","commit_id":"95a39b9fdb4b5da269aad06606b1494b8e9a5176"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"37a7935160cf8fbbf1c14bfb39b1d5d67948717a","unresolved":false,"context_lines":[{"line_number":415,"context_line":"# Interval time to wait volume is created in available state"},{"line_number":416,"context_line":"# volume_create_retry_interval \u003d 5"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"# Timeout When volume is not create success"},{"line_number":419,"context_line":"# volume_create_timeout \u003d 300"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"# Maximum number of retries to create volume"}],"source_content_type":"text/plain","patch_set":9,"id":"3f79a3b5_a36821f3","line":418,"range":{"start_line":418,"start_character":2,"end_line":418,"end_character":43},"updated":"2018-11-16 22:37:53.000000000","message":"Timeout to wait for volume creation success","commit_id":"95a39b9fdb4b5da269aad06606b1494b8e9a5176"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f7609e766de65ae9ddf60a9db1e58f608f0dd391","unresolved":false,"context_lines":[{"line_number":409,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiples of 8"},{"line_number":410,"context_line":"# volume_size \u003d 16"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"# Type of volume for Amphorae volume root disk"},{"line_number":413,"context_line":"# volume_type \u003d"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"# Interval time to wait volume is created in available state"}],"source_content_type":"text/plain","patch_set":14,"id":"9fdfeff1_950bc929","line":412,"updated":"2019-02-20 23:23:24.000000000","message":"nit: would be nice to note this is optional as cinder will us a default.","commit_id":"6506493df4367e544e3686dd27359300c17931cf"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"53f887d95862b039178faa021f566a99cf9da3ee","unresolved":false,"context_lines":[{"line_number":409,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiples of 8"},{"line_number":410,"context_line":"# volume_size \u003d 16"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"# Type of volume for Amphorae volume root disk"},{"line_number":413,"context_line":"# volume_type \u003d"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"# Interval time to wait volume is created in available state"}],"source_content_type":"text/plain","patch_set":14,"id":"5fc1f717_4fa2e44d","line":412,"in_reply_to":"9fdfeff1_950bc929","updated":"2019-03-19 12:40:48.000000000","message":"Done","commit_id":"6506493df4367e544e3686dd27359300c17931cf"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"5af106e0cb05940d3d30d612ca975ba84d99fe56","unresolved":false,"context_lines":[{"line_number":387,"context_line":""},{"line_number":388,"context_line":"# Indicate whether to use volume backed nova instances"},{"line_number":389,"context_line":"# If True, it is necessary to set volume_driver \u003d volume_cinder_driver."},{"line_number":390,"context_line":"# use_cinder \u003d False"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"[cinder]"},{"line_number":393,"context_line":"# The name of the cinder service in the keystone catalog"}],"source_content_type":"text/plain","patch_set":16,"id":"5fc1f717_35d6c2c5","line":390,"range":{"start_line":390,"start_character":2,"end_line":390,"end_character":12},"updated":"2019-03-19 19:45:43.000000000","message":"I think we don\u0027t need it because it\u0027s duplicate with volume_driver (volume_noop_driver \u003d\u003d False here and volume_cinder_driver \u003d\u003d True here).","commit_id":"4cf9630a956f0d60d0c1fb2dad38fa24bd456a2e"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"81cc462a94f257135c963dfc2ad2bc1768c32909","unresolved":false,"context_lines":[{"line_number":387,"context_line":""},{"line_number":388,"context_line":"# Indicate whether to use volume backed nova instances"},{"line_number":389,"context_line":"# If True, it is necessary to set volume_driver \u003d volume_cinder_driver."},{"line_number":390,"context_line":"# use_cinder \u003d False"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"[cinder]"},{"line_number":393,"context_line":"# The name of the cinder service in the keystone catalog"}],"source_content_type":"text/plain","patch_set":16,"id":"5fc1f717_1a6405b9","line":390,"range":{"start_line":390,"start_character":2,"end_line":390,"end_character":12},"in_reply_to":"5fc1f717_35d6c2c5","updated":"2019-03-20 10:04:42.000000000","message":"Ok, agree. I think it should than raise NotImplemented in case if volume_driver is neither noop nor cinder.","commit_id":"4cf9630a956f0d60d0c1fb2dad38fa24bd456a2e"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":407,"context_line":"# ca_certificates_file \u003d"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"# Availability zone to use for creating Amphorae"},{"line_number":410,"context_line":"# availability_zone \u003d"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"# Size of root volume for Amphora Instance when use Cinder"},{"line_number":413,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiple of 8"}],"source_content_type":"text/plain","patch_set":27,"id":"dfbec78f_c5311b5c","line":410,"updated":"2019-05-14 20:15:58.000000000","message":"Are cinder AZs related to nova AZs at all? Does there need to be checking to make sure they match somehow?","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":387,"context_line":""},{"line_number":388,"context_line":"# Size of root volume for Amphora Instance when use Cinder"},{"line_number":389,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiple of 8"},{"line_number":390,"context_line":"# volume_size \u003d 16"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"# Volume type to be used for Amphora Instance root disk"},{"line_number":393,"context_line":"# If not specified, default_volume_type from cinder.conf will be used"}],"source_content_type":"text/plain","patch_set":31,"id":"bfb3d3c7_a11d50be","line":390,"range":{"start_line":390,"start_character":2,"end_line":390,"end_character":18},"updated":"2019-05-23 04:35:25.000000000","message":"Why default 16g, what if the image requires a root size larger than this?","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"611e55735038bd533d8ed408a13d707dbe6e0293","unresolved":false,"context_lines":[{"line_number":387,"context_line":""},{"line_number":388,"context_line":"# Size of root volume for Amphora Instance when use Cinder"},{"line_number":389,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiple of 8"},{"line_number":390,"context_line":"# volume_size \u003d 16"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"# Volume type to be used for Amphora Instance root disk"},{"line_number":393,"context_line":"# If not specified, default_volume_type from cinder.conf will be used"}],"source_content_type":"text/plain","patch_set":31,"id":"bfb3d3c7_d3a5b705","line":390,"range":{"start_line":390,"start_character":2,"end_line":390,"end_character":18},"in_reply_to":"bfb3d3c7_a11d50be","updated":"2019-05-23 05:18:06.000000000","message":"Could you suggest any number for this? I think this size maybe is enough.  Because The size of image after using DIB is not larger than this.","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"bb65d7302c591ce2c553cd6f20da10c72e1fc87e","unresolved":false,"context_lines":[{"line_number":445,"context_line":"# If not specified, default_volume_type from cinder.conf will be used"},{"line_number":446,"context_line":"# volume_type \u003d"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"# Interval time to wait until volume becomes available"},{"line_number":449,"context_line":"# volume_create_retry_interval \u003d 5"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"# Timeout to wait for volume creation success"}],"source_content_type":"text/plain","patch_set":36,"id":"7faddb67_26d9cb55","line":448,"range":{"start_line":448,"start_character":2,"end_line":448,"end_character":15},"updated":"2019-08-22 17:26:59.000000000","message":"nit: would be nice to note time unit (seconds) like in other interval time options","commit_id":"358c0bcc6600a27bc47adb1027cb0c6dcae03a0e"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"bb65d7302c591ce2c553cd6f20da10c72e1fc87e","unresolved":false,"context_lines":[{"line_number":448,"context_line":"# Interval time to wait until volume becomes available"},{"line_number":449,"context_line":"# volume_create_retry_interval \u003d 5"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"# Timeout to wait for volume creation success"},{"line_number":452,"context_line":"# volume_create_timeout \u003d 300"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"# Maximum number of retries to create volume"}],"source_content_type":"text/plain","patch_set":36,"id":"7faddb67_a6ecdbf4","line":451,"updated":"2019-08-22 17:26:59.000000000","message":"ditto","commit_id":"358c0bcc6600a27bc47adb1027cb0c6dcae03a0e"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"0ad8ffc9bfd984688686424b10af99d8c9fe2584","unresolved":false,"context_lines":[{"line_number":244,"context_line":"#"},{"line_number":245,"context_line":"# network_driver \u003d network_noop_driver"},{"line_number":246,"context_line":"# Volume driver options are volume_noop_driver"},{"line_number":247,"context_line":"#                            volume_cinder_driver"},{"line_number":248,"context_line":"#"},{"line_number":249,"context_line":"# volume_driver \u003d volume_noop_driver"},{"line_number":250,"context_line":"#"}],"source_content_type":"text/plain","patch_set":37,"id":"7faddb67_34bfb2fd","line":247,"updated":"2019-08-22 21:26:57.000000000","message":"nit: spacing","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":244,"context_line":"#"},{"line_number":245,"context_line":"# network_driver \u003d network_noop_driver"},{"line_number":246,"context_line":"# Volume driver options are volume_noop_driver"},{"line_number":247,"context_line":"#                            volume_cinder_driver"},{"line_number":248,"context_line":"#"},{"line_number":249,"context_line":"# volume_driver \u003d volume_noop_driver"},{"line_number":250,"context_line":"#"}],"source_content_type":"text/plain","patch_set":37,"id":"7faddb67_b6b81b75","line":247,"in_reply_to":"7faddb67_34bfb2fd","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":446,"context_line":"# insecure \u003d False"},{"line_number":447,"context_line":"# ca_certificates_file \u003d"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"# Size of root volume for Amphora Instance when use Cinder"},{"line_number":450,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiple of 8"},{"line_number":451,"context_line":"# volume_size \u003d 16"},{"line_number":452,"context_line":""}],"source_content_type":"text/plain","patch_set":37,"id":"7faddb67_97cf888a","line":449,"updated":"2019-08-22 23:07:16.000000000","message":"nit: please include the units here. GB? MB? TB? PB?","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":446,"context_line":"# insecure \u003d False"},{"line_number":447,"context_line":"# ca_certificates_file \u003d"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"# Size of root volume for Amphora Instance when use Cinder"},{"line_number":450,"context_line":"# In some storage backends such as ScaleIO, the size of volume is multiple of 8"},{"line_number":451,"context_line":"# volume_size \u003d 16"},{"line_number":452,"context_line":""}],"source_content_type":"text/plain","patch_set":37,"id":"7faddb67_56af672a","line":449,"in_reply_to":"7faddb67_97cf888a","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"}],"lower-constraints.txt":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Werkzeug\u003d\u003d0.14.1"},{"line_number":169,"context_line":"wrapt\u003d\u003d1.10.11"},{"line_number":170,"context_line":"WSME\u003d\u003d0.8.0"},{"line_number":171,"context_line":"python-cinderclient\u003d\u003d\u003d3.3.0"},{"line_number":172,"context_line":"retrying\u003d\u003d\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_a34d54c6","line":171,"range":{"start_line":171,"start_character":19,"end_line":171,"end_character":23},"updated":"2018-07-03 11:27:48.000000000","message":"\"\u003d\u003d\u003d\" ?\nIts two \"\u003d\".","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Werkzeug\u003d\u003d0.14.1"},{"line_number":169,"context_line":"wrapt\u003d\u003d1.10.11"},{"line_number":170,"context_line":"WSME\u003d\u003d0.8.0"},{"line_number":171,"context_line":"python-cinderclient\u003d\u003d\u003d3.3.0"},{"line_number":172,"context_line":"retrying\u003d\u003d\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":7,"id":"3f79a3b5_5f578aca","line":171,"range":{"start_line":171,"start_character":19,"end_line":171,"end_character":23},"in_reply_to":"5f7c97a3_a34d54c6","updated":"2018-10-22 14:34:11.000000000","message":"fix","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":169,"context_line":"wrapt\u003d\u003d1.10.11"},{"line_number":170,"context_line":"WSME\u003d\u003d0.8.0"},{"line_number":171,"context_line":"python-cinderclient\u003d\u003d\u003d3.3.0"},{"line_number":172,"context_line":"retrying\u003d\u003d\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":7,"id":"5f7c97a3_434c80c7","line":172,"range":{"start_line":172,"start_character":8,"end_line":172,"end_character":11},"updated":"2018-07-03 11:27:48.000000000","message":"ditto","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":169,"context_line":"wrapt\u003d\u003d1.10.11"},{"line_number":170,"context_line":"WSME\u003d\u003d0.8.0"},{"line_number":171,"context_line":"python-cinderclient\u003d\u003d\u003d3.3.0"},{"line_number":172,"context_line":"retrying\u003d\u003d\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":7,"id":"3f79a3b5_ff6d369a","line":172,"range":{"start_line":172,"start_character":8,"end_line":172,"end_character":11},"in_reply_to":"5f7c97a3_434c80c7","updated":"2018-10-22 14:34:11.000000000","message":"fix","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":173,"context_line":"wrapt\u003d\u003d1.10.11"},{"line_number":174,"context_line":"WSME\u003d\u003d0.8.0"},{"line_number":175,"context_line":"python-cinderclient\u003d\u003d3.3.0"},{"line_number":176,"context_line":"retrying\u003d\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":27,"id":"dfbec78f_0543b3b0","line":176,"updated":"2019-05-14 20:15:58.000000000","message":"We already use the `tenacity` library -- would it be possible to rewrite the stuff that uses `retrying` to use `tenacity` so we can have a unified solution for this?","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"}],"octavia/common/clients.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                )"},{"line_number":184,"context_line":"            except Exception:"},{"line_number":185,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":186,"context_line":"                    LOG.exception(\"\")"},{"line_number":187,"context_line":"        return cls.cinder_client"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_e3d02ccb","line":186,"range":{"start_line":186,"start_character":20,"end_line":186,"end_character":37},"updated":"2018-07-03 11:27:48.000000000","message":"Say something?","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                )"},{"line_number":184,"context_line":"            except Exception:"},{"line_number":185,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":186,"context_line":"                    LOG.exception(\"\")"},{"line_number":187,"context_line":"        return cls.cinder_client"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_fff216e4","line":186,"range":{"start_line":186,"start_character":20,"end_line":186,"end_character":37},"in_reply_to":"5f7c97a3_e3d02ccb","updated":"2018-10-22 14:34:11.000000000","message":"fix","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"37a7935160cf8fbbf1c14bfb39b1d5d67948717a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    cinder_client \u003d None"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    @classmethod"},{"line_number":154,"context_line":"    def get_cinder_client(cls, region, service_name\u003dNone, endpoint\u003dNone,"},{"line_number":155,"context_line":"                          endpoint_type\u003d\u0027publicURL\u0027, insecure\u003dFalse,"},{"line_number":156,"context_line":"                          cacert\u003dNone):"},{"line_number":157,"context_line":"        \"\"\"Create cinder client object."}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_e32cd9b2","line":154,"updated":"2018-11-16 22:37:53.000000000","message":"This needs a unit test.","commit_id":"95a39b9fdb4b5da269aad06606b1494b8e9a5176"}],"octavia/common/config.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":503,"context_line":"    cfg.StrOpt(\u0027availability_zone\u0027, default\u003dNone,"},{"line_number":504,"context_line":"               help\u003d_(\u0027Availability zone to use for creating Amphorae\u0027)),"},{"line_number":505,"context_line":"    cfg.BoolOpt(\u0027use_cinder\u0027, default\u003dFalse,"},{"line_number":506,"context_line":"                help\u003d_(\u0027If want to use volume based for Amphorae\u0027)),"},{"line_number":507,"context_line":"]"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"cinder_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_a3d234ce","line":506,"range":{"start_line":506,"start_character":24,"end_line":506,"end_character":65},"updated":"2018-07-03 11:27:48.000000000","message":"plz see my comment here:\nhttps://review.openstack.org/#/c/570505/7/etc/octavia.conf@362","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":503,"context_line":"    cfg.StrOpt(\u0027availability_zone\u0027, default\u003dNone,"},{"line_number":504,"context_line":"               help\u003d_(\u0027Availability zone to use for creating Amphorae\u0027)),"},{"line_number":505,"context_line":"    cfg.BoolOpt(\u0027use_cinder\u0027, default\u003dFalse,"},{"line_number":506,"context_line":"                help\u003d_(\u0027If want to use volume based for Amphorae\u0027)),"},{"line_number":507,"context_line":"]"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"cinder_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_bffc9eb6","line":506,"range":{"start_line":506,"start_character":24,"end_line":506,"end_character":65},"in_reply_to":"5f7c97a3_a3d234ce","updated":"2018-10-22 14:34:11.000000000","message":"fix","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                help\u003d_(\u0027Disable certificate validation on SSL connections\u0027)),"},{"line_number":525,"context_line":"    cfg.StrOpt(\u0027availability_zone\u0027, default\u003dNone,"},{"line_number":526,"context_line":"               help\u003d_(\u0027Availability zone to use for creating Amphorae\u0027)),"},{"line_number":527,"context_line":"    cfg.IntOpt(\u0027volume_size\u0027, default\u003d16,"},{"line_number":528,"context_line":"               help\u003d_(\u0027Size of volume for Amphorae instance\u0027)),"},{"line_number":529,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":530,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":531,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_23f06466","line":528,"range":{"start_line":527,"start_character":4,"end_line":528,"end_character":63},"updated":"2018-07-03 11:27:48.000000000","message":"please see my comment here:\nhttps://review.openstack.org/#/c/570505/7/etc/octavia.conf@388","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":524,"context_line":"                help\u003d_(\u0027Disable certificate validation on SSL connections\u0027)),"},{"line_number":525,"context_line":"    cfg.StrOpt(\u0027availability_zone\u0027, default\u003dNone,"},{"line_number":526,"context_line":"               help\u003d_(\u0027Availability zone to use for creating Amphorae\u0027)),"},{"line_number":527,"context_line":"    cfg.IntOpt(\u0027volume_size\u0027, default\u003d16,"},{"line_number":528,"context_line":"               help\u003d_(\u0027Size of volume for Amphorae instance\u0027)),"},{"line_number":529,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":530,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":531,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_df107af7","line":528,"range":{"start_line":527,"start_character":4,"end_line":528,"end_character":63},"in_reply_to":"5f7c97a3_23f06466","updated":"2018-10-22 14:34:11.000000000","message":"Answer in /etc/octavia.conf","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":526,"context_line":"               help\u003d_(\u0027Availability zone to use for creating Amphorae\u0027)),"},{"line_number":527,"context_line":"    cfg.IntOpt(\u0027volume_size\u0027, default\u003d16,"},{"line_number":528,"context_line":"               help\u003d_(\u0027Size of volume for Amphorae instance\u0027)),"},{"line_number":529,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":530,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":531,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"},{"line_number":532,"context_line":"               help\u003d_(\u0027Interval time to wait volume is created in available\u0027"},{"line_number":533,"context_line":"                      \u0027state\u0027)),"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_03ed288d","line":530,"range":{"start_line":529,"start_character":4,"end_line":530,"end_character":71},"updated":"2018-07-03 11:27:48.000000000","message":"So here is None, why etc/octavia.conf is `basic`?","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":526,"context_line":"               help\u003d_(\u0027Availability zone to use for creating Amphorae\u0027)),"},{"line_number":527,"context_line":"    cfg.IntOpt(\u0027volume_size\u0027, default\u003d16,"},{"line_number":528,"context_line":"               help\u003d_(\u0027Size of volume for Amphorae instance\u0027)),"},{"line_number":529,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":530,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":531,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"},{"line_number":532,"context_line":"               help\u003d_(\u0027Interval time to wait volume is created in available\u0027"},{"line_number":533,"context_line":"                      \u0027state\u0027)),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_1fdcb241","line":530,"range":{"start_line":529,"start_character":4,"end_line":530,"end_character":71},"in_reply_to":"5f7c97a3_03ed288d","updated":"2018-10-22 14:34:11.000000000","message":"Yes, It\u0027s mistake. Fix in /etc/octavia.conf","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"37a7935160cf8fbbf1c14bfb39b1d5d67948717a","unresolved":false,"context_lines":[{"line_number":542,"context_line":"               help\u003d_(\u0027Interval time to wait volume is created in available\u0027"},{"line_number":543,"context_line":"                      \u0027state\u0027)),"},{"line_number":544,"context_line":"    cfg.IntOpt(\u0027volume_create_timeout\u0027, default\u003d300,"},{"line_number":545,"context_line":"               help\u003d_(\u0027Timeout When volume is not create success\u0027)),"},{"line_number":546,"context_line":"    cfg.IntOpt(\u0027volume_create_max_retries\u0027, default\u003d5,"},{"line_number":547,"context_line":"               help\u003d_(\u0027Maximum number of retries to create volume\u0027))"},{"line_number":548,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_436fcdfa","line":545,"updated":"2018-11-16 22:37:53.000000000","message":"Timeout to wait for volume creation success","commit_id":"95a39b9fdb4b5da269aad06606b1494b8e9a5176"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"bb65d7302c591ce2c553cd6f20da10c72e1fc87e","unresolved":false,"context_lines":[{"line_number":583,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":584,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":585,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"},{"line_number":586,"context_line":"               help\u003d_(\u0027Interval time to wait volume is created in available\u0027"},{"line_number":587,"context_line":"                      \u0027state\u0027)),"},{"line_number":588,"context_line":"    cfg.IntOpt(\u0027volume_create_timeout\u0027, default\u003d300,"},{"line_number":589,"context_line":"               help\u003d_(\u0027Timeout to wait for volume creation success\u0027)),"}],"source_content_type":"text/x-python","patch_set":36,"id":"7faddb67_c670f743","line":586,"updated":"2019-08-22 17:26:59.000000000","message":"ditto (time unit is seconds)","commit_id":"358c0bcc6600a27bc47adb1027cb0c6dcae03a0e"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"bb65d7302c591ce2c553cd6f20da10c72e1fc87e","unresolved":false,"context_lines":[{"line_number":586,"context_line":"               help\u003d_(\u0027Interval time to wait volume is created in available\u0027"},{"line_number":587,"context_line":"                      \u0027state\u0027)),"},{"line_number":588,"context_line":"    cfg.IntOpt(\u0027volume_create_timeout\u0027, default\u003d300,"},{"line_number":589,"context_line":"               help\u003d_(\u0027Timeout to wait for volume creation success\u0027)),"},{"line_number":590,"context_line":"    cfg.IntOpt(\u0027volume_create_max_retries\u0027, default\u003d5,"},{"line_number":591,"context_line":"               help\u003d_(\u0027Maximum number of retries to create volume\u0027))"},{"line_number":592,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":36,"id":"7faddb67_8690bf44","line":589,"updated":"2019-08-22 17:26:59.000000000","message":"ditto","commit_id":"358c0bcc6600a27bc47adb1027cb0c6dcae03a0e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":410,"context_line":"    cfg.StrOpt(\u0027network_driver\u0027,"},{"line_number":411,"context_line":"               default\u003d\u0027network_noop_driver\u0027,"},{"line_number":412,"context_line":"               help\u003d_(\u0027Name of the network driver to use\u0027)),"},{"line_number":413,"context_line":"    cfg.StrOpt(\u0027volume_driver\u0027,"},{"line_number":414,"context_line":"               default\u003d\u0027volume_noop_driver\u0027,"},{"line_number":415,"context_line":"               help\u003d_(\u0027Name of the volume driver to use\u0027)),"},{"line_number":416,"context_line":"    cfg.StrOpt(\u0027distributor_driver\u0027,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_f7703c43","line":413,"updated":"2019-08-22 23:07:16.000000000","message":"You can use the \"choices\" option on StrOpt to have this setting checked against a known list. See line 421 as an example.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                default\u003dFalse,"},{"line_number":584,"context_line":"                help\u003d_(\u0027Disable certificate validation on SSL connections\u0027)),"},{"line_number":585,"context_line":"    cfg.IntOpt(\u0027volume_size\u0027, default\u003d16,"},{"line_number":586,"context_line":"               help\u003d_(\u0027Size of volume for Amphora instance\u0027)),"},{"line_number":587,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":588,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":589,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_57a7d0bd","line":586,"updated":"2019-08-22 23:07:16.000000000","message":"nit: Unit?  GB? MB? TB? PB?","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"45c9a5d33a1479b7a422d2c21a53186343bf6d09","unresolved":false,"context_lines":[{"line_number":584,"context_line":"                default\u003dFalse,"},{"line_number":585,"context_line":"                help\u003d_(\u0027Disable certificate validation on SSL connections\u0027)),"},{"line_number":586,"context_line":"    cfg.IntOpt(\u0027volume_size\u0027, default\u003d16,"},{"line_number":587,"context_line":"               help\u003d_(\u0027Size of volume for Amphora instance\u0027)),"},{"line_number":588,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":589,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":590,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_ea0d8437","line":587,"updated":"2019-09-09 23:52:33.000000000","message":"nit: It would be nice to have the units here.","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1c287d7119d90dd489e18cd072ee7886f41f094a","unresolved":false,"context_lines":[{"line_number":584,"context_line":"                default\u003dFalse,"},{"line_number":585,"context_line":"                help\u003d_(\u0027Disable certificate validation on SSL connections\u0027)),"},{"line_number":586,"context_line":"    cfg.IntOpt(\u0027volume_size\u0027, default\u003d16,"},{"line_number":587,"context_line":"               help\u003d_(\u0027Size of volume for Amphora instance\u0027)),"},{"line_number":588,"context_line":"    cfg.StrOpt(\u0027volume_type\u0027, default\u003dNone,"},{"line_number":589,"context_line":"               help\u003d_(\u0027Type of volume for Amphorae volume root disk\u0027)),"},{"line_number":590,"context_line":"    cfg.IntOpt(\u0027volume_create_retry_interval\u0027, default\u003d5,"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_2a339cad","line":587,"in_reply_to":"5faad753_ea0d8437","updated":"2019-09-10 00:05:33.000000000","message":"Done: https://review.opendev.org/681144","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"}],"octavia/compute/drivers/nova_driver.py":[{"author":{"_account_id":6579,"name":"Nir Magnezi","email":"nmagnezi@redhat.com","username":"nmagnezi"},"change_message_id":"331c733797b6acd060a372997448797ddb9138f9","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    :param availability_zone: Avaialability Zone of Cinder"},{"line_number":80,"context_line":"    :return volume id"},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":"    volume \u003d client.volumes.create(size\u003dvolume_size,"},{"line_number":83,"context_line":"                                   volume_type\u003dCONF.cinder.volume_type,"},{"line_number":84,"context_line":"                                   availability_zone\u003davailability_zone,"},{"line_number":85,"context_line":"                                   imageRef\u003dimage_id)"},{"line_number":86,"context_line":"    resource_status \u003d client.volumes.get(volume.id).status"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    status \u003d \u0027available\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_db70eb76","line":85,"range":{"start_line":82,"start_character":0,"end_line":85,"end_character":53},"updated":"2018-06-03 21:16:18.000000000","message":"we assume that volume creation will always succeed?\nwhat happens if creation fails?\n\nworth thinking about this and perhaps nesting under try+except clause (for better logging and possibly additional actions).","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"cd0c9f58db11a17a1dc904daae7d9a1f40642488","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    :param availability_zone: Avaialability Zone of Cinder"},{"line_number":80,"context_line":"    :return volume id"},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":"    volume \u003d client.volumes.create(size\u003dvolume_size,"},{"line_number":83,"context_line":"                                   volume_type\u003dCONF.cinder.volume_type,"},{"line_number":84,"context_line":"                                   availability_zone\u003davailability_zone,"},{"line_number":85,"context_line":"                                   imageRef\u003dimage_id)"},{"line_number":86,"context_line":"    resource_status \u003d client.volumes.get(volume.id).status"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    status \u003d \u0027available\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_2a6ae3ec","line":85,"range":{"start_line":82,"start_character":0,"end_line":85,"end_character":53},"in_reply_to":"5f7c97a3_db70eb76","updated":"2018-06-04 08:01:10.000000000","message":"Currently, if this operation return exception that the error will be caught in try..except block in build function, and we will see full traceback in the log file (see line 213 in nova_driver.py). I think this is more than enough to understand what happened. AFAIU, you offer to add reraise for make more information, but what kind of message may be better than a full traceback.\nI add some unit tests for this situation.","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    return _extract_amp_image_id_by_tag(client, image_tag, image_owner)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"@retry(stop_max_attempt_number\u003dCONF.cinder.volume_create_max_retries)"},{"line_number":73,"context_line":"def _create_cinder_volume(client, image_id,"},{"line_number":74,"context_line":"                          volume_size, availability_zone):"},{"line_number":75,"context_line":"    \"\"\"Create cinder volume"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    :param image_id: ID of amphorae image"},{"line_number":78,"context_line":"    :param volume_size: Size of volume"},{"line_number":79,"context_line":"    :param availability_zone: Avaialability Zone of Cinder"},{"line_number":80,"context_line":"    :return volume id"},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":"    volume \u003d client.volumes.create(size\u003dvolume_size,"},{"line_number":83,"context_line":"                                   volume_type\u003dCONF.cinder.volume_type,"},{"line_number":84,"context_line":"                                   availability_zone\u003davailability_zone,"},{"line_number":85,"context_line":"                                   imageRef\u003dimage_id)"},{"line_number":86,"context_line":"    resource_status \u003d client.volumes.get(volume.id).status"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    status \u003d \u0027available\u0027"},{"line_number":89,"context_line":"    start \u003d int(time.time())"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    while resource_status !\u003d status:"},{"line_number":92,"context_line":"        time.sleep(CONF.cinder.volume_create_retry_interval)"},{"line_number":93,"context_line":"        resource_status \u003d client.volumes.get(volume.id).status"},{"line_number":94,"context_line":"        if resource_status \u003d\u003d \u0027error\u0027:"},{"line_number":95,"context_line":"            raise cinder_exceptions.ResourceInErrorState("},{"line_number":96,"context_line":"                obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":97,"context_line":"        if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":98,"context_line":"            raise cinder_exceptions.TimeoutException("},{"line_number":99,"context_line":"                obj\u003dvolume, action\u003d\u0027create volume\u0027)"},{"line_number":100,"context_line":"    return volume.id"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"class VirtualMachineManager(compute_base.ComputeBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_4356c02c","line":100,"range":{"start_line":72,"start_character":0,"end_line":100,"end_character":20},"updated":"2018-07-03 11:27:48.000000000","message":"Nova has such logical too, so, why not let nova do such thing?\nWe can use nova ability to boot the instance from volume, and nova will create the root disk volume for the instance, something like this:\n`nova boot --flavor nano --nic net-name\u003dnet --block-device id\u003d\u003cimage_id\u003e,source\u003dimage,dest\u003dvolume,size\u003d20,shutdown\u003dremove,bootindex\u003d0  test`","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    return _extract_amp_image_id_by_tag(client, image_tag, image_owner)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"@retry(stop_max_attempt_number\u003dCONF.cinder.volume_create_max_retries)"},{"line_number":73,"context_line":"def _create_cinder_volume(client, image_id,"},{"line_number":74,"context_line":"                          volume_size, availability_zone):"},{"line_number":75,"context_line":"    \"\"\"Create cinder volume"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    :param image_id: ID of amphorae image"},{"line_number":78,"context_line":"    :param volume_size: Size of volume"},{"line_number":79,"context_line":"    :param availability_zone: Avaialability Zone of Cinder"},{"line_number":80,"context_line":"    :return volume id"},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":"    volume \u003d client.volumes.create(size\u003dvolume_size,"},{"line_number":83,"context_line":"                                   volume_type\u003dCONF.cinder.volume_type,"},{"line_number":84,"context_line":"                                   availability_zone\u003davailability_zone,"},{"line_number":85,"context_line":"                                   imageRef\u003dimage_id)"},{"line_number":86,"context_line":"    resource_status \u003d client.volumes.get(volume.id).status"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    status \u003d \u0027available\u0027"},{"line_number":89,"context_line":"    start \u003d int(time.time())"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    while resource_status !\u003d status:"},{"line_number":92,"context_line":"        time.sleep(CONF.cinder.volume_create_retry_interval)"},{"line_number":93,"context_line":"        resource_status \u003d client.volumes.get(volume.id).status"},{"line_number":94,"context_line":"        if resource_status \u003d\u003d \u0027error\u0027:"},{"line_number":95,"context_line":"            raise cinder_exceptions.ResourceInErrorState("},{"line_number":96,"context_line":"                obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":97,"context_line":"        if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":98,"context_line":"            raise cinder_exceptions.TimeoutException("},{"line_number":99,"context_line":"                obj\u003dvolume, action\u003d\u0027create volume\u0027)"},{"line_number":100,"context_line":"    return volume.id"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"class VirtualMachineManager(compute_base.ComputeBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_dab40820","line":100,"range":{"start_line":72,"start_character":0,"end_line":100,"end_character":20},"in_reply_to":"5f7c97a3_4356c02c","updated":"2018-10-22 14:34:11.000000000","message":"Yes, Nova has this functionality but without flexibility. We can\u0027t set the volume type or availability zone for the volume in this case.","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"727e70a03b3a515367d9fd2fb50dcd86acf3018f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                    [r.choice(string.ascii_uppercase + string.digits)"},{"line_number":186,"context_line":"                     for i in range(CONF.nova.random_amphora_name_length - 1)]"},{"line_number":187,"context_line":"                ))"},{"line_number":188,"context_line":"            block_device_mapping \u003d {}"},{"line_number":189,"context_line":"            if CONF.nova.use_cinder:"},{"line_number":190,"context_line":"                # creating volume"},{"line_number":191,"context_line":"                LOG.debug(\u0027Creating volume for amphorae\u0027)"},{"line_number":192,"context_line":"                cinder_id \u003d _create_cinder_volume("},{"line_number":193,"context_line":"                    self._cinder_client, image_id,"},{"line_number":194,"context_line":"                    CONF.cinder.volume_size, CONF.cinder.availability_zone"},{"line_number":195,"context_line":"                )"},{"line_number":196,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":197,"context_line":"                image_id \u003d \"\""},{"line_number":198,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % cinder_id}"},{"line_number":199,"context_line":"            amphora \u003d self.manager.create("},{"line_number":200,"context_line":"                name\u003dname, image\u003dimage_id, flavor\u003damphora_flavor,"},{"line_number":201,"context_line":"                block_device_mapping\u003dblock_device_mapping,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_234ce49b","line":198,"range":{"start_line":188,"start_character":0,"end_line":198,"end_character":71},"updated":"2018-07-03 11:27:48.000000000","message":"Please see my comments line 100.","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":27256,"name":"Vadim Ponomarev","email":"velizarx@gmail.com","username":"velizarx"},"change_message_id":"d3fa692963eb64b7e785f9771b9d32f77d67e6a6","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                    [r.choice(string.ascii_uppercase + string.digits)"},{"line_number":186,"context_line":"                     for i in range(CONF.nova.random_amphora_name_length - 1)]"},{"line_number":187,"context_line":"                ))"},{"line_number":188,"context_line":"            block_device_mapping \u003d {}"},{"line_number":189,"context_line":"            if CONF.nova.use_cinder:"},{"line_number":190,"context_line":"                # creating volume"},{"line_number":191,"context_line":"                LOG.debug(\u0027Creating volume for amphorae\u0027)"},{"line_number":192,"context_line":"                cinder_id \u003d _create_cinder_volume("},{"line_number":193,"context_line":"                    self._cinder_client, image_id,"},{"line_number":194,"context_line":"                    CONF.cinder.volume_size, CONF.cinder.availability_zone"},{"line_number":195,"context_line":"                )"},{"line_number":196,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":197,"context_line":"                image_id \u003d \"\""},{"line_number":198,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % cinder_id}"},{"line_number":199,"context_line":"            amphora \u003d self.manager.create("},{"line_number":200,"context_line":"                name\u003dname, image\u003dimage_id, flavor\u003damphora_flavor,"},{"line_number":201,"context_line":"                block_device_mapping\u003dblock_device_mapping,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_fa44641c","line":198,"range":{"start_line":188,"start_character":0,"end_line":198,"end_character":71},"in_reply_to":"5f7c97a3_234ce49b","updated":"2018-10-22 14:34:11.000000000","message":"The answer is there","commit_id":"b2a15ccef011083579f30dd6c5ea435e0ec3ae75"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"344f8c2aff19a7b77a0fd54101f73a1b045612fc","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"@retry(stop_max_attempt_number\u003dCONF.cinder.volume_create_max_retries)"},{"line_number":73,"context_line":"def _create_cinder_volume(client, image_id,"},{"line_number":74,"context_line":"                          volume_size, availability_zone):"},{"line_number":75,"context_line":"    \"\"\"Create cinder volume"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_90daf776","line":73,"updated":"2019-02-20 23:38:30.000000000","message":"I would really like to see this outside the nova driver.\nCan you move this out to a cinder driver? Then I would update the flows to do these steps and pass the block_device_mapping through the flow storage and into the compute create tasks and then down to the compute driver.\nThis gives us flexibility to use cinder with non-nova compute drivers.","commit_id":"6506493df4367e544e3686dd27359300c17931cf"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"2a727d4ad100c5169661a095b4e4bbb335ac81b9","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"@retry(stop_max_attempt_number\u003dCONF.cinder.volume_create_max_retries)"},{"line_number":73,"context_line":"def _create_cinder_volume(client, image_id,"},{"line_number":74,"context_line":"                          volume_size, availability_zone):"},{"line_number":75,"context_line":"    \"\"\"Create cinder volume"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_af758834","line":73,"in_reply_to":"9fdfeff1_90daf776","updated":"2019-03-19 12:20:02.000000000","message":"Done","commit_id":"6506493df4367e544e3686dd27359300c17931cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9e8982d0c08106f7f71f09fb304048e314230a52","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            status\u003dnova_response.status,"},{"line_number":302,"context_line":"            lb_network_ip\u003dlb_network_ip,"},{"line_number":303,"context_line":"            cached_zone\u003davailability_zone,"},{"line_number":304,"context_line":"            image_id\u003dnova_response.image.get(\"id\"),"},{"line_number":305,"context_line":"            compute_flavor\u003dnova_response.flavor.get(\"id\")"},{"line_number":306,"context_line":"        )"},{"line_number":307,"context_line":"        return response, fault"}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_758173c3","line":304,"updated":"2019-02-21 16:51:04.000000000","message":"This fails.\nimage_id\u003dnova_response.image.get(\"id\"),\nAttributeError: \u0027str\u0027 object has no attribute \u0027get\u0027","commit_id":"6506493df4367e544e3686dd27359300c17931cf"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"2a727d4ad100c5169661a095b4e4bbb335ac81b9","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            status\u003dnova_response.status,"},{"line_number":302,"context_line":"            lb_network_ip\u003dlb_network_ip,"},{"line_number":303,"context_line":"            cached_zone\u003davailability_zone,"},{"line_number":304,"context_line":"            image_id\u003dnova_response.image.get(\"id\"),"},{"line_number":305,"context_line":"            compute_flavor\u003dnova_response.flavor.get(\"id\")"},{"line_number":306,"context_line":"        )"},{"line_number":307,"context_line":"        return response, fault"}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_2f97583d","line":304,"in_reply_to":"9fdfeff1_758173c3","updated":"2019-03-19 12:20:02.000000000","message":"Changed: now get image_id from cinder volume","commit_id":"6506493df4367e544e3686dd27359300c17931cf"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"bb65d7302c591ce2c553cd6f20da10c72e1fc87e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        if CONF.controller_worker.volume_driver not in volume_drivers:"},{"line_number":95,"context_line":"            LOG.exception(\u0027Unsupported volume driver: %s\u0027,"},{"line_number":96,"context_line":"                          CONF.controller_worker.volume_driver)"},{"line_number":97,"context_line":"            raise NotImplementedError()"},{"line_number":98,"context_line":"        self.volume_driver \u003d stevedore_driver.DriverManager("},{"line_number":99,"context_line":"            namespace\u003d\u0027octavia.volume.drivers\u0027,"},{"line_number":100,"context_line":"            name\u003dCONF.controller_worker.volume_driver,"}],"source_content_type":"text/x-python","patch_set":36,"id":"7faddb67_a61dbbbf","line":97,"range":{"start_line":97,"start_character":18,"end_line":97,"end_character":37},"updated":"2019-08-22 17:26:59.000000000","message":"UnsupportedOptionError maybe?","commit_id":"358c0bcc6600a27bc47adb1027cb0c6dcae03a0e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import random"},{"line_number":16,"context_line":"import string"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_config import cfg"},{"line_number":21,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_d79ae06d","line":18,"updated":"2019-08-22 23:07:16.000000000","message":"This should go in the section with oslo and stevedore.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import random"},{"line_number":16,"context_line":"import string"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_config import cfg"},{"line_number":21,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_b66d7b04","line":18,"in_reply_to":"7faddb67_d79ae06d","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"0ad8ffc9bfd984688686424b10af99d8c9fe2584","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import string"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_config import cfg"},{"line_number":21,"context_line":"from oslo_log import log as logging"},{"line_number":22,"context_line":"from stevedore import driver as stevedore_driver"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_14471621","line":19,"updated":"2019-08-22 21:26:57.000000000","message":"This creates 4 sections which breaks our import checks? I believe.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import string"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from novaclient import exceptions as nova_exceptions"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_config import cfg"},{"line_number":21,"context_line":"from oslo_log import log as logging"},{"line_number":22,"context_line":"from stevedore import driver as stevedore_driver"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_567447d0","line":19,"in_reply_to":"7faddb67_14471621","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.manager \u003d self._nova_client.servers"},{"line_number":91,"context_line":"        self.server_groups \u003d self._nova_client.server_groups"},{"line_number":92,"context_line":"        self.flavor_manager \u003d self._nova_client.flavors"},{"line_number":93,"context_line":"        volume_drivers \u003d [\u0027volume_cinder_driver\u0027, \u0027volume_noop_driver\u0027]"},{"line_number":94,"context_line":"        if CONF.controller_worker.volume_driver not in volume_drivers:"},{"line_number":95,"context_line":"            LOG.exception(\u0027Unsupported volume driver: %s\u0027,"},{"line_number":96,"context_line":"                          CONF.controller_worker.volume_driver)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_3777b43e","line":93,"updated":"2019-08-22 23:07:16.000000000","message":"This should be moved to constants and the check should move to the oslo config. You should use the \"choices\" option on the StrOpt type to make sure the setting is valid.\nDoing the check in oslo config will catch an error at startup and not runtime.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.manager \u003d self._nova_client.servers"},{"line_number":91,"context_line":"        self.server_groups \u003d self._nova_client.server_groups"},{"line_number":92,"context_line":"        self.flavor_manager \u003d self._nova_client.flavors"},{"line_number":93,"context_line":"        volume_drivers \u003d [\u0027volume_cinder_driver\u0027, \u0027volume_noop_driver\u0027]"},{"line_number":94,"context_line":"        if CONF.controller_worker.volume_driver not in volume_drivers:"},{"line_number":95,"context_line":"            LOG.exception(\u0027Unsupported volume driver: %s\u0027,"},{"line_number":96,"context_line":"                          CONF.controller_worker.volume_driver)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_766f03fa","line":93,"in_reply_to":"7faddb67_3777b43e","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"0ad8ffc9bfd984688686424b10af99d8c9fe2584","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.server_groups \u003d self._nova_client.server_groups"},{"line_number":92,"context_line":"        self.flavor_manager \u003d self._nova_client.flavors"},{"line_number":93,"context_line":"        volume_drivers \u003d [\u0027volume_cinder_driver\u0027, \u0027volume_noop_driver\u0027]"},{"line_number":94,"context_line":"        if CONF.controller_worker.volume_driver not in volume_drivers:"},{"line_number":95,"context_line":"            LOG.exception(\u0027Unsupported volume driver: %s\u0027,"},{"line_number":96,"context_line":"                          CONF.controller_worker.volume_driver)"},{"line_number":97,"context_line":"            raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_540b4ed4","line":94,"updated":"2019-08-22 21:26:57.000000000","message":"I don\u0027t know that we need to do this? Stevedore would raise something similar when trying to load it, right?","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"0ad8ffc9bfd984688686424b10af99d8c9fe2584","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                     for i in range(CONF.nova.random_amphora_name_length - 1)]"},{"line_number":157,"context_line":"                ))"},{"line_number":158,"context_line":"            block_device_mapping \u003d {}"},{"line_number":159,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \u0027volume_noop_driver\u0027:"},{"line_number":160,"context_line":"                # creating volume"},{"line_number":161,"context_line":"                LOG.debug(\u0027Creating volume for amphora\u0027)"},{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_34f252e5","line":159,"updated":"2019-08-22 21:26:57.000000000","message":"Nit: I kinda wish that was a constant, if we\u0027re going to refer to it explicitly here","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                     for i in range(CONF.nova.random_amphora_name_length - 1)]"},{"line_number":157,"context_line":"                ))"},{"line_number":158,"context_line":"            block_device_mapping \u003d {}"},{"line_number":159,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \u0027volume_noop_driver\u0027:"},{"line_number":160,"context_line":"                # creating volume"},{"line_number":161,"context_line":"                LOG.debug(\u0027Creating volume for amphora\u0027)"},{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_179f1852","line":159,"in_reply_to":"7faddb67_34f252e5","updated":"2019-08-22 23:07:16.000000000","message":"+1 this should be a constant.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                     for i in range(CONF.nova.random_amphora_name_length - 1)]"},{"line_number":157,"context_line":"                ))"},{"line_number":158,"context_line":"            block_device_mapping \u003d {}"},{"line_number":159,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \u0027volume_noop_driver\u0027:"},{"line_number":160,"context_line":"                # creating volume"},{"line_number":161,"context_line":"                LOG.debug(\u0027Creating volume for amphora\u0027)"},{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_167ecfae","line":159,"in_reply_to":"7faddb67_34f252e5","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \u0027volume_noop_driver\u0027:"},{"line_number":160,"context_line":"                # creating volume"},{"line_number":161,"context_line":"                LOG.debug(\u0027Creating volume for amphora\u0027)"},{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("},{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_d7c18031","line":162,"updated":"2019-08-22 23:07:16.000000000","message":"We should log this volume ID, either as debug or info level.\nWe try to have log entries when resources are allocated in other services.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \u0027volume_noop_driver\u0027:"},{"line_number":160,"context_line":"                # creating volume"},{"line_number":161,"context_line":"                LOG.debug(\u0027Creating volume for amphora\u0027)"},{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("},{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_36798bc4","line":162,"in_reply_to":"7faddb67_d7c18031","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                # creating volume"},{"line_number":161,"context_line":"                LOG.debug(\u0027Creating volume for amphora\u0027)"},{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("},{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""},{"line_number":166,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % volume_id}"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_d772e012","line":163,"updated":"2019-08-22 23:07:16.000000000","message":"What deletes this volume?","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                # creating volume"},{"line_number":161,"context_line":"                LOG.debug(\u0027Creating volume for amphora\u0027)"},{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("},{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""},{"line_number":166,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % volume_id}"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_565d2746","line":163,"in_reply_to":"7faddb67_d772e012","updated":"2019-08-29 17:49:08.000000000","message":"Nova deletes the volume, there is a paramter in block device mapping delete-on-terminate which we set to true","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"0ad8ffc9bfd984688686424b10af99d8c9fe2584","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("},{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""},{"line_number":166,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % volume_id}"},{"line_number":167,"context_line":"            amphora \u003d self.manager.create("},{"line_number":168,"context_line":"                name\u003dname, image\u003dimage_id, flavor\u003damphora_flavor,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_14e39608","line":165,"updated":"2019-08-22 21:26:57.000000000","message":"Nit: Is blank the same as None here, or does it need to be !\u003d None?\nIf None works, I\u0027d rather use that.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                volume_id \u003d self.volume_driver.create_volume_from_image("},{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""},{"line_number":166,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % volume_id}"},{"line_number":167,"context_line":"            amphora \u003d self.manager.create("},{"line_number":168,"context_line":"                name\u003dname, image\u003dimage_id, flavor\u003damphora_flavor,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_1657af28","line":165,"in_reply_to":"7faddb67_14e39608","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""},{"line_number":166,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % volume_id}"},{"line_number":167,"context_line":"            amphora \u003d self.manager.create("},{"line_number":168,"context_line":"                name\u003dname, image\u003dimage_id, flavor\u003damphora_flavor,"},{"line_number":169,"context_line":"                block_device_mapping\u003dblock_device_mapping,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_b7de440e","line":166,"updated":"2019-08-22 23:07:16.000000000","message":"nit: Might be nice to have a comment here about what this mapping string means.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                    image_id)"},{"line_number":164,"context_line":"                # If use volume based, does not require image ID anymore"},{"line_number":165,"context_line":"                image_id \u003d \"\""},{"line_number":166,"context_line":"                block_device_mapping \u003d {\u0027vda\u0027: \u0027%s:::true\u0027 % volume_id}"},{"line_number":167,"context_line":"            amphora \u003d self.manager.create("},{"line_number":168,"context_line":"                name\u003dname, image\u003dimage_id, flavor\u003damphora_flavor,"},{"line_number":169,"context_line":"                block_device_mapping\u003dblock_device_mapping,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_3652eb36","line":166,"in_reply_to":"7faddb67_b7de440e","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"9af05650e85bd59861589b20988209045ac22b6a","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            )"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"            return amphora.id"},{"line_number":180,"context_line":"        except Exception as e:"},{"line_number":181,"context_line":"            LOG.exception(\"Nova failed to build the instance due to: %s\", e)"},{"line_number":182,"context_line":"            raise exceptions.ComputeBuildException(fault\u003de)"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_42ba2f0b","line":180,"updated":"2019-08-30 14:48:11.000000000","message":"Also added volume deletion here","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            LOG.exception(\"Nova failed to build the instance due to: %s\", e)"},{"line_number":182,"context_line":"            raise exceptions.ComputeBuildException(fault\u003de)"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def delete(self, compute_id):"},{"line_number":185,"context_line":"        \u0027\u0027\u0027Delete a virtual machine."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        :param compute_id: virtual machine UUID"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_173b9839","line":184,"updated":"2019-08-22 23:07:16.000000000","message":"Does the cinder volume get deleted when the nova instance is deleted? I don\u0027t see any calls to delete the cinder volume.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            LOG.exception(\"Nova failed to build the instance due to: %s\", e)"},{"line_number":182,"context_line":"            raise exceptions.ComputeBuildException(fault\u003de)"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def delete(self, compute_id):"},{"line_number":185,"context_line":"        \u0027\u0027\u0027Delete a virtual machine."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        :param compute_id: virtual machine UUID"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_36274bca","line":184,"in_reply_to":"7faddb67_173b9839","updated":"2019-08-29 17:49:08.000000000","message":"Yes, it does. Nova has a parameter to delete a volume on instance termination. Also, volume is deleted in case of failed build of instance.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                      \u0027os-interfaces extension failed.\u0027)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        fault \u003d getattr(nova_response, \u0027fault\u0027, None)"},{"line_number":267,"context_line":"        if CONF.controller_worker.volume_driver \u003d\u003d \u0027volume_noop_driver\u0027:"},{"line_number":268,"context_line":"            image_id \u003d nova_response.image.get(\"id\")"},{"line_number":269,"context_line":"        else:"},{"line_number":270,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_17cdd85d","line":267,"updated":"2019-08-22 23:07:16.000000000","message":"constant please.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                      \u0027os-interfaces extension failed.\u0027)"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        fault \u003d getattr(nova_response, \u0027fault\u0027, None)"},{"line_number":267,"context_line":"        if CONF.controller_worker.volume_driver \u003d\u003d \u0027volume_noop_driver\u0027:"},{"line_number":268,"context_line":"            image_id \u003d nova_response.image.get(\"id\")"},{"line_number":269,"context_line":"        else:"},{"line_number":270,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_96387fee","line":267,"in_reply_to":"7faddb67_17cdd85d","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                    LOG.warning(\u0027Found more than one (%s) volumes \u0027"},{"line_number":283,"context_line":"                                \u0027for amphora instance %s\u0027,"},{"line_number":284,"context_line":"                                len(volumes), nova_response.id)"},{"line_number":285,"context_line":"                volume_id \u003d volumes[0].volumeId"},{"line_number":286,"context_line":"                image_id \u003d self.volume_driver.get_image_from_volume(volume_id)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        response \u003d models.Amphora("}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_37f334a2","line":285,"updated":"2019-08-22 23:07:16.000000000","message":"Should we track the volume_id in the amphora object? Or is the compute_id good enough and we would never need the volume ID later? We don\u0027t need it to delete the volume?\nI want to make sure we don\u0027t rely on nova knowing the volume ID to delete it. Nova fails often and we still want to clean up resources we allocated.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"3c3c9faa7fe424ea924cb0df4233e53c93f422ce","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                    LOG.warning(\u0027Found more than one (%s) volumes \u0027"},{"line_number":283,"context_line":"                                \u0027for amphora instance %s\u0027,"},{"line_number":284,"context_line":"                                len(volumes), nova_response.id)"},{"line_number":285,"context_line":"                volume_id \u003d volumes[0].volumeId"},{"line_number":286,"context_line":"                image_id \u003d self.volume_driver.get_image_from_volume(volume_id)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        response \u003d models.Amphora("}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_910ba97b","line":285,"in_reply_to":"7faddb67_37f334a2","updated":"2019-08-29 18:27:55.000000000","message":"Nova will try to delete volume when deleting instance. However, if cinder fails to delete the volume than it will remain and we will not have log for this in Octavia, just in cinder. \nDo we need some garbage collector for such cases?","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                    LOG.warning(\u0027Found more than one (%s) volumes \u0027"},{"line_number":283,"context_line":"                                \u0027for amphora instance %s\u0027,"},{"line_number":284,"context_line":"                                len(volumes), nova_response.id)"},{"line_number":285,"context_line":"                volume_id \u003d volumes[0].volumeId"},{"line_number":286,"context_line":"                image_id \u003d self.volume_driver.get_image_from_volume(volume_id)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        response \u003d models.Amphora("}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_76062324","line":285,"in_reply_to":"7faddb67_37f334a2","updated":"2019-08-29 17:49:08.000000000","message":"There is only possibility to leave a volume undeleted if cinder backend fails (e.g. problems on storage system side). In this case volume is going to be in error or error_deleting state.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"45c9a5d33a1479b7a422d2c21a53186343bf6d09","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                     for i in range(CONF.nova.random_amphora_name_length - 1)]"},{"line_number":152,"context_line":"                ))"},{"line_number":153,"context_line":"            block_device_mapping \u003d {}"},{"line_number":154,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \\"},{"line_number":155,"context_line":"                    constants.VOLUME_NOOP_DRIVER:"},{"line_number":156,"context_line":"                # creating volume"},{"line_number":157,"context_line":"                LOG.debug(\u0027Creating volume for amphora from image %s\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_ea26e4b7","line":154,"updated":"2019-09-09 23:52:33.000000000","message":"nit: We don\u0027t use the \\ line wrap in Octavia. I thought there was a hacking rule for this....  hmmm\nhttps://github.com/openstack/octavia/blob/master/octavia/hacking/checks.py#L245","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1c287d7119d90dd489e18cd072ee7886f41f094a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                     for i in range(CONF.nova.random_amphora_name_length - 1)]"},{"line_number":152,"context_line":"                ))"},{"line_number":153,"context_line":"            block_device_mapping \u003d {}"},{"line_number":154,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \\"},{"line_number":155,"context_line":"                    constants.VOLUME_NOOP_DRIVER:"},{"line_number":156,"context_line":"                # creating volume"},{"line_number":157,"context_line":"                LOG.debug(\u0027Creating volume for amphora from image %s\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_ea2ca448","line":154,"in_reply_to":"5faad753_ea26e4b7","updated":"2019-09-10 00:05:33.000000000","message":"Done: https://review.opendev.org/681144","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"45c9a5d33a1479b7a422d2c21a53186343bf6d09","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"            return amphora.id"},{"line_number":182,"context_line":"        except Exception as e:"},{"line_number":183,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \\"},{"line_number":184,"context_line":"                    constants.VOLUME_NOOP_DRIVER:"},{"line_number":185,"context_line":"                self.volume_driver.delete_volume(volume_id)"},{"line_number":186,"context_line":"            LOG.exception(\"Nova failed to build the instance due to: %s\", e)"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_ca7d286f","line":183,"updated":"2019-09-09 23:52:33.000000000","message":"nit: we don\u0027t use \\ line wrap","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1c287d7119d90dd489e18cd072ee7886f41f094a","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"            return amphora.id"},{"line_number":182,"context_line":"        except Exception as e:"},{"line_number":183,"context_line":"            if CONF.controller_worker.volume_driver !\u003d \\"},{"line_number":184,"context_line":"                    constants.VOLUME_NOOP_DRIVER:"},{"line_number":185,"context_line":"                self.volume_driver.delete_volume(volume_id)"},{"line_number":186,"context_line":"            LOG.exception(\"Nova failed to build the instance due to: %s\", e)"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_8a217050","line":183,"in_reply_to":"5faad753_ca7d286f","updated":"2019-09-10 00:05:33.000000000","message":"Done: https://review.opendev.org/681144","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"45c9a5d33a1479b7a422d2c21a53186343bf6d09","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                      \u0027os-interfaces extension failed.\u0027)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        fault \u003d getattr(nova_response, \u0027fault\u0027, None)"},{"line_number":272,"context_line":"        if CONF.controller_worker.volume_driver \u003d\u003d \\"},{"line_number":273,"context_line":"                constants.VOLUME_NOOP_DRIVER:"},{"line_number":274,"context_line":"            image_id \u003d nova_response.image.get(\"id\")"},{"line_number":275,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_0a76e0a5","line":272,"updated":"2019-09-09 23:52:33.000000000","message":"nit: we don\u0027t use \\ line wrap","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1c287d7119d90dd489e18cd072ee7886f41f094a","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                      \u0027os-interfaces extension failed.\u0027)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        fault \u003d getattr(nova_response, \u0027fault\u0027, None)"},{"line_number":272,"context_line":"        if CONF.controller_worker.volume_driver \u003d\u003d \\"},{"line_number":273,"context_line":"                constants.VOLUME_NOOP_DRIVER:"},{"line_number":274,"context_line":"            image_id \u003d nova_response.image.get(\"id\")"},{"line_number":275,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":39,"id":"5faad753_4a1b781a","line":272,"in_reply_to":"5faad753_0a76e0a5","updated":"2019-09-10 00:05:33.000000000","message":"Done: https://review.opendev.org/681144","commit_id":"67ec7e18a9a891e555a3a5ae827b3ad703133388"}],"octavia/tests/unit/__init__.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"0ad8ffc9bfd984688686424b10af99d8c9fe2584","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"7faddb67_74ac4a9f","updated":"2019-08-22 21:26:57.000000000","message":"Wasn\u0027t really necessary to include this change here","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"13cc7ac429f5c34cfac7fcb8bd9420231744438a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"7faddb67_f1ff7dfd","in_reply_to":"7faddb67_74ac4a9f","updated":"2019-08-29 17:49:08.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"7faddb67_f7ecbcbc","in_reply_to":"7faddb67_74ac4a9f","updated":"2019-08-22 23:07:16.000000000","message":"Yeah, this is an necessary change. Please revert it.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"}],"octavia/tests/unit/volume/__init__.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_c5683b1e","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"I don\u0027t think blank init files need licenses","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"9af9b492072203a6932f63d79d0fa6c2bf55f213","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_a5bf475f","line":1,"in_reply_to":"dfbec78f_c5683b1e","updated":"2019-05-14 20:19:07.000000000","message":"nevermind","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_21eba0b0","updated":"2019-05-23 04:35:25.000000000","message":"This file should be empty.","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_2118807f","in_reply_to":"bfb3d3c7_21eba0b0","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/tests/unit/volume/drivers/__init__.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_e51e9fb9","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"I don\u0027t think blank init files need licenses","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"9af9b492072203a6932f63d79d0fa6c2bf55f213","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_c5c4bbf7","line":1,"in_reply_to":"dfbec78f_e51e9fb9","updated":"2019-05-14 20:19:07.000000000","message":"nevermind","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_c1d164fd","updated":"2019-05-23 04:35:25.000000000","message":"This file should be empty.","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_81084c2c","in_reply_to":"bfb3d3c7_c1d164fd","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/tests/unit/volume/drivers/test_cinder_driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_858563d1","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"This is a new file, I assume this old copyright came from a copy/paste?","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_2112c0b2","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":29},"updated":"2019-05-23 04:35:25.000000000","message":"ditto","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_a103100f","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":29},"in_reply_to":"bfb3d3c7_2112c0b2","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/tests/unit/volume/drivers/test_volume_noop_driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_855ec373","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"This is a new file, I assume this old copyright came from a copy/paste?","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_6118b8d2","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":29},"updated":"2019-05-23 04:35:25.000000000","message":"ditto","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_13002f01","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":29},"in_reply_to":"bfb3d3c7_6118b8d2","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/volume/__init__.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_2557d75a","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"I don\u0027t think blank init files need licenses","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"9af9b492072203a6932f63d79d0fa6c2bf55f213","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_85ba436b","line":1,"in_reply_to":"dfbec78f_2557d75a","updated":"2019-05-14 20:19:07.000000000","message":"nevermind","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_81db6c19","updated":"2019-05-23 04:35:25.000000000","message":"This file should be empty.","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_d309372c","in_reply_to":"bfb3d3c7_81db6c19","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/volume/drivers/__init__.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_e54c5fc9","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"I don\u0027t think blank init files need licenses","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"9af9b492072203a6932f63d79d0fa6c2bf55f213","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_45b0cb8a","line":1,"in_reply_to":"dfbec78f_e54c5fc9","updated":"2019-05-14 20:19:07.000000000","message":"nevermind","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_a1d6b0f0","updated":"2019-05-23 04:35:25.000000000","message":"This file should be empty.","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_f30c7b3c","in_reply_to":"bfb3d3c7_a1d6b0f0","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/volume/drivers/cinder_driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_054ad3aa","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"This is a new file, I assume this old copyright came from a copy/paste?","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        )"},{"line_number":44,"context_line":"        self.manager \u003d self._cinder_client.volumes"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @retry(stop_max_attempt_number\u003dCONF.cinder.volume_create_max_retries)"},{"line_number":47,"context_line":"    def create_volume_from_image(self, image_id):"},{"line_number":48,"context_line":"        \"\"\"Create cinder volume"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_c5cd9b31","line":46,"updated":"2019-05-14 20:15:58.000000000","message":"Can this be rewritten to use the `tenacity` library, as we use that already and it would be nice to stay consistent since they do the same thing","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_21396040","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2019-05-23 04:35:25.000000000","message":"2019","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_e13a6832","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":26},"updated":"2019-05-23 04:35:25.000000000","message":"you work for rackspace?\n\nMaybe you can just remove this line","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_9313bf5c","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"bfb3d3c7_21396040","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_b30e0330","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":26},"in_reply_to":"bfb3d3c7_e13a6832","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import time"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_a14470b8","line":13,"range":{"start_line":2,"start_character":0,"end_line":13,"end_character":23},"updated":"2019-05-23 04:35:25.000000000","message":"If you have no employer responsible for this file, just using this section is enough.","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Rackspace"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import time"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_531d4764","line":13,"range":{"start_line":2,"start_character":0,"end_line":13,"end_character":23},"in_reply_to":"bfb3d3c7_a14470b8","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            imageRef\u003dimage_id)"},{"line_number":59,"context_line":"        resource_status \u003d self.manager.get(volume.id).status"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        status \u003d \u0027available\u0027"},{"line_number":62,"context_line":"        start \u003d int(time.time())"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        while resource_status !\u003d status:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_57583089","line":61,"updated":"2019-08-22 23:07:16.000000000","message":"This should be a constant CINDER_STATUS_AVAILABLE","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"f262cadc3e82d80c52a1b3e0cb8f14521433718b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            imageRef\u003dimage_id)"},{"line_number":59,"context_line":"        resource_status \u003d self.manager.get(volume.id).status"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        status \u003d \u0027available\u0027"},{"line_number":62,"context_line":"        start \u003d int(time.time())"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        while resource_status !\u003d status:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_b109052c","line":61,"in_reply_to":"7faddb67_57583089","updated":"2019-08-29 17:50:28.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        while resource_status !\u003d status:"},{"line_number":65,"context_line":"            time.sleep(CONF.cinder.volume_create_retry_interval)"},{"line_number":66,"context_line":"            resource_status \u003d self.manager.get(volume.id).status"},{"line_number":67,"context_line":"            if resource_status \u003d\u003d \u0027error\u0027:"},{"line_number":68,"context_line":"                raise cinder_exceptions.ResourceInErrorState("},{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_775d2c78","line":67,"updated":"2019-08-22 23:07:16.000000000","message":"Same, CINDER_STATUS_ERROR","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"f262cadc3e82d80c52a1b3e0cb8f14521433718b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        while resource_status !\u003d status:"},{"line_number":65,"context_line":"            time.sleep(CONF.cinder.volume_create_retry_interval)"},{"line_number":66,"context_line":"            resource_status \u003d self.manager.get(volume.id).status"},{"line_number":67,"context_line":"            if resource_status \u003d\u003d \u0027error\u0027:"},{"line_number":68,"context_line":"                raise cinder_exceptions.ResourceInErrorState("},{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_5110d14f","line":67,"in_reply_to":"7faddb67_775d2c78","updated":"2019-08-29 17:50:28.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            time.sleep(CONF.cinder.volume_create_retry_interval)"},{"line_number":66,"context_line":"            resource_status \u003d self.manager.get(volume.id).status"},{"line_number":67,"context_line":"            if resource_status \u003d\u003d \u0027error\u0027:"},{"line_number":68,"context_line":"                raise cinder_exceptions.ResourceInErrorState("},{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":71,"context_line":"                raise cinder_exceptions.TimeoutException("}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_97c30807","line":68,"updated":"2019-08-22 23:07:16.000000000","message":"Shouldn\u0027t this attempt to cleanup the volume created above? We don\u0027t want to leave \"error\" resources laying around for each retry loop.","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                raise cinder_exceptions.ResourceInErrorState("},{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":71,"context_line":"                raise cinder_exceptions.TimeoutException("},{"line_number":72,"context_line":"                    obj\u003dvolume, action\u003d\u0027create volume\u0027)"},{"line_number":73,"context_line":"        return volume.id"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_57cd902e","line":71,"updated":"2019-08-22 23:07:16.000000000","message":"Shouldn\u0027t this cleanup the volume created above?","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"9af05650e85bd59861589b20988209045ac22b6a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                raise cinder_exceptions.ResourceInErrorState("},{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":71,"context_line":"                raise cinder_exceptions.TimeoutException("},{"line_number":72,"context_line":"                    obj\u003dvolume, action\u003d\u0027create volume\u0027)"},{"line_number":73,"context_line":"        return volume.id"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_62de4b6b","line":71,"in_reply_to":"7faddb67_57cd902e","updated":"2019-08-30 14:48:11.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"3c3c9faa7fe424ea924cb0df4233e53c93f422ce","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                raise cinder_exceptions.ResourceInErrorState("},{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":71,"context_line":"                raise cinder_exceptions.TimeoutException("},{"line_number":72,"context_line":"                    obj\u003dvolume, action\u003d\u0027create volume\u0027)"},{"line_number":73,"context_line":"        return volume.id"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_71f2ad9d","line":71,"in_reply_to":"7faddb67_57cd902e","updated":"2019-08-29 18:27:55.000000000","message":"Yes, I will add delete method to the volume driver to cleanup such cases","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e203f641b4ade9375b74dee6b40ef93b480264c5","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":71,"context_line":"                raise cinder_exceptions.TimeoutException("},{"line_number":72,"context_line":"                    obj\u003dvolume, action\u003d\u0027create volume\u0027)"},{"line_number":73,"context_line":"        return volume.id"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def get_image_from_volume(self, volume_id):"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_1752b869","line":72,"updated":"2019-08-22 23:07:16.000000000","message":"same, CINDER_ACTION_CREATE_VOLUME","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"},{"author":{"_account_id":23871,"name":"MargaritaShakhova","email":"shakhova.margarita@gmail.com","username":"MargaritaShakhova"},"change_message_id":"f262cadc3e82d80c52a1b3e0cb8f14521433718b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    obj\u003dvolume, fault_msg\u003d\u0027Cannot create volume\u0027)"},{"line_number":70,"context_line":"            if int(time.time()) - start \u003e\u003d CONF.cinder.volume_create_timeout:"},{"line_number":71,"context_line":"                raise cinder_exceptions.TimeoutException("},{"line_number":72,"context_line":"                    obj\u003dvolume, action\u003d\u0027create volume\u0027)"},{"line_number":73,"context_line":"        return volume.id"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def get_image_from_volume(self, volume_id):"}],"source_content_type":"text/x-python","patch_set":37,"id":"7faddb67_710b8d21","line":72,"in_reply_to":"7faddb67_1752b869","updated":"2019-08-29 17:50:28.000000000","message":"Done","commit_id":"79aa641f2ed1a71621f587e229396339760335c5"}],"octavia/volume/drivers/noop_driver/__init__.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_65ce2f2e","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"I don\u0027t think blank init files need licenses","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"9af9b492072203a6932f63d79d0fa6c2bf55f213","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_e5a8df20","line":1,"in_reply_to":"dfbec78f_65ce2f2e","updated":"2019-05-14 20:19:07.000000000","message":"nevermind","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_4107b483","updated":"2019-05-23 04:35:25.000000000","message":"This file should be empty.","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"bfb3d3c7_73188b74","in_reply_to":"bfb3d3c7_4107b483","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/volume/drivers/noop_driver/driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_85d323d5","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"This is a new file, I assume this old copyright came from a copy/paste?","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_412c9401","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2019-05-23 04:35:25.000000000","message":"2019","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_01369c53","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":58},"updated":"2019-05-23 04:35:25.000000000","message":"So you work for HP?\n\nMaybe you can just remove this line","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_13290f89","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":58},"in_reply_to":"bfb3d3c7_01369c53","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"octavia/volume/volume_base.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2011-2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":27,"id":"dfbec78f_25dcb7e2","line":1,"updated":"2019-05-14 20:15:58.000000000","message":"This is a new file, I assume this old copyright came from a copy/paste?","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2011-2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_81f4cc87","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":24},"updated":"2019-05-23 04:35:25.000000000","message":"2019","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2011-2014 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":31,"id":"bfb3d3c7_d32297a4","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":24},"in_reply_to":"bfb3d3c7_81f4cc87","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"releasenotes/notes/volume-based-amphora-9a1899634f5244b0.yaml":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---\r"},{"line_number":2,"context_line":"features:\r"},{"line_number":3,"context_line":"  - |\r"},{"line_number":4,"context_line":"    This will allow create volume based amphora instead of local disk to protect\r"},{"line_number":5,"context_line":"    data and live migrate can perform. Many deploy production use volume based\r"},{"line_number":6,"context_line":"    instances because of more flexibility. Octavia will create volume and attach\r"},{"line_number":7,"context_line":"    this to the amphora.\r"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"dfbec78f_c5f6fb63","line":4,"updated":"2019-05-14 20:15:58.000000000","message":"Please make this message read like one line in a large list of patchnotes. It won\u0027t be clearly linked to any patch when we publish the release notes, so avoid pronouns like \"this\". Maybe just: \"Allow creation of volume based amphora\"","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"af821cac75a5cf3a012fde1f3cf6edbe042039e6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:\r"},{"line_number":3,"context_line":"  - |\r"},{"line_number":4,"context_line":"    Allow creation of volume based amphora.\r"},{"line_number":5,"context_line":"    Many deploy production use volume based instances because of more flexibility. \r"},{"line_number":6,"context_line":"    Octavia will create volume and attach this to the amphora.\r"},{"line_number":7,"context_line":"\r"},{"line_number":8,"context_line":"    Have new settings:\r"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"bfb3d3c7_c1fac473","line":5,"updated":"2019-05-23 04:35:25.000000000","message":"tailing  white space","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"},{"author":{"_account_id":27488,"name":"sapd","email":"saphi070@gmail.com","username":"sapd"},"change_message_id":"1ebc85d19b09ff1687388f4bf8d5715ac7559b8f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:\r"},{"line_number":3,"context_line":"  - |\r"},{"line_number":4,"context_line":"    Allow creation of volume based amphora.\r"},{"line_number":5,"context_line":"    Many deploy production use volume based instances because of more flexibility. \r"},{"line_number":6,"context_line":"    Octavia will create volume and attach this to the amphora.\r"},{"line_number":7,"context_line":"\r"},{"line_number":8,"context_line":"    Have new settings:\r"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"bfb3d3c7_f3255bac","line":5,"in_reply_to":"bfb3d3c7_c1fac473","updated":"2019-05-23 05:10:43.000000000","message":"Done","commit_id":"427deaa25142858857978bd4684b87c106ccf0b7"}],"requirements.txt":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c35a010e096fe2ca28d5612f42ed8eb43cc121fc","unresolved":false,"context_lines":[{"line_number":47,"context_line":"jsonschema\u003e\u003d2.6.0 # MIT"},{"line_number":48,"context_line":"debtcollector\u003e\u003d1.19.0 # Apache-2.0"},{"line_number":49,"context_line":"octavia-lib\u003e\u003d1.1.1 # Apache-2.0"},{"line_number":50,"context_line":"retrying\u003e\u003d1.2.3,!\u003d1.3.0  # Apache-2.0"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"#for the amphora api"},{"line_number":53,"context_line":"Flask!\u003d0.11,\u003e\u003d0.10 # BSD"}],"source_content_type":"text/plain","patch_set":27,"id":"dfbec78f_85ec838f","line":50,"updated":"2019-05-14 20:15:58.000000000","message":"Hopefully use tenacity and remove this","commit_id":"9d41704c5c12ceb9ab7fc1a3c550ff255526ca31"}]}
