diff --git a/sandbox.py b/sandbox.py deleted file mode 100644 index b08f15b1..00000000 --- a/sandbox.py +++ /dev/null @@ -1,72 +0,0 @@ -from primaite.config.load import example_config_path, load -from primaite.session.session import PrimaiteSession -from primaite.simulator.system.applications.database_client import DatabaseClient -from primaite.simulator.system.applications.web_browser import WebBrowser -from primaite.simulator.system.services.dns.dns_client import DNSClient - -cfg = load(example_config_path()) -session = PrimaiteSession.from_config(cfg) -network = session.game.simulation.network - -dc = network.get_node_by_hostname("domain_controller") -router = network.get_node_by_hostname("router_1") -client_1 = network.get_node_by_hostname("client_1") -client_2 = network.get_node_by_hostname("client_2") -switch_1 = network.get_node_by_hostname("switch_1") -switch_2 = network.get_node_by_hostname("switch_2") -web_server = network.get_node_by_hostname("web_server") - -dns_server = dc.software_manager.software["DNSServer"] -dns_client: DNSClient = client_2.software_manager.software["DNSClient"] -web_db_client: DatabaseClient = web_server.software_manager.software["DatabaseClient"] -web_browser: WebBrowser = client_2.software_manager.software["WebBrowser"] - -# print("before calling get webpage") -# router.acl.show() -# dns_server.show() -# client_2.arp.show() -# router.arp.show() -# print() - -# print("can get webpage", client_2.software_manager.software["WebBrowser"].get_webpage()) -# print("after calling get webpage") -# router.acl.show() -# dns_server.show() -# client_2.arp.show() -# router.arp.show() -# print() -# print("reset") -# print() -# print("im gonna reset") -# print() - -# web_db_client.connect() -# web_db_client.run() -# web_browser.run() -# print("client_2", client_2.operating_state) -# print("web_browser", web_browser.operating_state) -# print("can get webpage", client_2.software_manager.software["WebBrowser"].get_webpage()) -session.game.reset() -print("can get webpage", client_2.software_manager.software["WebBrowser"].get_webpage()) -session.game.reset() -print("can get webpage", client_2.software_manager.software["WebBrowser"].get_webpage()) -session.game.reset() -print("can get webpage", client_2.software_manager.software["WebBrowser"].get_webpage()) -session.game.reset() -print("can get webpage", client_2.software_manager.software["WebBrowser"].get_webpage()) -# print() -# -# print("before calling get webpage") -# router.acl.show() -# dns_server.show() -# client_2.arp.show() -# router.arp.show() -# print() -# -# print("can get webpage", client_2.software_manager.software["WebBrowser"].get_webpage()) -# print("after calling get webpage") -# router.acl.show() -# dns_server.show() -# client_2.arp.show() -# router.arp.show() -# print() diff --git a/src/primaite/session/policy/sb3.py b/src/primaite/session/policy/sb3.py index 051e2770..254baf4d 100644 --- a/src/primaite/session/policy/sb3.py +++ b/src/primaite/session/policy/sb3.py @@ -51,14 +51,13 @@ class SB3Policy(PolicyABC, identifier="SB3"): def eval(self, n_episodes: int, deterministic: bool) -> None: """Evaluate the agent.""" - reward_data = evaluate_policy( + _ = evaluate_policy( self._agent, self.session.env, n_eval_episodes=n_episodes, deterministic=deterministic, return_episode_rewards=True, ) - print(reward_data) def save(self, save_path: Path) -> None: """ diff --git a/src/primaite/simulator/system/applications/web_browser.py b/src/primaite/simulator/system/applications/web_browser.py index 8f12df4e..1531314d 100644 --- a/src/primaite/simulator/system/applications/web_browser.py +++ b/src/primaite/simulator/system/applications/web_browser.py @@ -76,7 +76,7 @@ class WebBrowser(Application): def reset_component_for_episode(self, episode: int): """Reset the original state of the SimComponent.""" - def get_webpage(self) -> bool: + def get_webpage(self, url: Optional[str] = None) -> bool: """ Retrieve the webpage. @@ -85,7 +85,7 @@ class WebBrowser(Application): :param: url: The address of the web page the browser requests :type: url: str """ - url = self.target_url + url = url or self.target_url if not self._can_perform_action(): return False diff --git a/src/primaite/simulator/system/services/database/database_service.py b/src/primaite/simulator/system/services/database/database_service.py index f9621ba5..bba4e777 100644 --- a/src/primaite/simulator/system/services/database/database_service.py +++ b/src/primaite/simulator/system/services/database/database_service.py @@ -56,7 +56,7 @@ class DatabaseService(Service): def reset_component_for_episode(self, episode: int): """Reset the original state of the SimComponent.""" - print("Resetting DatabaseService original state on node {self.software_manager.node.hostname}") + _LOGGER.debug("Resetting DatabaseService original state on node {self.software_manager.node.hostname}") self.connections.clear() super().reset_component_for_episode(episode) diff --git a/src/primaite/simulator/system/services/web_server/web_server.py b/src/primaite/simulator/system/services/web_server/web_server.py index bff29a47..e5f3dccc 100644 --- a/src/primaite/simulator/system/services/web_server/web_server.py +++ b/src/primaite/simulator/system/services/web_server/web_server.py @@ -47,7 +47,6 @@ class WebServer(Service): state["last_response_status_code"] = ( self.last_response_status_code.value if isinstance(self.last_response_status_code, HttpStatusCode) else None ) - print(state) return state def __init__(self, **kwargs): diff --git a/tests/e2e_integration_tests/test_primaite_session.py b/tests/e2e_integration_tests/test_primaite_session.py index 086e9af8..f2b6aa3f 100644 --- a/tests/e2e_integration_tests/test_primaite_session.py +++ b/tests/e2e_integration_tests/test_primaite_session.py @@ -76,6 +76,10 @@ class TestPrimaiteSession: with pytest.raises(pydantic.ValidationError): session = TempPrimaiteSession.from_config(MISCONFIGURED_PATH) + @pytest.mark.skip( + reason="Currently software cannot be dynamically created/destroyed during simulation. Therefore, " + "reset doesn't implement software restore." + ) @pytest.mark.parametrize("temp_primaite_session", [[CFG_PATH]], indirect=True) def test_session_sim_reset(self, temp_primaite_session): with temp_primaite_session as session: diff --git a/tests/integration_tests/system/test_web_client_server.py b/tests/integration_tests/system/test_web_client_server.py index f2cc5b5d..3ee1e3ed 100644 --- a/tests/integration_tests/system/test_web_client_server.py +++ b/tests/integration_tests/system/test_web_client_server.py @@ -27,10 +27,11 @@ def test_web_page_get_users_page_request_with_domain_name(uc2_network): web_client: WebBrowser = client_1.software_manager.software["WebBrowser"] web_client.run() assert web_client.operating_state == ApplicationOperatingState.RUNNING + web_client.target_url = "http://arcd.com/users/" assert web_client.get_webpage() is True - # latest reponse should have status code 200 + # latest response should have status code 200 assert web_client.latest_response is not None assert web_client.latest_response.status_code == HttpStatusCode.OK