Merge branch 'dev' into feature/898-Fix-the-functionality-of-resetting-a-node
This commit is contained in:
68
tests/config/box_obs_space_laydown_config.yaml
Normal file
68
tests/config/box_obs_space_laydown_config.yaml
Normal file
@@ -0,0 +1,68 @@
|
||||
- itemType: ACTIONS
|
||||
type: NODE
|
||||
- itemType: OBSERVATIONS
|
||||
type: BOX
|
||||
- itemType: STEPS
|
||||
steps: 5
|
||||
- itemType: PORTS
|
||||
portsList:
|
||||
- port: '80'
|
||||
- itemType: SERVICES
|
||||
serviceList:
|
||||
- name: TCP
|
||||
|
||||
########################################
|
||||
# Nodes
|
||||
- itemType: NODE
|
||||
node_id: '1'
|
||||
name: PC1
|
||||
node_class: SERVICE
|
||||
node_type: COMPUTER
|
||||
priority: P5
|
||||
hardware_state: 'ON'
|
||||
ip_address: 192.168.1.1
|
||||
software_state: GOOD
|
||||
file_system_state: GOOD
|
||||
services:
|
||||
- name: TCP
|
||||
port: '80'
|
||||
state: GOOD
|
||||
- itemType: NODE
|
||||
node_id: '2'
|
||||
name: SERVER
|
||||
node_class: SERVICE
|
||||
node_type: SERVER
|
||||
priority: P5
|
||||
hardware_state: 'ON'
|
||||
ip_address: 192.168.1.2
|
||||
software_state: GOOD
|
||||
file_system_state: GOOD
|
||||
services:
|
||||
- name: TCP
|
||||
port: '80'
|
||||
state: GOOD
|
||||
- itemType: NODE
|
||||
node_id: '3'
|
||||
name: SWITCH1
|
||||
node_class: ACTIVE
|
||||
node_type: SWITCH
|
||||
priority: P2
|
||||
hardware_state: 'ON'
|
||||
ip_address: 192.168.1.3
|
||||
software_state: GOOD
|
||||
file_system_state: GOOD
|
||||
|
||||
########################################
|
||||
# Links
|
||||
- itemType: LINK
|
||||
id: '4'
|
||||
name: link1
|
||||
bandwidth: 1000
|
||||
source: '1'
|
||||
destination: '3'
|
||||
- itemType: LINK
|
||||
id: '5'
|
||||
name: link2
|
||||
bandwidth: 1000
|
||||
source: '3'
|
||||
destination: '2'
|
||||
68
tests/config/multidiscrete_obs_space_laydown_config.yaml
Normal file
68
tests/config/multidiscrete_obs_space_laydown_config.yaml
Normal file
@@ -0,0 +1,68 @@
|
||||
- itemType: ACTIONS
|
||||
type: NODE
|
||||
- itemType: OBSERVATIONS
|
||||
type: MULTIDISCRETE
|
||||
- itemType: STEPS
|
||||
steps: 5
|
||||
- itemType: PORTS
|
||||
portsList:
|
||||
- port: '80'
|
||||
- itemType: SERVICES
|
||||
serviceList:
|
||||
- name: TCP
|
||||
|
||||
########################################
|
||||
# Nodes
|
||||
- itemType: NODE
|
||||
node_id: '1'
|
||||
name: PC1
|
||||
node_class: SERVICE
|
||||
node_type: COMPUTER
|
||||
priority: P5
|
||||
hardware_state: 'ON'
|
||||
ip_address: 192.168.1.1
|
||||
software_state: GOOD
|
||||
file_system_state: GOOD
|
||||
services:
|
||||
- name: TCP
|
||||
port: '80'
|
||||
state: GOOD
|
||||
- itemType: NODE
|
||||
node_id: '2'
|
||||
name: SERVER
|
||||
node_class: SERVICE
|
||||
node_type: SERVER
|
||||
priority: P5
|
||||
hardware_state: 'ON'
|
||||
ip_address: 192.168.1.2
|
||||
software_state: GOOD
|
||||
file_system_state: GOOD
|
||||
services:
|
||||
- name: TCP
|
||||
port: '80'
|
||||
state: GOOD
|
||||
- itemType: NODE
|
||||
node_id: '3'
|
||||
name: SWITCH1
|
||||
node_class: ACTIVE
|
||||
node_type: SWITCH
|
||||
priority: P2
|
||||
hardware_state: 'ON'
|
||||
ip_address: 192.168.1.3
|
||||
software_state: GOOD
|
||||
file_system_state: GOOD
|
||||
|
||||
########################################
|
||||
# Links
|
||||
- itemType: LINK
|
||||
id: '4'
|
||||
name: link1
|
||||
bandwidth: 1000
|
||||
source: '1'
|
||||
destination: '3'
|
||||
- itemType: LINK
|
||||
id: '5'
|
||||
name: link2
|
||||
bandwidth: 1000
|
||||
source: '3'
|
||||
destination: '2'
|
||||
@@ -1,7 +1,7 @@
|
||||
- itemType: ACTIONS
|
||||
type: NODE
|
||||
- itemType: STEPS
|
||||
steps: 13
|
||||
steps: 15
|
||||
- itemType: PORTS
|
||||
portsList:
|
||||
- port: '21'
|
||||
@@ -42,7 +42,7 @@
|
||||
- itemType: RED_POL
|
||||
id: '2'
|
||||
startStep: 3
|
||||
endStep: 13
|
||||
endStep: 15
|
||||
targetNodeId: '1'
|
||||
initiator: DIRECT
|
||||
type: FILE
|
||||
@@ -66,7 +66,7 @@
|
||||
- itemType: RED_POL
|
||||
id: '4'
|
||||
startStep: 6
|
||||
endStep: 13
|
||||
endStep: 15
|
||||
targetNodeId: '1'
|
||||
initiator: DIRECT
|
||||
type: OPERATING
|
||||
@@ -90,7 +90,7 @@
|
||||
- itemType: RED_POL
|
||||
id: '6'
|
||||
startStep: 9
|
||||
endStep: 13
|
||||
endStep: 15
|
||||
targetNodeId: '1'
|
||||
initiator: DIRECT
|
||||
type: SERVICE
|
||||
@@ -114,7 +114,7 @@
|
||||
- itemType: RED_POL
|
||||
id: '8'
|
||||
startStep: 12
|
||||
endStep: 13
|
||||
endStep: 15
|
||||
targetNodeId: '1'
|
||||
initiator: DIRECT
|
||||
type: OS
|
||||
|
||||
34
tests/test_observation_space.py
Normal file
34
tests/test_observation_space.py
Normal file
@@ -0,0 +1,34 @@
|
||||
"""Test env creation and behaviour with different observation spaces."""
|
||||
|
||||
from tests import TEST_CONFIG_ROOT
|
||||
from tests.conftest import _get_primaite_env_from_config
|
||||
|
||||
|
||||
def test_creating_env_with_box_obs():
|
||||
"""Try creating env with box observation space."""
|
||||
env = _get_primaite_env_from_config(
|
||||
main_config_path=TEST_CONFIG_ROOT / "one_node_states_on_off_main_config.yaml",
|
||||
lay_down_config_path=TEST_CONFIG_ROOT / "box_obs_space_laydown_config.yaml",
|
||||
)
|
||||
env.update_environent_obs()
|
||||
|
||||
# we have three nodes and two links, with one service
|
||||
# therefore the box observation space will have:
|
||||
# * 5 columns (four fixed and one for the service)
|
||||
# * 5 rows (3 nodes + 2 links)
|
||||
assert env.env_obs.shape == (5, 5)
|
||||
|
||||
|
||||
def test_creating_env_with_multidiscrete_obs():
|
||||
"""Try creating env with MultiDiscrete observation space."""
|
||||
env = _get_primaite_env_from_config(
|
||||
main_config_path=TEST_CONFIG_ROOT / "one_node_states_on_off_main_config.yaml",
|
||||
lay_down_config_path=TEST_CONFIG_ROOT
|
||||
/ "multidiscrete_obs_space_laydown_config.yaml",
|
||||
)
|
||||
env.update_environent_obs()
|
||||
|
||||
# we have three nodes and two links, with one service
|
||||
# the nodes have hardware, OS, FS, and service, the links just have bandwidth,
|
||||
# therefore we need 3*4 + 2 observations
|
||||
assert env.env_obs.shape == (3 * 4 + 2,)
|
||||
@@ -28,4 +28,4 @@ def test_rewards_are_being_penalised_at_each_step_function():
|
||||
Average Reward: 2 (26 / 13)
|
||||
"""
|
||||
print("average reward", env.average_reward)
|
||||
assert env.average_reward == 2.0
|
||||
assert env.average_reward == -8.0
|
||||
|
||||
Reference in New Issue
Block a user