Commit Graph

311 Commits

Author SHA1 Message Date
Chris McCarthy
85325361b3 #2618 - Fixed the error that had NIC traffic describe state with enums as keys in the dict 2024-06-06 14:13:26 +01:00
Chris McCarthy
3c17ef0a69 #2628 - added _can_perform_network_action to nmap.py. made some changes following PR suggestions. 2024-06-04 22:29:00 +01:00
Chris McCarthy
5eea5bf4f9 #2618 - Integrated the NMAP into the action and requests functionality to enable agent usage. added NMAP agents tests. 2024-05-31 13:53:18 +01:00
Chris McCarthy
716f3ece1e #2618 - Added NMAP application, documentation, and tests. 2024-05-29 13:13:42 +01:00
Charlie Crane
85f03570f7 Merged PR 376: 2457 - Remove Hardcoding from Links
## Summary
This PR removes the hardcoding of Link bandwidth, and makes it possible to be configured via the network yaml definitions.
Link bandwidth will still default to 100 if this is not present, to prevent breaking all previous defined networks.

## Test process
All tests continue to pass.
`basic_network_config.yaml` now provides a non-default link bandwidth which is confirmed within unit tests.

## 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
- [] updated the **change log**
- [X] ran **pre-commit** checks for code style
- [X] attended to any **TO-DOs** left in the code

Related work items: #2457
2024-05-22 11:35:48 +00:00
Charlie Crane
a676982dc5 Apply suggestions from code review 2024-05-22 10:50:59 +00:00
Charlie Crane
417c02eaaa Merged PR 379: #2560 - Network_simulator_demo.ipynb cell fixes
## Summary
Some minor changes to the network_simulator_demo jupyter notebook so that all cells run.
I've updated the notebook to use a **very lightly** modified version of the ARCD UC2 network that it has been using.
_I've added a single route into the router_1 route table so that `network.get_node_by_hostname("router_1").route_table.show()` returns something visible. I didn't want to have this within the 'normal' uc2 network. Don't @ me._

