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
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
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
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)
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
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
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