The Manila cDOT driver reports several capabilities as driver-level capabilities, in addition to the per-pool capabilities. The Manila scheduler appears to ignore these capabilities when filtering, and since the 'driver_handles_share_servers' extra spec is now required, and that is a driver-level capability, then we are unable to schedule any shares on the cDOT driver. If the extra-spec is not specified, the api will reject it as missing, if it is specified, the filter will not find a pool with the capability.
The manila scheduler pools logs for c-mode show the following pools:
DEBUG manila.scheduler.host_manager [req-b77e8083-76ee-4896-bad9-41ebc90adab1 None None] Received share service update from openstack1@cmodeNFS: {u'QoS_support': False, u'share_backend_name': u'cmodeNFS', u'driver_handles_share_servers': True, u'driver_version': u'1.0', u'total_capacity_gb': 0.0, u'driver_name': u'NetApp_Cluster_MultiSVM', u'storage_protocol': u'NFS_CIFS', u'pools': [{u'pool_name': u'aggr0', u'QoS_support': u'False', u'allocated_capacity_gb': 1420.8, u'free_capacity_gb': 69.33, u'total_capacity_gb': 1490.13, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}, {u'pool_name': u'aggr0_sfp_cmode_05_02_0', u'QoS_support': u'False', u'allocated_capacity_gb': 1420.78, u'free_capacity_gb': 69.35, u'total_capacity_gb': 1490.13, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}, {u'pool_name': u'aggr1', u'QoS_support': u'False', u'allocated_capacity_gb': 7332.69, u'free_capacity_gb': 1608.13, u'total_capacity_gb': 8940.82, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}, {u'pool_name': u'aggr2', u'QoS_support': u'False', u'allocated_capacity_gb': 582.68, u'free_capacity_gb': 3887.73, u'total_capacity_gb': 4470.41, u'reserved_percentage': 0, u'netapp_raid_type': u'raid_dp', u'netapp_disk_type': u'SATA'}], u'vendor_name': u'NetApp', u'reserved_percentage': 0, u'free_capacity_gb': 0.0, u'netapp_storage_family': u'ontap_cluster'} from (pid=29121) update_service_capabilities /opt/stack/manila/manila/scheduler/host_manager.py:414
In the above pools output, driver_handles_share_servers is set to be True. But, manila-scheduler appears to ignore this capability even though it exists and hence scheduling shares on the C-dot driver fails as evidenced by the manila-scheduler output below.
WARNING manila.scheduler.manager [req-2374cb44-d214-4dcc-83cb-18530d3753d3 3839af78c5934f85a8f0caa80dd76054 d5b5716cdd334b419f8948189a85bba6] Failed to schedule_create_share: No valid host was found.
Fix proposed to branch: master /review. openstack. org/163487
Review: https:/