)]}'
{"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1fb2b77879aaaabc188fece3d63f79b9a14f0810","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                        instance, vi.datastore.ref, adapter_type)"},{"line_number":748,"context_line":"                else:"},{"line_number":749,"context_line":"                    self._volumeops.attach_volume(connection_info,"},{"line_number":750,"context_line":"                        instance, adapter_type, vi.datastore.ref)"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        # Create ephemeral disks"},{"line_number":753,"context_line":"        self._create_ephemeral(block_device_info, instance, vm_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_fc59ee35","line":750,"updated":"2015-08-31 08:45:18.000000000","message":"this can an will break the cinder policies for placement. the relocation will contradict that.","commit_id":"36bd95ef71b738a060b93249d7eaab5dc863026a"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"af3c9df2ca10684d04fb1edcdf46c70bbb71178e","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                        instance, vi.datastore.ref, adapter_type)"},{"line_number":748,"context_line":"                else:"},{"line_number":749,"context_line":"                    self._volumeops.attach_volume(connection_info,"},{"line_number":750,"context_line":"                        instance, adapter_type, vi.datastore.ref)"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        # Create ephemeral disks"},{"line_number":753,"context_line":"        self._create_ephemeral(block_device_info, instance, vm_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_aea3ebff","line":750,"in_reply_to":"da20952f_4a8a4d65","updated":"2015-09-01 15:44:52.000000000","message":"Storage policy can be read from volume type (if possible) or we can query vCenter SPBM service to retrieve the storage policy associated with the volume. Then we have to find all available datastores (accessible to the current ESX host) which are compliant with this storage policy (using SPBM APIs) and choose one of the them as the destination datastore for volume relocate.","commit_id":"36bd95ef71b738a060b93249d7eaab5dc863026a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2166ea9dc8d31e537d893e11ce3400ba063ddaa7","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                        instance, vi.datastore.ref, adapter_type)"},{"line_number":748,"context_line":"                else:"},{"line_number":749,"context_line":"                    self._volumeops.attach_volume(connection_info,"},{"line_number":750,"context_line":"                        instance, adapter_type, vi.datastore.ref)"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        # Create ephemeral disks"},{"line_number":753,"context_line":"        self._create_ephemeral(block_device_info, instance, vm_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_3c5a5451","line":750,"in_reply_to":"da20952f_aea3ebff","updated":"2015-09-03 12:43:49.000000000","message":"i am addressing this in patch https://review.openstack.org/218639","commit_id":"36bd95ef71b738a060b93249d7eaab5dc863026a"},{"author":{"_account_id":10210,"name":"Chinmaya Bharadwaj","email":"chinmaya-bharadwaj.a@hpe.com","username":"chinmay"},"change_message_id":"13baf70be661bcd5ff3ff8d7e127ef248f4b6159","unresolved":false,"context_lines":[{"line_number":747,"context_line":"                        instance, vi.datastore.ref, adapter_type)"},{"line_number":748,"context_line":"                else:"},{"line_number":749,"context_line":"                    self._volumeops.attach_volume(connection_info,"},{"line_number":750,"context_line":"                        instance, adapter_type, vi.datastore.ref)"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"        # Create ephemeral disks"},{"line_number":753,"context_line":"        self._create_ephemeral(block_device_info, instance, vm_ref,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_4a8a4d65","line":750,"in_reply_to":"da20952f_fc59ee35","updated":"2015-09-01 10:28:24.000000000","message":"oh, i was not aware of that. But is there an alternative here ?","commit_id":"36bd95ef71b738a060b93249d7eaab5dc863026a"}],"nova/virt/vmwareapi/volumeops.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d3ef0a2e6583db32c999578a73a3964cca28e354","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        LOG.debug(\"Attached ISCSI: %s\", connection_info, instance\u003dinstance)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def attach_volume(self, connection_info, instance, adapter_type\u003dNone,"},{"line_number":379,"context_line":"                      datasore\u003dNone):"},{"line_number":380,"context_line":"        \"\"\"Attach volume storage to VM instance.\"\"\""},{"line_number":381,"context_line":"        driver_type \u003d connection_info[\u0027driver_volume_type\u0027]"},{"line_number":382,"context_line":"        LOG.debug(\"Volume attach. Driver type: %s\", driver_type,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_f81e875e","line":379,"updated":"2015-07-05 15:01:20.000000000","message":"datasore \u003d\u003e datastore","commit_id":"04481f6bdb8773552a9342c9051d3e12f64d0f7d"},{"author":{"_account_id":10210,"name":"Chinmaya Bharadwaj","email":"chinmaya-bharadwaj.a@hpe.com","username":"chinmay"},"change_message_id":"6ceb8d42d42e0d14be5fd279a57ad9f95eedf88c","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        LOG.debug(\"Attached ISCSI: %s\", connection_info, instance\u003dinstance)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def attach_volume(self, connection_info, instance, adapter_type\u003dNone,"},{"line_number":379,"context_line":"                      datasore\u003dNone):"},{"line_number":380,"context_line":"        \"\"\"Attach volume storage to VM instance.\"\"\""},{"line_number":381,"context_line":"        driver_type \u003d connection_info[\u0027driver_volume_type\u0027]"},{"line_number":382,"context_line":"        LOG.debug(\"Volume attach. Driver type: %s\", driver_type,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_28bb1d10","line":379,"in_reply_to":"ba3cc151_f81e875e","updated":"2015-07-06 16:48:43.000000000","message":"Done","commit_id":"04481f6bdb8773552a9342c9051d3e12f64d0f7d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bc0cadd6d01fbe8b12151fa7346b7d3940358155","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":306,"context_line":"        return vm_util.get_vmdk_volume_disk(hardware_devices)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def _relocate_vmdk_for_attach(self, vm_ref, volume_ref, datastore):"},{"line_number":309,"context_line":"        \"\"\"Relocates the VMDK from one datastore to another datastore"},{"line_number":310,"context_line":"        where the instance resides."},{"line_number":311,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_66aa2387","line":308,"updated":"2015-07-15 16:21:00.000000000","message":"What about cinder multi-attach?  I guess that\u0027s just not supported with vmware?","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"},{"author":{"_account_id":10210,"name":"Chinmaya Bharadwaj","email":"chinmaya-bharadwaj.a@hpe.com","username":"chinmay"},"change_message_id":"d250f98eb77feb9b44df2f2fba1cbcf74cb5a2cd","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":306,"context_line":"        return vm_util.get_vmdk_volume_disk(hardware_devices)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def _relocate_vmdk_for_attach(self, vm_ref, volume_ref, datastore):"},{"line_number":309,"context_line":"        \"\"\"Relocates the VMDK from one datastore to another datastore"},{"line_number":310,"context_line":"        where the instance resides."},{"line_number":311,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_705cbaed","line":308,"in_reply_to":"9a41bdd9_0649d7b6","updated":"2015-07-17 07:19:08.000000000","message":"The nova boot API itself fails with \"Invalid volume: status must be \u0027available\u0027\". so it wont come to the driver part.","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9bffa7faa4d127ac068b291aadde033d961d8fe8","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":306,"context_line":"        return vm_util.get_vmdk_volume_disk(hardware_devices)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def _relocate_vmdk_for_attach(self, vm_ref, volume_ref, datastore):"},{"line_number":309,"context_line":"        \"\"\"Relocates the VMDK from one datastore to another datastore"},{"line_number":310,"context_line":"        where the instance resides."},{"line_number":311,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_0649d7b6","line":308,"in_reply_to":"9a41bdd9_66aa2387","updated":"2015-07-15 16:23:51.000000000","message":"Can you tell if the volume is already attached to another instance and if that instance isn\u0027t in the same datastore as what\u0027s targeted here, you fail the request?","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5f368468c138fd9eb4390fd781711fbaa95d00ad","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                        \"VirtualMachine\", \"config.hardware.device\")"},{"line_number":306,"context_line":"        return vm_util.get_vmdk_volume_disk(hardware_devices)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def _relocate_vmdk_for_attach(self, vm_ref, volume_ref, datastore):"},{"line_number":309,"context_line":"        \"\"\"Relocates the VMDK from one datastore to another datastore"},{"line_number":310,"context_line":"        where the instance resides."},{"line_number":311,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_262adbdb","line":308,"in_reply_to":"9a41bdd9_66aa2387","updated":"2015-07-15 16:30:42.000000000","message":"this method is not related to that and this is an internal method","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5f368468c138fd9eb4390fd781711fbaa95d00ad","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        where the instance resides."},{"line_number":311,"context_line":"        \"\"\""},{"line_number":312,"context_line":"        res_pool \u003d self._get_res_pool_of_vm(vm_ref)"},{"line_number":313,"context_line":"        # Should we add the check If the vmdk is on a datastore"},{"line_number":314,"context_line":"        # that is visible to the host where the instance resides,"},{"line_number":315,"context_line":"        # which will lead to few more SDK calls to vCenter?"},{"line_number":316,"context_line":"        self._relocate_vmdk_volume(volume_ref, res_pool, datastore)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_a6f10b6d","line":313,"updated":"2015-07-15 16:30:42.000000000","message":"If \u003d\u003e if","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"},{"author":{"_account_id":10210,"name":"Chinmaya Bharadwaj","email":"chinmaya-bharadwaj.a@hpe.com","username":"chinmay"},"change_message_id":"d250f98eb77feb9b44df2f2fba1cbcf74cb5a2cd","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        where the instance resides."},{"line_number":311,"context_line":"        \"\"\""},{"line_number":312,"context_line":"        res_pool \u003d self._get_res_pool_of_vm(vm_ref)"},{"line_number":313,"context_line":"        # Should we add the check If the vmdk is on a datastore"},{"line_number":314,"context_line":"        # that is visible to the host where the instance resides,"},{"line_number":315,"context_line":"        # which will lead to few more SDK calls to vCenter?"},{"line_number":316,"context_line":"        self._relocate_vmdk_volume(volume_ref, res_pool, datastore)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_9004dec6","line":313,"in_reply_to":"9a41bdd9_a6f10b6d","updated":"2015-07-17 07:19:08.000000000","message":"Done","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5f368468c138fd9eb4390fd781711fbaa95d00ad","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        res_pool \u003d self._get_res_pool_of_vm(vm_ref)"},{"line_number":313,"context_line":"        # Should we add the check If the vmdk is on a datastore"},{"line_number":314,"context_line":"        # that is visible to the host where the instance resides,"},{"line_number":315,"context_line":"        # which will lead to few more SDK calls to vCenter?"},{"line_number":316,"context_line":"        self._relocate_vmdk_volume(volume_ref, res_pool, datastore)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def _attach_volume_vmdk(self, connection_info, instance,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_06a55745","line":315,"updated":"2015-07-15 16:30:42.000000000","message":"Yes, we certainly should have the check. In most cases my feeling is that the host will most probably be connected to the datastore. This is also something that we can cache so we may only have a performance hit for the first request","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"},{"author":{"_account_id":10210,"name":"Chinmaya Bharadwaj","email":"chinmaya-bharadwaj.a@hpe.com","username":"chinmay"},"change_message_id":"d250f98eb77feb9b44df2f2fba1cbcf74cb5a2cd","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        res_pool \u003d self._get_res_pool_of_vm(vm_ref)"},{"line_number":313,"context_line":"        # Should we add the check If the vmdk is on a datastore"},{"line_number":314,"context_line":"        # that is visible to the host where the instance resides,"},{"line_number":315,"context_line":"        # which will lead to few more SDK calls to vCenter?"},{"line_number":316,"context_line":"        self._relocate_vmdk_volume(volume_ref, res_pool, datastore)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def _attach_volume_vmdk(self, connection_info, instance,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_f068ca89","line":315,"in_reply_to":"9a41bdd9_06a55745","updated":"2015-07-17 07:19:08.000000000","message":"Sure, will make it TODO\", address as part of another patch.","commit_id":"0e55cc664403d2bdcdf7ff145f718f749c41153e"}]}
