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 [...]