On 02/20/2014 11:38 AM, Matt Riedemann wrote:


On 2/19/2014 4:05 PM, Matt Riedemann wrote:
The os-hosts OS API extension [1] showed up before I was working on the
project and I see that only the VMware and XenAPI drivers implement it,
but was wondering why the libvirt driver doesn't - either no one wants
it, or there is some technical reason behind not implementing it for
that driver?

[1]
http://docs.openstack.org/api/openstack-compute/2/content/PUT_os-hosts-v2_updateHost_v2__tenant_id__os-hosts__host_name__ext-os-hosts.html

By the way, am I missing something when I think that this extension is
already covered if you're:

1. Looking to get the node out of the scheduling loop, you can just
disable it with os-services/disable?

2. Looking to evacuate instances off a failed host (or one that's in
"maintenance mode"), just use the evacuate server action.

In compute/api.py the API.evacuate() routine errors out if self.servicegroup_api.service_is_up(service) is true, which means that you can't evacuate from a compute node that is "disabled", you need to migrate instead.

So, the alternative is basically to disable the service, then get a list of all the servers on the compute host, then kick off the migration (either cold or live) of each of the servers. Then because migration uses a "cast" instead of a "call" you need to poll all the migrations for success or late failures. Once you have no failed migrations and no servers running on the host then you're good.

Chris

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to