2014-12-10 3 views
0

Я использую pysphere для взаимодействия с моим сервером esxi.PySphere send_file Ошибка HTTP 500

Одна из функций, которые я пытаюсь использовать, - send_file (Explained here). Это приводит к тому, за исключением следующего:

File "/usr/local/lib/python2.7/dist-packages/pysphere/vi_virtual_machine.py", line 1282, in send_file 
    resp = opener.open(request) 
    File "/usr/lib/python2.7/urllib2.py", line 410, in open 
    response = meth(req, response) 
    File "/usr/lib/python2.7/urllib2.py", line 523, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python2.7/urllib2.py", line 448, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
HTTPError: HTTP Error 500: Internal Server Error 

Я включил файлы трассировки, и они выглядят как это (я показываю ответ)

RESPONSE: 
200 
OK 
------- 
Date: Wed, 10 Dec 2014 07:03:21 GMT 
Cache-Control: no-cache 
Connection: Keep-Alive 
Content-Type: text/xml; charset=utf-8 
Content-Length: 521 

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
<InitiateFileTransferToGuestResponse xmlns="urn:vim25"><returnval>https://*:443/guestFile?id=11&amp;token=52548475-79f4-6b02-a207-be5d1e3b0a8511</returnval></InitiateFileTransferToGuestResponse> 
</soapenv:Body> 
</soapenv:Envelope> 

На самом ESXi сервере я могу увидеть в недавнем Задачи, которые были сделаны для передачи файла.

На этом этапе я в тупике. Я проверил все мои настройки как минимум пять раз. Я тестировал, что могу выполнять другие действия, и все они работают нормально. Что я могу сделать по этому поводу? Есть ли какая-то настройка, которую мне нужно включить на сервере esxi? VM? возможно, что-то на брандмауэре?

Аналогичная проблема: https://code.google.com/p/pysphere/issues/detail?id=53


Edit: То, что я хочу сделать, это быть в состоянии передавать файлы на виртуальной машине. Если есть альтернативный и надежный метод, это тоже хорошо.

ответ

0

Я попытался использовать send_file в pysphere, это было больно и медленно. По какой-то причине отправка файлов имеет проблемы с двоичными файлами. Мое обходное решение: создайте файл iso со своими двоичными файлами, смонтируйте его на виртуальной машине (для него существует pysphere api), создайте bat-файл (он должен найти правильный cdrom и скопировать ваши файлы). Отправить пакет по файлу send_file. Запустите его путем запуска.

Yapp, send_files имеет проблемы с большими файлами и нужно использовать небольшой взлом https://code.google.com/p/pysphere/issues/detail?id=16

Смежные вопросы