From 40601b955c591fcca359e91be7bb18fab559e77d Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Mon, 29 Aug 2022 20:18:01 -0400 Subject: [PATCH 1/5] Island: Add default value for Machine.network_interfaces --- monkey/monkey_island/cc/models/machine.py | 2 +- .../unit_tests/monkey_island/cc/models/test_machine.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/monkey/monkey_island/cc/models/machine.py b/monkey/monkey_island/cc/models/machine.py index 686e677b6..b09e8bf99 100644 --- a/monkey/monkey_island/cc/models/machine.py +++ b/monkey/monkey_island/cc/models/machine.py @@ -20,7 +20,7 @@ class Machine(MutableInfectionMonkeyBaseModel): hardware_id: Optional[HardwareID] """An identifier generated by the agent that uniquely identifies a machine""" - network_interfaces: Sequence[IPv4Interface] + network_interfaces: Sequence[IPv4Interface] = Field(default_factory=tuple) """The machine's networking interfaces""" operating_system: Optional[OperatingSystem] diff --git a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py index 8414cd9d6..a2e712a25 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py +++ b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py @@ -141,6 +141,15 @@ def test_network_interfaces_sequence_is_immutable(): assert not isinstance(m.network_interfaces, MutableSequence) +def test_network_interfaces_default(): + missing_network_interfaces_dict = MACHINE_OBJECT_DICT.copy() + del missing_network_interfaces_dict["network_interfaces"] + + m = Machine(**missing_network_interfaces_dict) + + assert len(m.network_interfaces) == 0 + + def test_operating_system_set_valid_value(): m = Machine(**MACHINE_OBJECT_DICT) From 3e2244cd62e6fd912a2a40483b87879390b763ad Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Mon, 29 Aug 2022 20:23:56 -0400 Subject: [PATCH 2/5] UT: Add test_operating_system_default_value() --- .../unit_tests/monkey_island/cc/models/test_machine.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py index a2e712a25..a81f1823f 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py +++ b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py @@ -164,6 +164,15 @@ def test_operating_system_set_invalid_value(): m.operating_system = "MacOS" +def test_operating_system_default_value(): + missing_operating_system_dict = MACHINE_OBJECT_DICT.copy() + del missing_operating_system_dict["operating_system"] + + m = Machine(**missing_operating_system_dict) + + assert m.operating_system is None + + def test_set_operating_system_version(): m = Machine(**MACHINE_OBJECT_DICT) From 5d51b40475545efc703d8f1da4b8b6c9e58af905 Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Mon, 29 Aug 2022 20:25:33 -0400 Subject: [PATCH 3/5] Island: Add default value for Machine.operating_system_version --- monkey/monkey_island/cc/models/machine.py | 2 +- .../unit_tests/monkey_island/cc/models/test_machine.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/monkey/monkey_island/cc/models/machine.py b/monkey/monkey_island/cc/models/machine.py index b09e8bf99..31c5d41ad 100644 --- a/monkey/monkey_island/cc/models/machine.py +++ b/monkey/monkey_island/cc/models/machine.py @@ -26,7 +26,7 @@ class Machine(MutableInfectionMonkeyBaseModel): operating_system: Optional[OperatingSystem] """The operating system the machine is running""" - operating_system_version: str + operating_system_version: str = Field(default="") """The specific version of the operating system the machine is running""" hostname: str diff --git a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py index a81f1823f..e60069ed6 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py +++ b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py @@ -180,6 +180,15 @@ def test_set_operating_system_version(): m.operating_system_version = "1234" +def test_operating_system_version_default_value(): + missing_operating_system_version_dict = MACHINE_OBJECT_DICT.copy() + del missing_operating_system_version_dict["operating_system_version"] + + m = Machine(**missing_operating_system_version_dict) + + assert m.operating_system_version == "" + + def test_set_hostname(): m = Machine(**MACHINE_OBJECT_DICT) From ac1cda40a815b63d98ecc0e69de78352c189c2d8 Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Mon, 29 Aug 2022 20:27:57 -0400 Subject: [PATCH 4/5] Island: Add default value for Machine.hostname --- monkey/monkey_island/cc/models/machine.py | 2 +- .../unit_tests/monkey_island/cc/models/test_machine.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/monkey/monkey_island/cc/models/machine.py b/monkey/monkey_island/cc/models/machine.py index 31c5d41ad..4c5925390 100644 --- a/monkey/monkey_island/cc/models/machine.py +++ b/monkey/monkey_island/cc/models/machine.py @@ -29,7 +29,7 @@ class Machine(MutableInfectionMonkeyBaseModel): operating_system_version: str = Field(default="") """The specific version of the operating system the machine is running""" - hostname: str + hostname: str = Field(default="") """The hostname of the machine""" _make_immutable_sequence = validator("network_interfaces", pre=True, allow_reuse=True)( diff --git a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py index e60069ed6..db8fb5825 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py +++ b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py @@ -194,3 +194,12 @@ def test_set_hostname(): # Raises exception_on_failure m.operating_system_version = "wopr" + + +def test_hostname_default_value(): + missing_hostname_dict = MACHINE_OBJECT_DICT.copy() + del missing_hostname_dict["hostname"] + + m = Machine(**missing_hostname_dict) + + assert m.hostname == "" From 5713d1c99b33b1fac5b2764cd813a4deb70ce5aa Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Mon, 29 Aug 2022 20:30:07 -0400 Subject: [PATCH 5/5] UT: Add test_hardware_id_default() --- .../unit_tests/monkey_island/cc/models/test_machine.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py index db8fb5825..49eeae9a7 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py +++ b/monkey/tests/unit_tests/monkey_island/cc/models/test_machine.py @@ -121,6 +121,15 @@ def test_hardware_id_validate_on_set(): m.hardware_id = -50 +def test_hardware_id_default(): + missing_hardware_id_dict = MACHINE_OBJECT_DICT.copy() + del missing_hardware_id_dict["hardware_id"] + + m = Machine(**missing_hardware_id_dict) + + assert m.hardware_id is None + + def test_network_interfaces_set_valid_value(): m = Machine(**MACHINE_OBJECT_DICT)