Beispiel #1
0
    async def create(self):

        established = self.loop.create_future()

        def connection_made(reader, writer):
            """ called when the connection was made """
            self.reader = reader
            self.writer = writer
            established.set_result(True)

        try:
            (self.transport,
             self.protocol) = await self.loop.create_unix_connection(
                 lambda: FalkSocketStreamProtocol(connection_made, self.
                                                  connection_lost), self.path)

        except FileNotFoundError:
            raise FileNotFoundError("falk socket not found: "
                                    "'%s' missing" % self.path) from None
        except ConnectionRefusedError:
            raise FalkError("falk socket doesn't accept connections "
                            f"at '{self.path}'") from None

        await established

        # send login message, for FalkSSH it was not necessary
        # because the falk.shell automatically provides the login.
        msg = Login(self.user, self.path)
        self.writer.write(msg.pack(self.proto_mode))
        await self.writer.drain()

        # perform falk setup
        await self._init()
Beispiel #2
0
    def __init__(self, job, path, user):
        super().__init__(job)

        self.path = path
        self.user = user
        self.linebuf = bytearray()

        # connect to falk unix socket.
        self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

        try:
            self.sock.connect(self.path)
        except FileNotFoundError:
            raise FileNotFoundError(
                "falk socket not found: "
                "'%s' missing" % self.path) from None
        except ConnectionRefusedError:
            raise VMError("falk socket doesn't accept connections "
                          "at '%s'" % (self.path)) from None

        # send login message
        msg = Login(self.user, self.path)
        self.sock.sendall(msg.pack(self.proto_mode))

        self.init()
Beispiel #3
0
    async def create(self):

        established = asyncio.Future()

        def connection_made(reader, writer):
            """ called when the connection was made """
            self.reader = reader
            self.writer = writer
            established.set_result(True)

        loop = asyncio.get_event_loop()

        try:
            self.transport, self.protocol = await loop.create_unix_connection(
                lambda: asyncio.StreamReaderProtocol(asyncio.StreamReader(), connection_made), self.path
            )

        except FileNotFoundError:
            raise FileNotFoundError("falk socket not found: " "'%s' missing" % self.path) from None
        except ConnectionRefusedError:
            raise VMError("falk socket doesn't accept connections " "at '%s'" % (self.path)) from None

        await established

        # send login message, for FalkSSH it was not necessary
        # because the falk.shell automatically provides the login.
        msg = Login(self.user, self.path)
        self.writer.write(msg.pack(self.proto_mode))
        await self.writer.drain()

        # perform falk setup
        await self.init()
Beispiel #4
0
    def __init__(self, job, path, user):
        super().__init__(job)

        self.path = path
        self.user = user
        self.linebuf = bytearray()

        # connect to falk unix socket.
        self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

        try:
            self.sock.connect(self.path)
        except FileNotFoundError:
            raise FileNotFoundError(
                "falk socket not found: '%s' missing" % self.path)\
                from None

        # send login message
        msg = Login(self.user, self.path)
        self.sock.sendall(msg.pack(self.proto_mode))

        self.init()