Fix airspace and remaining port problems from refactor
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
# © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK
|
||||
from typing import Dict
|
||||
|
||||
from prettytable import MARKDOWN, PrettyTable
|
||||
@@ -27,7 +28,7 @@ class GigaSwitch(NetworkNode, identifier="gigaswitch"):
|
||||
"A MAC address table mapping destination MAC addresses to corresponding SwitchPorts."
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
print('--- Extended Component: GigaSwitch ---')
|
||||
print("--- Extended Component: GigaSwitch ---")
|
||||
super().__init__(**kwargs)
|
||||
for i in range(1, self.num_ports + 1):
|
||||
self.connect_nic(SwitchPort())
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK
|
||||
from typing import ClassVar, Dict
|
||||
|
||||
from primaite.simulator.network.hardware.nodes.host.host_node import NIC, HostNode
|
||||
from primaite.simulator.network.hardware.nodes.host.host_node import HostNode, NIC
|
||||
from primaite.simulator.system.services.ftp.ftp_client import FTPClient
|
||||
from primaite.utils.validators import IPV4Address
|
||||
|
||||
@@ -37,7 +37,7 @@ class SuperComputer(HostNode, identifier="supercomputer"):
|
||||
SYSTEM_SOFTWARE: ClassVar[Dict] = {**HostNode.SYSTEM_SOFTWARE, "FTPClient": FTPClient}
|
||||
|
||||
def __init__(self, ip_address: IPV4Address, subnet_mask: IPV4Address, **kwargs):
|
||||
print('--- Extended Component: SuperComputer ---')
|
||||
print("--- Extended Component: SuperComputer ---")
|
||||
super().__init__(ip_address=ip_address, subnet_mask=subnet_mask, **kwargs)
|
||||
|
||||
pass
|
||||
|
||||
@@ -17,7 +17,7 @@ from primaite.simulator.system.software import SoftwareHealthState
|
||||
_LOGGER = getLogger(__name__)
|
||||
|
||||
|
||||
class ExtendedService(Service, identifier='extendedservice'):
|
||||
class ExtendedService(Service, identifier="extendedservice"):
|
||||
"""
|
||||
A copy of DatabaseService that uses the extension framework instead of being part of PrimAITE.
|
||||
|
||||
@@ -42,7 +42,7 @@ class ExtendedService(Service, identifier='extendedservice'):
|
||||
kwargs["protocol"] = IPProtocol["TCP"]
|
||||
super().__init__(**kwargs)
|
||||
self._create_db_file()
|
||||
if kwargs.get('options'):
|
||||
if kwargs.get("options"):
|
||||
opt = kwargs["options"]
|
||||
self.password = opt.get("db_password", None)
|
||||
if "backup_server_ip" in opt:
|
||||
@@ -139,7 +139,9 @@ class ExtendedService(Service, identifier='extendedservice'):
|
||||
old_visible_state = SoftwareHealthState.GOOD
|
||||
|
||||
# get db file regardless of whether or not it was deleted
|
||||
db_file = self.file_system.get_file(folder_name="database", file_name="extended_service_database.db", include_deleted=True)
|
||||
db_file = self.file_system.get_file(
|
||||
folder_name="database", file_name="extended_service_database.db", include_deleted=True
|
||||
)
|
||||
|
||||
if db_file is None:
|
||||
self.sys_log.warning("Database file not initialised.")
|
||||
@@ -153,7 +155,9 @@ class ExtendedService(Service, identifier='extendedservice'):
|
||||
self.file_system.delete_file(folder_name="database", file_name="extended_service_database.db")
|
||||
|
||||
# replace db file
|
||||
self.file_system.copy_file(src_folder_name="downloads", src_file_name="extended_service_database.db", dst_folder_name="database")
|
||||
self.file_system.copy_file(
|
||||
src_folder_name="downloads", src_file_name="extended_service_database.db", dst_folder_name="database"
|
||||
)
|
||||
|
||||
if self.db_file is None:
|
||||
self.sys_log.error("Copying database backup failed.")
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
# © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK
|
||||
import os
|
||||
|
||||
from primaite.config.load import get_extended_config_path
|
||||
from primaite.simulator.network.container import Network
|
||||
from primaite.simulator.network.hardware.node_operating_state import NodeOperatingState
|
||||
from primaite.simulator.network.hardware.nodes.host.computer import Computer
|
||||
from tests.integration_tests.configuration_file_parsing import BASIC_CONFIG, DMZ_NETWORK, load_config
|
||||
import os
|
||||
from tests.integration_tests.extensions.applications.extended_application import ExtendedApplication
|
||||
from tests.integration_tests.extensions.nodes.giga_switch import GigaSwitch
|
||||
|
||||
# Import the extended components so that PrimAITE registers them
|
||||
from tests.integration_tests.extensions.nodes.super_computer import SuperComputer
|
||||
from tests.integration_tests.extensions.nodes.giga_switch import GigaSwitch
|
||||
from tests.integration_tests.extensions.services.extended_service import ExtendedService
|
||||
from tests.integration_tests.extensions.applications.extended_application import ExtendedApplication
|
||||
|
||||
|
||||
def test_extended_example_config():
|
||||
|
||||
"""Test that the example config can be parsed properly."""
|
||||
config_path = os.path.join( "tests", "assets", "configs", "extended_config.yaml")
|
||||
config_path = os.path.join("tests", "assets", "configs", "extended_config.yaml")
|
||||
game = load_config(config_path)
|
||||
network: Network = game.simulation.network
|
||||
|
||||
@@ -25,8 +25,8 @@ def test_extended_example_config():
|
||||
assert len(network.router_nodes) == 1 # 1 router in network
|
||||
assert len(network.switch_nodes) == 1 # 1 switches in network
|
||||
assert len(network.server_nodes) == 5 # 5 servers in network
|
||||
assert len(network.extended_hostnodes) == 1 # One extended node based on HostNode
|
||||
assert len(network.extended_networknodes) == 1 # One extended node based on NetworkNode
|
||||
assert len(network.extended_hostnodes) == 1 # One extended node based on HostNode
|
||||
assert len(network.extended_networknodes) == 1 # One extended node based on NetworkNode
|
||||
|
||||
assert 'ExtendedApplication' in network.extended_hostnodes[0].software_manager.software
|
||||
assert 'ExtendedService' in network.extended_hostnodes[0].software_manager.software
|
||||
assert "ExtendedApplication" in network.extended_hostnodes[0].software_manager.software
|
||||
assert "ExtendedService" in network.extended_hostnodes[0].software_manager.software
|
||||
|
||||
Reference in New Issue
Block a user