[openstack-dev] [nova] Fail build request if we can't inject files?
Matt Riedemann
mriedem at linux.vnet.ibm.com
Sun Jul 3 15:08:04 UTC 2016
I want to use the gate-tempest-dsvm-neutron-full-ssh in nova since it
runs ssh validation + neutron + config drive + metadata service, which
will test the virtual device tagging 2.32 microversion API (added last
week).
The job has a file injection test that fails consistently which is
keeping it from being voting.
After debugging, the problem is the files to inject are silently ignored
because n-cpu is configured with libvirt.inject_partition=-2 by default.
That disables file injection:
https://github.com/openstack/nova/blob/faf50a747e03873c3741dac89263a80112da915a/nova/virt/libvirt/driver.py#L3030
We don't even log a warning if the user requested files to inject and we
can't honor it. If I were a user and tried to inject files when creating
a server but they didn't show up in the guest, I'd open a support ticket
against my cloud provider. So I don't think a warning (that only the
admin sees) is sufficient here. This isn't something that's discoverable
from the API either, it's really host configuration / capability
(something we still need to tackle).
So I propose that we fail the server create request in this case since
the user asked nova to inject files but n-cpu is configured to not allow
that.
I'd also think that this should trigger a reschedule to another compute.
However, if all computes have disabled file injection, which is the default:
https://github.com/openstack/nova/blob/0c0f60031acba11d0bab0617f68b95d9b5eb8d1d/nova/conf/libvirt.py#L66
Then they'll retry 3 times and fail with an instance in error state. So
I'm not sure if rescheduling in this case is useful. I'd think that
deployments are either allowing file injection globally (if using
libvirt) of they aren't, but would need some operators to chime in here.
--
Thanks,
Matt Riedemann
More information about the OpenStack-dev
mailing list