Commit Graph

2241 Commits

Author SHA1 Message Date
Charlie Crane
386717fa41 #2912 - removal of the rom_config method as this shouldn't be needed for the actions refactor 2024-12-09 09:59:47 +00:00
Charlie Crane
a8fbb002e4 #2912 - Updates following review, ACL rules now have validation for ConfigSchema fields 2024-12-09 09:54:35 +00:00
Charlie Crane
be174b6477 #2912 - Actioning review comments 2024-12-06 15:12:31 +00:00
Charlie Crane
8f610a3dd9 #2912 - Minor changes to documentation page for extensible actions 2024-11-19 19:39:23 +00:00
Charlie Crane
d3c52d0d72 #2912 - Remove some debugging print statements and apply pre-commit lint changes 2024-11-19 18:58:51 +00:00
Charlie Crane
b4bc59f633 #2912 - Updates to actions refactor to align with rewards refactor for consistency across codebase. 2024-11-19 18:57:40 +00:00
Charlie Crane
958502d055 #2912 - Removal of todo and updated actions __init__.py 2024-11-15 17:47:58 +00:00
Charlie Crane
0439c3159e #2912 - Minor update to extensible actions documentation and moved old actions into _legacy 2024-11-15 17:40:11 +00:00
Charlie Crane
ce77df00cc #2912 - Updated changelog 2024-11-15 17:22:47 +00:00
Charlie Crane
4e7ca7a88a #2912 - Removal of excess comments 2024-11-15 16:49:16 +00:00
Charlie Crane
95fbe45137 #2912 - Updates so that all tests within test_actions.py pass 2024-11-13 15:32:48 +00:00
Charlie Crane
ed020f005f #2912 - Pre-commit updates ahead of first draft PR. 2024-11-13 10:40:51 +00:00
Charlie Crane
d757bd01f0 #2912 - Updated to include __all__ and some test fixes. New extensible actions documentation page 2024-11-12 14:49:44 +00:00
Charlie Crane
844a3a60fa #2912 - Steps to get test_actions passing the refactored actions. Some linting changes and YAML updates. 2024-10-30 18:34:05 +00:00
Charlie Crane
5cd629a821 #2912 - Fixed actionmanager issue and moved abstractaction to solve import error 2024-10-23 18:45:57 +01:00
Charlie Crane
518b934e09 #2912 - Corrections to some actions & fixing some linting. TODO: Action Manager errors 2024-10-22 17:02:54 +01:00
Charlie Crane
11357f87ca #2912 - eod commit. Addressing test and lint errors for refactored actions 2024-10-21 17:51:55 +01:00
Charlie Crane
a5c7565f0e #2912 - eod commit. Gutted ActionManager and corrected some identifiers. 2024-10-18 16:28:15 +01:00
Charlie Crane
83d3120b04 #2912 - Additional actions added to config.py, refactor of HostNIC 2024-10-18 14:52:50 +01:00
Charlie Crane
1b1f3e4f71 #2912 - Updates to remaining action refactoring 2024-10-18 12:07:53 +01:00
Charlie Crane
a90aec2bcd #2912 - End of day commit 2024-10-17 16:59:44 +01:00
Charlie Crane
cd30e2d084 #2912 - Mid-day commit. Actions moving across from actions.py to game.agent.actions 2024-10-17 12:22:30 +01:00
Marek Wolan
861cfe2c0a #2912 - scaffold of action changes 2024-10-11 15:00:26 +01:00
Marek Wolan
6844bd692a bump version to 4.0.0a1 2024-10-11 13:02:44 +01:00
Marek Wolan
9626cfc990 Merge remote-tracking branch 'origin/release/3.3.0' into 4.0.0a1 2024-10-11 12:42:32 +01:00
Marek Wolan
43ec85a669 #2755 - refix some air space frequency issues 2024-10-11 09:52:16 +01:00
Marek Wolan
8419fd751a Merged PR 561: Make it possible to add sets of nodes to the network
## Summary
* Changed the office LAN convenience function to a class with a registry. Now, plugin can register custom node adders.
* Added ability to define `node_sets` in the config that map to `NetworkNodeAdder` subclasses
* Made airspacefrequency into a DTO class again to make management simpler.
* Moved the node registry out of `HostNode` and `NetworkNode` into `Node`
* Changed game.py to check the hardcoded node types before the node registry (this will change once I add ConfigSchema to all node subclasses)
* Made `show` method of the network container show all nodes, including ones registered at runtime.

## Test process
* Existing tests passed.
* Added unit tests for node adders

