Commit Graph

10687 Commits

Author SHA1 Message Date
Mike Salvatore ad01003480 Common: Rename i_event_serialize{,r}.py 2022-09-13 14:58:15 -04:00
Mike Salvatore 1c742c3f96
Merge pull request #2280 from guardicore/2179-credentialsstolenevent-pydantic
2179 credentialsstolenevent pydantic
2022-09-13 14:47:10 -04:00
Mike Salvatore 1503c3f0ba Common: Switch AbstractAgentEvent.source from int to AgentID 2022-09-13 13:25:47 -04:00
Mike Salvatore 80cd5a05a1 Common: Move AgentID definition to common 2022-09-13 13:25:45 -04:00
Mike Salvatore 1998d492eb Agent: Remove disused credential_collectors.credential_components pkg 2022-09-13 13:17:02 -04:00
Mike Salvatore 04d79a0a35 Agent: Add TCPPortSelector 2022-09-13 12:24:14 -04:00
Ilija Lazoroski 31f3c1a4d6 UT: Fix all unit tests that we creating events to use pydantic 2022-09-13 17:53:58 +02:00
Ilija Lazoroski 1799f1253c Common: Make AbstractAgentEvent to be a pydantic modell
In this way we are saying that every event needs to be a pydantic model
for which we may pay the price later on.
2022-09-13 17:45:48 +02:00
Ilija Lazoroski a68a765722 Common: Make CredentialsStolenEvent to be a class 2022-09-13 17:45:48 +02:00
Kekoa Kaaikala 1a96e9fd8d Common: Make CredentialsStolenEvent a pydantic model 2022-09-13 17:45:48 +02:00
Kekoa Kaaikala 78d5094f90 Common: Use int instead of UUID in AbstractAgentEvent 2022-09-13 17:45:48 +02:00
Kekoa Kaaikala 69063de627 Agent: Add note about unintentional disconnect 2022-09-13 15:38:19 +00:00
Kekoa Kaaikala 4ba4cb583a Agent: Add thread ID to SocketsPipe thread name 2022-09-13 15:32:15 +00:00
Mike Salvatore bde44f74f5
Merge pull request #2275 from guardicore/2179-implement-pydantic-event-serializer
2179 implement pydantic event serializer
2022-09-13 09:56:57 -04:00
Mike Salvatore 69e11d6b50 Common: Ignore mypy cyclical definition warning for JSONSerializable 2022-09-13 09:22:24 -04:00
Ilija Lazoroski d3a4f255f0 Common: Use isinstance in PydanticEventSerializer 2022-09-13 14:09:54 +02:00
Mike Salvatore ef2bac6de2
Merge pull request #2278 from guardicore/2234-remove-repository-service
Island: Remove RepositoryService
2022-09-13 08:01:36 -04:00
Mike Salvatore 6c0b63aa29 Common: Don't hide AttributeError from the caller 2022-09-13 07:55:15 -04:00
Mike Salvatore 780595cf19 Common: Use `simplify=True` in PydanticEventSerializer 2022-09-13 07:53:30 -04:00
Mike Salvatore 34e843f7f3 Common: Make PydanticEventSerializer generic 2022-09-13 07:50:38 -04:00
Ilija Lazoroski dcd9cab0f4 Project: Remove clear_simulation_data entry from vulture_allowlist 2022-09-13 13:40:54 +02:00
Ilija Lazoroski 62ab6e5a77 Common: Add generic events to PydanticEventSerializer 2022-09-13 13:38:41 +02:00
Ilija Lazoroski 88d65f40ae Project: Add PydanticEventSerializer to vulture_allowlist 2022-09-13 13:38:41 +02:00
Ilija Lazoroski 9e9160304c UT: Add unit tests for PydanticEventSerializer 2022-09-13 13:38:41 +02:00
Ilija Lazoroski 1755d72ae7 Common: Export PydanticEventSerializer from __init__ 2022-09-13 13:38:33 +02:00
Ilija Lazoroski e756e0dbc3 Common: Implement EventSerializer for pydantic objects 2022-09-13 13:38:26 +02:00
Mike Salvatore d58d8bb87b Island: Remove RepositoryService
Issue #2234
2022-09-13 07:26:13 -04:00
Mike Salvatore b226c84b6c
Merge pull request #2277 from guardicore/2234-refactor-clear-simulation-data
2234 refactor clear simulation data
2022-09-13 07:25:49 -04:00
Mike Salvatore 7c86bfc182 Island: Rename _handle_*_events() -> _subscribe_*_events() 2022-09-13 07:24:25 -04:00
Ilija Lazoroski f944347644 UT: Test ResetAgentConfiguration endpoint 2022-09-13 11:41:08 +02:00
Ilija Lazoroski f87fb39b0f Project: Add clear_simulation_data to vulture_allowlist
Remove once #2277 is closed
2022-09-13 11:30:13 +02:00
Mike Salvatore 4e49e59447 Island: Rename local event_queue -> island_event_queue
Disambiguate Island event queues from Agent event queues
2022-09-13 11:07:35 +02:00
Mike Salvatore 6d297dc201 Island: Subscribe legacy Database.reset_db to CLEAR_SIMULATION_DATA 2022-09-13 11:07:35 +02:00
Mike Salvatore 9479b56722 Island: Subscribe ICredentialsRepository to CLEAR_SIMULATION_DATA 2022-09-13 11:07:35 +02:00
Mike Salvatore 745027bf93 Island: Wrap island event handler setup in separate function 2022-09-13 11:07:35 +02:00
Mike Salvatore 7f29e0342d Island: Use interface instead of concrete in island_event_handlers 2022-09-13 11:07:35 +02:00
Mike Salvatore ba724db969 Island: Publish IslandEventTopic.CLEAR_SIMULATION_DATA from resource 2022-09-13 11:07:35 +02:00
Mike Salvatore 2c750acc7a Island: Return 204 No Content from ClearSimulationData POST 2022-09-13 11:07:35 +02:00
ilija-lazoroski e0fb651c69
Merge pull request #2276 from guardicore/2234-refactor-reset-agent-config
2234 refactor reset agent config
2022-09-13 10:55:47 +02:00
Ilija Lazoroski afa6c6b159 Island: Rename event_queue to island_event_queue 2022-09-13 10:44:52 +02:00
Ilija Lazoroski 2bfb85a652 UT: Add typehints to test_reset_agent_configuration 2022-09-13 09:33:48 +02:00
Ilija Lazoroski 599c753cf7 Island: Add docstrings to reset_agent_configuration event handler 2022-09-13 09:31:38 +02:00
Mike Salvatore 70978f9b30 Merge branch '2216-find-servers-concurrently' into 2216-fix-connection-issues 2022-09-12 16:49:07 -04:00
Kekoa Kaaikala 3dd2052dc5 Agent: Add debug logging to TCPRelay 2022-09-12 20:45:37 +00:00
Mike Salvatore c532cdec72 Agent: Detect closed socket in SocketsPipe
When a socket is closed, select.select() returns the socket in the
read_list. A closed socket can be detected by attempting to read from
it. If 0 data is read, then the socket is closed.

See below for more details:
> If a socket is in the output readable list, you can be
  as-close-to-certain-as-we-ever-get-in-this-business that a recv on
  that socket will return something.
https://docs.python.org/3/howto/sockets.html#non-blocking-sockets
https://stackoverflow.com/questions/17386487/python-detect-when-a-socket-disconnects-for-any-reason
https://stackoverflow.com/questions/17705239/is-there-a-way-to-detect-that-tcp-socket-has-been-closed-by-the-remote-peer-wit
2022-09-12 16:35:36 -04:00
Mike Salvatore fe954bb659 Agent: Call pipe.start(), not run()
run() blocks, start() starts the run method on a different thread.
2022-09-12 16:31:03 -04:00
Mike Salvatore 9002c47d56 Agent: Add a timeout on TCPPipeSpawner dest socket 2022-09-12 16:29:19 -04:00
Mike Salvatore 77c97062eb Agent: Wrap relay stop logic in a method 2022-09-12 14:53:19 -04:00
Mike Salvatore 27cb2009fc Agent: Let relay run indefinitely if user hasn't forced a stop 2022-09-12 14:46:42 -04:00
Mike Salvatore ea47fc326a Island: Remove extra newline from server_setup.py 2022-09-12 14:15:08 -04:00