From c096d06bcdf49f10769b320840ca1ee94ddda318 Mon Sep 17 00:00:00 2001 From: "Czar.Echavez" Date: Tue, 26 Sep 2023 15:14:24 +0100 Subject: [PATCH] #1796: pre installing system software --- .../system/ftp_client_server.rst | 4 ++-- src/primaite/simulator/network/hardware/base.py | 12 ++++++++++++ src/primaite/simulator/network/networks.py | 8 -------- .../_simulator/_system/_services/test_dns.py | 2 -- .../_simulator/_system/_services/test_ftp.py | 2 -- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/source/simulation_components/system/ftp_client_server.rst b/docs/source/simulation_components/system/ftp_client_server.rst index 0e4aeea3..94aef925 100644 --- a/docs/source/simulation_components/system/ftp_client_server.rst +++ b/docs/source/simulation_components/system/ftp_client_server.rst @@ -94,11 +94,11 @@ Example peer to peer network Install the FTP Server ^^^^^^^^^^^^^^^^^^^^^^ +FTP Client should be pre installed on nodes + .. code-block:: python srv.software_manager.install(FTPServer) - pc1.software_manager.install(FTPClient) - client: FTPClient = pc1.software_manager.software['FTPClient'] ftpserv: FTPServer = srv.software_manager.software['FTPServer'] Setting up the FTP Server diff --git a/src/primaite/simulator/network/hardware/base.py b/src/primaite/simulator/network/hardware/base.py index dd2130d2..00b1f097 100644 --- a/src/primaite/simulator/network/hardware/base.py +++ b/src/primaite/simulator/network/hardware/base.py @@ -25,6 +25,8 @@ from primaite.simulator.system.core.session_manager import SessionManager from primaite.simulator.system.core.software_manager import SoftwareManager from primaite.simulator.system.core.sys_log import SysLog from primaite.simulator.system.processes.process import Process +from primaite.simulator.system.services.dns.dns_client import DNSClient +from primaite.simulator.system.services.ftp.ftp_client import FTPClient from primaite.simulator.system.services.service import Service _LOGGER = getLogger(__name__) @@ -937,6 +939,16 @@ class Node(SimComponent): self.arp.nics = self.nics self.session_manager.software_manager = self.software_manager + self._install_system_software() + + def _install_system_software(self): + """Install System Software - software that is usually provided with the OS.""" + # DNS Client + self.software_manager.install(DNSClient) + + # FTP + self.software_manager.install(FTPClient) + def describe_state(self) -> Dict: """ Produce a dictionary describing the current state of this object. diff --git a/src/primaite/simulator/network/networks.py b/src/primaite/simulator/network/networks.py index 63cb05e0..6122146b 100644 --- a/src/primaite/simulator/network/networks.py +++ b/src/primaite/simulator/network/networks.py @@ -10,9 +10,7 @@ from primaite.simulator.network.transmission.network_layer import IPProtocol from primaite.simulator.network.transmission.transport_layer import Port from primaite.simulator.system.applications.database_client import DatabaseClient from primaite.simulator.system.services.database.database_service import DatabaseService -from primaite.simulator.system.services.dns.dns_client import DNSClient from primaite.simulator.system.services.dns.dns_server import DNSServer -from primaite.simulator.system.services.ftp.ftp_client import FTPClient from primaite.simulator.system.services.ftp.ftp_server import FTPServer from primaite.simulator.system.services.red_services.data_manipulation_bot import DataManipulationBot @@ -137,14 +135,11 @@ def arcd_uc2_network() -> Network: dns_server=IPv4Address("192.168.1.10"), ) client_1.power_on() - client_1.software_manager.install(DNSClient) network.connect(endpoint_b=client_1.ethernet_port[1], endpoint_a=switch_2.switch_ports[1]) client_1.software_manager.install(DataManipulationBot) db_manipulation_bot: DataManipulationBot = client_1.software_manager.software["DataManipulationBot"] db_manipulation_bot.configure(server_ip_address=IPv4Address("192.168.1.14"), payload="DROP TABLE IF EXISTS user;") - client_1.software_manager.install(FTPClient) - # Client 2 client_2 = Computer( hostname="client_2", @@ -154,11 +149,8 @@ def arcd_uc2_network() -> Network: dns_server=IPv4Address("192.168.1.10"), ) client_2.power_on() - client_2.software_manager.install(DNSClient) network.connect(endpoint_b=client_2.ethernet_port[1], endpoint_a=switch_2.switch_ports[2]) - client_2.software_manager.install(FTPClient) - # Domain Controller domain_controller = Server( hostname="domain_controller", diff --git a/tests/unit_tests/_primaite/_simulator/_system/_services/test_dns.py b/tests/unit_tests/_primaite/_simulator/_system/_services/test_dns.py index f501d14a..d86791cd 100644 --- a/tests/unit_tests/_primaite/_simulator/_system/_services/test_dns.py +++ b/tests/unit_tests/_primaite/_simulator/_system/_services/test_dns.py @@ -21,8 +21,6 @@ def dns_server() -> Node: @pytest.fixture(scope="function") def dns_client() -> Node: node = Node(hostname="dns_client") - node.software_manager.install(software_class=DNSClient) - node.software_manager.software["DNSClient"].start() return node diff --git a/tests/unit_tests/_primaite/_simulator/_system/_services/test_ftp.py b/tests/unit_tests/_primaite/_simulator/_system/_services/test_ftp.py index ea563a88..fce4a487 100644 --- a/tests/unit_tests/_primaite/_simulator/_system/_services/test_ftp.py +++ b/tests/unit_tests/_primaite/_simulator/_system/_services/test_ftp.py @@ -21,8 +21,6 @@ def ftp_server() -> Node: @pytest.fixture(scope="function") def ftp_client() -> Node: node = Node(hostname="ftp_client") - node.software_manager.install(software_class=FTPClient) - node.software_manager.software["FTPClient"].start() return node