Bug 841215

Summary: rhn virtual poller.py returns: ImportError('local vdsm not found')
Product: Red Hat Satellite 5 Reporter: Roman Hodain <rhodain>
Component: VirtualizationAssignee: Milan Zázrivec <mzazrivec>
Status: CLOSED DUPLICATE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 541CC: cperry, kbooth
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-10 09:32:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 818987    

Description Roman Hodain 2012-07-18 12:45:32 UTC
Description of problem:

We see the following when we run /usr/share/rhn/virtualization/poller.pyc:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/runpy.py", line 122, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code
    exec code in run_globals
  File "/usr/lib64/python2.6/trace.py", line 823, in <module>
    main()
  File "/usr/lib64/python2.6/trace.py", line 811, in main
    t.runctx(code, globs, globs)
  File "/usr/lib64/python2.6/trace.py", line 512, in runctx
    exec cmd in globals, locals
  File "/usr/share/rhn/virtualization/poller.py", line 290, in <module>
    domain_list = poll_through_vdsm()
  File "/usr/share/rhn/virtualization/poller.py", line 140, in poll_through_vdsm
    import localvdsm
  File "/usr/share/rhn/virtualization/localvdsm.py", line 35, in <module>
    raise ImportError('local vdsm not found')

ENV:
  RHE:-H 6.3
  vdsm-4.9-113.1.el6.x86_64
  rhn-virtualization-common-5.4.14-9.el6sat.noarch

Version-Release number of selected component (if applicable):
  rhn-virtualization-host-5.4.14-9.el6sat.noarch  
  rhn-virtualization-common-5.4.14-9.el6sat.noarch
  vdsm-4.9-113.1.el6.x86_64

How reproducible:
  Always

Steps to Reproduce:
  Install on the latest RHEL-H and run
    # python /usr/share/rhn/virtualization/poller.py
  
Actual results:
  Traceback (most recent call last):
  File "/usr/lib64/python2.6/runpy.py", line 122, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code
    exec code in run_globals
  File "/usr/lib64/python2.6/trace.py", line 823, in <module>
    main()
  File "/usr/lib64/python2.6/trace.py", line 811, in main
    t.runctx(code, globs, globs)
  File "/usr/lib64/python2.6/trace.py", line 512, in runctx
    exec cmd in globals, locals
  File "/usr/share/rhn/virtualization/poller.py", line 290, in <module>
    domain_list = poll_through_vdsm()
  File "/usr/share/rhn/virtualization/poller.py", line 140, in poll_through_vdsm
    import localvdsm
  File "/usr/share/rhn/virtualization/localvdsm.py", line 35, in <module>
    raise ImportError('local vdsm not found')

Expected results:
  No exception. The script should be able to connect to the local VDSM

Additional info:

I did some research and I found out the this is issue is most probably located in /usr/share/vdsm/config.py. This is loaded in localvdsm.py that is loaded by poller.py
We try to import module "constants" and then use some constants from the module
   grep -n constants /usr/share/vdsm/config.py
     3:import constants
     69:config.set('vars', 'trust_store_path', constants.P_TRUSTSTORE)
     131:config.set('irs', 'pools_data_dir', constants.P_STORAGEPOOLS)
     133:config.set('irs', 'lock_util_path', constants.P_VDSM_LIBEXEC)
     140:config.set('irs', 'md_backup_dir', constants.P_VDSM_BACKUP)
     166:config.read([constants.P_VDSM_CONF + 'vdsm.conf'])

The constants module that we are interested in is located in /usr/share/vdsm/constants.py
The problem is that there is also a constants module located in /usr/share/rhn/virtualization/constants.py that is loaded by /usr/share/rhn/virtualization/poller.py
So we end up with a wrong module loaded.

Comment 1 Clifford Perry 2012-07-18 15:35:41 UTC
Interesting, this is related I think to bug 820862.

Comment 4 Milan Zázrivec 2012-08-10 09:32:32 UTC

*** This bug has been marked as a duplicate of bug 820862 ***