Example #1
0
    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()
Example #2
0
    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
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    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()
Example #10
0
    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
Example #11
0
    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 = ""
Example #12
0
    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 = ""
Example #13
0
    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)
Example #14
0
 def _readerr(self, size=65536):
     """
     Read error data from process.
     """
     return EngineClient._readerr(self, size)
Example #15
0
 def _readerr(self, size=65536):
     """
     Read error data from process.
     """
     return EngineClient._readerr(self, size)
Example #16
0
 def _read(self, sname, size=65536):
     """Read data from process."""
     return EngineClient._read(self, sname, size)
Example #17
0
 def _read(self, sname, size=65536):
     """Read data from process."""
     return EngineClient._read(self, sname, size)