57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
from primaite.simulator.network.hardware.base import Node
|
|
from primaite.simulator.network.transmission.transport_layer import Port
|
|
from primaite.simulator.system.services.database import DatabaseService
|
|
from primaite.simulator.system.services.service import ServiceOperatingState
|
|
from primaite.simulator.system.software import SoftwareCriticality, SoftwareHealthState
|
|
|
|
|
|
def test_installing_database():
|
|
db = DatabaseService(
|
|
name="SQL-database",
|
|
health_state_actual=SoftwareHealthState.GOOD,
|
|
health_state_visible=SoftwareHealthState.GOOD,
|
|
criticality=SoftwareCriticality.MEDIUM,
|
|
ports=[
|
|
Port.SQL_SERVER,
|
|
],
|
|
operating_state=ServiceOperatingState.RUNNING,
|
|
)
|
|
|
|
node = Node(hostname="db-server")
|
|
|
|
node.install_service(db)
|
|
|
|
assert db in node
|
|
|
|
file_exists = False
|
|
for folder in node.file_system.folders.values():
|
|
for file in folder.files.values():
|
|
if file.name == "db_primary_store":
|
|
file_exists = True
|
|
break
|
|
if file_exists:
|
|
break
|
|
assert file_exists
|
|
|
|
|
|
def test_uninstalling_database():
|
|
db = DatabaseService(
|
|
name="SQL-database",
|
|
health_state_actual=SoftwareHealthState.GOOD,
|
|
health_state_visible=SoftwareHealthState.GOOD,
|
|
criticality=SoftwareCriticality.MEDIUM,
|
|
ports=[
|
|
Port.SQL_SERVER,
|
|
],
|
|
operating_state=ServiceOperatingState.RUNNING,
|
|
)
|
|
|
|
node = Node(hostname="db-server")
|
|
|
|
node.install_service(db)
|
|
|
|
node.uninstall_service(db)
|
|
|
|
assert db not in node
|
|
assert node.file_system.get_folder_by_name("database") is None
|