def __init__(self, file_reader, file_writer, file_error, key, handler, stderr=False, timeout=-1, autoclose=False): """ Initialize worker. """ Worker.__init__(self, handler) EngineClient.__init__(self, self, stderr, timeout, autoclose) if key is None: # allow key=0 self.key = self else: self.key = key if file_reader: self.fd_reader = file_reader.fileno() if file_error: self.fd_error = file_error.fileno() if file_writer: self.fd_writer = file_writer.fileno()
def __init__(self, node, command, worker, stderr, timeout, autoclose=False): """ Initialize Ssh EngineClient instance. """ EngineClient.__init__(self, worker, stderr, timeout, autoclose) self.key = copy.copy(node) self.command = command self.popen = None
def _close(self, abort, timeout): """Close client. See EngineClient._close().""" EngineClient._close(self, abort, timeout) if timeout: assert abort, "abort flag not set on timeout" self.worker._on_timeout(self.key) # return code not available self.worker._on_rc(self.key, None) if self.worker.eh: self.worker.eh.ev_close(self.worker)
def _close(self, abort, timeout): """Close client. See EngineClient._close().""" EngineClient._close(self, abort, timeout) if timeout: assert abort, "abort flag not set on timeout" self.worker._on_timeout(self.key) # return code not available self.worker._on_close(self.key) if self.worker.eh: _eh_sigspec_invoke_compat(self.worker.eh.ev_close, 2, self, timeout)
def __init__(self, node, command, worker, stderr, timeout, autoclose=False, rank=None): """ Create an EngineClient-type instance to locally run `command'. :param node: will be used as key. """ EngineClient.__init__(self, worker, node, stderr, timeout, autoclose) self.rank = rank self.command = command self.popen = None # Declare writer stream to allow early buffering self.streams.set_writer(worker.SNAME_STDIN, None, retain=True)
def __init__(self, node, command, worker, stderr, timeout, autoclose=False, rank=None): """ Create an EngineClient-type instance to locally run `command'. @param node: will be used as key. """ EngineClient.__init__(self, worker, stderr, timeout, autoclose) self.rank = rank self.key = copy.copy(node) self.command = command self.popen = None
def __init__(self, nodes, handler, timeout, **kwargs): """ Initialize Pdsh worker instance. """ DistantWorker.__init__(self, handler) self.nodes = NodeSet(nodes) self.closed_nodes = NodeSet() self.command = kwargs.get('command') self.source = kwargs.get('source') self.dest = kwargs.get('dest') autoclose = kwargs.get('autoclose', False) stderr = kwargs.get('stderr', False) EngineClient.__init__(self, self, stderr, timeout, autoclose) if self.command is not None: # PDSH self.source = None self.dest = None self.mode = 'pdsh' elif self.source: # PDCP self.command = None self.mode = 'pdcp' # Preserve modification times and modes? self.preserve = kwargs.get('preserve', False) # Reverse copy (rpdcp)? self.reverse = kwargs.get('reverse', False) if self.reverse: self.isdir = os.path.isdir(self.dest) if not self.isdir: raise ValueError("reverse copy dest must be a directory") else: self.isdir = os.path.isdir(self.source) else: raise ValueError("missing command or source parameter in " \ "WorkerPdsh constructor") self.popen = None self._buf = ""
def __init__(self, file_reader, file_writer, file_error, key, handler, stderr=False, timeout=-1, autoclose=False): """ Initialize worker. """ Worker.__init__(self, handler) EngineClient.__init__(self, self, stderr, timeout, autoclose) if key is None: # allow key=0 self.key = self else: self.key = key if file_reader: self.streams.add_reader('stdout', file_reader) if file_error: self.streams.add_reader('stderr', file_error) if file_writer: self.streams.add_writer('stdin', file_writer) # keep reference of provided file objects during worker lifetime self._filerefs = (file_reader, file_writer, file_error)
def _readerr(self, size=65536): """ Read error data from process. """ return EngineClient._readerr(self, size)
def _read(self, sname, size=65536): """Read data from process.""" return EngineClient._read(self, sname, size)