vSphere Perl SDK: SOAP request error – possibly a protocol issue

El siguiente error se puede presentar al ejecutar cualquier script en perl de la vSphere SDK.

# /usr/lib/vmware-vcli/apps/performance/viperformance.pl \
 --host esx2 --server 192.168.1.100 --countertype net \
--samples 1 --instance "*" --username foo --password 'bar'

SOAP request error - possibly a protocol issue: 
<?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>
<RetrievePropertiesResponse xmlns="urn:vim25"><returnval><obj type="HostSystem">host-443</obj><propSet><name>name</name><val xsi:type="xsd:string">esx1</val></propSet></returnval><returnval><obj type="HostSystem">host-450</obj><propSet><name>name</name><val xsi:type="xsd:string">esx4</val></propSet></returnval><returnval><obj type="HostSystem">host-454</obj><propSet><name>name</name><val xsi:type="xsd:string">esx23</val></propSet></returnval><returnval><obj type="HostSystem">host-458</obj><propSet><name>name</name><val xsi:type="xsd:string">esx24</val></propSe

El problema tiene lugar en una incompatibilidad de ciertas versiones de los módulos de Perl Net::HTTP y LWP. En mi caso el problema se reproducía con las siguientes versiones:

  • libwww-perl-6.13
  • Net-HTTP-6.07

Buscando un poco por los foros de VMware he visto que las versiones que no daban problemas son las siguientes:

  • libwww-perl-6.03
  • Net-HTTP-6.03

Podéis instalarlas por CPAN o compilándolas manualmente. En el caso de CPAN:

# cpan GAAS/libwww-perl-6.05.tar.gz
# cpan GAAS/Net-HTTP-6.03.tar.gz

Una vez instaladas, el error desaparece. Tocará revisar si es necesario un downgrade específico a la 6.03 de ambos módulos… la verdad es que he probado varias versiones y estas han sido las únicas que han funcionado bien.

# perl -MNet::HTTP -e 'print "$Net::HTTP::VERSION\n"'
6.03
# perl -MLWP       -e 'print "$LWP::VERSION\n"'
6.03
# /usr/lib/vmware-vcli/apps/performance/viperformance.pl \
 --host esx2 --server 192.168.1.100 --countertype net \
--samples 1 --instance "*" --username foo --password 'bar'

Performance data for: esx2
 
Counter: Usage 
Instance :  
Description: CPU usage as a percentage during the interval 
Units: Percent 
Sample info : 20,2015-03-03T15:36:40Z,20,2015-03-03T15:37:00Z,20,2015-03-03T15:37:20Z,20,2015-03-03T15:37:40Z,20,2015-03-03T15:38:00Z,20,2015-03-03T15:38:20Z,20,2015-03-03T15:38:40Z,20,2015-03-03T15:39:00Z,20,2015-03-03T15:39:20Z,20,2015-03-03T15:39:40Z 
Value: 181,230,187,175,181,241,220,275,200,292
[...]

Un comentario en “vSphere Perl SDK: SOAP request error – possibly a protocol issue

Comments are closed.