The tempest api.volume.test_volume_types test won't work with non-default drivers configured for cinder's backend any more. The reason is that we create a type using capability scheduler keywords in the extra-specs for the test; (vendor_name and storage_protocol). The result is the extra-spec uses the filters: "vendor_name=Open Source" and "storage_protocol=iSCSI", but for example if you have another backend say SolidFire, EMC, NetApp, IBM etc the capabilities filter will fail the create with a "No valid host available". This is intended to work by simply setting these values in your tempest.conf file. That's fine, however upon setting this up in my localrc I found that the tempest config variables being set via devtsack were never picked up Currently devstack doesn't use the same variable names for configuration variables as tempest expects. Devstack is using the variable "TEMPEST_CONF" however the Tempest project is expecting the variable "TEMPEST_CONFIG", so currently the devstack lib/tempest rc variables are never picked up by tempest properly. This change modifes devstack's naming of TEMPEST_CONF, my though being that since this doesn't work in devstack currently that changing it here would be better than changing it in Tempest where it's possible people had their own custoizations already outside of devstack. In addition this change creates rc variables in devstack to actually set these via devstack. The idea here is that Cinder 3'rd party testing needs to be a simple devstack config and run stack.sh. By fixing up the configuration file variable naming and adding the variables for the vendor and protocol settings that's now possible. An example localrc for a custom config is shown below. The example sets the tempest config file to /etc/tempest/tempest.conf, and configures tempest to use the SolidFire driver as the cinder backend. TEMPEST_VOLUME_VENDOR ==> tempest.conf.volume_vendor TEMPEST_STORAGE_PROTOCOL ==> tempest.conf.storage_protocol relevant example localrc entries: TEMPEST_CONFIG=/etc/tempest/tempest.conf TEMPEST_CONFIG_DIR=/etc/tempest TEMPEST_VOLUME_DRIVER=solidfire TEMPEST_VOLUME_VENDOR="SolidFire Inc" ***NOTE*** storage_protocol and vendor_name MUST match what the backend device reports from get capabilities. Change-Id: I28dfa90c877b27f5d4919f2748fae092bb2f87fa Closes-Bug: 1271781
14 KiB
14 KiB