#1796: pre installing system software
This commit is contained in:
@@ -94,11 +94,11 @@ Example peer to peer network
|
|||||||
Install the FTP Server
|
Install the FTP Server
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
FTP Client should be pre installed on nodes
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
srv.software_manager.install(FTPServer)
|
srv.software_manager.install(FTPServer)
|
||||||
pc1.software_manager.install(FTPClient)
|
|
||||||
client: FTPClient = pc1.software_manager.software['FTPClient']
|
|
||||||
ftpserv: FTPServer = srv.software_manager.software['FTPServer']
|
ftpserv: FTPServer = srv.software_manager.software['FTPServer']
|
||||||
|
|
||||||
Setting up the FTP Server
|
Setting up the FTP Server
|
||||||
|
|||||||
@@ -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.software_manager import SoftwareManager
|
||||||
from primaite.simulator.system.core.sys_log import SysLog
|
from primaite.simulator.system.core.sys_log import SysLog
|
||||||
from primaite.simulator.system.processes.process import Process
|
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
|
from primaite.simulator.system.services.service import Service
|
||||||
|
|
||||||
_LOGGER = getLogger(__name__)
|
_LOGGER = getLogger(__name__)
|
||||||
@@ -937,6 +939,16 @@ class Node(SimComponent):
|
|||||||
self.arp.nics = self.nics
|
self.arp.nics = self.nics
|
||||||
self.session_manager.software_manager = self.software_manager
|
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:
|
def describe_state(self) -> Dict:
|
||||||
"""
|
"""
|
||||||
Produce a dictionary describing the current state of this object.
|
Produce a dictionary describing the current state of this object.
|
||||||
|
|||||||
@@ -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.network.transmission.transport_layer import Port
|
||||||
from primaite.simulator.system.applications.database_client import DatabaseClient
|
from primaite.simulator.system.applications.database_client import DatabaseClient
|
||||||
from primaite.simulator.system.services.database.database_service import DatabaseService
|
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.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.ftp.ftp_server import FTPServer
|
||||||
from primaite.simulator.system.services.red_services.data_manipulation_bot import DataManipulationBot
|
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"),
|
dns_server=IPv4Address("192.168.1.10"),
|
||||||
)
|
)
|
||||||
client_1.power_on()
|
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])
|
network.connect(endpoint_b=client_1.ethernet_port[1], endpoint_a=switch_2.switch_ports[1])
|
||||||
client_1.software_manager.install(DataManipulationBot)
|
client_1.software_manager.install(DataManipulationBot)
|
||||||
db_manipulation_bot: DataManipulationBot = client_1.software_manager.software["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;")
|
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
|
||||||
client_2 = Computer(
|
client_2 = Computer(
|
||||||
hostname="client_2",
|
hostname="client_2",
|
||||||
@@ -154,11 +149,8 @@ def arcd_uc2_network() -> Network:
|
|||||||
dns_server=IPv4Address("192.168.1.10"),
|
dns_server=IPv4Address("192.168.1.10"),
|
||||||
)
|
)
|
||||||
client_2.power_on()
|
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])
|
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
|
||||||
domain_controller = Server(
|
domain_controller = Server(
|
||||||
hostname="domain_controller",
|
hostname="domain_controller",
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ def dns_server() -> Node:
|
|||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
def dns_client() -> Node:
|
def dns_client() -> Node:
|
||||||
node = Node(hostname="dns_client")
|
node = Node(hostname="dns_client")
|
||||||
node.software_manager.install(software_class=DNSClient)
|
|
||||||
node.software_manager.software["DNSClient"].start()
|
|
||||||
return node
|
return node
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ def ftp_server() -> Node:
|
|||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
def ftp_client() -> Node:
|
def ftp_client() -> Node:
|
||||||
node = Node(hostname="ftp_client")
|
node = Node(hostname="ftp_client")
|
||||||
node.software_manager.install(software_class=FTPClient)
|
|
||||||
node.software_manager.software["FTPClient"].start()
|
|
||||||
return node
|
return node
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user