#1522: create_random_red_agent -> _create_random_red_agent + converting NodeStateInstructionRed into a dataclass

This commit is contained in:
Czar Echavez
2023-07-03 13:36:14 +01:00
parent 0943e9511b
commit cb9d40579f
2 changed files with 5 additions and 19 deletions

View File

@@ -278,7 +278,7 @@ class Primaite(Env):
# Create a random red agent to use for this episode # Create a random red agent to use for this episode
if self.training_config.random_red_agent: if self.training_config.random_red_agent:
self.create_random_red_agent() self._create_random_red_agent()
# Reset counters and totals # Reset counters and totals
self.total_reward = 0 self.total_reward = 0
@@ -1236,7 +1236,7 @@ class Primaite(Env):
combined_action_dict = {**acl_action_dict, **new_node_action_dict} combined_action_dict = {**acl_action_dict, **new_node_action_dict}
return combined_action_dict return combined_action_dict
def create_random_red_agent(self): def _create_random_red_agent(self):
"""Decide on random red agent for the episode to be called in env.reset().""" """Decide on random red agent for the episode to be called in env.reset()."""
# Reset the current red iers and red node pol # Reset the current red iers and red node pol
self.red_iers = {} self.red_iers = {}

View File

@@ -1,8 +1,11 @@
# Crown Copyright (C) Dstl 2022. DEFCON 703. Shared in confidence. # Crown Copyright (C) Dstl 2022. DEFCON 703. Shared in confidence.
"""Defines node behaviour for Green PoL.""" """Defines node behaviour for Green PoL."""
from dataclasses import dataclass
from primaite.common.enums import NodePOLType from primaite.common.enums import NodePOLType
@dataclass()
class NodeStateInstructionRed(object): class NodeStateInstructionRed(object):
"""The Node State Instruction class.""" """The Node State Instruction class."""
@@ -137,20 +140,3 @@ class NodeStateInstructionRed(object):
The source node service state The source node service state
""" """
return self.source_node_service_state return self.source_node_service_state
def __repr__(self):
return (
f"{self.__class__.__name__}("
f"id={self.id}, "
f"start_step={self.start_step}, "
f"end_step={self.end_step}, "
f"target_node_id={self.target_node_id}, "
f"initiator={self.initiator}, "
f"pol_type={self.pol_type}, "
f"service_name={self.service_name}, "
f"state={self.state}, "
f"source_node_id={self.source_node_id}, "
f"source_node_service={self.source_node_service}, "
f"source_node_service_state={self.source_node_service_state}"
f")"
)