forked from p15670423/monkey
Island: Add initialize_machine_repository()
This commit is contained in:
parent
fca3a1357e
commit
ff0a57aa93
|
@ -27,3 +27,5 @@ from .mongo_machine_repository import MongoMachineRepository
|
|||
from .mongo_agent_repository import MongoAgentRepository
|
||||
from .mongo_node_repository import MongoNodeRepository
|
||||
from .mongo_agent_event_repository import MongoAgentEventRepository
|
||||
|
||||
from .utils import initialize_machine_repository
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
import platform
|
||||
from socket import gethostname
|
||||
from uuid import getnode
|
||||
|
||||
from common import OperatingSystem
|
||||
from common.network.network_utils import get_network_interfaces
|
||||
from monkey_island.cc.models import Machine
|
||||
|
||||
from . import IMachineRepository, UnknownRecordError
|
||||
|
||||
|
||||
def initialize_machine_repository(machine_repository: IMachineRepository):
|
||||
"""
|
||||
Populate an IMachineRepository with island machine data
|
||||
|
||||
If the island is not already present in the IMachineRepository, add it.
|
||||
|
||||
:param machine_repository: The repository to populate
|
||||
:raises StorageError: If an error occurs while attempting to store data in the repository
|
||||
"""
|
||||
hardware_id = getnode()
|
||||
|
||||
try:
|
||||
machine_repository.get_machine_by_hardware_id(hardware_id)
|
||||
except UnknownRecordError:
|
||||
machine = Machine(
|
||||
id=machine_repository.get_new_id(),
|
||||
hardware_id=hardware_id,
|
||||
network_interfaces=get_network_interfaces(),
|
||||
operating_system=OperatingSystem(platform.system().lower()),
|
||||
operating_system_version=platform.version(),
|
||||
hostname=gethostname(),
|
||||
)
|
||||
machine_repository.upsert_machine(machine)
|
Loading…
Reference in New Issue