When starting a VM with cpu pinning, it was not validated if the required CPU is really online on the host.
vdsm/libvirt tried to start the VM even when the requested host cpu cores were not available. The result was a cryptic error message in the logs instead of an interactive feedback that a VM can't run on the target hosts.
Add a CpuPinningPolicy which checks on start up and migration of a VM if target hosts have all the required CPUs and if they are online
When starting a VM with a specific CPU pinning the user will see an appropriate validation message which is emitted by the scheduler instead of a failed launch attempt from libvirt with an obscure error message.