diff --git a/confluent_server/confluent/core.py b/confluent_server/confluent/core.py index 0846d947..96f92941 100644 --- a/confluent_server/confluent/core.py +++ b/confluent_server/confluent/core.py @@ -706,7 +706,11 @@ def handle_dispatch(connection, cert, dispatch, peername): def _forward_rsp(connection, res): - r = pickle.dumps(res) + try: + r = pickle.dumps(res) + except TypeError: + r = pickle.dumps(Exception( + 'Cannot serialize error, check collective.manager error logs for details' + str(res))) rlen = len(r) if not rlen: return @@ -915,7 +919,7 @@ def dispatch_request(nodes, manager, element, configmanager, inputdata, a = configmanager.get_collective_member(manager) try: remote = socket.create_connection((a['address'], 13001)) - remote.settimeout(90) + remote.settimeout(180) remote = ssl.wrap_socket(remote, cert_reqs=ssl.CERT_NONE, keyfile='/etc/confluent/privkey.pem', certfile='/etc/confluent/srvcert.pem') diff --git a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py index 7febb8a6..4ce08825 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py @@ -1369,9 +1369,13 @@ class IpmiHandler(object): def handle_sysconfig(self, advanced=False): if 'read' == self.op: - self.output.put(msg.ConfigSet( - self.node, self.ipmicmd.get_system_configuration( - hideadvanced=not advanced))) + try: + self.output.put(msg.ConfigSet( + self.node, self.ipmicmd.get_system_configuration( + hideadvanced=not advanced))) + except Exception as e: + self.output.put( + msg.ConfluentNodeError(self.node, str(e))) elif 'update' == self.op: self.ipmicmd.set_system_configuration( self.inputdata.get_attributes(self.node))