[openstack-dev] [nova] Does anyone rely on PUT /os-services/disable for non-compute services?

Matt Riedemann mriedemos at gmail.com
Tue Jun 13 17:19:31 UTC 2017

With this change in Pike:


The PUT /os-services/* APIs to enable/disable/force-down a service will 
now only work with nova-compute services. If you're using those to try 
and disable a non-compute service, like nova-scheduler or 
nova-conductor, those APIs will result in a 404 response because there 
won't be host mappings for non-compute services.

There really never was a good reason to disable/enable non-compute 
services anyway since it wouldn't do anything. The scheduler and API are 
checking the status and forced_down fields to see if instance builds can 
be scheduled to a compute host or if instances can be evacuated from a 
downed compute host. There is nothing that relies on a disabled or 
downed conductor or scheduler service.

I realize the docs aren't justification for API behavior, but the API 
reference has always pointed out that these PUT operations are for 
*compute* services:


This has come up while working on an API microversion [1] where we'll 
now expose service uuids in GET calls and take a service uuid in PUT and 
DELETE calls to the os-services API. The uuid is needed to uniquely 
identify a service across cells. I plan on restricting PUT 
/os-services/{service_id} calls to only nova-compute services, and 
return a 400 on any other service like nova-conductor or nova-scheduler, 
since it doesn't make sense to enable/disable/force-down non-compute 

This email is to provide awareness of this change and to also see if 
there are any corner cases in which people are relying on any of this 
behavior that we don't know about - this is your chance to speak up 
before we make the change.





More information about the OpenStack-dev mailing list