So that's why for an image the prefix is hw_ and we get hw_boot_menu, but for a flavor extra spec we get hw:boot_menu. But if you look at the watchdog action, it's not the same:
There is no prefix defined in resource_type_associations so the prefix is built into the property name:
"properties": { "hw_watchdog_action": { "title": "Watchdog Action", "description": "For the libvirt driver, you can enable and set the behavior of a virtual hardware watchdog device for each flavor. Watchdog devices keep an eye on the guest server, and carry out the configured action, if the server hangs. The watchdog uses the i6300esb device (emulating a PCI Intel 6300ESB). If hw_watchdog_action is not specified, the watchdog is disabled. Watchdog behavior set using a specific image's properties will override behavior set using flavors.",
"type": "string",
"enum": [ "disabled", "reset", "poweroff", "pause", "none"
]
}
}
You can see the glance metadef prefixes defined here:
https:/ /github. com/openstack/ glance/ blob/master/ etc/metadefs/ compute- libvirt. json#L7
"resource_ type_associatio ns": [ :Image" ,
"prefix" : "hw_"
"prefix" : "hw:"
{
"name": "OS::Glance:
},
{
"name": "OS::Nova::Flavor",
}
],
So that's why for an image the prefix is hw_ and we get hw_boot_menu, but for a flavor extra spec we get hw:boot_menu. But if you look at the watchdog action, it's not the same:
https:/ /github. com/openstack/ glance/ blob/master/ etc/metadefs/ compute- watchdog. json#L7
There is no prefix defined in resource_ type_associatio ns so the prefix is built into the property name:
"properties": {
"hw_watchdog_ action" : {
"title" : "Watchdog Action",
"descripti on": "For the libvirt driver, you can enable and set the behavior of a virtual hardware watchdog device for each flavor. Watchdog devices keep an eye on the guest server, and carry out the configured action, if the server hangs. The watchdog uses the i6300esb device (emulating a PCI Intel 6300ESB). If hw_watchdog_action is not specified, the watchdog is disabled. Watchdog behavior set using a specific image's properties will override behavior set using flavors.",
"disabled" ,
"reset" ,
"poweroff" ,
"pause" ,
"none"
"type": "string",
"enum": [
]
}
}
Which is why we don't get hw:watchdog_action.