)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5a9c298ca88e5cb030460e85648d3a86e8138a57","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The spec updates were based on PTG discussions [1]."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[1] https://etherpad.openstack.org/p/shanghai-ptg-manila-virtual"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Icbdaaf4c4d1063c6251de30a95283d9e08177b9d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_4e6532af","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":0},"updated":"2020-02-13 14:43:38.000000000","message":"Partially-Implements: bp create-share-from-snapshot-in-another-pool-or-backend","commit_id":"74ad6da38306e39842978edf4858635f1b6a4bdb"}],"specs/ussuri/create-share-from-snapshot-in-another-pool.rst":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  This will certainly not work for any of the drivers in manila."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The main benefit from enabling this option is that the scheduler can select"},{"line_number":56,"context_line":"a different compatible back end to place the new share, even when the source\u0027s"},{"line_number":57,"context_line":"share has space enough to handle it. In order to have it working properly, we"},{"line_number":58,"context_line":"need to address the following:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Guarantee that only compatible back ends will receive requests;"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_5aaffa7b","line":57,"range":{"start_line":56,"start_character":70,"end_line":57,"end_character":5},"updated":"2020-01-30 18:45:21.000000000","message":"Do you mean \"source share\u0027s back end\"?","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  This will certainly not work for any of the drivers in manila."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The main benefit from enabling this option is that the scheduler can select"},{"line_number":56,"context_line":"a different compatible back end to place the new share, even when the source\u0027s"},{"line_number":57,"context_line":"share has space enough to handle it. In order to have it working properly, we"},{"line_number":58,"context_line":"need to address the following:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Guarantee that only compatible back ends will receive requests;"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_96da1f48","line":57,"range":{"start_line":56,"start_character":70,"end_line":57,"end_character":5},"in_reply_to":"3fa7e38b_5aaffa7b","updated":"2020-01-31 14:22:08.000000000","message":"Done, thanks","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"457996c61385b15fbbd08221d51fce15262c7b7d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"need to address the following:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Guarantee that only compatible back ends will receive requests;"},{"line_number":61,"context_line":"* Guarantee that, when more that one compatible back end is available, the"},{"line_number":62,"context_line":"  scheduler will choose the best fit;"},{"line_number":63,"context_line":"* No regressions are inserted to the current behavior when the option is"},{"line_number":64,"context_line":"  disabled."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_734efcc2","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":32},"updated":"2020-01-23 20:27:44.000000000","message":"nit: maybe \u0027more than\u0027?","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":58,"context_line":"need to address the following:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Guarantee that only compatible back ends will receive requests;"},{"line_number":61,"context_line":"* Guarantee that, when more that one compatible back end is available, the"},{"line_number":62,"context_line":"  scheduler will choose the best fit;"},{"line_number":63,"context_line":"* No regressions are inserted to the current behavior when the option is"},{"line_number":64,"context_line":"  disabled."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_36dfab3a","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":32},"in_reply_to":"3fa7e38b_734efcc2","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":88,"context_line":"   ends will be weighed based on configured weigher classes."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"2. **User provides the destination AZ.** The scheduler will filter out all back"},{"line_number":91,"context_line":"   ends that does not belong to the user\u0027s specified AZ and all back ends that"},{"line_number":92,"context_line":"   are not compatible with source share\u0027s pool. The list of compatible back"},{"line_number":93,"context_line":"   ends will be weighed based on configured weigher classes."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_9ada521a","line":91,"range":{"start_line":91,"start_character":13,"end_line":91,"end_character":17},"updated":"2020-01-30 18:45:21.000000000","message":"nit: do","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":88,"context_line":"   ends will be weighed based on configured weigher classes."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"2. **User provides the destination AZ.** The scheduler will filter out all back"},{"line_number":91,"context_line":"   ends that does not belong to the user\u0027s specified AZ and all back ends that"},{"line_number":92,"context_line":"   are not compatible with source share\u0027s pool. The list of compatible back"},{"line_number":93,"context_line":"   ends will be weighed based on configured weigher classes."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_56dca742","line":91,"range":{"start_line":91,"start_character":13,"end_line":91,"end_character":17},"in_reply_to":"3fa7e38b_9ada521a","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"457996c61385b15fbbd08221d51fce15262c7b7d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"1. Change how the API handles the availability zone parameter, which is"},{"line_number":109,"context_line":"currently ignored when creating new shares from snapshots;"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"2. Create a new scheduler\u0027s filter ``CreateFromSnapshotFilter``, to identify"},{"line_number":112,"context_line":"compatible back ends;"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"3. Create a new weigher, to improve the scheduler\u0027s selection of the best"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_a1980276","line":111,"range":{"start_line":111,"start_character":37,"end_line":111,"end_character":61},"updated":"2020-01-23 20:27:44.000000000","message":"I think we can gather some people to think about this filter name... I was not able to think in a new name for this and suggest something.","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"799ab5b32b3602b5ec4dbeb18b29b862d56fa1ae","unresolved":false,"context_lines":[{"line_number":108,"context_line":"1. Change how the API handles the availability zone parameter, which is"},{"line_number":109,"context_line":"currently ignored when creating new shares from snapshots;"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"2. Create a new scheduler\u0027s filter ``CreateFromSnapshotFilter``, to identify"},{"line_number":112,"context_line":"compatible back ends;"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"3. Create a new weigher, to improve the scheduler\u0027s selection of the best"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_446de3c9","line":111,"range":{"start_line":111,"start_character":37,"end_line":111,"end_character":61},"in_reply_to":"3fa7e38b_a1980276","updated":"2020-01-30 19:50:45.000000000","message":"If nobody propose another class name, we can let the discussion to the implementation change.","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"different AZ should not be specified). With the option"},{"line_number":133,"context_line":"``use_scheduler_creating_share_from_snapshot`` enabled, the API will need to"},{"line_number":134,"context_line":"forward the AZ parameter into the request sent to the scheduler, otherwise,"},{"line_number":135,"context_line":"the request will fail and the user notified about the reasons of the failure."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Scheduler\u0027s Improvement"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_3a7b1ef4","line":135,"range":{"start_line":135,"start_character":34,"end_line":135,"end_character":35},"updated":"2020-01-30 18:45:21.000000000","message":"nit: will be","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":132,"context_line":"different AZ should not be specified). With the option"},{"line_number":133,"context_line":"``use_scheduler_creating_share_from_snapshot`` enabled, the API will need to"},{"line_number":134,"context_line":"forward the AZ parameter into the request sent to the scheduler, otherwise,"},{"line_number":135,"context_line":"the request will fail and the user notified about the reasons of the failure."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Scheduler\u0027s Improvement"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_16e62f15","line":135,"range":{"start_line":135,"start_character":34,"end_line":135,"end_character":35},"in_reply_to":"3fa7e38b_3a7b1ef4","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"457996c61385b15fbbd08221d51fce15262c7b7d","unresolved":false,"context_lines":[{"line_number":143,"context_line":"This ability will be addressed by existing filters and the use of an already"},{"line_number":144,"context_line":"implemented property:``replication_domain``."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The replication feature are tightly related to the ability of creating a share"},{"line_number":147,"context_line":"in another pools. If two or more back ends are coupled for replication, they"},{"line_number":148,"context_line":"commonly have a fast data between each other, that can be used by some storage"},{"line_number":149,"context_line":"vendors to move, copy and replicate data among the back ends in the replication"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_13ff8803","line":146,"range":{"start_line":146,"start_character":24,"end_line":146,"end_character":27},"updated":"2020-01-23 20:27:44.000000000","message":"nit: is","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":143,"context_line":"This ability will be addressed by existing filters and the use of an already"},{"line_number":144,"context_line":"implemented property:``replication_domain``."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The replication feature are tightly related to the ability of creating a share"},{"line_number":147,"context_line":"in another pools. If two or more back ends are coupled for replication, they"},{"line_number":148,"context_line":"commonly have a fast data between each other, that can be used by some storage"},{"line_number":149,"context_line":"vendors to move, copy and replicate data among the back ends in the replication"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d6b977eb","line":146,"range":{"start_line":146,"start_character":24,"end_line":146,"end_character":27},"in_reply_to":"3fa7e38b_13ff8803","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"implemented property:``replication_domain``."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The replication feature are tightly related to the ability of creating a share"},{"line_number":147,"context_line":"in another pools. If two or more back ends are coupled for replication, they"},{"line_number":148,"context_line":"commonly have a fast data between each other, that can be used by some storage"},{"line_number":149,"context_line":"vendors to move, copy and replicate data among the back ends in the replication"},{"line_number":150,"context_line":"domain."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d5a09b39","line":147,"range":{"start_line":147,"start_character":11,"end_line":147,"end_character":16},"updated":"2020-01-30 18:45:21.000000000","message":"nit: pool","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":144,"context_line":"implemented property:``replication_domain``."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The replication feature are tightly related to the ability of creating a share"},{"line_number":147,"context_line":"in another pools. If two or more back ends are coupled for replication, they"},{"line_number":148,"context_line":"commonly have a fast data between each other, that can be used by some storage"},{"line_number":149,"context_line":"vendors to move, copy and replicate data among the back ends in the replication"},{"line_number":150,"context_line":"domain."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_76ae83a2","line":147,"range":{"start_line":147,"start_character":11,"end_line":147,"end_character":16},"in_reply_to":"3fa7e38b_d5a09b39","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The replication feature are tightly related to the ability of creating a share"},{"line_number":147,"context_line":"in another pools. If two or more back ends are coupled for replication, they"},{"line_number":148,"context_line":"commonly have a fast data between each other, that can be used by some storage"},{"line_number":149,"context_line":"vendors to move, copy and replicate data among the back ends in the replication"},{"line_number":150,"context_line":"domain."},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d54e5b8f","line":148,"range":{"start_line":148,"start_character":25,"end_line":148,"end_character":26},"updated":"2020-01-30 18:45:21.000000000","message":"I\u0027m missing a word here - maybe \u0027link\u0027 or \u0027network\u0027?","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The replication feature are tightly related to the ability of creating a share"},{"line_number":147,"context_line":"in another pools. If two or more back ends are coupled for replication, they"},{"line_number":148,"context_line":"commonly have a fast data between each other, that can be used by some storage"},{"line_number":149,"context_line":"vendors to move, copy and replicate data among the back ends in the replication"},{"line_number":150,"context_line":"domain."},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_16bf0fcb","line":148,"range":{"start_line":148,"start_character":25,"end_line":148,"end_character":26},"in_reply_to":"3fa7e38b_d54e5b8f","updated":"2020-01-31 14:22:08.000000000","message":"Sure, I think that \u0027data link\u0027 solves","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18058,"name":"Lucio Seki","email":"lseki@redhat.com","username":"lseki"},"change_message_id":"1ff33dc158d33b3888e8c62d3a8cc723de3a896a","unresolved":false,"context_lines":[{"line_number":152,"context_line":"This spec proposes to create a new filter, ``CreateFromSnapshotFilter``,"},{"line_number":153,"context_line":"to use the property ``replication_domain`` to identify compatible storage"},{"line_number":154,"context_line":"back ends, i.e., remote pools and back ends capable of creating shares from"},{"line_number":155,"context_line":"snapshots in a efficient way."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"In this proposal it is considered that back ends that can replicate data"},{"line_number":158,"context_line":"between each other should also be able to create new shares in an efficient"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_39514564","line":155,"range":{"start_line":155,"start_character":12,"end_line":155,"end_character":24},"updated":"2020-01-23 21:23:39.000000000","message":"nit: an efficient","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":152,"context_line":"This spec proposes to create a new filter, ``CreateFromSnapshotFilter``,"},{"line_number":153,"context_line":"to use the property ``replication_domain`` to identify compatible storage"},{"line_number":154,"context_line":"back ends, i.e., remote pools and back ends capable of creating shares from"},{"line_number":155,"context_line":"snapshots in a efficient way."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"In this proposal it is considered that back ends that can replicate data"},{"line_number":158,"context_line":"between each other should also be able to create new shares in an efficient"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_b6995b81","line":155,"range":{"start_line":155,"start_character":12,"end_line":155,"end_character":24},"in_reply_to":"3fa7e38b_39514564","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":181,"context_line":"       choice (e.g. 75 points)"},{"line_number":182,"context_line":"    3. different back ends with the same AZ: the destination host is a good"},{"line_number":183,"context_line":"       choice (e.g. 50 points)"},{"line_number":184,"context_line":"    4. different back ends and AZ\u0027s: the destination host isn\u0027t so good choice"},{"line_number":185,"context_line":"       (e.g. 25 points)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Even so, this strategy still doesn\u0027t solve the used space balance use case at"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_902551b0","line":184,"range":{"start_line":184,"start_character":64,"end_line":184,"end_character":66},"updated":"2020-01-30 18:45:21.000000000","message":"nit: a","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":181,"context_line":"       choice (e.g. 75 points)"},{"line_number":182,"context_line":"    3. different back ends with the same AZ: the destination host is a good"},{"line_number":183,"context_line":"       choice (e.g. 50 points)"},{"line_number":184,"context_line":"    4. different back ends and AZ\u0027s: the destination host isn\u0027t so good choice"},{"line_number":185,"context_line":"       (e.g. 25 points)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Even so, this strategy still doesn\u0027t solve the used space balance use case at"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d69e5767","line":184,"range":{"start_line":184,"start_character":64,"end_line":184,"end_character":66},"in_reply_to":"3fa7e38b_902551b0","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"457996c61385b15fbbd08221d51fce15262c7b7d","unresolved":false,"context_lines":[{"line_number":218,"context_line":"      (or the same AZ as the source share\u0027s if unspecified)."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"2. From the scope of back ends determined, we submit them through the"},{"line_number":221,"context_line":"   ``CreateFromSnapshotFilter`` in order to filter incompatible back ends."},{"line_number":222,"context_line":"   After that, we submit them through the regular scheduler filters and"},{"line_number":223,"context_line":"   weighers. If there are no valid weighed back ends, we error out with the"},{"line_number":224,"context_line":"   usual ``No valid host found`` message."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_be967b9f","line":221,"range":{"start_line":221,"start_character":5,"end_line":221,"end_character":29},"updated":"2020-01-23 20:27:44.000000000","message":"Same as above","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":206,"context_line":"We can finally combine these approaches presented here and describe our"},{"line_number":207,"context_line":"proposed scheduling algorithm:"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"1. We start by checking the source share\u0027s back end capabilities to obtain the"},{"line_number":210,"context_line":"   scope of back end candidates that matches the specified AZ (or the source"},{"line_number":211,"context_line":"   share\u0027s AZ if unspecified), which can be either:"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"   a. The same source pool or other pools in the same back end, if the AZ is"},{"line_number":214,"context_line":"      unspecified or if the specified AZ is the same as the source share\u0027s"},{"line_number":215,"context_line":"      one."},{"line_number":216,"context_line":"   b. Other back ends and respective pools that match the same string set"},{"line_number":217,"context_line":"      in ``replication_domain`` and the specified AZ"},{"line_number":218,"context_line":"      (or the same AZ as the source share\u0027s if unspecified)."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"2. From the scope of back ends determined, we submit them through the"},{"line_number":221,"context_line":"   ``CreateFromSnapshotFilter`` in order to filter incompatible back ends."},{"line_number":222,"context_line":"   After that, we submit them through the regular scheduler filters and"},{"line_number":223,"context_line":"   weighers. If there are no valid weighed back ends, we error out with the"},{"line_number":224,"context_line":"   usual ``No valid host found`` message."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"3. In case there is more than one candidate and the source pool is among them,"},{"line_number":227,"context_line":"   the new ``HostAffinityWeigher`` can be used, if enabled by the cloud"},{"line_number":228,"context_line":"   administrator, to weigh hosts that belong to the same source\u0027s pool and/or"},{"line_number":229,"context_line":"   back end."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"In this proposal, we assume that drivers that implement replication features"},{"line_number":232,"context_line":"between compatible back ends shall also be capable of creating new shares from"},{"line_number":233,"context_line":"snapshots in another pool or back end different from the source\u0027s share."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"It is acknowledged that the proposed scheduler behavior for the operation of"},{"line_number":236,"context_line":"creating a new share from a snapshot are a departure from the conventional"},{"line_number":237,"context_line":"scheduler behavior of picking up all configured back ends, filtering and"},{"line_number":238,"context_line":"weighing them."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Share Manager\u0027s Updates"},{"line_number":241,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_f042850e","line":238,"range":{"start_line":209,"start_character":0,"end_line":238,"end_character":14},"updated":"2020-01-30 18:45:21.000000000","message":"Why isn\u0027t 1. done by the (still to be named) ``CreateFromSnapshotFilter``, too (or partly by the ``AvailabilityZoneFilter``) ? I would prefer to avoid the departure from the conventional scheduler behaviour.","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":206,"context_line":"We can finally combine these approaches presented here and describe our"},{"line_number":207,"context_line":"proposed scheduling algorithm:"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"1. We start by checking the source share\u0027s back end capabilities to obtain the"},{"line_number":210,"context_line":"   scope of back end candidates that matches the specified AZ (or the source"},{"line_number":211,"context_line":"   share\u0027s AZ if unspecified), which can be either:"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"   a. The same source pool or other pools in the same back end, if the AZ is"},{"line_number":214,"context_line":"      unspecified or if the specified AZ is the same as the source share\u0027s"},{"line_number":215,"context_line":"      one."},{"line_number":216,"context_line":"   b. Other back ends and respective pools that match the same string set"},{"line_number":217,"context_line":"      in ``replication_domain`` and the specified AZ"},{"line_number":218,"context_line":"      (or the same AZ as the source share\u0027s if unspecified)."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"2. From the scope of back ends determined, we submit them through the"},{"line_number":221,"context_line":"   ``CreateFromSnapshotFilter`` in order to filter incompatible back ends."},{"line_number":222,"context_line":"   After that, we submit them through the regular scheduler filters and"},{"line_number":223,"context_line":"   weighers. If there are no valid weighed back ends, we error out with the"},{"line_number":224,"context_line":"   usual ``No valid host found`` message."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"3. In case there is more than one candidate and the source pool is among them,"},{"line_number":227,"context_line":"   the new ``HostAffinityWeigher`` can be used, if enabled by the cloud"},{"line_number":228,"context_line":"   administrator, to weigh hosts that belong to the same source\u0027s pool and/or"},{"line_number":229,"context_line":"   back end."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"In this proposal, we assume that drivers that implement replication features"},{"line_number":232,"context_line":"between compatible back ends shall also be capable of creating new shares from"},{"line_number":233,"context_line":"snapshots in another pool or back end different from the source\u0027s share."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"It is acknowledged that the proposed scheduler behavior for the operation of"},{"line_number":236,"context_line":"creating a new share from a snapshot are a departure from the conventional"},{"line_number":237,"context_line":"scheduler behavior of picking up all configured back ends, filtering and"},{"line_number":238,"context_line":"weighing them."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Share Manager\u0027s Updates"},{"line_number":241,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_f66fd35e","line":238,"range":{"start_line":209,"start_character":0,"end_line":238,"end_character":14},"in_reply_to":"3fa7e38b_16f15ae0","updated":"2020-01-31 14:22:08.000000000","message":"This part was rewritten and now should explain better how we plan to improve the scheduler instead of change its behavior.","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"799ab5b32b3602b5ec4dbeb18b29b862d56fa1ae","unresolved":false,"context_lines":[{"line_number":206,"context_line":"We can finally combine these approaches presented here and describe our"},{"line_number":207,"context_line":"proposed scheduling algorithm:"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"1. We start by checking the source share\u0027s back end capabilities to obtain the"},{"line_number":210,"context_line":"   scope of back end candidates that matches the specified AZ (or the source"},{"line_number":211,"context_line":"   share\u0027s AZ if unspecified), which can be either:"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"   a. The same source pool or other pools in the same back end, if the AZ is"},{"line_number":214,"context_line":"      unspecified or if the specified AZ is the same as the source share\u0027s"},{"line_number":215,"context_line":"      one."},{"line_number":216,"context_line":"   b. Other back ends and respective pools that match the same string set"},{"line_number":217,"context_line":"      in ``replication_domain`` and the specified AZ"},{"line_number":218,"context_line":"      (or the same AZ as the source share\u0027s if unspecified)."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"2. From the scope of back ends determined, we submit them through the"},{"line_number":221,"context_line":"   ``CreateFromSnapshotFilter`` in order to filter incompatible back ends."},{"line_number":222,"context_line":"   After that, we submit them through the regular scheduler filters and"},{"line_number":223,"context_line":"   weighers. If there are no valid weighed back ends, we error out with the"},{"line_number":224,"context_line":"   usual ``No valid host found`` message."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"3. In case there is more than one candidate and the source pool is among them,"},{"line_number":227,"context_line":"   the new ``HostAffinityWeigher`` can be used, if enabled by the cloud"},{"line_number":228,"context_line":"   administrator, to weigh hosts that belong to the same source\u0027s pool and/or"},{"line_number":229,"context_line":"   back end."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"In this proposal, we assume that drivers that implement replication features"},{"line_number":232,"context_line":"between compatible back ends shall also be capable of creating new shares from"},{"line_number":233,"context_line":"snapshots in another pool or back end different from the source\u0027s share."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"It is acknowledged that the proposed scheduler behavior for the operation of"},{"line_number":236,"context_line":"creating a new share from a snapshot are a departure from the conventional"},{"line_number":237,"context_line":"scheduler behavior of picking up all configured back ends, filtering and"},{"line_number":238,"context_line":"weighing them."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Share Manager\u0027s Updates"},{"line_number":241,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_16f15ae0","line":238,"range":{"start_line":209,"start_character":0,"end_line":238,"end_character":14},"in_reply_to":"3fa7e38b_f042850e","updated":"2020-01-30 19:50:45.000000000","message":"For sure this section needs to be rewritten because is causing confusion. We plan to keep the same scheduler flow and include the new `CreateFromSnapshotFilter`. The `AvailabilityZoneFilter`will continue to filter hosts using the AZ parameter before the new filter be called.","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":243,"context_line":"When creating new shares from snapshots, the driver interface"},{"line_number":244,"context_line":"``create_share_from_snapshot`` is called and a string or a list of export"},{"line_number":245,"context_line":"locations is expected as return in a success scenario. However, by enabling the"},{"line_number":246,"context_line":"creation of shares from snapshot in another pool or backend can potentially"},{"line_number":247,"context_line":"increase the time spent by the driver to complete the requested operation,"},{"line_number":248,"context_line":"considering that it may lead to a data copy between different pools or"},{"line_number":249,"context_line":"backends. To avoid performance impacts, the driver interface will be updated to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_5057d9ca","line":246,"range":{"start_line":246,"start_character":52,"end_line":246,"end_character":59},"updated":"2020-01-30 18:45:21.000000000","message":"nit: back end","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":243,"context_line":"When creating new shares from snapshots, the driver interface"},{"line_number":244,"context_line":"``create_share_from_snapshot`` is called and a string or a list of export"},{"line_number":245,"context_line":"locations is expected as return in a success scenario. However, by enabling the"},{"line_number":246,"context_line":"creation of shares from snapshot in another pool or backend can potentially"},{"line_number":247,"context_line":"increase the time spent by the driver to complete the requested operation,"},{"line_number":248,"context_line":"considering that it may lead to a data copy between different pools or"},{"line_number":249,"context_line":"backends. To avoid performance impacts, the driver interface will be updated to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_b6871b0b","line":246,"range":{"start_line":246,"start_character":52,"end_line":246,"end_character":59},"in_reply_to":"3fa7e38b_5057d9ca","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":246,"context_line":"creation of shares from snapshot in another pool or backend can potentially"},{"line_number":247,"context_line":"increase the time spent by the driver to complete the requested operation,"},{"line_number":248,"context_line":"considering that it may lead to a data copy between different pools or"},{"line_number":249,"context_line":"backends. To avoid performance impacts, the driver interface will be updated to"},{"line_number":250,"context_line":"work in an asynchronous way, by returning a model update, containing the status"},{"line_number":251,"context_line":"of the new share and a list of export locations, if available at share creation"},{"line_number":252,"context_line":"time. The driver can return one of the following status to indicate the current"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_f06b6584","line":249,"range":{"start_line":249,"start_character":0,"end_line":249,"end_character":8},"updated":"2020-01-30 18:45:21.000000000","message":"nit: back ends","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":246,"context_line":"creation of shares from snapshot in another pool or backend can potentially"},{"line_number":247,"context_line":"increase the time spent by the driver to complete the requested operation,"},{"line_number":248,"context_line":"considering that it may lead to a data copy between different pools or"},{"line_number":249,"context_line":"backends. To avoid performance impacts, the driver interface will be updated to"},{"line_number":250,"context_line":"work in an asynchronous way, by returning a model update, containing the status"},{"line_number":251,"context_line":"of the new share and a list of export locations, if available at share creation"},{"line_number":252,"context_line":"time. The driver can return one of the following status to indicate the current"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d68c172f","line":249,"range":{"start_line":249,"start_character":0,"end_line":249,"end_character":8},"in_reply_to":"3fa7e38b_f06b6584","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0768a4d2f8db30aed1ddb9390ffb62558709b4ad","unresolved":false,"context_lines":[{"line_number":316,"context_line":"``[DEFAULT]/use_scheduler_creating_share_from_snapshot`` is set to False, the"},{"line_number":317,"context_line":"API will return a HTTP 400, Bad Request."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"A new API method is desirable to provide progress information regarding a share"},{"line_number":320,"context_line":"creation from a snapshot. The API will be modeled as a new share action:"},{"line_number":321,"context_line":"* Method: POST"},{"line_number":322,"context_line":"* URL: /v2/{project_id}/shares/{share_id}/action"},{"line_number":323,"context_line":"* Normal HTTP response code: 200(OK)"},{"line_number":324,"context_line":"* Expected HTTP error response codes: 400(Bad Request), 401(Unauthorized),"},{"line_number":325,"context_line":"403 (Forbidden), 404(Not Found)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"It will accept the following payload::"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"      {"},{"line_number":330,"context_line":"        \"create_get_progress\": null"},{"line_number":331,"context_line":"      }"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Expected response::"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"      {"},{"line_number":336,"context_line":"        \"total_progress\": 50"},{"line_number":337,"context_line":"      }"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Driver impact"},{"line_number":340,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_a3b7fb21","line":337,"range":{"start_line":319,"start_character":0,"end_line":337,"end_character":7},"updated":"2020-01-29 19:57:19.000000000","message":"Will this be a synchronous API call to the share manager/backend that\u0027s creating this snapshot asynchronously?\n\nIf yes, what are your thoughts on alternatives to avoid problems that synchronous API calls that go over service boundaries can create?","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f843bfe33f19bf8b339cb113e68c26f48f238841","unresolved":false,"context_lines":[{"line_number":316,"context_line":"``[DEFAULT]/use_scheduler_creating_share_from_snapshot`` is set to False, the"},{"line_number":317,"context_line":"API will return a HTTP 400, Bad Request."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"A new API method is desirable to provide progress information regarding a share"},{"line_number":320,"context_line":"creation from a snapshot. The API will be modeled as a new share action:"},{"line_number":321,"context_line":"* Method: POST"},{"line_number":322,"context_line":"* URL: /v2/{project_id}/shares/{share_id}/action"},{"line_number":323,"context_line":"* Normal HTTP response code: 200(OK)"},{"line_number":324,"context_line":"* Expected HTTP error response codes: 400(Bad Request), 401(Unauthorized),"},{"line_number":325,"context_line":"403 (Forbidden), 404(Not Found)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"It will accept the following payload::"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"      {"},{"line_number":330,"context_line":"        \"create_get_progress\": null"},{"line_number":331,"context_line":"      }"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Expected response::"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"      {"},{"line_number":336,"context_line":"        \"total_progress\": 50"},{"line_number":337,"context_line":"      }"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Driver impact"},{"line_number":340,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_96b6aa8c","line":337,"range":{"start_line":319,"start_character":0,"end_line":337,"end_character":7},"in_reply_to":"3fa7e38b_8103cd75","updated":"2020-01-30 20:12:54.000000000","message":"Could we have the periodic check update the progress so that, this is no longer a call to the share manager, but a request to check the database for the last update?\n\nWe don\u0027t lose much; since the periodic thread is poking the backend for status anyway?","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"deecce73b9359e6b0d01c3df71fd1b383044cec5","unresolved":false,"context_lines":[{"line_number":316,"context_line":"``[DEFAULT]/use_scheduler_creating_share_from_snapshot`` is set to False, the"},{"line_number":317,"context_line":"API will return a HTTP 400, Bad Request."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"A new API method is desirable to provide progress information regarding a share"},{"line_number":320,"context_line":"creation from a snapshot. The API will be modeled as a new share action:"},{"line_number":321,"context_line":"* Method: POST"},{"line_number":322,"context_line":"* URL: /v2/{project_id}/shares/{share_id}/action"},{"line_number":323,"context_line":"* Normal HTTP response code: 200(OK)"},{"line_number":324,"context_line":"* Expected HTTP error response codes: 400(Bad Request), 401(Unauthorized),"},{"line_number":325,"context_line":"403 (Forbidden), 404(Not Found)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"It will accept the following payload::"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"      {"},{"line_number":330,"context_line":"        \"create_get_progress\": null"},{"line_number":331,"context_line":"      }"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Expected response::"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"      {"},{"line_number":336,"context_line":"        \"total_progress\": 50"},{"line_number":337,"context_line":"      }"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Driver impact"},{"line_number":340,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_5d6cca04","line":337,"range":{"start_line":319,"start_character":0,"end_line":337,"end_character":7},"in_reply_to":"3fa7e38b_96b6aa8c","updated":"2020-01-31 10:49:08.000000000","message":"Yes, we will avoid more calls to the manager/backend and it will provide a faster answer to the user, however the user couldn\u0027t have the most update progress since the check interval could be configured to a high value. By checking the database I think that we also need to provide the `updated_at` in the `create_get_progress` response. Thanks for the thoughts.","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"799ab5b32b3602b5ec4dbeb18b29b862d56fa1ae","unresolved":false,"context_lines":[{"line_number":316,"context_line":"``[DEFAULT]/use_scheduler_creating_share_from_snapshot`` is set to False, the"},{"line_number":317,"context_line":"API will return a HTTP 400, Bad Request."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"A new API method is desirable to provide progress information regarding a share"},{"line_number":320,"context_line":"creation from a snapshot. The API will be modeled as a new share action:"},{"line_number":321,"context_line":"* Method: POST"},{"line_number":322,"context_line":"* URL: /v2/{project_id}/shares/{share_id}/action"},{"line_number":323,"context_line":"* Normal HTTP response code: 200(OK)"},{"line_number":324,"context_line":"* Expected HTTP error response codes: 400(Bad Request), 401(Unauthorized),"},{"line_number":325,"context_line":"403 (Forbidden), 404(Not Found)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"It will accept the following payload::"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"      {"},{"line_number":330,"context_line":"        \"create_get_progress\": null"},{"line_number":331,"context_line":"      }"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Expected response::"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"      {"},{"line_number":336,"context_line":"        \"total_progress\": 50"},{"line_number":337,"context_line":"      }"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"Driver impact"},{"line_number":340,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_8103cd75","line":337,"range":{"start_line":319,"start_character":0,"end_line":337,"end_character":7},"in_reply_to":"3fa7e38b_a3b7fb21","updated":"2020-01-30 19:50:45.000000000","message":"Yes, it will be synchronous and we expect that this operation doesn\u0027t take too long.\nToday we rely on driver\u0027s implementation to handle requests and return as soon as possible, but this could let the share-manager stuck for a while. Don\u0027t think that we have a small solution for that right now, but we could mitigate it using different thread or even thread pools.\nNot sure if I got your question...","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":339,"context_line":"Driver impact"},{"line_number":340,"context_line":"-------------"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"There is no impact for drivers that does not support or want to support the"},{"line_number":343,"context_line":"proposed feature. If the cloud administrator enables the option"},{"line_number":344,"context_line":"``use_scheduler_creating_share_from_snapshot``, the scheduler filter will"},{"line_number":345,"context_line":"guarantee that unsupported back ends will not receive these kind of requests."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_101721f2","line":342,"range":{"start_line":342,"start_character":36,"end_line":342,"end_character":40},"updated":"2020-01-30 18:45:21.000000000","message":"nit: do","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":339,"context_line":"Driver impact"},{"line_number":340,"context_line":"-------------"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"There is no impact for drivers that does not support or want to support the"},{"line_number":343,"context_line":"proposed feature. If the cloud administrator enables the option"},{"line_number":344,"context_line":"``use_scheduler_creating_share_from_snapshot``, the scheduler filter will"},{"line_number":345,"context_line":"guarantee that unsupported back ends will not receive these kind of requests."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_7691a345","line":342,"range":{"start_line":342,"start_character":36,"end_line":342,"end_character":40},"in_reply_to":"3fa7e38b_101721f2","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1ff867917ba0680e7ac854315ced7602db8a04d8","unresolved":false,"context_lines":[{"line_number":345,"context_line":"guarantee that unsupported back ends will not receive these kind of requests."},{"line_number":346,"context_line":"Vendors that want to support this feature will need to change their drivers"},{"line_number":347,"context_line":"implementation to properly handle this use case. In order to have it working,"},{"line_number":348,"context_line":"some pre-requisites are needed:"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"1. Use the configuration option ``replication_domain`` and supply it to the"},{"line_number":351,"context_line":"scheduler together with the storage pool stats."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_f0de053c","line":348,"range":{"start_line":348,"start_character":5,"end_line":348,"end_character":19},"updated":"2020-01-30 18:45:21.000000000","message":"nit: prerequisites","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":345,"context_line":"guarantee that unsupported back ends will not receive these kind of requests."},{"line_number":346,"context_line":"Vendors that want to support this feature will need to change their drivers"},{"line_number":347,"context_line":"implementation to properly handle this use case. In order to have it working,"},{"line_number":348,"context_line":"some pre-requisites are needed:"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"1. Use the configuration option ``replication_domain`` and supply it to the"},{"line_number":351,"context_line":"scheduler together with the storage pool stats."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_96969f3d","line":348,"range":{"start_line":348,"start_character":5,"end_line":348,"end_character":19},"in_reply_to":"3fa7e38b_f0de053c","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0768a4d2f8db30aed1ddb9390ffb62558709b4ad","unresolved":false,"context_lines":[{"line_number":383,"context_line":"No changes to python-manilaclient are necessary. End users will be able to"},{"line_number":384,"context_line":"create new shares from snapshots in AZs other than the source share\u0027s using the"},{"line_number":385,"context_line":"current python-manilaclient."},{"line_number":386,"context_line":"Optionally, the new API method ``create_get_progress`` can be implemented"},{"line_number":387,"context_line":"on the client to provide progress information to users."},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_83367fb2","line":386,"range":{"start_line":386,"start_character":0,"end_line":386,"end_character":10},"updated":"2020-01-29 19:57:19.000000000","message":"Why is this optional?","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f843bfe33f19bf8b339cb113e68c26f48f238841","unresolved":false,"context_lines":[{"line_number":383,"context_line":"No changes to python-manilaclient are necessary. End users will be able to"},{"line_number":384,"context_line":"create new shares from snapshots in AZs other than the source share\u0027s using the"},{"line_number":385,"context_line":"current python-manilaclient."},{"line_number":386,"context_line":"Optionally, the new API method ``create_get_progress`` can be implemented"},{"line_number":387,"context_line":"on the client to provide progress information to users."},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_b6bba672","line":386,"range":{"start_line":386,"start_character":0,"end_line":386,"end_character":10},"in_reply_to":"3fa7e38b_04312bef","updated":"2020-01-30 20:12:54.000000000","message":"+1, please remove..","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"799ab5b32b3602b5ec4dbeb18b29b862d56fa1ae","unresolved":false,"context_lines":[{"line_number":383,"context_line":"No changes to python-manilaclient are necessary. End users will be able to"},{"line_number":384,"context_line":"create new shares from snapshots in AZs other than the source share\u0027s using the"},{"line_number":385,"context_line":"current python-manilaclient."},{"line_number":386,"context_line":"Optionally, the new API method ``create_get_progress`` can be implemented"},{"line_number":387,"context_line":"on the client to provide progress information to users."},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_04312bef","line":386,"range":{"start_line":386,"start_character":0,"end_line":386,"end_character":10},"in_reply_to":"3fa7e38b_83367fb2","updated":"2020-01-30 19:50:45.000000000","message":"Meaning that this is not mandatory for the main feature, since user will be able to continue creating shares from snapshot without a new manila-client version. I can remove this \u0027optionally\u0027 since it will be implemented anyway, to avoid confusion.","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"3fc4de78b3c9b9c511f3b4bfe242bed29242a7bd","unresolved":false,"context_lines":[{"line_number":383,"context_line":"No changes to python-manilaclient are necessary. End users will be able to"},{"line_number":384,"context_line":"create new shares from snapshots in AZs other than the source share\u0027s using the"},{"line_number":385,"context_line":"current python-manilaclient."},{"line_number":386,"context_line":"Optionally, the new API method ``create_get_progress`` can be implemented"},{"line_number":387,"context_line":"on the client to provide progress information to users."},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_369b2b66","line":386,"range":{"start_line":386,"start_character":0,"end_line":386,"end_character":10},"in_reply_to":"3fa7e38b_b6bba672","updated":"2020-01-31 14:22:08.000000000","message":"Done","commit_id":"ec049ba7ce348f8487d4ac30d79f1ca007dfecea"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39b58f2c4df1d0ce0256d06965e7d919901b13b5","unresolved":false,"context_lines":[{"line_number":299,"context_line":"Data model impact"},{"line_number":300,"context_line":"-----------------"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"None."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"REST API impact"},{"line_number":305,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_2b2e618d","line":302,"range":{"start_line":302,"start_character":0,"end_line":302,"end_character":5},"updated":"2020-01-31 20:10:04.000000000","message":"This is no longer true; if the progress field will be stored in the database.\n\nWill the progress field be part of the \"ShareInstance\" model? If yes, then the \"updated_at\" field is already present on that model; and needs to accurately be updated. \n\nIf that\u0027s the case, no new API is necessary? What do you think of this?","commit_id":"66be989b28659e36895c488c41d58f9a984533c9"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"6fd95d155b8c614e8efeae4f66788662c827ff2a","unresolved":false,"context_lines":[{"line_number":299,"context_line":"Data model impact"},{"line_number":300,"context_line":"-----------------"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"None."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"REST API impact"},{"line_number":305,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_2b6661be","line":302,"range":{"start_line":302,"start_character":0,"end_line":302,"end_character":5},"in_reply_to":"3fa7e38b_2b2e618d","updated":"2020-01-31 20:27:38.000000000","message":"True. Yes, \u0027ShareInstance\u0027 model. If nobody disagree we can just remove the new API method and update \u0027ShareInstance\u0027 model and view. More simple and easy to use.","commit_id":"66be989b28659e36895c488c41d58f9a984533c9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fb3b7cb1c26584ce5b83cd65840ef64de801c2d9","unresolved":false,"context_lines":[{"line_number":299,"context_line":"Data model impact"},{"line_number":300,"context_line":"-----------------"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"None."},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"REST API impact"},{"line_number":305,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_abf8117e","line":302,"range":{"start_line":302,"start_character":0,"end_line":302,"end_character":5},"in_reply_to":"3fa7e38b_2b6661be","updated":"2020-01-31 20:50:36.000000000","message":"+1\n\nIf necessary, we can add a client side helper to just display the progress fields:\n\n openstack share show-create-progress --share \u003cSHARE_ID/SHARE_NAME\u003e\n manila show-share-progress \u003cSHARE_ID/SHARE_NAME\u003e","commit_id":"66be989b28659e36895c488c41d58f9a984533c9"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d2aef58e628a93d8079f3d774ed8d82875f1428a","unresolved":false,"context_lines":[{"line_number":214,"context_line":"   an availability zone restriction, if specified by the user during the share"},{"line_number":215,"context_line":"   creation."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"2. From the scope of back ends determined by regular filters, we submit them"},{"line_number":218,"context_line":"   through the ``CreateFromSnapshotFilter`` in order to filter incompatible"},{"line_number":219,"context_line":"   back ends that don\u0027t fulfill at least one of the restrictions:"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_36cc44bd","line":217,"range":{"start_line":217,"start_character":3,"end_line":217,"end_character":7},"updated":"2020-02-06 02:25:02.000000000","message":"Alongside","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"73d7661c97e72e4c9936478037e4c7ddd7e6fe83","unresolved":false,"context_lines":[{"line_number":214,"context_line":"   an availability zone restriction, if specified by the user during the share"},{"line_number":215,"context_line":"   creation."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"2. From the scope of back ends determined by regular filters, we submit them"},{"line_number":218,"context_line":"   through the ``CreateFromSnapshotFilter`` in order to filter incompatible"},{"line_number":219,"context_line":"   back ends that don\u0027t fulfill at least one of the restrictions:"},{"line_number":220,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_1047c554","line":217,"range":{"start_line":217,"start_character":3,"end_line":217,"end_character":7},"in_reply_to":"3fa7e38b_36cc44bd","updated":"2020-02-06 12:25:51.000000000","message":"Done","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d2aef58e628a93d8079f3d774ed8d82875f1428a","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"4. In case there is more than one candidate, the new ``HostAffinityWeigher``"},{"line_number":230,"context_line":"   can be used, if enabled by the cloud administrator, to weigh hosts based on"},{"line_number":231,"context_line":"   their proximity to the source\u0027s pool."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"In this proposal, we assume that drivers that implement replication features"},{"line_number":234,"context_line":"between compatible back ends shall also be capable of creating new shares from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_56cf80b1","line":231,"range":{"start_line":231,"start_character":39,"end_line":231,"end_character":40},"updated":"2020-02-06 02:25:02.000000000","message":"We do intend on enabling this by default, correct?","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"73d7661c97e72e4c9936478037e4c7ddd7e6fe83","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"4. In case there is more than one candidate, the new ``HostAffinityWeigher``"},{"line_number":230,"context_line":"   can be used, if enabled by the cloud administrator, to weigh hosts based on"},{"line_number":231,"context_line":"   their proximity to the source\u0027s pool."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"In this proposal, we assume that drivers that implement replication features"},{"line_number":234,"context_line":"between compatible back ends shall also be capable of creating new shares from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_9063b5de","line":231,"range":{"start_line":231,"start_character":39,"end_line":231,"end_character":40},"in_reply_to":"3fa7e38b_56cf80b1","updated":"2020-02-06 12:25:51.000000000","message":"Yes, this will not be an optional weigher, will be enabled by default and \u0027skipped\u0027 if no parent snapshot is provided.","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d2aef58e628a93d8079f3d774ed8d82875f1428a","unresolved":false,"context_lines":[{"line_number":338,"context_line":"value. The default implementation will return **0%** for shares in"},{"line_number":339,"context_line":"``STATUS_CREATING_FROM_SNAPSHOT`` and **100%** for shares in"},{"line_number":340,"context_line":"``STATUS_AVAILABLE``."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"Security impact"},{"line_number":343,"context_line":"---------------"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_df3063ed","line":341,"range":{"start_line":341,"start_character":0,"end_line":341,"end_character":0},"updated":"2020-02-06 02:25:02.000000000","message":"I think you\u0027re proposing a new driver interface that can be invoked by the share manager periodically to check for the status of a share from snapshot that will take a while; but you haven\u0027t indicated that in this section.","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"73d7661c97e72e4c9936478037e4c7ddd7e6fe83","unresolved":false,"context_lines":[{"line_number":338,"context_line":"value. The default implementation will return **0%** for shares in"},{"line_number":339,"context_line":"``STATUS_CREATING_FROM_SNAPSHOT`` and **100%** for shares in"},{"line_number":340,"context_line":"``STATUS_AVAILABLE``."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"Security impact"},{"line_number":343,"context_line":"---------------"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_70587924","line":341,"range":{"start_line":341,"start_character":0,"end_line":341,"end_character":0},"in_reply_to":"3fa7e38b_df3063ed","updated":"2020-02-06 12:25:51.000000000","message":"For sure, I forgot to mention the new driver interface that is mandatory when using the asynchronous answer. Thanks for finding this issue.","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d2aef58e628a93d8079f3d774ed8d82875f1428a","unresolved":false,"context_lines":[{"line_number":396,"context_line":"* Implement main patch for manila that includes:"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    * Share API adjustments to pass AZ parameter;"},{"line_number":399,"context_line":"    * New share API method to get share\u0027s progress information when creating"},{"line_number":400,"context_line":"      from snapshot;"},{"line_number":401,"context_line":"    * Scheduler\u0027s new weigher will be added to rate host based on their"},{"line_number":402,"context_line":"      proximity to the source\u0027s share (only enable when creation from"},{"line_number":403,"context_line":"      snapshot);"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_1f54bbfc","line":400,"range":{"start_line":399,"start_character":6,"end_line":400,"end_character":20},"updated":"2020-02-06 02:25:02.000000000","message":"No longer the case..\n\nGET /v2/shares/\u003cID\u003e\nshould get you the progress, at a new version of the manila API.","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"73d7661c97e72e4c9936478037e4c7ddd7e6fe83","unresolved":false,"context_lines":[{"line_number":396,"context_line":"* Implement main patch for manila that includes:"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    * Share API adjustments to pass AZ parameter;"},{"line_number":399,"context_line":"    * New share API method to get share\u0027s progress information when creating"},{"line_number":400,"context_line":"      from snapshot;"},{"line_number":401,"context_line":"    * Scheduler\u0027s new weigher will be added to rate host based on their"},{"line_number":402,"context_line":"      proximity to the source\u0027s share (only enable when creation from"},{"line_number":403,"context_line":"      snapshot);"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_10958594","line":400,"range":{"start_line":399,"start_character":6,"end_line":400,"end_character":20},"in_reply_to":"3fa7e38b_1f54bbfc","updated":"2020-02-06 12:25:51.000000000","message":"Forgot this one, thanks.","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d2aef58e628a93d8079f3d774ed8d82875f1428a","unresolved":false,"context_lines":[{"line_number":409,"context_line":"      share\u0027s status changes;"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"* Testing:"},{"line_number":412,"context_line":"    * Implement enhancements to the devstack plugin to deploy a first party"},{"line_number":413,"context_line":"      driver with multiple AZs;"},{"line_number":414,"context_line":"    * Implement functionality in ZFSonLinux driver to validate correct"},{"line_number":415,"context_line":"      scheduling and share creation from snapshot on different pools."},{"line_number":416,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_3f7097a7","line":413,"range":{"start_line":412,"start_character":6,"end_line":413,"end_character":31},"updated":"2020-02-06 02:25:02.000000000","message":"This ability exists now..","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"73d7661c97e72e4c9936478037e4c7ddd7e6fe83","unresolved":false,"context_lines":[{"line_number":409,"context_line":"      share\u0027s status changes;"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"* Testing:"},{"line_number":412,"context_line":"    * Implement enhancements to the devstack plugin to deploy a first party"},{"line_number":413,"context_line":"      driver with multiple AZs;"},{"line_number":414,"context_line":"    * Implement functionality in ZFSonLinux driver to validate correct"},{"line_number":415,"context_line":"      scheduling and share creation from snapshot on different pools."},{"line_number":416,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_b0a351fd","line":413,"range":{"start_line":412,"start_character":6,"end_line":413,"end_character":31},"in_reply_to":"3fa7e38b_3f7097a7","updated":"2020-02-06 12:25:51.000000000","message":"Done, thanks","commit_id":"02b9562107cb8998bcf5d70af67dc76548583734"}]}
