Description of problem: It appears that func 0.28 requires libvirt which is not an RPM dependency, I am not sure but isn't libvirt part of the virtualization entitlement? It might be a good idea to make that dependency optional so func can be used on systems that are not entitled for virt. This might be applicable to RHEL 6 as well, only tested for me on 5 though. Version-Release number of selected component (if applicable): func-0.28-1.el5 Additional info: 2011-04-11 18:58:42,041 - WARNING - ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.4/site-packages/func/module_loader.py", line 108, in load_modules\n blip = __import__("%s%s" % ( mod_dir,mod_imp_name), globals(), locals(), [mod_imp_name])\n', 'ValueError: Empty module name\n'] 2011-04-11 18:58:42,047 - WARNING - Import error while loading virt module: No module named libvirt 2011-04-11 18:58:42,047 - WARNING - ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.4/site-packages/func/module_loader.py", line 108, in load_modules\n blip = __import__("%s%s" % ( mod_dir,mod_imp_name), globals(), locals(), [mod_imp_name])\n', ' File "/usr/lib/python2.4/site-packages/func/minion/modules/virt.py", line 27, in ?\n import libvirt\n', 'ImportError: No module named libvirt\n'] 2011-04-11 18:58:42,169 - WARNING - Could not load module 2011-04-11 18:58:42,169 - WARNING - ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.4/site-packages/func/module_loader.py", line 108, in load_modules\n blip = __import__("%s%s" % ( mod_dir,mod_imp_name), globals(), locals(), [mod_imp_name])\n', 'ValueError: Empty module name\n'] 2011-04-11 18:58:42,846 - INFO - Exception occured: exceptions.IndexError 2011-04-11 18:58:42,846 - INFO - Exception value: list index out of range 2011-04-11 18:58:42,846 - INFO - Exception Info: File "/usr/bin/funcd", line 23, in ? server.main(sys.argv) File "/usr/lib/python2.4/site-packages/func/minion/server.py", line 413, in main serve() File "/usr/lib/python2.4/site-packages/func/minion/server.py", line 225, in serve server = setup_server() File "/usr/lib/python2.4/site-packages/func/minion/server.py", line 220, in setup_server server = FuncSSLXMLRPCServer((listen_addr, listen_port), config.module_list) File "/usr/lib/python2.4/site-packages/func/minion/server.py", line 265, in __init__ self.cert = func_utils.find_files_by_hostname(hn, self.cm_config.cert_dir, '.cert')[0]
func doesn't require it - but if you wish to use the virt module it does. I believe this is the same as the func 0.24 in epel5 currently.
Well func fails to start in RHEL 5 due to the above errors. Version 0.24 does not.
that is not failing because of the libvirt error. That is failing because it doesn't have a certificate.
Hey reading to the bottom, who would have thought :). Ok here is what I have, func-0.24 works like a charm on the system, tied in with the master etc, everything works. Upgrade to func 0.28, it no longer works, the client throws the aforementioned error. Now maybe I am missing something here, but it seems like it should start and work. I am able to roll back and the old version works, go forward, it fails.
So this is bash equivalent to what that piece of code is running: ls $(awk '/^cert_dir/ { print $3}' /etc/certmaster/certmaster.conf)/$(hostname --fqdn).cert what's interesting is that 3 lines before it it basically does this: ls $(awk '/^cert_dir/ { print $3}' /etc/certmaster/certmaster.conf)/$(hostname --fqdn).pem and that works... which means its finding your key, but not your certificate file. ya know what? It occurs to me that if you do: ls $(awk '/^cert_dir/ { print $3}' /etc/certmaster/certmaster.conf) you will find the a set of 3 matching files with the extensions: cert, csr, and pem. then you will find another pair with only the extensions: csr and pem is that the case?
Here is what I have, I have fqdn.cert, fqdn.csr, and fqdn.pem in /etc/pki/certmaster. The other pair you are talking about don't seem to exist, though there is a ca.cert file in that directory as well. -Erinn
hrm... well... then i'm not 100% sure whats going on. you've got the bits that are supposed to be there file wise. whats the output of when you are on 0.28: python -c "from func import utils; print utils.get_hostname_by_route()"
erinn, could you run funcd --info and report the output?
And now with more testing this problem disappears magically. Let's chalk this up to operator issues (the most likely cause of all problems), sorry to waste time. -Erinn