Oh yes, looks like deserialize_raw() tries first with paths
"/var/lib/cobbler/%ss" so that's why. Didn't even remember those were
stored that way earlier.

Finally got a file added. The command just doesn't seem to complain too
much about missing attributes. There seem to be checks in item_file.py
but something apparently eats the exception since nothing gets returned
when e.g --group is missing. Log doesn't give any hints either. Took a
while to notice that --group is also required, but that's just a stupid
user error.

-Lassi

On 2012-01-18 14:58, Michael DeHaan wrote:
> It probably failed to load the new way and that is not the true error but an 
> error in failing the old way (pre catalog serializer, there was 1 file per 
> object type, not .d directories).  Debug further?
>
> We should prob disable the fallback behavior.
>
> -- Michael
>
> On Jan 18, 2012, at 3:37 AM, Lassi Pölönen <[email protected]> wrote:
>
>> On 2012-01-17 19:42, Lassi Pölönen wrote:
>>> Hi,
>>>
>>> I'm running cobbler cobbler-2.2.1-1.el6.noarch from epel-testing on RHEL
>>> 6. I decided to try Cobbler's "files" as a replacement for snippets to
>>> create static files on post-install. Didn't start too well:
>>>
>>> first I tried:
>>>
>>> cobbler file add --name=nagios-nrpe-xinetd-conf
>>> --path=/var/lib/cobbler/files/xinetd.d/nrpe
>>>
>>>
>>> and got no output. At this point cobbler file report didn't list
>>> anything... also /var/lib/cobbler/config/files.d/ is empty.
>>>
>>> cobbler's log wrote these lines:
>>>
>>> -----
>>> Tue Jan 17 17:32:00 2012 - DEBUG | get_item; ['file',
>>> 'nagios-nrpe-xinetd-conf']
>>> Tue Jan 17 17:32:00 2012 - DEBUG | done with get_item; ['file',
>>> 'nagios-nrpe-xinetd-conf']
>>> Tue Jan 17 17:32:00 2012 - INFO | Exception occured: <class
>>> 'cobbler.cexceptions.CX'>
>>> Tue Jan 17 17:32:00 2012 - INFO | Exception value: 'internal error,
>>> unknown file name nagios-nrpe-xinetd-conf'
>>> Tue Jan 17 17:32:00 2012 - INFO | Exception Info:
>>>  File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 866,
>>> in xapi_object_edit
>>>    handle = self.get_item_handle(object_type, object_name)
>>>   File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 659,
>>> in get_item_handle
>>>    raise CX("internal error, unknown %s name %s" % (what,name))
>>>
>>> Tue Jan 17 17:32:00 2012 - INFO | REMOTE new_item(file); user(<DIRECT>)
>>> Tue Jan 17 17:32:00 2012 - DEBUG | REMOTE CLI Authorized; user(?)
>>> Tue Jan 17 17:32:00 2012 - INFO | REMOTE modify_item(file);
>>> user(<DIRECT>);
>>> object_id(___NEW___file::tcYwwbmv31Tw+dByGLJCTtp+JyYqoLWcLQ==);
>>> attribute(in_place)
>>> Tue Jan 17 17:32:00 2012 - DEBUG | REMOTE CLI Authorized; user(?)
>>> Tue Jan 17 17:32:00 2012 - INFO | REMOTE modify_item(file);
>>> user(<DIRECT>);
>>> object_id(___NEW___file::tcYwwbmv31Tw+dByGLJCTtp+JyYqoLWcLQ==);
>>> attribute(name)
>>> Tue Jan 17 17:32:00 2012 - DEBUG | REMOTE CLI Authorized; user(?)
>>> Tue Jan 17 17:32:00 2012 - INFO | REMOTE modify_item(file);
>>> user(<DIRECT>);
>>> object_id(___NEW___file::tcYwwbmv31Tw+dByGLJCTtp+JyYqoLWcLQ==);
>>> attribute(path)
>>> Tue Jan 17 17:32:00 2012 - DEBUG | REMOTE CLI Authorized; user(?)
>>> Tue Jan 17 17:32:00 2012 - INFO | REMOTE save_item(file);
>>> user(<DIRECT>);
>>> object_id(___NEW___file::tcYwwbmv31Tw+dByGLJCTtp+JyYqoLWcLQ==)
>>> Tue Jan 17 17:32:00 2012 - DEBUG | REMOTE CLI Authorized; user(?)
>>> Tue Jan 17 17:32:00 2012 - INFO | add_item(file);
>>> ['nagios-nrpe-xinetd-conf']
>>> Tue Jan 17 17:32:00 2012 - DEBUG | get_items; ['file']
>>> Tue Jan 17 17:32:00 2012 - DEBUG | done with get_items; ['file']
>>> ----
>>>
>>>
>>>
>>> I tried cobbler sync, didn't help either. Then I though I'll restart
>>> cobblerd and try again, but it doesn't start anymore. Instead I get:
>>>
>>> Starting cobbler daemon: Traceback (most recent call last):
>>>  File "/usr/bin/cobblerd", line 76, in main
>>>    api = cobbler_api.BootAPI(is_cobblerd=True)
>>>  File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 130, in
>>> __init__
>>>    self.deserialize()
>>>  File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 795, in
>>> deserialize
>>>    return self._config.deserialize()
>>>  File "/usr/lib/python2.6/site-packages/cobbler/config.py", line 266,
>>> in deserialize
>>>    raise CX("serializer: error loading collection %s. Check
>>> /etc/cobbler/modules.conf" % item.collection_type())
>>> CX: 'serializer: error loading collection file. Check
>>> /etc/cobbler/modules.conf'
>>>
>>>
>>> the only changes I've made to modules.conf are authentication and tftpd
>>> and the config has been working for quite a while. SElinux is disabled.
>>> I've tried reinstalling cobbler with yum to make sure no library files
>>> are changed, but no help there.
>>
>> The issue seems to be that I created directory "files" under
>> /var/lib/cobbler.  Taking out the exception handling from config.py reveals:
>>
>> Starting cobbler daemon: Traceback (most recent call last):
>>  File "/usr/bin/cobblerd", line 76, in main
>>    api = cobbler_api.BootAPI(is_cobblerd=True)
>>  File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 130, in
>> __init__
>>    self.deserialize()
>>  File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 795, in
>> deserialize
>>    return self._config.deserialize()
>>  File "/usr/lib/python2.6/site-packages/cobbler/config.py", line 263,
>> in deserialize
>>    serializer.deserialize(item)
>>  File "/usr/lib/python2.6/site-packages/cobbler/serializer.py", line
>> 122, in deserialize
>>    rc = storage_module.deserialize(obj,topological)
>>  File
>> "/usr/lib/python2.6/site-packages/cobbler/modules/serializer_catalog.py", 
>> line
>> 229, in deserialize
>>    datastruct = deserialize_raw(obj.collection_type())
>>  File
>> "/usr/lib/python2.6/site-packages/cobbler/modules/serializer_catalog.py", 
>> line
>> 174, in deserialize_raw
>>    fd = open(old_filename)
>> IOError: [Errno 21] Is a directory: '/var/lib/cobbler/files'
>>
>>
>> renaming that to something else fixes the issue, though I still wonder
>> what is the logic...
>>
>>
>>
>> _______________________________________________
>> cobbler mailing list
>> [email protected]
>> https://fedorahosted.org/mailman/listinfo/cobbler
> _______________________________________________
> cobbler mailing list
> [email protected]
> https://fedorahosted.org/mailman/listinfo/cobbler


_______________________________________________
cobbler mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/cobbler

Reply via email to