[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