Exemplo n.º 1
0
    def test_result_answer(self, count):
        fetcher_payload = AgentResultMessage(AgentRawData(69 * b"\xff"))
        fetcher_stats = ResultStats(Snapshot.null())
        fetcher_message = FetcherMessage(
            FetcherHeader(
                FetcherType.TCP,
                PayloadType.AGENT,
                status=42,
                payload_length=len(fetcher_payload),
                stats_length=len(fetcher_stats),
            ),
            fetcher_payload,
            fetcher_stats,
        )
        fetcher_messages = list(repeat(fetcher_message, count))
        timeout = 7

        message = CMCMessage.result_answer(fetcher_messages, timeout,
                                           Snapshot.null())
        assert isinstance(repr(message), str)
        assert CMCMessage.from_bytes(bytes(message)) == message
        assert message.header.name == "fetch"
        assert message.header.state == CMCHeader.State.RESULT
        assert message.header.log_level.strip() == ""
        assert message.header.payload_length == len(message) - len(
            message.header)
        assert message.header.payload_length == len(message.payload)
Exemplo n.º 2
0
 def messages(self):
     msg = []
     for payload, stats in (
         (AgentResultMessage(AgentRawData(42 * b"\0")), ResultStats(Snapshot.null())),
         (AgentResultMessage(AgentRawData(12 * b"\0")), ResultStats(Snapshot.null())),
     ):
         msg.append(
             FetcherMessage(
                 FetcherHeader(
                     FetcherType.TCP,
                     PayloadType.AGENT,
                     status=69,
                     payload_length=len(payload),
                     stats_length=len(stats),
                 ),
                 payload,
                 stats,
             )
         )
     return msg
Exemplo n.º 3
0
    def test_serialization(self, count):
        fetcher_payload = AgentResultMessage(AgentRawData(69 * b"\xff"))
        fetcher_stats = ResultStats(Snapshot.null())
        fetcher_message = FetcherMessage(
            FetcherHeader(
                FetcherType.TCP,
                PayloadType.AGENT,
                status=42,
                payload_length=len(fetcher_payload),
                stats_length=len(fetcher_stats),
            ),
            fetcher_payload,
            fetcher_stats,
        )
        fetcher_messages = list(repeat(fetcher_message, count))
        serial = 1337
        host_name = "my_host_name"
        timeout = 7

        message = CMCMessage.result_answer(
            fetcher_messages,
            serial=serial,
            host_name=host_name,
            timeout=timeout,
            duration=Snapshot.null(),
        )

        other = CMCMessage.from_bytes(bytes(message))
        assert other == message
        assert isinstance(repr(other), str)
        assert other.header.name == "fetch"
        assert other.header.state == CMCHeader.State.RESULT
        assert other.header.log_level.strip() == ""
        assert other.header.payload_length == len(message) - len(
            message.header)
        assert other.header.payload_length == len(message.payload)
        assert isinstance(other.payload, CMCResults)
        assert other.payload.id_.serial == serial
        assert other.payload.id_.host_name == host_name
        assert other.payload.stats.timeout == timeout
        assert other.payload.stats.duration == Snapshot.null()
Exemplo n.º 4
0
 def payload(self, header):
     return AgentResultMessage(
         b"\0" * (header.payload_length - AgentResultMessage.length))
Exemplo n.º 5
0
 def test_from_bytes_success(self, agent_payload):
     assert AgentResultMessage.from_bytes(
         bytes(agent_payload)) == agent_payload
Exemplo n.º 6
0
 def agent_payload(self):
     return AgentResultMessage(AgentRawData(b"<<<hello>>>\nworld"))
Exemplo n.º 7
0
 def fetcher_payload(self):
     return AgentResultMessage(AgentRawData(69 * b"\0"))