diff --git a/cinder/volume/drivers/vmware/vmdk.py b/cinder/volume/drivers/vmware/vmdk.py index 032a7d6783..fb21da018e 100644 --- a/cinder/volume/drivers/vmware/vmdk.py +++ b/cinder/volume/drivers/vmware/vmdk.py @@ -3641,16 +3641,27 @@ def _get_all_pools(self, refresh=False): context.get_admin_context()) return self._all_pools_cache + @volume_utils.trace def get_netapp_cinder_host(self, netapp_fqdn): # Example netapp host cinder-volume-netapp-b-0@stnpca2_st051_nfs # Example vmware host cinder-volume-vmware-vc-b-0@vmware_fcd - pools = [pool for pool in self._get_all_pools() + sched_pools = self._get_all_pools() + if not sched_pools: + LOG.error("No pools found in scheduler.") + return None + + pools = [pool for pool in sched_pools if pool['capabilities'].get('netapp_server_hostname') == netapp_fqdn] if not pools: + LOG.warning("No pools found for netapp server %s.", netapp_fqdn) + LOG.debug("Available pools: %s", + [p['name'] for p in sched_pools]) return None + LOG.debug("Found pools for netapp server %s: %s.", netapp_fqdn, pools) + return volume_utils.extract_host(pools[0]['name'], 'backend') def _start_periodic_tasks(self):