Назад | Перейти на главную страницу

libvirt + ESX (код ответа HTTP 400 для вызова "Войти")

Я пытаюсь подключиться к кластеру vSphere, используя информацию из документация libvirt.

$ virsh -c "vpx://root@10.51.4.11/dc1/dc1-cluster-e01/dc1-vsphere-e04/?no_verify=1"
Enter root's password for 10.51.4.11: 
error: internal error HTTP response code 400 for call to 'Login'
error: failed to connect to the hypervisor

Кажется, мне удалось установить соединение, но это не удается с «кодом HTTP 400». Если я введу неправильный пароль, произойдет сбой с ошибкой «учетные данные для входа», поэтому похоже, что я получаю соединение, но оно не работает по другой причине.

Wireshark не поможет, поскольку все это делается через SSL / TLS.

Есть мысли, ребята?

РЕШЕНИЕ: перейдите к моему ответу ниже о специальных символах.


ОБНОВЛЕНИЕ: 15:21 28/02/11

К вашему сведению - я запускаю libvirt-0.8.3 (пакет Ubuntu перекомпилирован с включенным флагом ESX).

Когда я перевожу virsh в режим отладки, он возвращает следующее:

[snip]
Enter root's password for 10.51.4.11: 
15:19:09.011: debug : do_open:1249 : driver 3 ESX returned ERROR
15:19:09.011: debug : virUnrefConnect:294 : unref connection 0x98aa8f8 1
15:19:09.011: debug : virReleaseConnect:249 : release connection 0x98aa8f8
error: internal error HTTP response code 400 for call to 'Login'
error: failed to connect to the hypervisor

Я смотрел файл vmware hostd.log при попытке входа в систему, и он сообщает об этой ошибке:

ОБНОВЛЕНИЕ: 10:26 02/03/11

[2011-03-02 10:24:16.415 26AF8B90 verbose 'Proxysvc Req16870'] New proxy client SSL(TCP(local=10.4.100.26:34001, peer=10.51.4.103:443))
[2011-03-02 10:24:16.430 26933B90 error 'SoapAdapter'] Client sent us an invalid SOAP request: at line number 8, not well-formed (invalid token)

я опубликовал мою проблему в списке рассылки libvirt и получил быстрый ответ.

Оказывается, libvirt в настоящее время не экранирует специальные символы в паролях, и, как оказалось, пароль имел & в этом.

Теперь я могу войти, используя & вместо того &. В настоящее время разрабатывается патч, чтобы исправить это.

Выполнить команду (без последней косой черты):

$ virsh -c "vpx://root@10.51.4.11/dc1/dc1-cluster-e01/dc1-vsphere-e04?no_verify=1"

Пытаться:

$ virsh -c "vpx://root@10.51.4.11?no_verify=1"

или:

$ virsh -c "vpx://10.51.4.11?no_verify=1"
$ virsh -c "esx://10.51.4.11?no_verify=1"

Может быть эта ссылка поможет? Он запускает 0.8.6 на Ubuntu ...