Bug 1169006 - virt-who Method not found: 'VimService.VimPort.RetrieveProperties
Summary: virt-who Method not found: 'VimService.VimPort.RetrieveProperties
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: virt-who
Version: 6.6
Hardware: x86_64
OS: Linux
high
high
Target Milestone: rc
: ---
Assignee: Radek Novacek
QA Contact: gaoshang
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-11-28 20:14 UTC by Chris Roberts
Modified: 2019-08-15 04:06 UTC (History)
6 users (show)

Fixed In Version: virt-who-0.12-1.el6
Doc Type: Bug Fix
Doc Text:
Because certain versions of the VMWare ESX hypervisor do not support the RetrieveProperties method, the virt-who agent failed when obtaining information from the ESX hypervisor. With this update, virt-who no longer uses the RetrieveProperties method and instead works asynchronously, using the WaitForUpdatesEx method. As a result, virt-who is now able to reliable obtain information from the ESX hypervisor.
Clone Of:
Environment:
Last Closed: 2015-07-22 07:15:39 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2015:1377 normal SHIPPED_LIVE virt-who bug fix and enhancement update 2015-07-20 17:58:35 UTC

Description Chris Roberts 2014-11-28 20:14:49 UTC
Description of problem:

2014-11-27 10:17:22,352 [INFO]  @virtwho.py:442 - Using virt-who configuration: virt-who
2014-11-27 10:17:31,667 [ERROR]  @virtwho.py:118 - Error in communication with virtualization backend, trying to recover:
Traceback (most recent call last):
  File "/usr/share/virt-who/virtwho.py", line 111, in _send
    virtualGuests = self._readGuests(config)
  File "/usr/share/virt-who/virtwho.py", line 147, in _readGuests
    return virt.getHostGuestMapping()
  File "/usr/share/virt-who/virt/esx/esx.py", line 301, in getHostGuestMapping
    self.scan()
  File "/usr/share/virt-who/virt/esx/esx.py", line 176, in scan
    object_content = self.client.service.RetrieveProperties(
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 299, in __getattr__
    return getattr(port, name)
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 403, in __getattr__
    return getattr(m, name)
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 494, in __getattr__
    return self[name]
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 507, in __getitem__
    raise MethodNotFound, qn
MethodNotFound: Method not found: 'VimService.VimPort.RetrieveProperties'
2014-11-27 10:17:38,544 [ERROR]  @virtwho.py:121 - Unable to recover, retry in 60 seconds.

How reproducible:

Steps to Reproduce:
1. install rhel 6.6
2. yum update 
3. yum install virt-who
4. setup virt-who and start service
5. error

Actual results:
2014-11-27 10:17:22,352 [INFO]  @virtwho.py:442 - Using virt-who configuration: virt-who
2014-11-27 10:17:31,667 [ERROR]  @virtwho.py:118 - Error in communication with virtualization backend, trying to recover:
Traceback (most recent call last):
  File "/usr/share/virt-who/virtwho.py", line 111, in _send
    virtualGuests = self._readGuests(config)
  File "/usr/share/virt-who/virtwho.py", line 147, in _readGuests
    return virt.getHostGuestMapping()
  File "/usr/share/virt-who/virt/esx/esx.py", line 301, in getHostGuestMapping
    self.scan()
  File "/usr/share/virt-who/virt/esx/esx.py", line 176, in scan
    object_content = self.client.service.RetrieveProperties(
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 299, in __getattr__
    return getattr(port, name)
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 403, in __getattr__
    return getattr(m, name)
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 494, in __getattr__
    return self[name]
  File "/usr/lib/python2.6/site-packages/suds/client.py", line 507, in __getitem__
    raise MethodNotFound, qn
MethodNotFound: Method not found: 'VimService.VimPort.RetrieveProperties'
2014-11-27 10:17:38,544 [ERROR]  @virtwho.py:121 - Unable to recover, retry in 60 seconds.

Expected results:
Hypervisors be sent off to the portal

Additional Info:
sosreport is attached to case as a private attachment

Comment 3 Radek Novacek 2015-01-26 07:13:35 UTC
Hi, thanks for the report.

It looks like the remote hypervisor doesn't support neither RetrieveProperties nor RetrievePropertiesEx API calls.

With what version of ESX (or vSphere) does this happen?

Comment 5 Radek Novacek 2015-02-19 12:21:21 UTC
According to the link in comment #4, the problem is merely in the wsdl file, the call works properly.

Next release of virt-who will contain it's own version of wsdl file (mostly stripped of unnecessary parts as a performance improvement). So this problem shouldn't appear anymore.

Comment 6 Radek Novacek 2015-02-27 19:39:27 UTC
Fixed by rebase to virt-who-0.12-1.el6.

Comment 8 Liushihui 2015-04-16 06:57:03 UTC
Verified it on virt-who-0.12-2.el6 as virt-who can send host/guest of esx4.1 to SAM, therefore, verify it.

Verified version:
virt-who-0.12-2.el6.noarch
subscription-manager-1.14.1-1.el6.x86_64
python-rhsm-1.14.1-1.el6.x86_64
candlepin-0.9.6.5-1.el6sam.noarch
katello-headpin-1.4.3.28-1.el6sam_splice.noarch

Precondition:
Prepare one esx4.1 host which has added to vcenter4.1

Verified process:
1. Register system to SAM/Satellite server.
2. Configure virt-who run at esx mode and send the hostname to SAM/Satellite 
server.then restart virt-who service
[root@hp-z220-03 ~]# cat /etc/sysconfig/virt-who
VIRTWHO_BACKGROUND=1
VIRTWHO_DEBUG=1
VIRTWHO_ESX=1
VIRTWHO_ESX_OWNER=ACME_Corporation
VIRTWHO_ESX_ENV=Library
VIRTWHO_ESX_SERVER=10.66.78.30
VIRTWHO_ESX_USERNAME=Administrator
VIRTWHO_ESX_PASSWORD=qwer1234P
[root@hp-z220-03 libvirt-test-API]# service virt-who restart
Stopping virt-who:                                         [FAILED]
Starting virt-who:                                         [  OK  ]
3. Check the virt-who's log.
# tail -f /var/log/rhsm/rhsm.log
2015-04-16 14:40:35,172 [INFO]  @virtwho.py:475 - Using configuration "env/cmdline" ("esx" mode)
2015-04-16 14:40:35,172 [DEBUG]  @virtwho.py:131 - Starting infinite loop with 3600 seconds interval
2015-04-16 14:40:35,307 [DEBUG]  @esx.py:51 - Log into ESX
2015-04-16 14:40:35,893 [DEBUG]  @esx.py:54 - Creating ESX event filter
2015-04-16 14:40:36,195 [DEBUG]  @esx.py:113 - Waiting for ESX changes
2015-04-16 14:40:36,213 [INFO]  @subscriptionmanager.py:124 - Sending update in hosts-to-guests mapping: {564d31fc-ff63-9051-ceb5-fa9f956a2366: []}
2015-04-16 14:40:36,213 [DEBUG]  @subscriptionmanager.py:76 - Authenticating with certificate: /etc/pki/consumer/cert.pem
2015-04-16 14:40:37,095 [INFO]  @virtwho.py:127 - Created host: 5ed06e93-d9b7-409a-a7a0-4269c55c3c68 with guests: []

Result:
virt-who send host/guest mapping to SAM, it hasn't show any error log. esx4.1 hypervisor has shown on SAM server. Therefore ,verify it

Comment 9 errata-xmlrpc 2015-07-22 07:15:39 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-1377.html


Note You need to log in before you can comment on or make changes to this bug.