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.
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...
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 lassi.polonen@iki.fi 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 cobbler@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/cobbler
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 lassi.polonen@iki.fi 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 cobbler@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/cobbler
cobbler mailing list cobbler@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/cobbler
Right, we need to tweak the app to always show the original exception if serialization failed, and probably (better) scrap that old style write because we haven't used that way of saving things in a long time (1.6 or 1.4?)
As I'm just pretending to be Linus lately, somebody send a pull request or two, it's an easy fix :)
--Michael
On Wednesday, January 18, 2012 at 9:20 AM, Lassi Pölönen wrote:
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 <lassi.polonen@iki.fi (mailto:lassi.polonen@iki.fi)> 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 cobbler@lists.fedorahosted.org (mailto:cobbler@lists.fedorahosted.org) https://fedorahosted.org/mailman/listinfo/cobbler
cobbler mailing list cobbler@lists.fedorahosted.org (mailto:cobbler@lists.fedorahosted.org) https://fedorahosted.org/mailman/listinfo/cobbler
cobbler mailing list cobbler@lists.fedorahosted.org (mailto:cobbler@lists.fedorahosted.org) https://fedorahosted.org/mailman/listinfo/cobbler
Will try to find some time to look in to the second one. Probably just as trivial as the first one..
-Lassi
On 2012-01-18 16:27, Michael DeHaan wrote:
Right, we need to tweak the app to always show the original exception if serialization failed, and probably (better) scrap that old style write because we haven't used that way of saving things in a long time (1.6 or 1.4?)
As I'm just pretending to be Linus lately, somebody send a pull request or two, it's an easy fix :)
--Michael
On Wednesday, January 18, 2012 at 9:20 AM, Lassi Pölönen wrote:
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 <lassi.polonen@iki.fi mailto:lassi.polonen@iki.fi> 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 cobbler@lists.fedorahosted.org mailto:cobbler@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/cobbler
cobbler mailing list cobbler@lists.fedorahosted.org mailto:cobbler@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/cobbler
cobbler mailing list cobbler@lists.fedorahosted.org mailto:cobbler@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/cobbler
cobbler mailing list cobbler@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/cobbler
cobbler@lists.fedorahosted.org