Agent: Add and use HTTPIslandAPIClient.get_agent_binary()

This commit is contained in:
Shreya Malviya 2022-09-20 14:56:10 +05:30
parent 9da1ad4c46
commit 1355c038b5
2 changed files with 12 additions and 13 deletions

View File

@ -2,10 +2,7 @@ import io
import threading import threading
from functools import lru_cache from functools import lru_cache
import requests
from common import OperatingSystem from common import OperatingSystem
from common.common_consts.timeouts import MEDIUM_REQUEST_TIMEOUT
from infection_monkey.island_api_client import IIslandAPIClient from infection_monkey.island_api_client import IIslandAPIClient
from . import IAgentBinaryRepository from . import IAgentBinaryRepository
@ -36,13 +33,4 @@ class CachingAgentBinaryRepository(IAgentBinaryRepository):
@lru_cache(maxsize=None) @lru_cache(maxsize=None)
def _download_binary_from_island(self, operating_system: OperatingSystem) -> bytes: def _download_binary_from_island(self, operating_system: OperatingSystem) -> bytes:
os_name = operating_system.value os_name = operating_system.value
return self._island_api_client.get_agent_binary(os_name)
response = requests.get( # noqa: DUO123
f"{self._island_url}/api/agent-binaries/{os_name}",
verify=False,
timeout=MEDIUM_REQUEST_TIMEOUT,
)
response.raise_for_status()
return response.content

View File

@ -76,3 +76,14 @@ class HTTPIslandAPIClient(IIslandAPIClient):
response.raise_for_status() response.raise_for_status()
return response.content return response.content
@handle_island_errors
def get_agent_binary(self, os_name: str):
response = requests.get( # noqa: DUO123
f"{self._api_url}/api/agent-binaries/{os_name}",
verify=False,
timeout=MEDIUM_REQUEST_TIMEOUT,
)
response.raise_for_status()
return response.content