## Checklist
- [X] PR is linked to a **work item**
- [X] **acceptance criteria** of linked ticket are met
- [X] performed **self-review** of the code
- [X] written **tests** for any new functionality added with this PR
- [X] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [X] updated the **change log**
- [X] ran **pre-commit** checks for code style
- [ ] attended to any **TO-DOs** left in the code
2024-10-09 14:56:57 +00:00
Marek Wolan
611b34e29f remove outdated comment 2024-10-09 14:16:23 +01:00
Marek Wolan
a42398ac09 Fix typos and improve validation 2024-10-09 14:15:53 +01:00
Marek Wolan
56a17c3fea Update typos and comments according to PR comments 2024-10-08 13:40:40 +01:00
Marek Wolan
39c190e5f4 add documentation for node seta and update changelog 2024-10-04 12:46:29 +01:00
Marek Wolan
07c4860059 Add more tests for office lan creation 2024-10-04 11:36:48 +01:00
Marek Wolan
b4cc1b4379 Add tests for office lan creation 2024-10-04 11:07:49 +01:00
Marek Wolan
b5b7fc6a8d Give node types their own identifiers and make the network show method use them 2024-10-04 09:20:07 +01:00
Marek Wolan
5fde945fac rename identifier back to type 2024-10-02 14:24:59 +01:00
Marek Wolan
a838cc6ce1 Convert office lan adder to a class and make it extendable 2024-10-02 13:56:39 +01:00
Marek Wolan
d26fcf01a2 Merged PR 558: Make software manager show method always show all software.
DataFusionService didn't show in software list, because it uses the port_protocol_mapping as the source of truth for installed software instead of the software list itself.

This fixes that :)

Related work items: #2899
2024-09-30 08:16:46 +00:00
Marek Wolan
221e09ba51 Turn AirSpaceFrequency to a schema instead of a dict for validation 2024-09-27 15:06:19 +01:00
Marek Wolan
5282cb0294 #2899 - Make software manager always show() all software 2024-09-27 10:56:48 +01:00
Marek Wolan
521580ea12 Merged PR 555: Refactor Ports and Airspace to be extensible
## Summary
* Ports are no longer enums, they are now plain integers
* Ports are no longer validated against a list of pre-defined ports, any integer from 0-65535 can be used now.
* Port enum was replaced with a convenience port lookup. For example any expression in the form `Port.HTTP` was replaced with `PORT_LOOKUP["HTTP"]` which resolves to the integer 80.
* Some tests were adjusted to use the new syntax for ports
* Backwards compatibility for YAML configs has been retained by adding pydantic validators to automatically convert named ports to integer counterparts, however defining action/observation spaces in code now requires users to specify ports as integers instead of port enum objects. For instance, monitored_ports in the ACL observation space will now look like this: `[53, 80]` instead of `[Port.DNS, Port.HTTP]`
* Plugins can extend the port lookup, however it is not necessary because it's possible to use integer literals.
* Airspace has been treated similarly, except airspace frequencies have multiple attributes, namely max_data_rate_bps. Therefore, the lookup for named Frequencies resolves to a dictionary of freq_hz (float), and max_data_rate_bps (float)
* Airspace logic has been adjusted accordingly to use the new dictionary for tracking bandwidth limits
* A new method for registering new airspace frequencies has been added. Plugins that add new frequencies can call `register_default_frequency`, after which any new airspace will have access to that frequency.

* For consistency, `IPProtocol` was also changed to be a lookup instead of an enum. It is not extendable by plugins as so far we have not needed to model additional protocols in our plugin.

These changes were necessary as it's not possible to extend enums in python, therefore plugins would not have been able to add new ports. There is an added benefit that this is a stepping stone towards support communication on dynamic and ephemeral ports.

## Test process
*How have you tested this (if applicable)?*

## Checklist
- [X] PR is linked to a **work item**
- [X] **acceptance criteria** of linked ticket are met
- [X] performed **self-review** of the code
- [ ] written **tests** for any new functionality added with this PR
- [ ] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [ ] updated the **change log**
- [X] ran **pre-commit** checks for code style
- [X] attended to any **TO-DOs** left in the code
2024-09-27 09:19:17 +00:00
Marek Wolan
c74d5ac227 Fix changelog typo and remove repitition in ACL show method 2024-09-27 09:28:26 +01:00
Marek Wolan
203ec5ec85 Add tests for port and protocol validation and update changelog 2024-09-26 16:00:59 +01:00
Marek Wolan
f2b6d68b14 Fix Port scan 2024-09-26 15:35:50 +01:00
Marek Wolan
50e2234a69 Remove commented out code 2024-09-25 16:51:58 +01:00
Marek Wolan
c3eb093144 remove temporary notebook 2024-09-25 16:50:01 +01:00
Marek Wolan
f1b911bc65 Change port and protocol to annotated validators 2024-09-25 16:28:22 +01:00
Marek Wolan
695891f55c Add port and protocol custom validators 2024-09-20 11:21:28 +01:00
Marek Wolan
08f1cf1fbd Fix airspace and remaining port problems from refactor 2024-09-19 15:06:29 +01:00
Marek Wolan
dd931d900b port refactor - eod commit, airspace still broken 2024-09-18 16:02:25 +01:00
Charlie Crane
5e5fbf50c3 Merged PR 532: Actioning review comments following second review
## Summary
*Replace this text with an explanation of what the changes are and how you implemented them. Can this impact any other parts of the codebase that we should keep in mind?*

## Test process
*How have you tested this (if applicable)?*

## Checklist
- [ ] PR is linked to a **work item**
- [ ] **acceptance criteria** of linked ticket are met
- [ ] performed **self-review** of the code
- [ ] written **tests** for any new functionality added with this PR
- [ ] updated the **documentation** if this PR changes or adds functionality
- [ ] written/updated **design docs** if this PR implements new functionality
- [ ] updated the **change log**
- [ ] ran **pre-commit** checks for code style
- [ ] attended to any **TO-DOs** left in the code

#2837 - Actioning review comments following second review [skip ci]

Related work items: #2837
v3.3.0
2024-09-06 09:10:20 +00:00