[Spacewalk-list] RHEL6 - Spacewalk - MREPO [SEC=UNOFFICIAL]
Boyd, Robert
Robert.Boyd at peoplefluent.com
Wed Oct 1 15:20:04 UTC 2014
Here is what I did a couple of years ago when I ran into this same problem:
I modified the beginning of the gensystemid code farther to find the 1st occurrence of site-packages and stick the mrepo or rhn libraries before it like so:
import os, sys, getopt, getpass, urlparse, re
False = 0
True = 1
def find(target,items):
texp = re.compile(target)
found = False
i = 0
while (not(found) and i < len(items)):
if (texp.search(items[i])):
found = True
i += 1
return i
i = find('.*site-packages',sys.path)
print "Packages at ", i
if os.path.exists('/usr/share/mrepo/up2date_client/'):
sys.path.insert(i-1, '/usr/share/mrepo/')
sys.path.insert(i, '/usr/share/mrepo/up2date_client/')
# sys.path.insert(-1, '/usr/share/mrepo/rhn/')
elif os.path.exists('/usr/share/rhn/up2date_client/'):
sys.path.insert(i-1, '/usr/share/rhn/')
sys.path.insert(i, '/usr/share/rhn/up2date_client/')
else:
print >>sys.stderr, 'rhnget: up2date libraries are not installed. Aborting execution'
sys.exit(1)
And from another message:
If you're having trouble with gensystemid Try changing the first few lines of the code like this:
if os.path.exists('/usr/share/mrepo/up2date_client/'):
sys.path.insert(7, '/usr/share/mrepo/')
sys.path.insert(7, '/usr/share/mrepo/up2date_client/')
elif os.path.exists('/usr/share/rhn/up2date_client/'):
sys.path.insert(7, '/usr/share/rhn/')
sys.path.insert(7, '/usr/share/rhn/up2date_client/')
This will insert the mrepo or rhn libraries ahead of the python site-packages. For some reason the site packages were promoted by several hops in the path list.
A better alternative would be to actually search the list and insert the rhn or mrepo libraries just prior to the site packages. Maybe I'll have to learn enough python to pull this off.
In any event, I'm now getting an intelligible error message . Error communicating with the server. The message was: Name or service not known.
That is something I can investigate more directly I think.
Robert
From: spacewalk-list-bounces at redhat.com [mailto:spacewalk-list-bounces at redhat.com] On Behalf Of Boyd, Robert
Sent: Monday, August 06, 2012 5:52 PM
To: spacewalk-list at redhat.com; Alan Pittman; 'fnwsa at yahoo.com'
Subject: Re: [Spacewalk-list] mrepo / gensystemid errors
I found one answer to my question. There is a handy tool called dumpObj that you can copy from http://code.activestate.com/recipes/137951-dump-all-the-attributes-of-an-object/
So I copied it and inserted it into gensystemid on both servers. Here is the key thing I see that is different:
On the server where gensystemid fails (RHEL6.3) :
__file__ /usr/lib/python2.6/site-packages/rhn/rpclib.pyc
__name__ rhn.rpclib
__package__ rhn
__version__ $Revision$
With sys.path: ['/root', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gst-0.10', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib64/python2.6/site-packages/webkit-1.0', '/usr/lib/python2.6/site-packages', '/usr/share/mrepo/', '/usr/share/mrepo/up2date_client/', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']
On the RHEL 5.8 server where it works:
__file__ /usr/share/mrepo/rhn/rpclib.pyc
__name__ rhn.rpclib
__version__ $Revision: 118741 $
sys.path: ['/root', '/usr/lib64/python24.zip', '/usr/lib64/python2.4', '/usr/lib64/python2.4/plat-linux2', '/usr/lib64/python2.4/lib-tk', '/usr/lib64/python2.4/lib-dynload', '/usr/lib64/python2.4/site-packages', '/usr/lib64/python2.4/site-packages/Numeric', '/usr/lib64/python2.4/site-packages/gtk-2.0', '/usr/share/mrepo/', '/usr/share/mrepo/up2date_client/', '/usr/lib/python2.4/site-packages']
So on the failing configuration somehow it's not finding the module which is clearly there. I checked.
Is there something wrong with the new search order? I see that there are many differences in these 2 lists. Anyone have a suggestion about what needs to be changed on the RHEL 6.3/Python 2.6 configuration to get the right module found?
Robert Boyd
Sr. Systems Engineer
PeopleFluent
p. 919-645-2972 | c. 919-306-4681
e. Robert.Boyd at PeopleFluent.com
Click here to experience the power of the new PeopleFluent Mirror Suite T
Visit: www.peoplefluent.com | Read: PeopleFluent Blog | Follow: @PeopleFluent
-----Original Message-----
From: spacewalk-list-bounces at redhat.com [mailto:spacewalk-list-bounces at redhat.com] On Behalf Of Lichtinger, Bernhard
Sent: Wednesday, October 01, 2014 3:08 AM
To: spacewalk-list at redhat.com
Subject: Re: [Spacewalk-list] RHEL6 - Spacewalk - MREPO [SEC=UNOFFICIAL]
Hi,
I had to "patch" /usr/bin/gensystemid on my spacewalk-server to resolve this error.
> [root at xxxxxx ~]# gensystemid --release=6Server /var/mrepo
> gensystemid: Architecture not supplied, using system architecture
> x86_64 RHN Username: <username> RHN Password:
> Traceback (most recent call last):
> File "/usr/bin/gensystemid", line 271, in <module>
> main()
> File "/usr/bin/gensystemid", line 238, in main
> except rpclib.Fault, f:
> AttributeError: 'module' object has no attribute 'Fault'
I added the line
sys.path.insert(0, '/usr/share/mrepo/')
above the line
from up2date_client import config, rpcServer, up2dateErrors
to make sure, gensystemid uses the rpclib from mrepo and not from the spacewalk installation.
I am on Centos6 with python-2.6.6 and mrepo-0.8.8
Regards,
Bernhard
More information about the Spacewalk-list
mailing list