コード例 #1
0
ファイル: falk.py プロジェクト: mikonse/kevin
    async def send(self, msg=None, mode=ProtoType.json):
        if msg:
            self.writer.write(msg.pack(mode))
            await self.writer.drain()

        line = await self.reader.readline()
        message = Message.construct(line, self.proto_mode)
        yield message
コード例 #2
0
ファイル: falk.py プロジェクト: iNaKoll/kevin
    def send(self, msg=None, mode=ProtoType.json):
        if msg:
            self.writer.write(msg.pack(mode))
            yield from self.writer.drain()

        line = yield from self.reader.readline()
        message = Message.construct(line, self.proto_mode)
        yield message
コード例 #3
0
ファイル: falk.py プロジェクト: iNaKoll/kevin
 def construct(inp):
     stream, line = inp
     if stream == 1 and line:
         message = Message.construct(line, self.proto_mode)
         return message
     else:
         logging.debug("\x1b[31mfalk ssh stderr\x1b[m: %s" % line)
         return None
コード例 #4
0
ファイル: falk.py プロジェクト: schachmat/kevin
    def send(self, msg=None, mode=ProtoType.json):
        if msg:
            msg = msg.pack(mode)

        # TODO: configurable timeout
        answers = self.connection.communicate(
            data=msg,
            timeout=10,
            linecount=1,
        )

        for stream, line in answers:
            if stream == 1 and line:
                message = Message.construct(line, self.proto_mode)
                print("falk: %s" % message)
                yield message
            else:
                print("falk error: %s" % line)
コード例 #5
0
ファイル: falk.py プロジェクト: pkkr/kevin
    def send(self, msg=None, mode=ProtoType.json):
        if msg:
            msg = msg.pack(mode)

        # TODO: configurable timeout
        answers = self.connection.communicate(
            data=msg,
            timeout=10,
            linecount=1,
        )

        for stream, line in answers:
            if stream == 1 and line:
                message = Message.construct(line, self.proto_mode)
                print("falk: %s" % message)
                yield message
            else:
                print("falk error: %s" % line)
コード例 #6
0
ファイル: falk.py プロジェクト: schachmat/kevin
    def send(self, msg=None, mode=ProtoType.json):
        if msg:
            self.sock.sendall(msg.pack(mode))

        while True:
            npos = self.linebuf.rfind(b"\n")

            if npos < 0:
                data = self.sock.recv(8196)
                if not data:
                    raise Exception("connection closed!")
                self.linebuf.extend(data)

            else:
                for line in self.linebuf[:npos].split(b"\n"):
                    if line:
                        recv = Message.construct(line, self.proto_mode)
                        yield recv

                del self.linebuf[:(npos+1)]
                break
コード例 #7
0
ファイル: falk.py プロジェクト: pkkr/kevin
    def send(self, msg=None, mode=ProtoType.json):
        if msg:
            self.sock.sendall(msg.pack(mode))

        while True:
            npos = self.linebuf.rfind(b"\n")

            if npos < 0:
                data = self.sock.recv(8196)
                if not data:
                    raise Exception("connection closed!")
                self.linebuf.extend(data)

            else:
                for line in self.linebuf[:npos].split(b"\n"):
                    if line:
                        recv = Message.construct(line, self.proto_mode)
                        yield recv

                del self.linebuf[:(npos + 1)]
                break
コード例 #8
0
ファイル: falk.py プロジェクト: mikonse/kevin
    async def send(self, msg=None, mode=ProtoType.json):
        try:
            if msg:
                msg = msg.pack(mode)

            # TODO: configurable timeout
            answers = self.ssh_process.communicate(
                data=msg,
                timeout=5,
                linecount=1,
            )

            async for stream, line in answers:
                if stream == 1 and line:
                    message = Message.construct(line, self.proto_mode)
                    yield message
                else:
                    logging.debug("\x1b[31mfalk ssh stderr\x1b[m: %s", line)
                    yield None

        except ProcessError as exc:
            raise FalkError(f"Failed to send request: {exc}") from exc