)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7a756328569d0d98a12c3aa0a1dcf66127ff3fb5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"called `MISC_SHARES_VIA_AGGREGATE`. This indicates that the"},{"line_number":15,"context_line":"provider allows its inventory to be consumed by other resource"},{"line_number":16,"context_line":"providers associated via an aggregate link."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I0d64d785dc96f37cb8a7d5ac182bc14dcc6502a6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5fc1f717_ce99481f","line":17,"updated":"2019-06-04 21:39:47.000000000","message":"Please add\n\n blueprint: support-shared-storage-resource-provider","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"}],"specs/train/approved/support-shared-storage-resource-provider.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"34b2405966f903ea6f3ad7ca72cc0eaa686ee416","unresolved":false,"context_lines":[{"line_number":75,"context_line":"   hosts are using the same shared storage resource provider as described in"},{"line_number":76,"context_line":"   specs `resize-on-shared-storage-without-ssh-keys spec"},{"line_number":77,"context_line":"   \u003chttps://review.openstack.org/#/c/551927\u003e`_."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Proposed change"},{"line_number":81,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_632426c7","line":78,"updated":"2019-04-05 16:16:22.000000000","message":"There\u0027s another use cases here that applies to clustered hypervisors. At least vmware, but maybe powervm as well. In those environments it can be the case that clusters have more than one datastore and those datastores could (but don\u0027t always) span multiple clusters. In that kind of setup, using shared providers to represent all the datastores, even if they are only used by the one cluster is a useful solution.\n\nThis allows available disk to be reported.\n\nI\u0027ve done some experiments in this vein at: https://github.com/cdent/placement-disk-models","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"4f3068d47dcd5e2defe91eb313eddd7b10eaa3a4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"   node root resource provider. If above condition is True, it means Reshape"},{"line_number":94,"context_line":"   is needed."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"2. Add a new data migration metho to move the allocations of DISK_GB resource"},{"line_number":97,"context_line":"   from compute node resource provider to the shared storage resource provider."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Move operation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_5672137e","line":96,"range":{"start_line":96,"start_character":28,"end_line":96,"end_character":33},"updated":"2019-04-05 05:56:46.000000000","message":"method","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"34b2405966f903ea6f3ad7ca72cc0eaa686ee416","unresolved":false,"context_lines":[{"line_number":94,"context_line":"   is needed."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"2. Add a new data migration metho to move the allocations of DISK_GB resource"},{"line_number":97,"context_line":"   from compute node resource provider to the shared storage resource provider."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Move operation"},{"line_number":100,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_0330c255","line":97,"updated":"2019-04-05 16:16:22.000000000","message":"If 1 is happening, why is 2 needed?","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"34b2405966f903ea6f3ad7ca72cc0eaa686ee416","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Performance Impact"},{"line_number":160,"context_line":"------------------"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"None"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Other deployer impact"},{"line_number":165,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_a368cef3","line":162,"updated":"2019-04-05 16:16:22.000000000","message":"I think there\u0027s a potential performance concern if many compute nodes start using shared storage at the same time. There may be a thundering herd against /reshape that we need to think and warn about.","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"34b2405966f903ea6f3ad7ca72cc0eaa686ee416","unresolved":false,"context_lines":[{"line_number":172,"context_line":"4. Create an aggregate for e.g. \"AGG_1\""},{"line_number":173,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":174,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":175,"context_line":"   an aggregate \"AGG_1\""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Developer impact"},{"line_number":178,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_6388a6c5","line":175,"updated":"2019-04-05 16:16:22.000000000","message":"It would be great if we could make this something the virtdriver can do, perhaps optionally. Maybe as a second phase.\n\nTo me, a virt driver knows what kind of storage it is sitting on. If it is not local, it should be able to see if there is already a resource provider representing that storage. If not, it should create one and make it a misc shares, create the aggregate and put itself and the compute node in the aggregate.\n\nIf the shared provider already exists, the compute-node should make sure it is in the associated aggregate.\n\nRequiring the operator do the work that we ought to be able to automate is sub-optimal.\n\nIf I remember correctly, efried already put some thought into this kind of thing when working on update_provider_tree.\n\nAll this, of course, assumes that a virtdriver can detect that it is using shared disk. This is obvious in some virtdrivers, but potentially not all.","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"892b24b74f38f9de7a60d5860d8d6a200b05af7e","unresolved":false,"context_lines":[{"line_number":172,"context_line":"4. Create an aggregate for e.g. \"AGG_1\""},{"line_number":173,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":174,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":175,"context_line":"   an aggregate \"AGG_1\""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Developer impact"},{"line_number":178,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_54a18fa8","line":175,"in_reply_to":"5fc1f717_6388a6c5","updated":"2019-04-08 07:11:29.000000000","message":"I haven\u0027t included this point in the updated PS.\n\nWill need to check the feasibility before making changes to the specs.","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"34b2405966f903ea6f3ad7ca72cc0eaa686ee416","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"Planning to implement this change only in libvirt driver as"},{"line_number":181,"context_line":"\"update_provider_tree\" method is not supported in some of the other"},{"line_number":182,"context_line":"hypervisors except \"powervm\"."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Upgrade impact"},{"line_number":185,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_43000a03","line":182,"updated":"2019-04-05 16:16:22.000000000","message":"I\u0027m intending to get update_provider_tree working for the vmware driver, in large part to support the use case I\u0027ve mentioned above, but also because it needs to be done.","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"34b2405966f903ea6f3ad7ca72cc0eaa686ee416","unresolved":false,"context_lines":[{"line_number":212,"context_line":"  shilpa.devharakar \u003cshilpa.devharakar@nttdata.com\u003e"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Other contributors:"},{"line_number":215,"context_line":"   Other developers from NTT"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Work Items"},{"line_number":218,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_06045014","line":215,"updated":"2019-04-05 16:16:22.000000000","message":"I\u0027d like to help out on this. I think getting shared disk working properly with nova and placement is one of the main benefits that placement was built to provide so finally getting it working will be great.","commit_id":"75136a9a648a30399b18a557343368a9cb6172a3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   scheduler to pick a dest host for the instance and allocate resources"},{"line_number":46,"context_line":"   against the destination host (and optionally shared storage provider). So,"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * The DISK_GB allocation from the instance to the shared storage"},{"line_number":49,"context_line":"     provider is deleted for a short window of time during scheduling until"},{"line_number":50,"context_line":"     we pick a destination host."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"   * If cold migrate fails or is reverted, we delete the allocations"},{"line_number":53,"context_line":"     (created by the scheduler) and move the allocations from the migration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_7841fe62","line":50,"range":{"start_line":48,"start_character":5,"end_line":50,"end_character":32},"updated":"2019-04-09 11:56:09.000000000","message":"I don\u0027t think this is true today. Nova does not delete the source allocation during the move. It just changes the owner of the source allocation from the instance to the migration. But the source host resources are allocated all the time during the resize, up until the resize is confirmed and the source host is cleaned up.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4867516074c2a2d8015a3cc3cc22bddb7bb54a79","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   scheduler to pick a dest host for the instance and allocate resources"},{"line_number":46,"context_line":"   against the destination host (and optionally shared storage provider). So,"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * The DISK_GB allocation from the instance to the shared storage"},{"line_number":49,"context_line":"     provider is deleted for a short window of time during scheduling until"},{"line_number":50,"context_line":"     we pick a destination host."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"   * If cold migrate fails or is reverted, we delete the allocations"},{"line_number":53,"context_line":"     (created by the scheduler) and move the allocations from the migration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_d38cf180","line":50,"range":{"start_line":48,"start_character":5,"end_line":50,"end_character":32},"in_reply_to":"5fc1f717_0edd10dc","updated":"2019-04-16 09:30:34.000000000","message":"I think the comment in [1] is not valid any more but it is worth to check with a test case if the move_allocation handles shared allocations properly. I think it will move the DISK_GB allocation to the migration_uuid as well, and then the scheduler will allocate another set if DISK_GB resources for the instance during the migration. I think this does not lead to inconsistency but it will create a doubled allocation against the sharing provider during the migration which might not be needed.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c5c1763be9485bfb8c105e576a0ca32afc598a99","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   scheduler to pick a dest host for the instance and allocate resources"},{"line_number":46,"context_line":"   against the destination host (and optionally shared storage provider). So,"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * The DISK_GB allocation from the instance to the shared storage"},{"line_number":49,"context_line":"     provider is deleted for a short window of time during scheduling until"},{"line_number":50,"context_line":"     we pick a destination host."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"   * If cold migrate fails or is reverted, we delete the allocations"},{"line_number":53,"context_line":"     (created by the scheduler) and move the allocations from the migration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_0edd10dc","line":50,"range":{"start_line":48,"start_character":5,"end_line":50,"end_character":32},"in_reply_to":"5fc1f717_7841fe62","updated":"2019-04-09 13:32:27.000000000","message":"I thought this issue is present in the code during moving allocations at [1]. Will confirm this point and remove it in the next PS accordingly.\n\n[1] : https://github.com/openstack/nova/blob/master/nova/conductor/tasks/migrate.py#L71","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Upgrade DISK_GB from compute node to shared storage resource provider"},{"line_number":91,"context_line":"----------------------------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Check if compute node is configured to use DISK_GB resources from a shared"},{"line_number":94,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":95,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":96,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_7b525814","line":93,"range":{"start_line":93,"start_character":25,"end_line":93,"end_character":35},"updated":"2019-04-09 11:56:09.000000000","message":"Does it mean that there will be a new config option? Or does it mean that the compute detects that there is a sharing RP with DISK_GB in its provider tree?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4867516074c2a2d8015a3cc3cc22bddb7bb54a79","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Upgrade DISK_GB from compute node to shared storage resource provider"},{"line_number":91,"context_line":"----------------------------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Check if compute node is configured to use DISK_GB resources from a shared"},{"line_number":94,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":95,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":96,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_93ec292a","line":93,"range":{"start_line":93,"start_character":25,"end_line":93,"end_character":35},"in_reply_to":"5fc1f717_2e032c44","updated":"2019-04-16 09:30:34.000000000","message":"I see. Thanks.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c5c1763be9485bfb8c105e576a0ca32afc598a99","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Upgrade DISK_GB from compute node to shared storage resource provider"},{"line_number":91,"context_line":"----------------------------------------------------------------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Check if compute node is configured to use DISK_GB resources from a shared"},{"line_number":94,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":95,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":96,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_2e032c44","line":93,"range":{"start_line":93,"start_character":25,"end_line":93,"end_character":35},"in_reply_to":"5fc1f717_7b525814","updated":"2019-04-09 13:32:27.000000000","message":"No need of new config option. Compute will detect it on startup using provider tree. But here, I\u0027m assuming the configuration of shared storage RP in placement is done by operator outside nova.\n\nChris had raised this point in previous PS if it\u0027s possible to detect compute node is configured to use shared storage so that nova can add necessary configuration in placement as described in the \"Other Deployer Impact\" section. Basically all steps needed to configure shared storage RP should be automated by nova.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":94,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":95,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":96,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"},{"line_number":97,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Move operation"},{"line_number":100,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_5b3d1cb9","line":97,"updated":"2019-04-09 11:56:09.000000000","message":"Will the compute service fail to start if there is not enough inventory to in the sharing RP to move every allocation from the compute RP to the sharing RP?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c5c1763be9485bfb8c105e576a0ca32afc598a99","unresolved":false,"context_lines":[{"line_number":94,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":95,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":96,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"},{"line_number":97,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Move operation"},{"line_number":100,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_6eb3749b","line":97,"in_reply_to":"5fc1f717_5b3d1cb9","updated":"2019-04-09 13:32:27.000000000","message":"During upgrade, all such corner cases will be handled.\n\nWe can easily find out how much disk_GB capacity is required to move all allocations from compute to shared storage RP before actually moving the allocations using reshape functionality.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4867516074c2a2d8015a3cc3cc22bddb7bb54a79","unresolved":false,"context_lines":[{"line_number":94,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":95,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":96,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"},{"line_number":97,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Move operation"},{"line_number":100,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_b3e60544","line":97,"in_reply_to":"5fc1f717_6eb3749b","updated":"2019-04-16 09:30:34.000000000","message":"Sure. But what nova compute will do when there is not enough resources on the sharing RP? I mean the deployer creates the sharing RP in placement with some DISK_GB inventory. Then the deployer restarts the nova-compute. Then nova-compute tries the reshape and fails as the there is not enough DISK_GB inventory on the sharing RP (e.g. the deployer made a mistake or the disk is overallocated). Will nova-compute continue the startup and use the non sharing RP for DISK_GB or will nova-compute simply exits to force the deployer to fix the inventory of the sharing RP?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":100,"context_line":"-----------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"During moving allocations from instance to the migration record, if placement"},{"line_number":103,"context_line":"service goes down or for some unknown reasons the cold migration fails, then"},{"line_number":104,"context_line":"we can make use of `orig_alloc` which holds the original allocations of"},{"line_number":105,"context_line":"an instance to add these allocations back to the instance. To do this,"},{"line_number":106,"context_line":"`replace_allocation_with_migration` method will need to be modified to set"},{"line_number":107,"context_line":"`orig_alloc` to MigrationTask._held_allocations object and take necessary"},{"line_number":108,"context_line":"actions in rollback method."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Live migration and evacuation"},{"line_number":111,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_3b6930bd","line":108,"range":{"start_line":103,"start_character":71,"end_line":108,"end_character":27},"updated":"2019-04-09 11:56:09.000000000","message":"This feel like an implementation detail.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":106,"context_line":"`replace_allocation_with_migration` method will need to be modified to set"},{"line_number":107,"context_line":"`orig_alloc` to MigrationTask._held_allocations object and take necessary"},{"line_number":108,"context_line":"actions in rollback method."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Live migration and evacuation"},{"line_number":111,"context_line":"-------------------------------"},{"line_number":112,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_9b7e2468","line":109,"updated":"2019-04-09 11:56:09.000000000","message":"Do we have a separate bug here for the case when placement goes down during cold migration? Or the problem described in this section to specific somehow for sharing RPs? If yes, then please describe how this is specific to sharing RPs?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":111,"context_line":"-------------------------------"},{"line_number":112,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"},{"line_number":113,"context_line":"migration and evacuation. So users are encouraged to use this microversion"},{"line_number":114,"context_line":"to avert issues as mentioned in problem description in Point 3."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":117,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_7bc7b899","line":114,"updated":"2019-04-09 11:56:09.000000000","message":"So if the user use force flag \u003c 2.68 microversion the sharing RP handling will break. Can we reject forced live migration if the instance has allocation from a sharing RP instead?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c5c1763be9485bfb8c105e576a0ca32afc598a99","unresolved":false,"context_lines":[{"line_number":111,"context_line":"-------------------------------"},{"line_number":112,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"},{"line_number":113,"context_line":"migration and evacuation. So users are encouraged to use this microversion"},{"line_number":114,"context_line":"to avert issues as mentioned in problem description in Point 3."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":117,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_ae4b9c84","line":114,"in_reply_to":"5fc1f717_7bc7b899","updated":"2019-04-09 13:32:27.000000000","message":"I will make the change in the next PS.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":120,"context_line":"storage resource provider, it won\u0027t report DISK_GB resources in the inventory."},{"line_number":121,"context_line":"The resource tracker will get the actual disk resources information from a"},{"line_number":122,"context_line":"shared storage resource provider and update \"local_gb\" and \"free_disk_gb\" so"},{"line_number":123,"context_line":"that correct information is available when a hypervisor usage is queried."},{"line_number":124,"context_line":"The calculation of \"local_gb_used\" logic will remain intact."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_1bfb14be","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":73},"updated":"2019-04-09 11:56:09.000000000","message":"I think we need to be carefully document that in this case the local_gb field of the GET \n/os-hypervisors/detail API response will not talk about a disk resource that is local to the hypervisor. Also I would document that the free_disk_gb value of a hypervisor can change even if this hyperivsor is not changed at all by other hypervisors consuming resource from the same disk pool.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":160,"context_line":"------------------"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"When you configure many compute nodes to use a single  shared resource"},{"line_number":163,"context_line":"provider then it might impact performance if all compute nodes are restarted"},{"line_number":164,"context_line":"at the same time calling reshape method. You will also notice performance"},{"line_number":165,"context_line":"issues during scheduling while getting allocation candidates. We will need to"},{"line_number":166,"context_line":"fine tune settings to indicate how many compute nodes should be allowed to use"},{"line_number":167,"context_line":"a single shared storage resource provider."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_9bddc442","line":164,"range":{"start_line":163,"start_character":67,"end_line":164,"end_character":39},"updated":"2019-04-09 11:56:09.000000000","message":"Do we have a way (other that documenting to not restart every  compute at once) to limit the performance impact?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"When you configure many compute nodes to use a single  shared resource"},{"line_number":163,"context_line":"provider then it might impact performance if all compute nodes are restarted"},{"line_number":164,"context_line":"at the same time calling reshape method. You will also notice performance"},{"line_number":165,"context_line":"issues during scheduling while getting allocation candidates. We will need to"},{"line_number":166,"context_line":"fine tune settings to indicate how many compute nodes should be allowed to use"},{"line_number":167,"context_line":"a single shared storage resource provider."},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_5bcc3c88","line":165,"range":{"start_line":164,"start_character":41,"end_line":165,"end_character":60},"updated":"2019-04-09 11:56:09.000000000","message":"What is the source of this performance impact? Does the placement allocation candidate query implementation become slower if we start using sharing RPs?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4867516074c2a2d8015a3cc3cc22bddb7bb54a79","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"When you configure many compute nodes to use a single  shared resource"},{"line_number":163,"context_line":"provider then it might impact performance if all compute nodes are restarted"},{"line_number":164,"context_line":"at the same time calling reshape method. You will also notice performance"},{"line_number":165,"context_line":"issues during scheduling while getting allocation candidates. We will need to"},{"line_number":166,"context_line":"fine tune settings to indicate how many compute nodes should be allowed to use"},{"line_number":167,"context_line":"a single shared storage resource provider."},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fce034c_d3995179","line":165,"range":{"start_line":164,"start_character":41,"end_line":165,"end_character":60},"in_reply_to":"5fc1f717_51abbdd4","updated":"2019-04-16 09:30:34.000000000","message":"Cool thanks.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c5c1763be9485bfb8c105e576a0ca32afc598a99","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"When you configure many compute nodes to use a single  shared resource"},{"line_number":163,"context_line":"provider then it might impact performance if all compute nodes are restarted"},{"line_number":164,"context_line":"at the same time calling reshape method. You will also notice performance"},{"line_number":165,"context_line":"issues during scheduling while getting allocation candidates. We will need to"},{"line_number":166,"context_line":"fine tune settings to indicate how many compute nodes should be allowed to use"},{"line_number":167,"context_line":"a single shared storage resource provider."},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_51abbdd4","line":165,"range":{"start_line":164,"start_character":41,"end_line":165,"end_character":60},"in_reply_to":"5fc1f717_5bcc3c88","updated":"2019-04-09 13:32:27.000000000","message":"I believe that shared storage RP will contain many allocations for different compute nodes so to find out the available capacity, the calculation might take a little extra time. I have checked the placement code and it seems that it is using sql.func to do all these calculations.\n\nI will simulate many compute nodes using single shared storage RP with multiple allocations for each compute node to find out if it\u0027s really impacting the performance or not and accordingly will update this performance section.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":174,"context_line":"1. Create a shared storage resource provider for e.g. NFS_SHARE"},{"line_number":175,"context_line":"2. Add \"DISK_GB\" inventory to NFS_SHARE"},{"line_number":176,"context_line":"3. Add `MISC_SHARES_VIA_AGGREGATE` trait to NFS_SHARE"},{"line_number":177,"context_line":"4. Create an aggregate for e.g. \"AGG_1\""},{"line_number":178,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":179,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":180,"context_line":"   an aggregate \"AGG_1\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_dba58cb6","line":177,"range":{"start_line":177,"start_character":3,"end_line":177,"end_character":39},"updated":"2019-04-09 11:56:09.000000000","message":"Is it a nova host aggregate or only a placement aggregate?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c5c1763be9485bfb8c105e576a0ca32afc598a99","unresolved":false,"context_lines":[{"line_number":174,"context_line":"1. Create a shared storage resource provider for e.g. NFS_SHARE"},{"line_number":175,"context_line":"2. Add \"DISK_GB\" inventory to NFS_SHARE"},{"line_number":176,"context_line":"3. Add `MISC_SHARES_VIA_AGGREGATE` trait to NFS_SHARE"},{"line_number":177,"context_line":"4. Create an aggregate for e.g. \"AGG_1\""},{"line_number":178,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":179,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":180,"context_line":"   an aggregate \"AGG_1\""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_71a6f9c2","line":177,"range":{"start_line":177,"start_character":3,"end_line":177,"end_character":39},"in_reply_to":"5fc1f717_dba58cb6","updated":"2019-04-09 13:32:27.000000000","message":"It\u0027s a placement aggregate. I will make this point clear in the next PS.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"84d39ec2fd3a3883be7b3a44d80146a92b856bea","unresolved":false,"context_lines":[{"line_number":207,"context_line":"resource provider and simply restart the compute service and the migration of"},{"line_number":208,"context_line":"allocations from compute node to the shared storage resource provider will"},{"line_number":209,"context_line":"happen seamlessly."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Implementation"},{"line_number":212,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_bb89a026","line":210,"updated":"2019-04-09 11:56:09.000000000","message":"Do we need/want to add an offline method to make this transformation during a fast forward upgrade?","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d6e61691c509930b89b3622f2ad33a3ed247229","unresolved":false,"context_lines":[{"line_number":207,"context_line":"resource provider and simply restart the compute service and the migration of"},{"line_number":208,"context_line":"allocations from compute node to the shared storage resource provider will"},{"line_number":209,"context_line":"happen seamlessly."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Implementation"},{"line_number":212,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_1b6f9428","line":210,"in_reply_to":"5fc1f717_bb05207c","updated":"2019-04-09 12:07:41.000000000","message":"I remember that we talked about FFU support for the first reshape code as well. And Matt noted the following in the rehape bp[1]:\n\n\"I\u0027m deferring this to Train because although the libvirt driver implemented reshapes for VGPU inventory and allocations, the xenapi driver did not and there is no FFU support. -- mriedem 20190311\"\n\nSo at least we need  a global agreement about the FFU need for reshape.\n\n[1] https://blueprints.launchpad.net/nova/+spec/reshape-provider-tree","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2e2a168caa00d4f650f11c4ac9e968b8fb7b4ef0","unresolved":false,"context_lines":[{"line_number":207,"context_line":"resource provider and simply restart the compute service and the migration of"},{"line_number":208,"context_line":"allocations from compute node to the shared storage resource provider will"},{"line_number":209,"context_line":"happen seamlessly."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Implementation"},{"line_number":212,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_bb05207c","line":210,"in_reply_to":"5fc1f717_bb89a026","updated":"2019-04-09 12:02:08.000000000","message":"I\u0027m not convinced that if we have a reshaper, and the reshaper code lives forever, that we need to deal with a fast forward upgrade in these sorts of cases.\n\nWhatever version we eventually land on, a reshape will or will not happen, as required.","commit_id":"5bfb9c347029d1ec5906d569731b086e61c6a498"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Problem description"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"In Rocky release, Patch [1]_ was reverted back due to below reasons as reported"},{"line_number":34,"context_line":"in LP bug 1784020 [2]_."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"#. On upgrade from previous release, any existing allocations against the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_cd80e98e","line":33,"range":{"start_line":33,"start_character":18,"end_line":33,"end_character":46},"updated":"2019-04-15 12:31:10.000000000","message":"supernit - Could you describe what `Patch [1]` actually was here so readers don\u0027t have to click through?","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":50,"context_line":"---------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"#. Allow compute node resource providers to use NFS or any other shared"},{"line_number":53,"context_line":"   storage systems for storing instance files and report it\u0027s correct disk"},{"line_number":54,"context_line":"   usages in the shared storage resource providers instead of respective"},{"line_number":55,"context_line":"   compute node resource providers."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_879f59b3","line":53,"range":{"start_line":53,"start_character":56,"end_line":53,"end_character":61},"updated":"2019-04-21 15:12:47.000000000","message":"s/it\u0027s/the/","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   \u003chttps://review.openstack.org/#/c/551927\u003e`_."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"#. vSphere supports hypervisors to be deployed in clusters and each of these"},{"line_number":63,"context_line":"   cluster can have it\u0027s own data store or use a common data store amongst"},{"line_number":64,"context_line":"   few or all of it\u0027s clusters. This data store can be configured as a"},{"line_number":65,"context_line":"   shared resource provider in placement."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_e7adf5ea","line":63,"range":{"start_line":63,"start_character":3,"end_line":63,"end_character":10},"updated":"2019-04-21 15:12:47.000000000","message":"clusters","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":60,"context_line":"   \u003chttps://review.openstack.org/#/c/551927\u003e`_."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"#. vSphere supports hypervisors to be deployed in clusters and each of these"},{"line_number":63,"context_line":"   cluster can have it\u0027s own data store or use a common data store amongst"},{"line_number":64,"context_line":"   few or all of it\u0027s clusters. This data store can be configured as a"},{"line_number":65,"context_line":"   shared resource provider in placement."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_a7b7fd3a","line":63,"range":{"start_line":63,"start_character":20,"end_line":63,"end_character":24},"updated":"2019-04-21 15:12:47.000000000","message":"its","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"#. vSphere supports hypervisors to be deployed in clusters and each of these"},{"line_number":63,"context_line":"   cluster can have it\u0027s own data store or use a common data store amongst"},{"line_number":64,"context_line":"   few or all of it\u0027s clusters. This data store can be configured as a"},{"line_number":65,"context_line":"   shared resource provider in placement."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_c7b47138","line":64,"range":{"start_line":64,"start_character":17,"end_line":64,"end_character":21},"updated":"2019-04-21 15:12:47.000000000","message":"s/it\u0027s/those/","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":68,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Need patch [3]_ changes so that libvirt driver doesn\u0027t report DISK_GB inventory"},{"line_number":71,"context_line":"if it\u0027s in a shared storage provider aggregate relationship."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Upgrade DISK_GB from compute node to shared storage resource provider"},{"line_number":74,"context_line":"----------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_67834558","line":71,"updated":"2019-04-21 15:12:47.000000000","message":"✔","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Need patch [3]_ changes so that libvirt driver doesn\u0027t report DISK_GB inventory"},{"line_number":71,"context_line":"if it\u0027s in a shared storage provider aggregate relationship."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Upgrade DISK_GB from compute node to shared storage resource provider"},{"line_number":74,"context_line":"----------------------------------------------------------------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Check if compute node is configured to use DISK_GB resources from a shared"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_8788b971","line":73,"range":{"start_line":73,"start_character":0,"end_line":73,"end_character":7},"updated":"2019-04-21 15:12:47.000000000","message":"s/Upgrade/Move/","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":77,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":78,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":79,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"},{"line_number":80,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Live migration and evacuation"},{"line_number":83,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_0794c98a","line":80,"updated":"2019-04-21 15:12:47.000000000","message":"✔","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":82,"context_line":"Live migration and evacuation"},{"line_number":83,"context_line":"-------------------------------"},{"line_number":84,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"},{"line_number":85,"context_line":"migration and evacuation. So users are encouraged to use this microversion"},{"line_number":86,"context_line":"to avert issues as mentioned in problem description in Point 2. If user"},{"line_number":87,"context_line":"performs live migration using microversion \u003c 2.68 and if the instance has"},{"line_number":88,"context_line":"allocations from a sharing RP, it will return 400 error to the user."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_87ed1927","line":85,"range":{"start_line":85,"start_character":29,"end_line":85,"end_character":34},"updated":"2019-04-21 15:12:47.000000000","message":"admins\n\nUsers don\u0027t call live-migrate.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":83,"context_line":"-------------------------------"},{"line_number":84,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"},{"line_number":85,"context_line":"migration and evacuation. So users are encouraged to use this microversion"},{"line_number":86,"context_line":"to avert issues as mentioned in problem description in Point 2. If user"},{"line_number":87,"context_line":"performs live migration using microversion \u003c 2.68 and if the instance has"},{"line_number":88,"context_line":"allocations from a sharing RP, it will return 400 error to the user."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_a7905d97","line":86,"range":{"start_line":86,"start_character":3,"end_line":86,"end_character":8},"updated":"2019-04-21 15:12:47.000000000","message":"avoid","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"},{"line_number":85,"context_line":"migration and evacuation. So users are encouraged to use this microversion"},{"line_number":86,"context_line":"to avert issues as mentioned in problem description in Point 2. If user"},{"line_number":87,"context_line":"performs live migration using microversion \u003c 2.68 and if the instance has"},{"line_number":88,"context_line":"allocations from a sharing RP, it will return 400 error to the user."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":91,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_785ad12a","line":88,"range":{"start_line":87,"start_character":54,"end_line":88,"end_character":68},"updated":"2019-04-15 12:31:10.000000000","message":"Is the above reshaping going to happen offline or when the compute first starts up? If the latter we could end up racing here and end up moving an instance before it\u0027s associated DISK_GB allocations have moved to the shared RP.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":84,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"},{"line_number":85,"context_line":"migration and evacuation. So users are encouraged to use this microversion"},{"line_number":86,"context_line":"to avert issues as mentioned in problem description in Point 2. If user"},{"line_number":87,"context_line":"performs live migration using microversion \u003c 2.68 and if the instance has"},{"line_number":88,"context_line":"allocations from a sharing RP, it will return 400 error to the user."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":91,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_67d10558","line":88,"range":{"start_line":87,"start_character":54,"end_line":88,"end_character":68},"in_reply_to":"3fce034c_136fd992","updated":"2019-04-21 15:12:47.000000000","message":"@gibi is correct. Reshape happens before the nova-compute accepts user-facing operations:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/manager.py#L1254-L1260\n\nthe startup\u003dTrue flag there is what triggers reshapes to be handled.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4867516074c2a2d8015a3cc3cc22bddb7bb54a79","unresolved":false,"context_lines":[{"line_number":84,"context_line":"In Stein release in microversion 2.68, force flag is removed from live"},{"line_number":85,"context_line":"migration and evacuation. So users are encouraged to use this microversion"},{"line_number":86,"context_line":"to avert issues as mentioned in problem description in Point 2. If user"},{"line_number":87,"context_line":"performs live migration using microversion \u003c 2.68 and if the instance has"},{"line_number":88,"context_line":"allocations from a sharing RP, it will return 400 error to the user."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":91,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_136fd992","line":88,"range":{"start_line":87,"start_character":54,"end_line":88,"end_character":68},"in_reply_to":"3fce034c_785ad12a","updated":"2019-04-16 09:30:34.000000000","message":"As far as I know reshape happens at nova-compute startup in the nova.compute.manager.ComputeManager.pre_start_hook() which runs _before_ the compute is reported state to the conductor. So the compute still be in down state operationally during reshape.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":95,"context_line":"The resource tracker will get the actual disk resources information from a"},{"line_number":96,"context_line":"shared storage resource provider and update \"local_gb\" and \"free_disk_gb\" so"},{"line_number":97,"context_line":"that correct information is available when a hypervisor usage is queried."},{"line_number":98,"context_line":"The calculation of \"local_gb_used\" logic will remain intact."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_07c28986","line":98,"updated":"2019-04-21 15:12:47.000000000","message":"It\u0027s a shame we would still need to even use these fields from the compute_nodes cell DB table. :( Unfortunately, stuff like the os-hypervisors API is going to continue ignoring placement completely and calculating its responses using the values in the compute_nodes cell DB tables:\n\nhttps://developer.openstack.org/api-ref/compute/?expanded\u003dlist-hypervisors-details-detail#hypervisors-os-hypervisors\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/hypervisors.py#L68","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4867516074c2a2d8015a3cc3cc22bddb7bb54a79","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"If user live migrate server `POST /servers/{server_id}/action` passing"},{"line_number":117,"context_line":"``force\u003dTrue`` using microversion \u003c 2.68, then it will return 400 error"},{"line_number":118,"context_line":"to the user as the request doesn\u0027t go through the scheduler which will"},{"line_number":119,"context_line":"completely ignore shared storage resource provider allocations."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_b3c92579","line":118,"range":{"start_line":118,"start_character":11,"end_line":118,"end_character":12},"updated":"2019-04-16 09:30:34.000000000","message":"if the server has allocation against a sharing provider, as ...","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":116,"context_line":"If user live migrate server `POST /servers/{server_id}/action` passing"},{"line_number":117,"context_line":"``force\u003dTrue`` using microversion \u003c 2.68, then it will return 400 error"},{"line_number":118,"context_line":"to the user as the request doesn\u0027t go through the scheduler which will"},{"line_number":119,"context_line":"completely ignore shared storage resource provider allocations."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_c7bb110c","line":119,"updated":"2019-04-21 15:12:47.000000000","message":"For instances that use shared storage, the allocations won\u0027t actually change, though, so this isn\u0027t a problem UNLESS the destination compute host uses a *different* shared storage filer/provider than the source.\n\nAnd, of course, we have no way at all of knowing this might be the case UNLESS (live) migration  ALWAYS uses the scheduler, which ALWAYS talks to placement.\n\nWhich is, I suppose, what you\u0027re getting at here :)\n\nWhy do we add microversions again that allow users/admins to continue to put the system into a known bad state? :(","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"6fac890df0919afc632756b7a44e3c4e68df4391","unresolved":false,"context_lines":[{"line_number":116,"context_line":"If user live migrate server `POST /servers/{server_id}/action` passing"},{"line_number":117,"context_line":"``force\u003dTrue`` using microversion \u003c 2.68, then it will return 400 error"},{"line_number":118,"context_line":"to the user as the request doesn\u0027t go through the scheduler which will"},{"line_number":119,"context_line":"completely ignore shared storage resource provider allocations."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_45271966","line":119,"in_reply_to":"ffb9cba7_c7bb110c","updated":"2019-04-22 03:24:23.000000000","message":"Not adding a new microversion here. But yes, it will affect backward compatibility as it will return 400 error only in case where server has allocations against a shared storage resource provider. I have tried live migrating server in such scenario and observed it doesn\u0027t work at all so I don\u0027t think there is any issue in returning 400 error.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":137,"context_line":"Performance Impact"},{"line_number":138,"context_line":"------------------"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"When you configure many compute nodes to use a single shared resource"},{"line_number":141,"context_line":"provider then it might impact performance if all compute nodes are restarted"},{"line_number":142,"context_line":"at the same time calling reshape method. Need to fine tune settings to"},{"line_number":143,"context_line":"indicate how many compute nodes should be allowed to use in a single shared"},{"line_number":144,"context_line":"storage resource provider. You will also notice performance issues during"},{"line_number":145,"context_line":"scheduling while getting allocation candidates from placement service."},{"line_number":146,"context_line":"The get allocation candidates query become slower when we start using shared"},{"line_number":147,"context_line":"RPs."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Other deployer impact"},{"line_number":150,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_7881714a","line":147,"range":{"start_line":140,"start_character":0,"end_line":147,"end_character":4},"updated":"2019-04-15 12:31:10.000000000","message":"I think this is all pretty tenuous and something you would already expect to see before this.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9f4280723d19ef96832fa424d0c946712ae1f39b","unresolved":false,"context_lines":[{"line_number":137,"context_line":"Performance Impact"},{"line_number":138,"context_line":"------------------"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"When you configure many compute nodes to use a single shared resource"},{"line_number":141,"context_line":"provider then it might impact performance if all compute nodes are restarted"},{"line_number":142,"context_line":"at the same time calling reshape method. Need to fine tune settings to"},{"line_number":143,"context_line":"indicate how many compute nodes should be allowed to use in a single shared"},{"line_number":144,"context_line":"storage resource provider. You will also notice performance issues during"},{"line_number":145,"context_line":"scheduling while getting allocation candidates from placement service."},{"line_number":146,"context_line":"The get allocation candidates query become slower when we start using shared"},{"line_number":147,"context_line":"RPs."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Other deployer impact"},{"line_number":150,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_873aa395","line":147,"range":{"start_line":140,"start_character":0,"end_line":147,"end_character":4},"in_reply_to":"3fce034c_7881714a","updated":"2019-04-16 13:31:38.000000000","message":"I think the main concern that needs to be explained here is not \"too many computes on one shared provider\" but the potentially thundering herd aspect of many computes doing a reshape at the same time.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":154,"context_line":"1. Create a shared storage resource provider for e.g. NFS_SHARE"},{"line_number":155,"context_line":"2. Add \"DISK_GB\" inventory to NFS_SHARE"},{"line_number":156,"context_line":"3. Add `MISC_SHARES_VIA_AGGREGATE` trait to NFS_SHARE"},{"line_number":157,"context_line":"4. Create an aggregate in Nova and add hosts to the aggregates which will"},{"line_number":158,"context_line":"   get sync with placement service, for e.g. \"AGG_1\" or you can also create"},{"line_number":159,"context_line":"   an aggregate and add hosts to it explicitly in placement service."},{"line_number":160,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":161,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":162,"context_line":"   an aggregate \"AGG_1\""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_58ccb5bb","line":159,"range":{"start_line":157,"start_character":0,"end_line":159,"end_character":68},"updated":"2019-04-15 12:31:10.000000000","message":"TIL - might be useful to link the spec here for context.\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/placement-mirror-host-aggregates.html","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":176,"context_line":"resource provider in a `Train` release, then it will be detected automatically"},{"line_number":177,"context_line":"during the startup of the compute service and it will take following actions:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"1. Check if compute node is configured to use DISK_GB resources from a shared"},{"line_number":180,"context_line":"   resource provider and the DISK_GB resource is also present in the compute"},{"line_number":181,"context_line":"   node root resource provider. If above condition is True, it means Reshape"},{"line_number":182,"context_line":"   is needed which will move allocations of DISK_GB resource from compute"},{"line_number":183,"context_line":"   node resource provider to the shared storage resource provider. If there"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_b8d6f926","line":180,"range":{"start_line":179,"start_character":3,"end_line":180,"end_character":20},"updated":"2019-04-15 12:31:10.000000000","message":"Do you just mean in the same aggregate as the shared storage RP or are you planning on adding a configurable to nova.conf to specify if a local or shared RP is being used? Something like:\n\n  [libvirt]\n  instances_path_resource_provider \u003d local|shared\n\nOtherwise for Libvirt at least there\u0027s no real way of telling how the underlying instances_path has been configured on the host without casting across all the computes to ensure they all have the same share mounted.\n\nYou could even go one step further for Libvirt and call out the specific RP being used by `instances_path`.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"9f4280723d19ef96832fa424d0c946712ae1f39b","unresolved":false,"context_lines":[{"line_number":176,"context_line":"resource provider in a `Train` release, then it will be detected automatically"},{"line_number":177,"context_line":"during the startup of the compute service and it will take following actions:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"1. Check if compute node is configured to use DISK_GB resources from a shared"},{"line_number":180,"context_line":"   resource provider and the DISK_GB resource is also present in the compute"},{"line_number":181,"context_line":"   node root resource provider. If above condition is True, it means Reshape"},{"line_number":182,"context_line":"   is needed which will move allocations of DISK_GB resource from compute"},{"line_number":183,"context_line":"   node resource provider to the shared storage resource provider. If there"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_a7f0ffca","line":180,"range":{"start_line":179,"start_character":3,"end_line":180,"end_character":20},"in_reply_to":"3fce034c_b8d6f926","updated":"2019-04-16 13:31:38.000000000","message":"I suspect we\u0027re going to want different things for different hypervisors, and potentially even different configurations in the same hypervisor.\n\nIn an earlier review I had suggested that it would be great if it was possible for the hypervisor to decide for itself:\n\n* whether it was in a shared disk environment\n* whether it needs to create a shared provider for that disk (if it doesn\u0027t exist yet)\n* add itself to an aggregate\n\nWith the vmware hypervisor, for example, (and probably powervm too) all that ought to be possible. In  qemu/kvm, especially on NFS, it probably won\u0027t be but we don\u0027t want those limitations to require manual configuration for the other hypervisors.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"6fac890df0919afc632756b7a44e3c4e68df4391","unresolved":false,"context_lines":[{"line_number":176,"context_line":"resource provider in a `Train` release, then it will be detected automatically"},{"line_number":177,"context_line":"during the startup of the compute service and it will take following actions:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"1. Check if compute node is configured to use DISK_GB resources from a shared"},{"line_number":180,"context_line":"   resource provider and the DISK_GB resource is also present in the compute"},{"line_number":181,"context_line":"   node root resource provider. If above condition is True, it means Reshape"},{"line_number":182,"context_line":"   is needed which will move allocations of DISK_GB resource from compute"},{"line_number":183,"context_line":"   node resource provider to the shared storage resource provider. If there"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_450e39e6","line":180,"range":{"start_line":179,"start_character":3,"end_line":180,"end_character":20},"in_reply_to":"3fce034c_b8d6f926","updated":"2019-04-22 03:24:23.000000000","message":"It will detect if the DISK_GB resource class is configured to use shared storage resource provider as done in patch [1].\n\nP.S. This patch was reverted back later. But this is how we can detect if a compute node is configured to use DISK_GB resources from a shared storage resource provider.\n\n[1] : https://review.opendev.org/#/c/560459/17/nova/compute/provider_tree.py","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":180,"context_line":"   resource provider and the DISK_GB resource is also present in the compute"},{"line_number":181,"context_line":"   node root resource provider. If above condition is True, it means Reshape"},{"line_number":182,"context_line":"   is needed which will move allocations of DISK_GB resource from compute"},{"line_number":183,"context_line":"   node resource provider to the shared storage resource provider. If there"},{"line_number":184,"context_line":"   isn\u0027t enough DISK_GB inventory available in shared RP while moving"},{"line_number":185,"context_line":"   allocations then the compute service will fail to start."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"From operator perspective, he/she will need to configure shared storage"},{"line_number":188,"context_line":"resource provider and simply restart the compute service and the migration of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_3890c94e","line":185,"range":{"start_line":183,"start_character":67,"end_line":185,"end_character":59},"updated":"2019-04-15 12:31:10.000000000","message":"For the Libvirt implementation we could verify the actual size of the underlying share pretty easily and correct the RP during the reshape to avoid this.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":184,"context_line":"   isn\u0027t enough DISK_GB inventory available in shared RP while moving"},{"line_number":185,"context_line":"   allocations then the compute service will fail to start."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"From operator perspective, he/she will need to configure shared storage"},{"line_number":188,"context_line":"resource provider and simply restart the compute service and the migration of"},{"line_number":189,"context_line":"allocations from compute node to the shared storage resource provider will"},{"line_number":190,"context_line":"happen seamlessly."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_d89e6562","line":187,"range":{"start_line":187,"start_character":27,"end_line":187,"end_character":33},"updated":"2019-04-15 12:31:10.000000000","message":"nit - they","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"6d49f98737137484f90c9b8d6115e4085a86154d","unresolved":false,"context_lines":[{"line_number":187,"context_line":"From operator perspective, he/she will need to configure shared storage"},{"line_number":188,"context_line":"resource provider and simply restart the compute service and the migration of"},{"line_number":189,"context_line":"allocations from compute node to the shared storage resource provider will"},{"line_number":190,"context_line":"happen seamlessly."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Implementation"},{"line_number":193,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fce034c_988f7d22","line":190,"range":{"start_line":190,"start_character":7,"end_line":190,"end_character":17},"updated":"2019-04-15 12:31:10.000000000","message":"Unless they misconfigure the RP but as I said above I think we can potentially correct this during the reshape if required.","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":221,"context_line":"Testing"},{"line_number":222,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* Need a shared storage provider CI jobs setup. There is already a patch up"},{"line_number":225,"context_line":"  [4]_ on the gerrit to setup a single node job."},{"line_number":226,"context_line":"* We would also need a multi-node shared storage CI job to really say we"},{"line_number":227,"context_line":"  support shared storage providers as a feature in Nova."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_c750f1d7","line":225,"range":{"start_line":224,"start_character":1,"end_line":225,"end_character":48},"updated":"2019-04-21 15:12:47.000000000","message":"Yes, +100","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2171118118ddd889a554321b824d18bf2522b275","unresolved":false,"context_lines":[{"line_number":224,"context_line":"* Need a shared storage provider CI jobs setup. There is already a patch up"},{"line_number":225,"context_line":"  [4]_ on the gerrit to setup a single node job."},{"line_number":226,"context_line":"* We would also need a multi-node shared storage CI job to really say we"},{"line_number":227,"context_line":"  support shared storage providers as a feature in Nova."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Documentation Impact"},{"line_number":230,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb9cba7_675fc5e5","line":227,"updated":"2019-04-21 15:12:47.000000000","message":"well, to say we support shared storage and move operations...","commit_id":"dc6ca1803d8a74cfe9b1d102fc89417725804280"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2feb9eb220bbf3fbc6f242d07e3f28486dffc494","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  storage resource provider."},{"line_number":147,"context_line":"* You will also notice performance issues during scheduling while getting"},{"line_number":148,"context_line":"  allocation candidates from placement service. The get allocation candidates"},{"line_number":149,"context_line":"  query become slower when we start using shared RPs."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Other deployer impact"},{"line_number":152,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfbec78f_a68fc421","line":149,"updated":"2019-05-07 18:49:12.000000000","message":"Is this something you\u0027ve measured or are you making an assumption? I think you\u0027re probably right that it has some impact but I would be surprised if it is enough for anyone to notice.","commit_id":"9627d969a392bbc11b4149304f9827ffb0b9fbd2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"055d3bacba505f4007c705a3ebc5b2f11c3b00ca","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  storage resource provider."},{"line_number":147,"context_line":"* You will also notice performance issues during scheduling while getting"},{"line_number":148,"context_line":"  allocation candidates from placement service. The get allocation candidates"},{"line_number":149,"context_line":"  query become slower when we start using shared RPs."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Other deployer impact"},{"line_number":152,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfbec78f_ebc0122d","line":149,"in_reply_to":"dfbec78f_6920b8b1","updated":"2019-05-08 18:35:21.000000000","message":"Thanks for doing some real measurement, that\u0027s great.\n\nThose numbers make sense and seem pretty good to me.","commit_id":"9627d969a392bbc11b4149304f9827ffb0b9fbd2"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"ae021386dceb3299dfd083fd095d7ebc2a161c00","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  storage resource provider."},{"line_number":147,"context_line":"* You will also notice performance issues during scheduling while getting"},{"line_number":148,"context_line":"  allocation candidates from placement service. The get allocation candidates"},{"line_number":149,"context_line":"  query become slower when we start using shared RPs."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Other deployer impact"},{"line_number":152,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfbec78f_6920b8b1","line":149,"in_reply_to":"dfbec78f_a68fc421","updated":"2019-05-08 08:28:43.000000000","message":"Yes, we have measured the performance by simulating resource providers in multiple of 25 up to 200 in a multi thread program and noticed the performance degraded if we configure compute node RP with shared storage RP by 5-10% compare to local storage . \n\nHere, we have measured total time taken by the program to process \u0027n\u0027 number of allocation requests and observed that it always take more time if we configure shared storage RP.","commit_id":"9627d969a392bbc11b4149304f9827ffb0b9fbd2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2feb9eb220bbf3fbc6f242d07e3f28486dffc494","unresolved":false,"context_lines":[{"line_number":157,"context_line":"2. Add \"DISK_GB\" inventory to NFS_SHARE"},{"line_number":158,"context_line":"3. Add `MISC_SHARES_VIA_AGGREGATE` trait to NFS_SHARE"},{"line_number":159,"context_line":"4. Create an aggregate in Nova and add hosts to the aggregates which will"},{"line_number":160,"context_line":"   get sync with placement service [5]_, for e.g. \"AGG_1\" or you can also"},{"line_number":161,"context_line":"   create an aggregate and add hosts to it explicitly in placement service."},{"line_number":162,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":163,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfbec78f_26cc3469","line":160,"range":{"start_line":160,"start_character":7,"end_line":160,"end_character":11},"updated":"2019-05-07 18:49:12.000000000","message":"synced","commit_id":"9627d969a392bbc11b4149304f9827ffb0b9fbd2"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"ae021386dceb3299dfd083fd095d7ebc2a161c00","unresolved":false,"context_lines":[{"line_number":157,"context_line":"2. Add \"DISK_GB\" inventory to NFS_SHARE"},{"line_number":158,"context_line":"3. Add `MISC_SHARES_VIA_AGGREGATE` trait to NFS_SHARE"},{"line_number":159,"context_line":"4. Create an aggregate in Nova and add hosts to the aggregates which will"},{"line_number":160,"context_line":"   get sync with placement service [5]_, for e.g. \"AGG_1\" or you can also"},{"line_number":161,"context_line":"   create an aggregate and add hosts to it explicitly in placement service."},{"line_number":162,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":163,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfbec78f_5fdd6512","line":160,"range":{"start_line":160,"start_character":7,"end_line":160,"end_character":11},"in_reply_to":"dfbec78f_26cc3469","updated":"2019-05-08 08:28:43.000000000","message":"Done","commit_id":"9627d969a392bbc11b4149304f9827ffb0b9fbd2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2feb9eb220bbf3fbc6f242d07e3f28486dffc494","unresolved":false,"context_lines":[{"line_number":213,"context_line":"  provider."},{"line_number":214,"context_line":"* Add multi-node CI gate job to support shared storage providers"},{"line_number":215,"context_line":"* Add documentation to explain how to setup shared storage resource provider"},{"line_number":216,"context_line":"  and how to use it."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Dependencies"},{"line_number":219,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfbec78f_8638803d","line":216,"updated":"2019-05-07 18:49:12.000000000","message":"We need to add work items for the example tools described in http://lists.openstack.org/pipermail/openstack-discuss/2019-May/005829.html\n\nIt may also be useful to indicate that other virt drivers may use different techniques (also mentioned in that email).","commit_id":"9627d969a392bbc11b4149304f9827ffb0b9fbd2"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"ae021386dceb3299dfd083fd095d7ebc2a161c00","unresolved":false,"context_lines":[{"line_number":213,"context_line":"  provider."},{"line_number":214,"context_line":"* Add multi-node CI gate job to support shared storage providers"},{"line_number":215,"context_line":"* Add documentation to explain how to setup shared storage resource provider"},{"line_number":216,"context_line":"  and how to use it."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"Dependencies"},{"line_number":219,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dfbec78f_7fe069cd","line":216,"in_reply_to":"dfbec78f_8638803d","updated":"2019-05-08 08:28:43.000000000","message":"Done","commit_id":"9627d969a392bbc11b4149304f9827ffb0b9fbd2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7a756328569d0d98a12c3aa0a1dcf66127ff3fb5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"shared storage resource provider by using aggregate relationship."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Shared resource providers are marked with a standard trait called"},{"line_number":17,"context_line":"`MISC_SHARES_VIA_AGGREGATE`. This indicates that the provider allows its"},{"line_number":18,"context_line":"inventory to be consumed by other resource providers associated via an"},{"line_number":19,"context_line":"aggregate link."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_dea40e0b","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":1},"updated":"2019-06-04 21:39:47.000000000","message":"``literal`` (throughout)","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"fecec9b9e179f106b37af664f3464ebf1b923308","unresolved":false,"context_lines":[{"line_number":14,"context_line":"shared storage resource provider by using aggregate relationship."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Shared resource providers are marked with a standard trait called"},{"line_number":17,"context_line":"`MISC_SHARES_VIA_AGGREGATE`. This indicates that the provider allows its"},{"line_number":18,"context_line":"inventory to be consumed by other resource providers associated via an"},{"line_number":19,"context_line":"aggregate link."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_2496fd4d","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":1},"in_reply_to":"9fb8cfa7_dea40e0b","updated":"2019-06-12 08:33:42.000000000","message":"I will address this comment in the next PS.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7a756328569d0d98a12c3aa0a1dcf66127ff3fb5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"---------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"#. Allow compute node resource providers to use NFS or any other shared"},{"line_number":54,"context_line":"   storage systems for storing instance files and report the correct disk"},{"line_number":55,"context_line":"   usages in the shared storage resource providers instead of respective"},{"line_number":56,"context_line":"   compute node resource providers."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_5ee6de46","line":54,"range":{"start_line":54,"start_character":31,"end_line":54,"end_character":45},"updated":"2019-06-04 21:39:47.000000000","message":"?\n\nIs this a libvirt-ism?\n\nOr do you mean \"files the instance wants to write onto the thing it thinks of as its disk\"?","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"fecec9b9e179f106b37af664f3464ebf1b923308","unresolved":false,"context_lines":[{"line_number":51,"context_line":"---------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"#. Allow compute node resource providers to use NFS or any other shared"},{"line_number":54,"context_line":"   storage systems for storing instance files and report the correct disk"},{"line_number":55,"context_line":"   usages in the shared storage resource providers instead of respective"},{"line_number":56,"context_line":"   compute node resource providers."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_648075c0","line":54,"range":{"start_line":54,"start_character":31,"end_line":54,"end_character":45},"in_reply_to":"9fb8cfa7_5ee6de46","updated":"2019-06-12 08:33:42.000000000","message":"Yes, you are right.\n\nI will make this point clear in the next PS.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b480cbfdcd44af018fdcfeddac8ccbc0a86d62bd","unresolved":false,"context_lines":[{"line_number":78,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":79,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":80,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"},{"line_number":81,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Live migration and evacuation"},{"line_number":84,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_ac8e1476","line":81,"updated":"2019-07-02 08:17:00.000000000","message":"just to be sure: \nDo we only allow a single sharing RP providing DISK_GB resource for a compute? \nDo we only allow either local DISK_GB reported on the root RP or sharing RP providing DISK_GB but not a mix of the two for a single compute node?","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f9bce514f1004b28a99a043ca275c7706046480a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":79,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":80,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"},{"line_number":81,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Live migration and evacuation"},{"line_number":84,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_18ecf2f1","line":81,"in_reply_to":"9fb8cfa7_1f640ee5","updated":"2019-07-09 10:27:18.000000000","message":"thanks","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"34f56fcb110c16699af4d08a8a1def9a30ca8892","unresolved":false,"context_lines":[{"line_number":78,"context_line":"resource provider and the DISK_GB resource is also present in the compute"},{"line_number":79,"context_line":"node root resource provider. If above condition is True, it means Reshape"},{"line_number":80,"context_line":"is needed which will move the allocations of DISK_GB resource from compute"},{"line_number":81,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Live migration and evacuation"},{"line_number":84,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_1f640ee5","line":81,"in_reply_to":"9fb8cfa7_ac8e1476","updated":"2019-07-09 06:59:41.000000000","message":"\u003e\u003e Do we only allow a single sharing RP providing DISK_GB resource for a compute? \n\nYes, as we need to mount the sharing storage disk on the instances_path of the compute node, I think only one sharing storage provider can be used here.\n\n\u003e\u003e Do we only allow either local DISK_GB reported on the root RP or sharing RP providing DISK_GB but not a mix of the two for a single compute node?\n\nSame as above.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7a756328569d0d98a12c3aa0a1dcf66127ff3fb5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"migration and evacuation. So admin users are encouraged to use this"},{"line_number":87,"context_line":"microversion to avoid issues as mentioned in problem description in Point 2."},{"line_number":88,"context_line":"If user performs live migration using microversion \u003c 2.68 and if the instance"},{"line_number":89,"context_line":"has allocations from a sharing RP, it will return 400 error to the user."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":92,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_7eede2ed","line":89,"updated":"2019-06-04 21:39:47.000000000","message":"what\u0027s going to happen to instances that migrate (unforced) \u003e\u003d2.68? The second use case sort of implies it might work?","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"34f56fcb110c16699af4d08a8a1def9a30ca8892","unresolved":false,"context_lines":[{"line_number":86,"context_line":"migration and evacuation. So admin users are encouraged to use this"},{"line_number":87,"context_line":"microversion to avoid issues as mentioned in problem description in Point 2."},{"line_number":88,"context_line":"If user performs live migration using microversion \u003c 2.68 and if the instance"},{"line_number":89,"context_line":"has allocations from a sharing RP, it will return 400 error to the user."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":92,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_fdf8eb49","line":89,"in_reply_to":"9fb8cfa7_0cc2c085","updated":"2019-07-09 06:59:41.000000000","message":"Agree, will update specs to include above possible cases as well.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c130b54104d08fbc662877d7ed0b844cfa791dc6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"migration and evacuation. So admin users are encouraged to use this"},{"line_number":87,"context_line":"microversion to avoid issues as mentioned in problem description in Point 2."},{"line_number":88,"context_line":"If user performs live migration using microversion \u003c 2.68 and if the instance"},{"line_number":89,"context_line":"has allocations from a sharing RP, it will return 400 error to the user."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":92,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_f85d0b79","line":89,"in_reply_to":"9fb8cfa7_4eceb082","updated":"2019-06-25 17:54:14.000000000","message":"But does this result in the infamous \"doubling of allocations\" on the shared storage?\n\nI think we need a bit of a deeper dive here to explain how migration/evacuation will work.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"fecec9b9e179f106b37af664f3464ebf1b923308","unresolved":false,"context_lines":[{"line_number":86,"context_line":"migration and evacuation. So admin users are encouraged to use this"},{"line_number":87,"context_line":"microversion to avoid issues as mentioned in problem description in Point 2."},{"line_number":88,"context_line":"If user performs live migration using microversion \u003c 2.68 and if the instance"},{"line_number":89,"context_line":"has allocations from a sharing RP, it will return 400 error to the user."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":92,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_4eceb082","line":89,"in_reply_to":"9fb8cfa7_7eede2ed","updated":"2019-06-12 08:33:42.000000000","message":"Yes, it works as the call goes through scheduler where allocations are moved from source to destination.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"34f56fcb110c16699af4d08a8a1def9a30ca8892","unresolved":false,"context_lines":[{"line_number":86,"context_line":"migration and evacuation. So admin users are encouraged to use this"},{"line_number":87,"context_line":"microversion to avoid issues as mentioned in problem description in Point 2."},{"line_number":88,"context_line":"If user performs live migration using microversion \u003c 2.68 and if the instance"},{"line_number":89,"context_line":"has allocations from a sharing RP, it will return 400 error to the user."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":92,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_fddf8bd3","line":89,"in_reply_to":"9fb8cfa7_f85d0b79","updated":"2019-07-09 06:59:41.000000000","message":"For all move operations like Live migration, cold migration and resize, it will result in double allocations during the process of move operation. After the move operation is successful the migration record will be cleaned off thereby deleting all  associated allocations.\n\nIn case of evacuation, shelve/unshelve and rebuild, DISK_GB resource allocated from shared storage resource provider will not be doubled.\n\nWe have performed all actions on instance to confirm the behavior of how the allocations works. You can see the result here : http://paste.openstack.org/show/754191\n\nI will update specs to describe how allocations will work for different instance actions.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b480cbfdcd44af018fdcfeddac8ccbc0a86d62bd","unresolved":false,"context_lines":[{"line_number":86,"context_line":"migration and evacuation. So admin users are encouraged to use this"},{"line_number":87,"context_line":"microversion to avoid issues as mentioned in problem description in Point 2."},{"line_number":88,"context_line":"If user performs live migration using microversion \u003c 2.68 and if the instance"},{"line_number":89,"context_line":"has allocations from a sharing RP, it will return 400 error to the user."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Show correct DISK_GB data in hypervisor details"},{"line_number":92,"context_line":"------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_0cc2c085","line":89,"in_reply_to":"9fb8cfa7_f85d0b79","updated":"2019-07-02 08:17:00.000000000","message":"Yeah, at least we have to describe what will happen if:\na) the source compute gets the DISK_GB from the same sharing RP than the dest compute. I think we can avoid doubling of allocation, and avoid copying the disk content.\nb) the source compute gets the DISK_GB from the a different sharing RP than the dest compute. I think we need to double the allocation as they are on different sharing RPs. Also we have to copy the disk content as well.\n\nMaybe similar cases needs to be considered like moving from a compute with sharing to a compute with local DISK_GB and vice versa.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7a756328569d0d98a12c3aa0a1dcf66127ff3fb5","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"},{"line_number":95,"context_line":"storage resource provider, it won\u0027t report DISK_GB resources in the inventory."},{"line_number":96,"context_line":"The resource tracker will get the actual disk resources information from a"},{"line_number":97,"context_line":"shared storage resource provider and update \"local_gb\" and \"free_disk_gb\" so"},{"line_number":98,"context_line":"that correct information is available when a hypervisor usage is queried."},{"line_number":99,"context_line":"The calculation of \"local_gb_used\" logic will remain intact."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_9ea2169a","line":98,"range":{"start_line":96,"start_character":0,"end_line":98,"end_character":73},"updated":"2019-06-04 21:39:47.000000000","message":"It will update them to what? If there\u0027s no local storage, they should be zeros, right?","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c130b54104d08fbc662877d7ed0b844cfa791dc6","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"},{"line_number":95,"context_line":"storage resource provider, it won\u0027t report DISK_GB resources in the inventory."},{"line_number":96,"context_line":"The resource tracker will get the actual disk resources information from a"},{"line_number":97,"context_line":"shared storage resource provider and update \"local_gb\" and \"free_disk_gb\" so"},{"line_number":98,"context_line":"that correct information is available when a hypervisor usage is queried."},{"line_number":99,"context_line":"The calculation of \"local_gb_used\" logic will remain intact."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_18649f21","line":98,"range":{"start_line":96,"start_character":0,"end_line":98,"end_character":73},"in_reply_to":"9fb8cfa7_07e5b6dc","updated":"2019-06-25 17:54:14.000000000","message":"I think this is has been one of the major sticking points of shared disk reporting, and is something we need to get right in this spec if it\u0027s going to be worth moving forward with.\n\nAttempting to calculate used and available storage in the cloud by asking the nodes - which is what we do today IIUC - is probably not the right long-term approach.\n\nI think there was talk in the past about simply deprecating the GET /os-hypervisors/detail API and obtaining the information directly from Placement.\n\nNeed someone who remembers more about that to weigh in.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"34f56fcb110c16699af4d08a8a1def9a30ca8892","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"},{"line_number":95,"context_line":"storage resource provider, it won\u0027t report DISK_GB resources in the inventory."},{"line_number":96,"context_line":"The resource tracker will get the actual disk resources information from a"},{"line_number":97,"context_line":"shared storage resource provider and update \"local_gb\" and \"free_disk_gb\" so"},{"line_number":98,"context_line":"that correct information is available when a hypervisor usage is queried."},{"line_number":99,"context_line":"The calculation of \"local_gb_used\" logic will remain intact."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_dd2e4fa4","line":98,"range":{"start_line":96,"start_character":0,"end_line":98,"end_character":73},"in_reply_to":"9fb8cfa7_18649f21","updated":"2019-07-09 06:59:41.000000000","message":"Using following combinations of placement APIs should give us the same information as \"GET /os-hypervisors\" and \"GET /os-hypervisors/detail\" APIs.\n\n1. \"GET /resource_providers\"\n2. \"GET /resource_providers/{uuid}/inventories\" - For standard resource classes, mainly VCPU, Memory, DISK_GB\n3. \"GET /resource_providers/{uuid}/usages\" - For standard resource classes, mainly VCPU, Memory, DISK_GB\n\nSo deprecating \"GET /os-hypervisors/detail\" API and using placement APIs is a good direction.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"5b23c196595ccf5d758b4d463c4cfdb2d53addf8","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"},{"line_number":95,"context_line":"storage resource provider, it won\u0027t report DISK_GB resources in the inventory."},{"line_number":96,"context_line":"The resource tracker will get the actual disk resources information from a"},{"line_number":97,"context_line":"shared storage resource provider and update \"local_gb\" and \"free_disk_gb\" so"},{"line_number":98,"context_line":"that correct information is available when a hypervisor usage is queried."},{"line_number":99,"context_line":"The calculation of \"local_gb_used\" logic will remain intact."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_07e5b6dc","line":98,"range":{"start_line":96,"start_character":0,"end_line":98,"end_character":73},"in_reply_to":"9fb8cfa7_2efb3c79","updated":"2019-06-17 01:52:00.000000000","message":"a) \"local_gb\" and \"free_disk_gb\" set to 0\n\nb) \"local_gb\"  set to shared storage RP disk_GB inventory and \"free_disk_gb\" set to (total inventory - usage of shared storage RP for disk_GB)\n\nIn the above two solutions, it\u0027s not possible for operators to see the total capacity of Disk_GB inventory and total available Disk_GB inventory of the entire cluster unless we return which hypervisors are using shared storage RP in the \"GET /os-hypervisors/{hypervisor_id}\", \"GET /os-hypervisors/detail\" APIs.\n\nIf we store sharing storage RP \"uuid\" in the compute node db table, I think we can make that thing possible. In that case, we can return something like this:\n\n  {\n    \"hypervisor\": {\n        \"cpu_info\": {\n           .......\n        },\n        \"free_disk_gb\": 0,\n        \"local_gb\": 0,\n        \"local_gb_used\": 0,\n        \"sharing_storage_resource_provider_uuid\" \u003d \u003cuuid\u003e,\n        \"sharing_storage\": {\n                \"free_disk_gb\": 2000,\n                \"local_gb\": 2048,\n                \"local_gb_used\": 48,\n            \n        }\n       \n        ......\n  }\n\nIn case of \"GET /os-hypervisors/detail\" API, the same \"sharing_storage\" block will repeated in list of hypervisors which are configured with the same sharing storage resource provider in placement but using sharing_storage_resource_provider_uuid, it should be possible to calculate total capacity of DISK_GB inventory and total available DISK_GB inventory of the entire cluster accurately.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"fecec9b9e179f106b37af664f3464ebf1b923308","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"},{"line_number":95,"context_line":"storage resource provider, it won\u0027t report DISK_GB resources in the inventory."},{"line_number":96,"context_line":"The resource tracker will get the actual disk resources information from a"},{"line_number":97,"context_line":"shared storage resource provider and update \"local_gb\" and \"free_disk_gb\" so"},{"line_number":98,"context_line":"that correct information is available when a hypervisor usage is queried."},{"line_number":99,"context_line":"The calculation of \"local_gb_used\" logic will remain intact."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_2efb3c79","line":98,"range":{"start_line":96,"start_character":0,"end_line":98,"end_character":73},"in_reply_to":"9fb8cfa7_9ea2169a","updated":"2019-06-12 08:33:42.000000000","message":"It\u0027s possible to find out whether a compute node is configured to use DISK_GB from a shared storage resource provider, so it\u0027s easy to set \"local_gb\" and \"free_disk_gb\" to 0.\n\nI\u0027m checking if it\u0027s possible to get the disk_gb usage for a shared storage resource provider where compute node disk usage calculations are done. If that\u0027s possible, we can do something like this:\n\n  For example:\n  Shared storage \"XYZ\" disk capacity: 100 GB\n\n\n  Compute A: 10 instances using 1 GB each i.e. 10GB\n  Compute B: 20 instances using 1 GB each i.e. 20GB\n\n  Compute A and B are configured to use disk_GB from \"XYZ\" shared storage resource provider.\n\n  Compute A:\n  local_gb: 100 GB\n  free_disk_gb: local_gb - (disk_gb usage of shared resource provider) \u003d 100 - 30 \u003d   80GB\n  local_gb_used: 10GB\n\n\n  Compute B:\n  local_gb: 100 GB\n  free_disk_gb: local_gb - (disk_gb usage of shared resource provider) \u003d 100 - 30 \u003d 80GB\n  local_gb_used: 20GB\n\nI will update specs accordingly based on my above findings.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b480cbfdcd44af018fdcfeddac8ccbc0a86d62bd","unresolved":false,"context_lines":[{"line_number":118,"context_line":"``force\u003dTrue`` using microversion \u003c 2.68, then it will return 400 error"},{"line_number":119,"context_line":"to the user if the server has allocations against a sharing provider, as the"},{"line_number":120,"context_line":"request doesn\u0027t go through the scheduler which will completely ignore shared"},{"line_number":121,"context_line":"storage resource provider allocations."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_0c47201f","line":121,"updated":"2019-07-02 08:17:00.000000000","message":"I think it will be something similar to what we did with nested allocation + force in https://review.opendev.org/#/c/605785/","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"34f56fcb110c16699af4d08a8a1def9a30ca8892","unresolved":false,"context_lines":[{"line_number":118,"context_line":"``force\u003dTrue`` using microversion \u003c 2.68, then it will return 400 error"},{"line_number":119,"context_line":"to the user if the server has allocations against a sharing provider, as the"},{"line_number":120,"context_line":"request doesn\u0027t go through the scheduler which will completely ignore shared"},{"line_number":121,"context_line":"storage resource provider allocations."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_1f396e3e","line":121,"in_reply_to":"9fb8cfa7_0c47201f","updated":"2019-07-09 06:59:41.000000000","message":"In the beginning, we thought we will need to implement this check to return 400 error but later noticed becoz of the same patch, it\u0027s returning 400 error if it finds source compute node has allocations more than one resource provider[1].\n\n[1] : https://review.opendev.org/#/c/605785/16/nova/scheduler/utils.py@539","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f9bce514f1004b28a99a043ca275c7706046480a","unresolved":false,"context_lines":[{"line_number":118,"context_line":"``force\u003dTrue`` using microversion \u003c 2.68, then it will return 400 error"},{"line_number":119,"context_line":"to the user if the server has allocations against a sharing provider, as the"},{"line_number":120,"context_line":"request doesn\u0027t go through the scheduler which will completely ignore shared"},{"line_number":121,"context_line":"storage resource provider allocations."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_58902a4f","line":121,"in_reply_to":"9fb8cfa7_1f396e3e","updated":"2019-07-09 10:27:18.000000000","message":"Cool. Then the original patch handles this case as well.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b480cbfdcd44af018fdcfeddac8ccbc0a86d62bd","unresolved":false,"context_lines":[{"line_number":156,"context_line":"1. Create a shared storage resource provider for e.g. NFS_SHARE"},{"line_number":157,"context_line":"2. Add \"DISK_GB\" inventory to NFS_SHARE"},{"line_number":158,"context_line":"3. Add `MISC_SHARES_VIA_AGGREGATE` trait to NFS_SHARE"},{"line_number":159,"context_line":"4. Create an aggregate in Nova and add hosts to the aggregates which will"},{"line_number":160,"context_line":"   get synced with placement service [5]_, for e.g. \"AGG_1\" or you can also"},{"line_number":161,"context_line":"   create an aggregate and add hosts to it explicitly in placement service."},{"line_number":162,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":163,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":164,"context_line":"   an aggregate \"AGG_1\""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_4c5af8f1","line":161,"range":{"start_line":159,"start_character":3,"end_line":161,"end_character":75},"updated":"2019-07-02 08:17:00.000000000","message":"Do we need nova host aggregates to make this work? I think what was described above can work if only placement aggregates are created without having nova host aggregates as well.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"34f56fcb110c16699af4d08a8a1def9a30ca8892","unresolved":false,"context_lines":[{"line_number":156,"context_line":"1. Create a shared storage resource provider for e.g. NFS_SHARE"},{"line_number":157,"context_line":"2. Add \"DISK_GB\" inventory to NFS_SHARE"},{"line_number":158,"context_line":"3. Add `MISC_SHARES_VIA_AGGREGATE` trait to NFS_SHARE"},{"line_number":159,"context_line":"4. Create an aggregate in Nova and add hosts to the aggregates which will"},{"line_number":160,"context_line":"   get synced with placement service [5]_, for e.g. \"AGG_1\" or you can also"},{"line_number":161,"context_line":"   create an aggregate and add hosts to it explicitly in placement service."},{"line_number":162,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":163,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":164,"context_line":"   an aggregate \"AGG_1\""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9fb8cfa7_ff69fa25","line":161,"range":{"start_line":159,"start_character":3,"end_line":161,"end_character":75},"in_reply_to":"9fb8cfa7_4c5af8f1","updated":"2019-07-09 06:59:41.000000000","message":"Agree, it can work without nova host aggregates. I will update this point in the next PS.","commit_id":"8cd4d8ccdcbcdeefa4fccac0d4b24f11321c2432"}],"specs/ussuri/approved/support-shared-storage-resource-provider.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":81,"context_line":"node resource provider to the shared storage resource provider."},{"line_number":82,"context_line":"Only one shared resource provider would provide DISK_GB allocation to the"},{"line_number":83,"context_line":"compute node as access to shared resource provider is via a single mount path."},{"line_number":84,"context_line":"The DISK_GB usage of the shared resource provider will be reported. The DISK_GB"},{"line_number":85,"context_line":"usage of the compute node will not be reported as it is not going to be used."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Live Migration, Resize and Cold Migration Double Allocation of DISK_GB"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_f5cc30bc","line":84,"range":{"start_line":84,"start_character":0,"end_line":84,"end_character":67},"updated":"2019-10-28 12:30:49.000000000","message":"by whom? Or did something else missing from this sentence?\n\nOr framing the question another way. Who will report the DISK_GB inventory of the sharing RP? I guess that needs to be outside of nova-compute as more than one nova-compute seeing the disk from a single sharing RP. \n\nI think the DISK_GB usage of the instances on a given nova-compute will be reported by the nova-compute to placement against the sharing RP.","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":".. note:: There is a scope to avoid double allocation of ``DISK_GB`` resource"},{"line_number":139,"context_line":"          provided both the source and destination compute nodes are sharing"},{"line_number":140,"context_line":"          the same shared storage resource provider but in this spec, we would"},{"line_number":141,"context_line":"          like to keep the design simple and allow double allocation as it"},{"line_number":142,"context_line":"          would happen in the other cases described above."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Display correct DISK_GB data in hypervisor details"},{"line_number":145,"context_line":"--------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_d55574c3","line":142,"range":{"start_line":140,"start_character":70,"end_line":142,"end_character":58},"updated":"2019-10-28 12:30:49.000000000","message":"Fair scoping. Thanks for explaining it.\n\nDoes it still mean that only the allocation will be doubled in this case but not the usage as there won\u0027t be any disk copying?","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"3842baffeac723725fbf3462f66b598b51a2cca1","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":".. note:: There is a scope to avoid double allocation of ``DISK_GB`` resource"},{"line_number":139,"context_line":"          provided both the source and destination compute nodes are sharing"},{"line_number":140,"context_line":"          the same shared storage resource provider but in this spec, we would"},{"line_number":141,"context_line":"          like to keep the design simple and allow double allocation as it"},{"line_number":142,"context_line":"          would happen in the other cases described above."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Display correct DISK_GB data in hypervisor details"},{"line_number":145,"context_line":"--------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_28ed51ef","line":142,"range":{"start_line":140,"start_character":70,"end_line":142,"end_character":58},"in_reply_to":"3fa7e38b_d55574c3","updated":"2019-11-05 08:28:23.000000000","message":"That\u0027s true. If both source and destination compute node are sharing DISK_GB from a shared storage resource provider, the instance disks files won\u0027t be copied.\n\nIf you check the resource consumption on the placement side using ``openstack resource provider usage show \u003cresource provider id\u003e``,  it will show double allocations for DISK_GB, in fact, it will show double allocations for all resources (VPCU/memory/DIKS_GB etc).","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":140,"context_line":"          the same shared storage resource provider but in this spec, we would"},{"line_number":141,"context_line":"          like to keep the design simple and allow double allocation as it"},{"line_number":142,"context_line":"          would happen in the other cases described above."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Display correct DISK_GB data in hypervisor details"},{"line_number":145,"context_line":"--------------------------------------------------"},{"line_number":146,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_f528b033","line":143,"updated":"2019-10-28 12:30:49.000000000","message":"What about detecting the above situations and deciding on when the disk needs to be copied between computes? Does it needs to be changed? I think today we are not copying disk if the local disk is on shared between the compute. But I\u0027m not sure we handle all the above cases.","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"3842baffeac723725fbf3462f66b598b51a2cca1","unresolved":false,"context_lines":[{"line_number":140,"context_line":"          the same shared storage resource provider but in this spec, we would"},{"line_number":141,"context_line":"          like to keep the design simple and allow double allocation as it"},{"line_number":142,"context_line":"          would happen in the other cases described above."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Display correct DISK_GB data in hypervisor details"},{"line_number":145,"context_line":"--------------------------------------------------"},{"line_number":146,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_68d02920","line":143,"in_reply_to":"3fa7e38b_f528b033","updated":"2019-11-05 08:28:23.000000000","message":"I think check_instance_shared_storage of compute manager is called during the move operations to check whether there is a need to copy the instance disk files from source to destination. I will confirm if it\u0027s getting called for all above situations.","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Display correct DISK_GB data in hypervisor details"},{"line_number":145,"context_line":"--------------------------------------------------"},{"line_number":146,"context_line":"When a compute node is configured to use DISK_GB resources from a shared"},{"line_number":147,"context_line":"storage resource provider, it won\u0027t report DISK_GB resources in the inventory."},{"line_number":148,"context_line":"so in such case resource tracker will not calculate ``local_gb``,"},{"line_number":149,"context_line":"``free_disk_gb`` and ``local_gb_used`` disk information of the compute node."},{"line_number":150,"context_line":"The hypervisor detail ``GET /os-hypervisors/detail`` API will return"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_551744ef","line":147,"range":{"start_line":147,"start_character":27,"end_line":147,"end_character":77},"updated":"2019-10-28 12:30:49.000000000","message":"of the compute RP.","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":148,"context_line":"so in such case resource tracker will not calculate ``local_gb``,"},{"line_number":149,"context_line":"``free_disk_gb`` and ``local_gb_used`` disk information of the compute node."},{"line_number":150,"context_line":"The hypervisor detail ``GET /os-hypervisors/detail`` API will return"},{"line_number":151,"context_line":"``local_gb``, ``free_disk_gb`` and ``local_gb_used`` as 0."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"All resources of compute node like VCPU, Memory, DISK are managed by placement"},{"line_number":154,"context_line":"service, so I would like to suggest to deprecate ``GET /os-hypervisors/detail``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_55c5045b","line":151,"updated":"2019-10-28 12:30:49.000000000","message":"This might break external clients whom currently relay on the disk information in the response from computes with shared disk. Do we plan to introduce a new microversion to signal this semantic change?","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"All resources of compute node like VCPU, Memory, DISK are managed by placement"},{"line_number":154,"context_line":"service, so I would like to suggest to deprecate ``GET /os-hypervisors/detail``"},{"line_number":155,"context_line":"API and get that information from placement service."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Presently, there is no way to find out whether a resource provider is a compute"},{"line_number":158,"context_line":"node or not. There are two ways to figure that out."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_95cffc7d","line":155,"updated":"2019-10-28 12:30:49.000000000","message":"We cannot simply deprecated the os-hypervisors/detail API as placement does not have the same amount of information. At least the information behind the following information are missing from placement: cpu_info, current_workload, host_ip, running_vms (this can be calculated with GET\n/os-hypervisors if version \u003e2.53).","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":154,"context_line":"service, so I would like to suggest to deprecate ``GET /os-hypervisors/detail``"},{"line_number":155,"context_line":"API and get that information from placement service."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Presently, there is no way to find out whether a resource provider is a compute"},{"line_number":158,"context_line":"node or not. There are two ways to figure that out."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"1. Add a new standard trait ``COMPUTE_HYPERVISOR_TYPE\u003dKVM/QEMU/XEN`` as it\u0027s"},{"line_number":161,"context_line":"   done in Nova similar to adding new capabilities."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_75c28055","line":158,"range":{"start_line":157,"start_character":0,"end_line":158,"end_character":51},"updated":"2019-10-28 12:30:49.000000000","message":"This is almost already fixed with the patch https://review.opendev.org/#/c/688979/ Please refer to it.","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":197,"context_line":"REST API impact"},{"line_number":198,"context_line":"---------------"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"None"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Security impact"},{"line_number":203,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_f5abd084","line":200,"updated":"2019-10-28 12:30:49.000000000","message":"You suggested to deprecate REST APIs above and also the change in the disk reporting changes the semantics of existing REST APIs.","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7241ec56309ef53c67a16d59d6a0f0a8fc891e96","unresolved":false,"context_lines":[{"line_number":251,"context_line":"--------------"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"If a compute node is configured to use DISK_GB resources from a shared"},{"line_number":254,"context_line":"resource provider in a ``Train`` release, then it will be detected"},{"line_number":255,"context_line":"automatically during the startup of the compute service and it will take"},{"line_number":256,"context_line":"following actions:"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_559ae46e","line":254,"range":{"start_line":254,"start_character":23,"end_line":254,"end_character":32},"updated":"2019-10-28 12:30:49.000000000","message":"is it Ussuri now?","commit_id":"8676b494a3ea2516c45d07180642f3e89c472fd3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"43a502afa76e6e139f63b66424fc0dc4ce6afaff","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                    # This is the summation of total gb used by all compute nodes"},{"line_number":230,"context_line":"                    # sharing the disk storage"},{"line_number":231,"context_line":"                    \"shared_gb_used\": 20"},{"line_number":232,"context_line":"            }"},{"line_number":233,"context_line":"        }"},{"line_number":234,"context_line":"    ]"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_84299b8a","line":232,"updated":"2019-11-06 06:35:52.000000000","message":"Instead of providing shared disk details, I\u0027d rather prefer to return a single UUID of the shared resource so that operators would know between computes which ones are sharing the same resource.","commit_id":"1ed23ec8b6424ccafbe21917d66ad1ed62e6e7b1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7ab178a21543b3a59da00b5a80b6f5c34ff257ca","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                    # This is the summation of total gb used by all compute nodes"},{"line_number":230,"context_line":"                    # sharing the disk storage"},{"line_number":231,"context_line":"                    \"shared_gb_used\": 20"},{"line_number":232,"context_line":"            }"},{"line_number":233,"context_line":"        }"},{"line_number":234,"context_line":"    ]"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_a473774e","line":232,"in_reply_to":"3fa7e38b_64cfbf8b","updated":"2019-11-06 07:02:04.000000000","message":"Err, we said the compute API will have to query Placement to get the RP UUID of the shared storage.\nIt\u0027s an admin API for a very specific usecase, it\u0027s palatable to have a little extra delay on the API response.","commit_id":"1ed23ec8b6424ccafbe21917d66ad1ed62e6e7b1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a23c803c5a83f66f6678bdb94e874ac523f806e9","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                    # This is the summation of total gb used by all compute nodes"},{"line_number":230,"context_line":"                    # sharing the disk storage"},{"line_number":231,"context_line":"                    \"shared_gb_used\": 20"},{"line_number":232,"context_line":"            }"},{"line_number":233,"context_line":"        }"},{"line_number":234,"context_line":"    ]"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_64cfbf8b","line":232,"in_reply_to":"3fa7e38b_84299b8a","updated":"2019-11-06 06:49:27.000000000","message":"We said at the PTG we\u0027re even up for just dropping disk information.","commit_id":"1ed23ec8b6424ccafbe21917d66ad1ed62e6e7b1"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"a31c839b6081479e0f70d7190fc6f24ae76e555a","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                    # This is the summation of total gb used by all compute nodes"},{"line_number":230,"context_line":"                    # sharing the disk storage"},{"line_number":231,"context_line":"                    \"shared_gb_used\": 20"},{"line_number":232,"context_line":"            }"},{"line_number":233,"context_line":"        }"},{"line_number":234,"context_line":"    ]"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_2bfd0b3b","line":232,"in_reply_to":"3fa7e38b_a473774e","updated":"2019-11-07 01:23:21.000000000","message":"Let me clear my understanding:\n\n/os-hypervisors/detail API response will drop disk related parameters from the response and instead it will provide the resource provider uuid providing the disk resource to the compute node. The caller of  /os-hypervisors/detail aPI will then call placement API to get the disk details. So it\u0027s possible the disk resource could be consumed from a  compute node resource provider or a share storage resource provider.\n\nSo in the new microversion, the response will look something like this:\n\n     \"hypervisors\": [\n        {\n            \"cpu_info\": {…},\n             …..\n            \"disk_gb\": {\n                    \"uuid\": \"3fb4b0e3-7764-444e-b25f-ec8829dc0aab\", \n                     \"links\": [\n                                     {\n                                         \"href\": \"/placement/resource_providers/3fb4b0e3-7764-444e-b25f-ec8829dc0aab\", \"rel\": \"self\"\n                                     },\n                                     {\n                                         \"href\": \"/placement/resource_providers/3fb4b0e3-7764-444e-b25f-ec8829dc0aab/inventories\", \"rel\": \"inventories\"\n                                     }\n                                     {\"href\": \"/placement/resource_providers/3fb4b0e3-7764-444e-b25f-ec8829dc0aab/usages\", \"rel\": \"usages\"\n                                     }\n                      ],\n                      \"name\": \"shared_storage_node_1 OR compute node resource provider\"\n              }\n          }\n        ]\n\n\nIn the above response, dropped \"free_disk_gb\", \"local_gb\" and \"local_gb_used\" parameters and add a new parameter \"disk_gb\".","commit_id":"1ed23ec8b6424ccafbe21917d66ad1ed62e6e7b1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"43a502afa76e6e139f63b66424fc0dc4ce6afaff","unresolved":false,"context_lines":[{"line_number":359,"context_line":"5. Associate \"NFS_SHARE\" share resource provider and all compute nodes which"},{"line_number":360,"context_line":"   you want to use  \"DISK_GB\" inventory from \"NFS_SHARE\" shared provider with"},{"line_number":361,"context_line":"   an aggregate \"AGG_1\"."},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"Developer impact"},{"line_number":364,"context_line":"----------------"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_24530719","line":362,"updated":"2019-11-06 06:35:52.000000000","message":"you also need to specify to the compute node which disk to not care because it\u0027s shared.","commit_id":"1ed23ec8b6424ccafbe21917d66ad1ed62e6e7b1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"43a502afa76e6e139f63b66424fc0dc4ce6afaff","unresolved":false,"context_lines":[{"line_number":388,"context_line":"resource provider and simply restart the compute service and the migration of"},{"line_number":389,"context_line":"allocations from compute node to the shared storage resource provider will"},{"line_number":390,"context_line":"happen seamlessly."},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"Implementation"},{"line_number":393,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_04bfebfc","line":391,"updated":"2019-11-06 06:35:52.000000000","message":"Operators need to create the shared RP, create DISK_GB inventory on it.\nMapping has to be done after that.\n\nAll those ops are post-upgrade, post-install","commit_id":"1ed23ec8b6424ccafbe21917d66ad1ed62e6e7b1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"43a502afa76e6e139f63b66424fc0dc4ce6afaff","unresolved":false,"context_lines":[{"line_number":410,"context_line":"Work Items"},{"line_number":411,"context_line":"----------"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* libvirt driver doesn\u0027t report DISK_GB inventory [3]_"},{"line_number":414,"context_line":"* Add data migration routine using reshape functionality to move DISK_GB"},{"line_number":415,"context_line":"  allocations from the compute node provider to the shared storage resource"},{"line_number":416,"context_line":"  provider."}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_e4c16f83","line":413,"updated":"2019-11-06 06:35:52.000000000","message":"we said you need a config option to say \"please ignore DISK_GB from the provider\".","commit_id":"1ed23ec8b6424ccafbe21917d66ad1ed62e6e7b1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ba031672ca87834a2bca6b7939af21bb3c3dd370","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   provider allocations."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. The hypervisor details shows incorrect DISK_GB related data."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Use Cases"},{"line_number":51,"context_line":"---------"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_e4cc6b8b","line":49,"updated":"2019-12-09 15:20:59.000000000","message":"Cool with the above.","commit_id":"66e8a535d42cd67c6fa5524c8b38d489568752dc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1e8cdb0ab6a51f8a6a28cc5a7b0e7caecac8b578","unresolved":false,"context_lines":[{"line_number":240,"context_line":"to get the ``disk_gb`` resource information from placement service directly."},{"line_number":241,"context_line":"In case of a large deployment where there are hundreds and thousands of"},{"line_number":242,"context_line":"compute nodes running, it\u0027s not possible to give a call to placement service"},{"line_number":243,"context_line":"to get inventory and usages of each compute node resource provider for"},{"line_number":244,"context_line":"performance reasons. To cater to this problem, I\u0027m proposing to add a new REST"},{"line_number":245,"context_line":"API in placement service which will calculcate the statistics of standard"},{"line_number":246,"context_line":"resources as it\u0027s done in Nova."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"TODO: I will add details of this REST API once it\u0027s confirmed we are moving"},{"line_number":249,"context_line":"in the right direction or else we will need to et the inventories/usages of"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_8a851d0d","line":246,"range":{"start_line":243,"start_character":47,"end_line":246,"end_character":31},"updated":"2019-11-27 10:07:03.000000000","message":"Could you plese link to the placement spec proposing the new API when such spec is proposed?","commit_id":"66e8a535d42cd67c6fa5524c8b38d489568752dc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1e8cdb0ab6a51f8a6a28cc5a7b0e7caecac8b578","unresolved":false,"context_lines":[{"line_number":357,"context_line":"  | local_gb_used             | 20      |"},{"line_number":358,"context_line":"  +---------------------------+---------+"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"With the introduction of new microversion, disk_gb details will be displayed"},{"line_number":361,"context_line":"as shown below::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"  +---------+----------------------------------------------------------------------------+"},{"line_number":364,"context_line":"  | disk_gb | resource_provider\u003dhref\u003d/placement/resource_providers/\u003cprovider_uuid\u003e,      |"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_6a84610c","line":361,"range":{"start_line":360,"start_character":0,"end_line":361,"end_character":16},"updated":"2019-11-27 10:07:03.000000000","message":"The client could go and fetch the disk inventory, based on the link, from placement and show it to the user.","commit_id":"66e8a535d42cd67c6fa5524c8b38d489568752dc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ba031672ca87834a2bca6b7939af21bb3c3dd370","unresolved":false,"context_lines":[{"line_number":410,"context_line":"Refer to `Enabling enabled_shared_disk_provider`_ and"},{"line_number":411,"context_line":"`Disabling enabled_shared_disk_provider`_ sections to understand how"},{"line_number":412,"context_line":"the ``DISK_GB`` inventory and allocations of a compute node resource"},{"line_number":413,"context_line":"provider will be upgraded depending on the deployer\u0027s needs."},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"Implementation"},{"line_number":416,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_0478a728","line":413,"updated":"2019-12-09 15:20:59.000000000","message":"++","commit_id":"66e8a535d42cd67c6fa5524c8b38d489568752dc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ba031672ca87834a2bca6b7939af21bb3c3dd370","unresolved":false,"context_lines":[{"line_number":418,"context_line":"Feature Liaison"},{"line_number":419,"context_line":"---------------"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"* cdent/tpatil"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Assignee(s)"},{"line_number":424,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_848c9735","line":421,"range":{"start_line":421,"start_character":2,"end_line":421,"end_character":7},"updated":"2019-12-09 15:20:59.000000000","message":"well, cdent is no longer around in OpenStack AFAIK","commit_id":"66e8a535d42cd67c6fa5524c8b38d489568752dc"}]}