![image.png](https://dev.azure.com/ma-dev-uk/b50a61ee-86c4-48bc-9a0b-a67645ba12ee/_apis/git/repositories/2825053e-bd3b-45b2-8680-1281809eefa2/pullRequests/379/attachments/image.png)

Corrected a path typo in `basic_lan_network_example()` so it correctly loads that network config.

## Test process
I've not broken any existing tests, and the notebook now runs with fully populated cells.

## 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
- [X] written/updated **design docs** if this PR implements new functionality
- [X] updated the **change log**
- [X] ran **pre-commit** checks for code style
- [X] attended to any **TO-DOs** left in the code

Related work items: #2560
2024-05-21 16:11:12 +00:00
Charlie Crane
103c7f8d39 #2560 - Addressing the sys_log bug that could occur when scripts run across two time intervals. Additional updates to network_simulator notebook so that sys_log works in production mode 2024-05-20 12:28:02 +01:00
Charlie Crane
dc8105e8d6 2560 - Some minor tweaks to network_simulator_demo.ipynb and networks.py after looking through some bugs. Sys_log should print 2024-05-17 16:55:41 +01:00
Charlie Crane
f66d9d5817 Merge branch 'dev' into feature/2457-Set_link_bandwidth_via_config 2024-05-14 14:44:20 +01:00
Charlie Crane
74514e977d #2457 - Syncing changes made. Updates to documentation and tests 2024-05-14 11:05:37 +01:00
Charlie Crane
71684dc5f0 #2457 - Initial commit removing the hardcoding of bandwidth values within links. Now pull it from configuration files, defaulting to 100 if not implemented 2024-05-13 14:42:15 +01:00
Marek Wolan
4d3c85bc14 #2550 Backport changes into core 2024-05-07 15:35:02 +01:00
Charlie Crane
4cd15a39aa #2457 - Commit before switching branches to review 2024-05-03 08:35:24 +01:00
Marek Wolan
b9b922e776 Make ftp client only default on computers, not servers 2024-05-02 15:51:06 +01:00
Chris McCarthy
d72622f3f7 Merge branch 'dev' into feature/2519_Make-airspace-an-attribute-of-Simulation
# Conflicts:
#	CHANGELOG.md
2024-05-01 10:22:44 +01:00
Chris McCarthy
bc573dfed0 #2519 - refactored all air-space usage to that a new instance of AirSpace is created for each instance of Network. This 1:1 relationship between network and airspace will allow parallelization. Added additional WirelessRouter test that tests wireless connectivity from config file too. 2024-04-30 15:46:16 +01:00
Christopher McCarthy
a82ee2b8e1 Merged PR 354: Network focussed dev config documentation
## Summary
Built three networks, one is the minimal network, one is a basic LAN, and another is a nice beefy multi-LAN setup with ISP and DNS along with applications, services. Documented the process when building the config files. Included the config files as example configs for use.

## Test process
Tested the shit out of the big multi-lan network.

## 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

Related work items: #2266
2024-04-30 13:53:28 +00:00
Marek Wolan
27d1cd460b #2514 Provide more friendly messages on validation failure 2024-04-29 11:13:32 +01:00
Chris McCarthy
81d4006240 #2266 - Finalised the tests and fleshed out the documentation more. 2024-04-26 23:18:09 +01:00
Chris McCarthy
0ccd53e907 Merge branch 'dev' into feature/2266_network-focussed-dev-documentation 2024-04-26 16:19:33 +01:00
Charlie Crane
5ee23dcb17 Merged PR 348: #2462 - Refactor of DatabaseClient and DatabaseServer
## Summary
Refactor of `DatabaseClient` and `DatabaseService` to update how connection IDs are generated. These are now provided by DatabaseService when establishing a connection.
Creation of `DatabaseClientConnection` class. This is used by `DatabaseClient` to hold a dictionary of active db connections.

## Test process
Tests have been updated to reflect the changes and all pass

## 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
- [X] attended to any **TO-DOs** left in the code

Related work items: #2462
2024-04-26 14:52:21 +00:00
Chris McCarthy
c93c432bf1 #2266 - Added final complex network to the examples. Just need to finalise the building the config section 2024-04-25 15:14:40 +01:00
Chris McCarthy
081ff0647f Merge branch 'dev' into feature/2266_network-focussed-dev-documentation
# Conflicts:
#	src/primaite/game/agent/observations/observations.py
2024-04-24 16:04:46 +01:00
Czar Echavez
23231e432e Merge remote-tracking branch 'origin/dev' into feature/2470-refactor-syslog-to-be-able-to-leverage-a-configured-log-level 2024-04-24 09:17:28 +01:00
Czar Echavez
16fc6f4fd0 Merge remote-tracking branch 'origin/dev' into feature/2470-refactor-syslog-to-be-able-to-leverage-a-configured-log-level 2024-04-23 16:54:03 +01:00
Czar Echavez
90343bd5ec #2470: apply PR suggestions 2024-04-23 16:52:53 +01:00
Czar Echavez
c13b7d7c81 #2510: cleaning up logs and add logging handler clearing to prevent duplicate logs 2024-04-23 11:54:34 +01:00
Chris McCarthy
9a55b7b864 #2266 - Fixed some minor bugs that prevented basic networks without a default gateway from being parsed. Completed the basic client-server P2P network documentation, file and retrieval method. 2024-04-19 15:58:50 +01:00
Czar Echavez
b8d4a8cc8d #2470: changed default log level to warning + changed sys logging in code to be more aligned with severity of messages 2024-04-19 11:37:52 +01:00
Charlie Crane
d05ded0dc2 Merge branch 'dev' into bugfix/2453-Example_Notebooks_require_refactor 2024-04-18 09:30:12 +01:00
Charlie Crane
dcfcfc0c54 #2453 - Merging in updates on dev branch 2024-04-16 16:51:29 +01:00
Marek Wolan
8d0d323e0b #2374 Remove primaite session 2024-04-16 11:26:17 +01:00
Marek Wolan
0828f70b4c #2459 back-sync b8 changes into core 2024-04-15 11:50:08 +01:00
Charlie Crane
8e6689d881 #2453 - Corrected flake8 linting errors ahead of creating PR, after finally managing to get it to run locally. This should now be ready for review 2024-04-09 13:56:21 +01:00
Charlie Crane
d02b12d1e5 #2453 Addressing some flake8 corrections 2024-04-09 13:45:27 +01:00
Charlie Crane
c13d3f191f #2453 - Correcting errors found from pipeline pre-commit checks 2024-04-09 13:34:57 +01:00
Charlie Crane
f8432bf53b #2453 - Example Notebooks Require Refactor
- create_simulation_demo and network_simulator_demo notebooks have been updated with correct import paths to reflect refactoring within condebase.
 - Corrected typo within create-simulation_demo: my_swtich -> my_switch
 - updates to ARP implementation. This is now a property in HostNode and NetworkNode, meaning router.arp.show() now works in network_simulator_demo notebook as intended.
2024-04-09 13:26:35 +01:00
Marek Wolan
e99d238568 #2450 remove link refs and put nice naming convention instead 2024-04-03 21:39:13 +01:00
Marek Wolan
e3d3a94da2 Merged PR 321: CAOS 0.8 observations
## Summary
* Remove the usecase-specific and agent-specific observation classes, replacing with a more flexible system
* Add configuration schemas to every observation class
* Add router, firewall, port, and application observation
* Re-shape the dict structure of observations to make it adhere to CAOS 0.8
* Change existing configs to use the new structure
* make host observation separate

## Test process
existing and new unit tests as well as ad hoc notebooks

## 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

Related work items: #2417
2024-04-02 14:00:27 +00:00
Christopher McCarthy
742f1be81b Merged PR 320: #2419- Created a Router-specific version of SessionManager
## Summary
Created a Router-specific version of `SessionManager` that looks at route table rather than default gateway when dst ip address isn't for a locally attached network. Carried these changes through to arp. Added test for this. Made some minor improvements to show functions in container and node that assist debugging.

## Test process
TDD approach: wrote the test, ran it and watched it fail. The implemented the fix and re-ran the test; it passes.

**Before fix:**
![image (2).png](https://dev.azure.com/ma-dev-uk/b50a61ee-86c4-48bc-9a0b-a67645ba12ee/_apis/git/repositories/2825053e-bd3b-45b2-8680-1281809eefa2/pullRequests/320/attachments/image%20%282%29.png)

**After fix:**
![image.png](https://dev.azure.com/ma-dev-uk/b50a61ee-86c4-48bc-9a0b-a67645ba12ee/_apis/git/repositories/2825053e-bd3b-45b2-8680-1281809eefa2/pullRequests/320/attachments/image.png)

## 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

#2419

Related work items: #2419
2024-04-02 12:58:21 +00:00
Chris McCarthy
bb937c1092 #2149 - docstring changes following PR suggestions. 2024-04-02 12:56:15 +01:00
Marek Wolan
e4300faa1c Merge remote-tracking branch 'origin/dev' into feature/2417-observation-refactor 2024-04-01 19:21:40 +01:00
Cristian-VM2
2096b619ec #2402 raise error if action map is not specified. update comment in firewall.py 2024-04-01 12:32:44 +00:00
Marek Wolan
62ebca8c08 #2417 Remove references to old obs names and add link obs 2024-03-31 21:39:24 +01:00
Cristian-VM2
8763a27cca Merge remote-tracking branch 'origin/dev' into feature/2402-add-acl-actions-for-routers-and-firewalls 2024-03-29 16:37:37 +00:00
Cristian-VM2
7299a12c64 #2402 add firewall acl actions 2024-03-29 16:30:39 +00:00
Marek Wolan
d8a66104f5 Fixed observations 2024-03-29 11:55:22 +00:00
Cristian-VM2
2eb900746b #2402 rename network_acl actions to router_acl and refactor how router_name is given 2024-03-29 11:34:43 +00:00
Cristian Genes
d415ef9c3e Merged PR 319: Add application install and remove actions
## Summary
Add application install and remove (uninstall) actions

## Test process
Both actions are tested in the same (new) test

## 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
- [ ] 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
- [ ] attended to any **TO-DOs** left in the code

Related work items: #2405
2024-03-28 16:37:01 +00:00