pykickstart usage of OrderedDict and SNAKE

Alexander Todorov atodorov at redhat.com
Tue Nov 12 14:48:16 UTC 2013


Hi guys,
I'm working together with Fedora QA to configure a Beaker lab and a SNAKE server 
in order to be able to run installation test jobs (among others) for Fedora. I'm 
also opening up some of the test cases previously used internally at Red Hat.

Currently we're seeing the following issues:

1) SNAKE templates depend on pykickstart and need a recent version for the RHEL7 
constant and support for latest syntax

2) The service is running on a RHEL 6 box with Python 2.6. After rebuilding 
pykickstart-1.99.45-1 from SRPM and upgrading I hit this:


> Traceback (most recent call last):
>   File "/usr/sbin/snake-server", line 117, in _dispatch
>     return DocXMLRPCServer._dispatch(self, method, params)
>   File "/usr/lib64/python2.6/SimpleXMLRPCServer.py", line 418, in _dispatch
>     return func(*params)
>   File "/usr/lib/python2.6/site-packages/snake/ksdb.py", line 167, in generate
>     k = PyKickstart(version=ksversion)
>   File "/usr/lib/python2.6/site-packages/snake/kickstart.py", line 61, in __init__
>     self.setversion(version)
>   File "/usr/lib/python2.6/site-packages/snake/kickstart.py", line 171, in setversion
>     Kickstart.setversion(self,version)
>   File "/usr/lib/python2.6/site-packages/snake/kickstart.py", line 77, in setversion
>     self.handler = handlerclass()
>   File "/usr/lib/python2.6/site-packages/pykickstart/base.py", line 275, in __init__
>     self._registerCommands(mapping, dataMapping, commandUpdates, dataUpdates)
>   File "/usr/lib/python2.6/site-packages/pykickstart/base.py", line 348, in _registerCommands
>     from pykickstart.handlers.control import commandMap
>   File "/usr/lib/python2.6/site-packages/pykickstart/handlers/control.py", line 21, in <module>
>     from pykickstart.commands import *
>   File "/usr/lib/python2.6/site-packages/pykickstart/commands/__init__.py", line 20, in <module>
>     import authconfig, autopart, autostep, bootloader, btrfs, clearpart, cdrom, device
>   File "/usr/lib/python2.6/site-packages/pykickstart/commands/autopart.py", line 24, in <module>
>     from collections import OrderedDict
> ImportError: cannot import name OrderedDict


 From what I see OrderedDict is from Python 2.7.


Questions are:

* How do you use it in pykickstart and is it possible to change this for 
backward compatibility?

* In general what should we do with this kind of situation where a tool needs 
the most recent package (in this case pykcisktart) but runs on a stable system 
like RHEL 6 which has older software stack and the most recent versions are 
incompatible?


--
Alex







More information about the Kickstart-list mailing list