class HypervisorManager {

    public void shutdownHost(HostVO hostVo) {
        if (!Host.Type.Routing.equals(hostVo.getType())) {
            return;
        }
        for (HypervisorHost currentHypervisorHost : hypervisorHosts) {
            if (currentHypervisorHost.supportsHypervisor(hostVo.getHypervisorType())) {
                shutdown(hostVo, currentHypervisorHost);
                return;
            }
        }
        throw new CloudRuntimeException(
                String.format("The the hypervisor[%s] from host[id=%d] does not support shutdown to consolidate", hostVo.getHypervisorType(), hostVo.getId()));
    }

}