)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fb14fdf05534af23d12904520fd506e6ea15c770","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Revise Synology DSM storage driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This revision is based on Xing\u0027s last comments on"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/335870/, including:"},{"line_number":11,"context_line":"1. Add an exception message for SynoAuthError"},{"line_number":12,"context_line":"2. Change time.sleep to eventlet.sleep"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_693ff287","line":9,"updated":"2016-07-14 04:37:34.000000000","message":"Please remove my name.  Just say: \n\nThis patch addressed last comments from…...","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"eec63c6d1b4f94fe5c0be41f45377d58f5b57c52","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Revise Synology DSM storage driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This revision is based on Xing\u0027s last comments on"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/335870/, including:"},{"line_number":11,"context_line":"1. Add an exception message for SynoAuthError"},{"line_number":12,"context_line":"2. Change time.sleep to eventlet.sleep"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_d50da290","line":9,"in_reply_to":"1aa78d24_693ff287","updated":"2016-07-15 03:32:33.000000000","message":"Done","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fb14fdf05534af23d12904520fd506e6ea15c770","unresolved":false,"context_lines":[{"line_number":14,"context_line":"4. Report provisioned_capacity_gb and max_over_subscription_ratio in"},{"line_number":15,"context_line":"update_volume_stats"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"DocImpact"},{"line_number":18,"context_line":"Implements: blueprint synology-cinder-driver"},{"line_number":19,"context_line":"Co-Authored-By: Taylor Huang\u003ctaylorh@synology.com\u003e"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_c950a6d7","line":17,"updated":"2016-07-14 04:37:34.000000000","message":"This patch does not need DocImpact because your driver patch already has it.","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"eec63c6d1b4f94fe5c0be41f45377d58f5b57c52","unresolved":false,"context_lines":[{"line_number":14,"context_line":"4. Report provisioned_capacity_gb and max_over_subscription_ratio in"},{"line_number":15,"context_line":"update_volume_stats"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"DocImpact"},{"line_number":18,"context_line":"Implements: blueprint synology-cinder-driver"},{"line_number":19,"context_line":"Co-Authored-By: Taylor Huang\u003ctaylorh@synology.com\u003e"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_1520caf7","line":17,"in_reply_to":"1aa78d24_c950a6d7","updated":"2016-07-15 03:32:33.000000000","message":"Done","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fb14fdf05534af23d12904520fd506e6ea15c770","unresolved":false,"context_lines":[{"line_number":15,"context_line":"update_volume_stats"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"DocImpact"},{"line_number":18,"context_line":"Implements: blueprint synology-cinder-driver"},{"line_number":19,"context_line":"Co-Authored-By: Taylor Huang\u003ctaylorh@synology.com\u003e"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I0ab0b8ab651830412bad87a0fe5d9ac8a601aacb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_a970ba74","line":18,"updated":"2016-07-14 04:37:34.000000000","message":"This is not a blueprint item any more as your driver is merged.  Please remove line 18.\n\nCan you open a bug to track this?  Just add your description in the commit message to the bug report and reference the bug number here.\n\nCloses-Bug: #\u003cbug number\u003e","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"eec63c6d1b4f94fe5c0be41f45377d58f5b57c52","unresolved":false,"context_lines":[{"line_number":15,"context_line":"update_volume_stats"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"DocImpact"},{"line_number":18,"context_line":"Implements: blueprint synology-cinder-driver"},{"line_number":19,"context_line":"Co-Authored-By: Taylor Huang\u003ctaylorh@synology.com\u003e"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I0ab0b8ab651830412bad87a0fe5d9ac8a601aacb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_551a52c7","line":18,"in_reply_to":"1aa78d24_a970ba74","updated":"2016-07-15 03:32:33.000000000","message":"Done","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"}],"cinder/tests/unit/test_synology_common.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"e229debe862147a1b0e7c633004eafa4bffafa2d","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                         result)"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        del out[\u0027data\u0027][\u0027luns\u0027]"},{"line_number":503,"context_line":"        self.assertRaises(exception.MalformedResponse,"},{"line_number":504,"context_line":"                          self.common._get_pool_lun_provisioned_size)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        self.conf.pool_name \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_22611fd4","line":503,"updated":"2016-07-29 18:24:17.000000000","message":"Please, move negative checks to the new test","commit_id":"4f55819c8970b498be552c8b13ab0594ab84c908"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"cef82da8caae5468d288a15dba5602703e2f5b98","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                         result)"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        del out[\u0027data\u0027][\u0027luns\u0027]"},{"line_number":503,"context_line":"        self.assertRaises(exception.MalformedResponse,"},{"line_number":504,"context_line":"                          self.common._get_pool_lun_provisioned_size)"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"        self.conf.pool_name \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_86127855","line":503,"in_reply_to":"bacf61ea_22611fd4","updated":"2016-08-01 02:33:43.000000000","message":"Done","commit_id":"4f55819c8970b498be552c8b13ab0594ab84c908"}],"cinder/volume/drivers/synology/synology_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fb14fdf05534af23d12904520fd506e6ea15c770","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        free_capacity_gb \u003d int(int(info[\u0027size_free_byte\u0027]) / units.Gi)"},{"line_number":465,"context_line":"        total_capacity_gb \u003d int(int(info[\u0027size_total_byte\u0027]) / units.Gi)"},{"line_number":466,"context_line":"        provisioned_capacity_gb \u003d int((int(info[\u0027size_total_byte\u0027]) -"},{"line_number":467,"context_line":"                                       int(info[\u0027size_free_byte\u0027])) / units.Gi)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        return free_capacity_gb, total_capacity_gb, provisioned_capacity_gb"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_89917e9d","line":467,"updated":"2016-07-14 04:37:34.000000000","message":"provisioned_capacity is the virtual capacity.  Assume you have a thin pool with size 100GB (that is the total_capacity) and you created 2 thin volumes of 100GB each. So the provisioned_capacity should be 200GB.  At this point, you have not used any space on those two volumes yet (have not written any data to it), so used_capacity is 0 and free_capacity is still 100GB.  Once you start writing data to it, the free_capacity will get smaller.  Assume now you\u0027ve used 80GB of the total space.  Now free_capacity becomes 20GB, total_capacity is still 100GB, and provisioned_capacity is still 200GB.\n\nDo you have a way to report the provisioned_capacity as I described above?  Do you have some other capacity measurement, i.e., subscribed capacity?","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"eec63c6d1b4f94fe5c0be41f45377d58f5b57c52","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        free_capacity_gb \u003d int(int(info[\u0027size_free_byte\u0027]) / units.Gi)"},{"line_number":465,"context_line":"        total_capacity_gb \u003d int(int(info[\u0027size_total_byte\u0027]) / units.Gi)"},{"line_number":466,"context_line":"        provisioned_capacity_gb \u003d int((int(info[\u0027size_total_byte\u0027]) -"},{"line_number":467,"context_line":"                                       int(info[\u0027size_free_byte\u0027])) / units.Gi)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        return free_capacity_gb, total_capacity_gb, provisioned_capacity_gb"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_75fb0e48","line":467,"in_reply_to":"1aa78d24_89917e9d","updated":"2016-07-15 03:32:33.000000000","message":"Hi Xing,\nYes, we could report the provisioned capacity. Also we could report the size thin volumes actually used.\nThanks.","commit_id":"5023ba0cc87f979e6e799f757b94a0d9d20c5df5"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"92977abf28467e9a1ed091e4a1bcaa3b690b59a7","unresolved":false,"context_lines":[{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"},{"line_number":1007,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d total_gb"},{"line_number":1008,"context_line":"        data[\u0027provisioned_capacity_gb\u0027] \u003d lun_provisioned_gb + user_used_gb"},{"line_number":1009,"context_line":"        data[\u0027max_over_subscription_ratio\u0027] \u003d (self.config."},{"line_number":1010,"context_line":"                                               max_over_subscription_ratio)"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fad55976_59a37a4f","line":1008,"updated":"2016-07-17 06:17:22.000000000","message":"Does lun_provisioned_gb already contains user_used_gb?\n\nLet me explain this by an example to make sure we are on the same page.\n\n(1) If you have 100GB total capacity to begin with and you have not created any volumes.  Here are what you should report:\n\ntotal_capacity \u003d 100GB, free_capacity \u003d 100GB, provisioned_capacity \u003d 0,\n\nYou don’t need to report used_capacity, but it should be used_capacity\u003d0 for the illustration.\n\n(2) Now you created 2 thin volumes of 100GB each but have not written any data to the two thin volumes yet, and you also created a 50GB thick volume.  Here is what you should report:\n\ntotal_capacity \u003d 100GB, free_capacity \u003d 50GB, provisioned_capacity \u003d 200GB thin + 50GB thick \u003d 250GB,\n\nFor illustration: used_capacity\u003d50GB\n\n(3) Continue with the above, now you’ve written 30GB to the thin volumes.  Here are what you should report:\n\ntotal_capacity \u003d 100GB, free_capacity \u003d 20GB, allocated \u003d 80GB, provisioned_capacity \u003d 250GB\n\nFor illustration: used_capacity \u003d 80GB","commit_id":"79ca207e2bfbfb9326803c5ca27688de64ee36b1"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6bf8f84f7986b80edcc072572a1e110c340dfa8b","unresolved":false,"context_lines":[{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"},{"line_number":1007,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d total_gb"},{"line_number":1008,"context_line":"        data[\u0027provisioned_capacity_gb\u0027] \u003d lun_provisioned_gb + user_used_gb"},{"line_number":1009,"context_line":"        data[\u0027max_over_subscription_ratio\u0027] \u003d (self.config."},{"line_number":1010,"context_line":"                                               max_over_subscription_ratio)"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_c1f4cb88","line":1008,"in_reply_to":"dada55a8_15f3f70b","updated":"2016-07-24 01:08:44.000000000","message":"Hi Arsen,\n\nI think it\u0027s better to rename to other_user_data_gb.  Also can you add your explanations above to the code as comments to avoid future confusion?  Thanks.","commit_id":"79ca207e2bfbfb9326803c5ca27688de64ee36b1"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"0628f065a6f5359cff1e59f92ab9215ed5f2c18b","unresolved":false,"context_lines":[{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"},{"line_number":1007,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d total_gb"},{"line_number":1008,"context_line":"        data[\u0027provisioned_capacity_gb\u0027] \u003d lun_provisioned_gb + user_used_gb"},{"line_number":1009,"context_line":"        data[\u0027max_over_subscription_ratio\u0027] \u003d (self.config."},{"line_number":1010,"context_line":"                                               max_over_subscription_ratio)"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_ddbe66fe","line":1008,"in_reply_to":"dada55a8_c1f4cb88","updated":"2016-07-25 02:12:21.000000000","message":"Done","commit_id":"79ca207e2bfbfb9326803c5ca27688de64ee36b1"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"1b1de6fc7e75c845d6477a9931ef875f755c5a63","unresolved":false,"context_lines":[{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"},{"line_number":1007,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d total_gb"},{"line_number":1008,"context_line":"        data[\u0027provisioned_capacity_gb\u0027] \u003d lun_provisioned_gb + user_used_gb"},{"line_number":1009,"context_line":"        data[\u0027max_over_subscription_ratio\u0027] \u003d (self.config."},{"line_number":1010,"context_line":"                                               max_over_subscription_ratio)"},{"line_number":1011,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_15f3f70b","line":1008,"in_reply_to":"fad55976_59a37a4f","updated":"2016-07-18 03:02:12.000000000","message":"Hi Xing,\n\nThank you for giving such a clear example.\n\nlun_provisioned_gb doesn\u0027t contain user_used_gb.\nThere are three kinds of data on the Synology backend pool:\n1. Thin volumes (luns on the pool),\n2. Thick volumes (luns on the pool),\n3. Other user data.\nThe 3rd one is not mentioned in the example and its size is reported as user_used_gb. lun_provisioned_gb is the summation of all thin/thick volume size.\nSo, in the example, the user_used_gb equals to 0 and all the data are reported as you described.\nIf\n(4) user write another 10 GB to \"other user data\", total_capacity \u003d 100GB, free_capacity \u003d 20 - 10 \u003d 10GB, provisioned_capacity \u003d 250 + 10 \u003d 260GB will be reported.\n\nIs it better to rename user_used_gb to other_used_gb or not_volume_used_gb or not_lun_used_gb?\n\nThanks.\nArsen","commit_id":"79ca207e2bfbfb9326803c5ca27688de64ee36b1"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"994476e81e467698d3c385ece25234f4ea04807a","unresolved":false,"context_lines":[{"line_number":489,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_pool_lun_provisioned_size.\u0027))"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        if not self.check_value_valid(out, [\u0027data\u0027, \u0027luns\u0027], list):"},{"line_number":492,"context_line":"            raise exception.MalformedResponse(cmd\u003d\u0027_get_pool_info\u0027,"},{"line_number":493,"context_line":"                                              reason\u003d_(\u0027no data found\u0027))"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"        size \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_560a63d3","line":492,"range":{"start_line":492,"start_character":51,"end_line":492,"end_character":65},"updated":"2016-07-28 13:06:56.000000000","message":"_get_pool_lun_provisioned_size","commit_id":"146466a7d332b0bc9c62ccfc30fddb9d42946517"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"eb0091a40489ec35c2bd3bb09f0ebe36dfef407a","unresolved":false,"context_lines":[{"line_number":489,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_pool_lun_provisioned_size.\u0027))"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        if not self.check_value_valid(out, [\u0027data\u0027, \u0027luns\u0027], list):"},{"line_number":492,"context_line":"            raise exception.MalformedResponse(cmd\u003d\u0027_get_pool_info\u0027,"},{"line_number":493,"context_line":"                                              reason\u003d_(\u0027no data found\u0027))"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"        size \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_ae98861c","line":492,"range":{"start_line":492,"start_character":51,"end_line":492,"end_character":65},"in_reply_to":"bacf61ea_560a63d3","updated":"2016-07-29 02:01:33.000000000","message":"Done","commit_id":"146466a7d332b0bc9c62ccfc30fddb9d42946517"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"994476e81e467698d3c385ece25234f4ea04807a","unresolved":false,"context_lines":[{"line_number":536,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_lun_uuid. [%s]\u0027), lun_name)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        if not self.check_value_valid(lun_info, [\u0027uuid\u0027], string_types):"},{"line_number":539,"context_line":"            raise exception.MalformedResponse(cmd\u003d\u0027_get_lun_info\u0027,"},{"line_number":540,"context_line":"                                              reason\u003d_(\u0027uuid not found\u0027))"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        return lun_info[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_d66f7390","line":539,"range":{"start_line":539,"start_character":51,"end_line":539,"end_character":64},"updated":"2016-07-28 13:06:56.000000000","message":"_get_lun_uuid","commit_id":"146466a7d332b0bc9c62ccfc30fddb9d42946517"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"eb0091a40489ec35c2bd3bb09f0ebe36dfef407a","unresolved":false,"context_lines":[{"line_number":536,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_lun_uuid. [%s]\u0027), lun_name)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        if not self.check_value_valid(lun_info, [\u0027uuid\u0027], string_types):"},{"line_number":539,"context_line":"            raise exception.MalformedResponse(cmd\u003d\u0027_get_lun_info\u0027,"},{"line_number":540,"context_line":"                                              reason\u003d_(\u0027uuid not found\u0027))"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        return lun_info[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_0ea0b242","line":539,"range":{"start_line":539,"start_character":51,"end_line":539,"end_character":64},"in_reply_to":"bacf61ea_d66f7390","updated":"2016-07-29 02:01:33.000000000","message":"Done","commit_id":"146466a7d332b0bc9c62ccfc30fddb9d42946517"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"f58bf17ec41681fc1bb91bf50b020d4c261d52d1","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        pool_name \u003d self.config.pool_name"},{"line_number":476,"context_line":"        if not pool_name:"},{"line_number":477,"context_line":"            raise exception.InvalidConfigurationValue(option\u003d\u0027pool_name\u0027,"},{"line_number":478,"context_line":"                                                      value\u003d\u0027\u0027)"},{"line_number":479,"context_line":"        try:"},{"line_number":480,"context_line":"            out \u003d self.exec_webapi(\u0027SYNO.Core.ISCSI.LUN\u0027,"},{"line_number":481,"context_line":"                                   \u0027list\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_6c84ead3","line":478,"range":{"start_line":478,"start_character":60,"end_line":478,"end_character":62},"updated":"2016-08-09 13:30:36.000000000","message":"The exception will be raised if pool_name is None. I think we should set value\u003dpool_name.","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"e007168d336b271b9b74423e9b7760447d64312d","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        pool_name \u003d self.config.pool_name"},{"line_number":476,"context_line":"        if not pool_name:"},{"line_number":477,"context_line":"            raise exception.InvalidConfigurationValue(option\u003d\u0027pool_name\u0027,"},{"line_number":478,"context_line":"                                                      value\u003d\u0027\u0027)"},{"line_number":479,"context_line":"        try:"},{"line_number":480,"context_line":"            out \u003d self.exec_webapi(\u0027SYNO.Core.ISCSI.LUN\u0027,"},{"line_number":481,"context_line":"                                   \u0027list\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_506d7931","line":478,"range":{"start_line":478,"start_character":60,"end_line":478,"end_character":62},"in_reply_to":"9ad45d7e_551f2709","updated":"2016-08-15 04:46:38.000000000","message":"Done","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"41ab6a73e4fc880651a9403e25ae85da56c0e599","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        pool_name \u003d self.config.pool_name"},{"line_number":476,"context_line":"        if not pool_name:"},{"line_number":477,"context_line":"            raise exception.InvalidConfigurationValue(option\u003d\u0027pool_name\u0027,"},{"line_number":478,"context_line":"                                                      value\u003d\u0027\u0027)"},{"line_number":479,"context_line":"        try:"},{"line_number":480,"context_line":"            out \u003d self.exec_webapi(\u0027SYNO.Core.ISCSI.LUN\u0027,"},{"line_number":481,"context_line":"                                   \u0027list\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_551f2709","line":478,"range":{"start_line":478,"start_character":60,"end_line":478,"end_character":62},"in_reply_to":"9ad45d7e_6c84ead3","updated":"2016-08-12 13:02:10.000000000","message":"+1","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"f58bf17ec41681fc1bb91bf50b020d4c261d52d1","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                                   location\u003d\u0027/\u0027 + pool_name)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"            self.check_response(out)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        except Exception:"},{"line_number":488,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":489,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_pool_lun_provisioned_size.\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_4c5e4677","line":486,"updated":"2016-08-09 13:30:36.000000000","message":"nit: empty line","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"e007168d336b271b9b74423e9b7760447d64312d","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                                   location\u003d\u0027/\u0027 + pool_name)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"            self.check_response(out)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        except Exception:"},{"line_number":488,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":489,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_pool_lun_provisioned_size.\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_306a7d1b","line":486,"in_reply_to":"9ad45d7e_4c5e4677","updated":"2016-08-15 04:46:38.000000000","message":"Done","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bf5552de98fe86d1fccc5e4f3a0f7bd13c073edc","unresolved":false,"context_lines":[{"line_number":484,"context_line":""},{"line_number":485,"context_line":"            self.check_response(out)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        except Exception:"},{"line_number":488,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":489,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_pool_lun_provisioned_size.\u0027))"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_5f20ec49","line":487,"updated":"2016-08-14 21:04:35.000000000","message":"Could we catch more specific exception here?","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"e007168d336b271b9b74423e9b7760447d64312d","unresolved":false,"context_lines":[{"line_number":484,"context_line":""},{"line_number":485,"context_line":"            self.check_response(out)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        except Exception:"},{"line_number":488,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":489,"context_line":"                LOG.exception(_LE(\u0027Failed to _get_pool_lun_provisioned_size.\u0027))"},{"line_number":490,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_d030490a","line":487,"in_reply_to":"3ac371cc_5f20ec49","updated":"2016-08-15 04:46:38.000000000","message":"Hi Ivan,\n\nMethod exec_webapi and check_response raise many types of exception. We wanted to catch all of them and log the method name for quick debugging and storage backend check.\n\nArsen","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"41ab6a73e4fc880651a9403e25ae85da56c0e599","unresolved":false,"context_lines":[{"line_number":753,"context_line":"                status, locked \u003d self._get_lun_status(volume_name)"},{"line_number":754,"context_line":"                if not locked:"},{"line_number":755,"context_line":"                    break"},{"line_number":756,"context_line":"                eventlet.sleep(2)"},{"line_number":757,"context_line":"        except Exception:"},{"line_number":758,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":759,"context_line":"                LOG.exception(_LE(\u0027Failed to get lun status. [%s]\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_35227302","line":756,"range":{"start_line":756,"start_character":16,"end_line":756,"end_character":33},"updated":"2016-08-12 13:02:10.000000000","message":"What happens if the LUN stuck locked in the BE? Can that happen?","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"e007168d336b271b9b74423e9b7760447d64312d","unresolved":false,"context_lines":[{"line_number":753,"context_line":"                status, locked \u003d self._get_lun_status(volume_name)"},{"line_number":754,"context_line":"                if not locked:"},{"line_number":755,"context_line":"                    break"},{"line_number":756,"context_line":"                eventlet.sleep(2)"},{"line_number":757,"context_line":"        except Exception:"},{"line_number":758,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":759,"context_line":"                LOG.exception(_LE(\u0027Failed to get lun status. [%s]\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_d63b229b","line":756,"range":{"start_line":756,"start_character":16,"end_line":756,"end_character":33},"in_reply_to":"9ad45d7e_35227302","updated":"2016-08-15 04:46:38.000000000","message":"Hi Erlon,\n\nIt might happen. But it means something goes wrong or correctly but takes a long time on the storage backend, so we didn\u0027t take any actions here and just checked lock status instead.\n\nArsen","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"41ab6a73e4fc880651a9403e25ae85da56c0e599","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d False"},{"line_number":1012,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":1013,"context_line":"        data[\u0027thin_provisioning_support\u0027] \u003d True"},{"line_number":1014,"context_line":"        data[\u0027thick_provisioning_support\u0027] \u003d False"},{"line_number":1015,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d self.config.reserved_percentage"},{"line_number":1016,"context_line":""},{"line_number":1017,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"9ad45d7e_f5473b75","line":1014,"range":{"start_line":1014,"start_character":7,"end_line":1014,"end_character":50},"updated":"2016-08-12 13:02:10.000000000","message":"You say in the doc string that you can store Think volumes. Shouldn\u0027t you report True here?","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"},{"author":{"_account_id":22100,"name":"Arsen Chen","email":"arsenc@synology.com","username":"arsenc"},"change_message_id":"e007168d336b271b9b74423e9b7760447d64312d","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d False"},{"line_number":1012,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":1013,"context_line":"        data[\u0027thin_provisioning_support\u0027] \u003d True"},{"line_number":1014,"context_line":"        data[\u0027thick_provisioning_support\u0027] \u003d False"},{"line_number":1015,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d self.config.reserved_percentage"},{"line_number":1016,"context_line":""},{"line_number":1017,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d free_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_d60962df","line":1014,"range":{"start_line":1014,"start_character":7,"end_line":1014,"end_character":50},"in_reply_to":"9ad45d7e_f5473b75","updated":"2016-08-15 04:46:38.000000000","message":"Hi Erlon,\n\nOnly thin volumes can be used by Cinder volume. Comments have been added.\n\nArsen","commit_id":"e9c903b6d65f55fd5703c9c4ca5b9e809a725520"}]}
