Hi,
We did some func testing with 100 servers. Due to our rather complicated
network topology we mainly made our tests using the delegation module as we
need this to work if we want to use func to improve the administration of our
Linux servers.
For our tests we have one central overlord, one sub_overlord and 96 minions..
The minions are registered to the sub_overlord which is registered to the
central overlord. We have not found a way to send some commands from the
central overlord to only a portion of the minions, i.e. with the delegate
option it seems that we need to enclose all the minions (func "*" call
--delegate command run date); is there a way to send the command date only to
the range minion{1-30} from the central overlord? If not, it could be nice to
add this feature.
It also seems to have some problems with the delegate option when using a
method in async mode. If you run the command func "*" call --delegate command
run date you will receive an "Async error 2 0" error; now if you remove the
"command.run" method from the "/etc/func/async_methods.conf" on the central
overlord, everything works perfectly.
If you want to execute a command that will take some time on the minion to
execute, you will receive some timeout error with at least the command output
from the sub_overlord. Example: func "*" call --delegate test sleep 2 will give
following error :
{'sub_overlord': ['REMOTE_ERROR', 'socket.timeout', "(110, 'Operation timed
out.')", ' File "/usr/lib/python2.4/site-packages/func/overlord/client.py",
line 431, in process_server\n self.nforks)\n File
"/usr/lib64/python2.4/xmlrpclib.py", line 1096, in __call__\n return
self.__send(self.__name, args)\n File "/usr/lib64/python2.4/xmlrpclib.py",
line 1383, in __request\n verbose=self.__verbose\n File
"/usr/lib64/python2.4/xmlrpclib.py", line 1131, in request\n errcode,
errmsg, headers = h.getreply()\n File "/usr/lib64/python2.4/httplib.py", line
1143, in getreply\n response = self._conn.getresponse()\n File
"/usr/lib64/python2.4/httplib.py", line 872, in getresponse\n
response.begin()\n File "/usr/lib64/python2.4/httplib.py", line 336, in
begin\n version, status, reason = self._read_status()\n File
"/usr/lib64/python2.4/httplib.py", line 294, in _read_status\n line =
self.fp.readline()\n File "/usr/lib64/python2.4/socket.py", line 325, in
readline\n data = recv(1)\n File
"/usr/lib/python2.4/site-packages/certmaster/SSLConnection.py", line 132, in
recv\n raise socket.timeout((110, "Operation timed out."))\n']}
{'sub_overlord': 1239885235.063081}
Is it possible to avoid this error by modifying somewhere a timeout variable?
Thanks a lot for your help.
Sincerely,
Chris
_______________________________________________
Func-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/func-list