bb0906f4f3
This adds a new config option to control the maximum number of disk devices allowed to attach to a single instance, which can be set per compute host. The configured maximum is enforced when device names are generated during server create, rebuild, evacuate, unshelve, live migrate, and attach volume. When the maximum is exceeded during server create, rebuild, evacuate, unshelve, or live migrate, the server will go into ERROR state and the server fault will contain the reason. When the maximum is exceeded during an attach volume request, the request fails fast in the API with a 403 error. The configured maximum on the destination is not enforced before cold migrate because the maximum is enforced in-place only (the destination is not checked over RPC). The configured maximum is also not enforced on shelved offloaded servers because they have no compute host, and the option is implemented at the nova-compute level. Part of blueprint conf-max-attach-volumes Change-Id: Ia9cc1c250483c31f44cdbba4f6342ac8d7fbe92b