Cloned from launchpad bug 1658571. Description: Device tagging support was added in microversion 2.32, as for ports: http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/compute/schemas/servers.py#n76 but in latter microversion 2.37 accidentally removed it: http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/compute/schemas/servers.py#n82 And for bdms: the schema is added by https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/block_device_mapping.py#L76 and it will only work for microversion 2.32 So this function is only usable from microversion 2.32 to 2.37 for ports and only for 2.32 for bdms. we should fix it and backport to Newton. Specification URL (additional information): https://bugs.launchpad.net/nova/+bug/1658571
Discussing on the team call today we pondered whether it is feasible for RHOSP 10/11 to workaround this issue by patching the client to explicitly set the relevant microversion when calling `nova boot` with tags. This would require analyzing the intersection with any microversions occuring after those that work with the feature.
A downstream client workaround has been done for bz1436266, in which the client sets the microversion according to what sort of tagging has been request to allow device tagging to work out of the box as much as possible without needing to pass the --os-compute-api-version flag. This is the best we can do in OSP10 - the real fix will come in OSP11 and microversion 2.42.