Island: Fix AgentConfiguration logic in FileAgentConfigurationRepository

This commit is contained in:
Shreya Malviya 2022-08-30 12:38:24 +05:30
parent a9a006a9fd
commit f4e3bc2a89
1 changed files with 4 additions and 3 deletions

View File

@ -1,4 +1,5 @@
import io import io
import json
from common.agent_configuration import AgentConfiguration from common.agent_configuration import AgentConfiguration
from monkey_island.cc import repository from monkey_island.cc import repository
@ -23,17 +24,17 @@ class FileAgentConfigurationRepository(IAgentConfigurationRepository):
with self._file_repository.open_file(AGENT_CONFIGURATION_FILE_NAME) as f: with self._file_repository.open_file(AGENT_CONFIGURATION_FILE_NAME) as f:
configuration_json = f.read().decode() configuration_json = f.read().decode()
return AgentConfiguration.from_json(configuration_json) return AgentConfiguration(**json.loads(configuration_json))
except repository.FileNotFoundError: except repository.FileNotFoundError:
return self._default_agent_configuration return self._default_agent_configuration
except Exception as err: except Exception as err:
raise RetrievalError(f"Error retrieving the agent configuration: {err}") raise RetrievalError(f"Error retrieving the agent configuration: {err}")
def store_configuration(self, agent_configuration: AgentConfiguration): def store_configuration(self, agent_configuration: AgentConfiguration):
configuration_json = AgentConfiguration.to_json(agent_configuration) configuration_json = agent_configuration.dict()
self._file_repository.save_file( self._file_repository.save_file(
AGENT_CONFIGURATION_FILE_NAME, io.BytesIO(configuration_json.encode()) AGENT_CONFIGURATION_FILE_NAME, io.BytesIO(json.dumps(configuration_json).encode())
) )
def reset_to_default(self): def reset_to_default(self):