#1796: pre installing system software

This commit is contained in:
Czar.Echavez
2023-09-26 15:14:24 +01:00
parent 161d441ad6
commit c096d06bcd
5 changed files with 14 additions and 14 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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",

View File

@@ -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

View File

@@ -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