2675 Commits

Author SHA1 Message Date
Chris McCarthy
415ee3b3a7 Merge branch 'dev' into feature/1800_model-a-basic-router-subclass-of-node 2023-08-31 11:39:21 +01:00
Marek Wolan
bd5aacaf0c Remove todo comments 2023-08-31 11:32:11 +01:00
Marek Wolan
f60f775f03 Improve logging 2023-08-31 11:27:52 +01:00
Marek Wolan
7759c178bb Add logging and service restarting 2023-08-31 11:20:16 +01:00
Marek Wolan
3368376596 Merged PR 172: Methods for adding, removing, connecting and disconnecting nodes in the network.
## Summary
- Add public API for adding, removing, connecting and disconnecting nodes in the network.
- Introduce parent of simcomponent to keep track of parent as per this diagram ![Component ownership tree - Page 1 (2).png](https://dev.azure.com/ma-dev-uk/b50a61ee-86c4-48bc-9a0b-a67645ba12ee/_apis/git/repositories/2825053e-bd3b-45b2-8680-1281809eefa2/pullRequests/172/attachments/Component%20ownership%20tree%20-%20Page%201%20%282%29.png)
- Update tutorial notebook with new way of doing things.

## Test process
Unit and integration tests written and passing.

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [x] I have written **tests** for any new functionality added with this PR
- [x] I have updated the **documentation** if this PR changes or adds functionality
- [ ] I have written/updated **design docs** if this PR implements new functionality
- [ ] I have update the **change log**
- [x] I have run **pre-commit** checks for code style

Related work items: #1798
2023-08-31 10:04:11 +00:00
Chris McCarthy
e73d7f49d6 #1800 - Fixed routing and processing of ICMP packets in the Router class 2023-08-31 11:03:38 +01:00
Marek Wolan
62be66205c Fix unit tests 2023-08-31 10:57:45 +01:00
Chris McCarthy
1bf51c7741 #1800 - Added ACL and routing classes.
- Added .show() methods to new router classes to enable inspection of the components as you would a real router.
- Removed gateway from the NIC and added default_gateway to Node so that Node has a single default gateway.
- Added some routing tests to check that ping can be performed when router between subnets.
2023-08-30 21:38:55 +01:00
Marek Wolan
40d3e04e64 Move init action manager function to the top 2023-08-29 14:33:28 +01:00
Marek Wolan
f0b82cbdfb Add ability to uninstall service 2023-08-29 14:15:49 +01:00
Marek Wolan
9c8b7a7b7a Merge remote-tracking branch 'origin/feature/1789-add-convenience-methods-to-network-object' into feature/1801-Database 2023-08-29 13:22:14 +01:00
Marek Wolan
94325d1fde Add Install method to software. 2023-08-29 13:21:34 +01:00
Marek Wolan
7b61322e70 Add service actions 2023-08-29 12:34:41 +01:00
Marek Wolan
1eff41c786 Update docs based on new action options 2023-08-29 11:10:29 +01:00
Marek Wolan
319e87d200 Make changes to the way actions work 2023-08-28 22:34:20 +01:00
Marek Wolan
6e602aa151 Fix unit tests by removing warning checks 2023-08-25 17:56:05 +01:00
Marek Wolan
ae6e835955 Apply suggestions from code review. 2023-08-25 15:58:07 +01:00
Marek Wolan
a9e969aa13 init work on database 2023-08-25 15:29:53 +01:00
Chris McCarthy
c6f71600fc #1800 - Fixed the ping functionality so that it actually checks for replies and returns True if the right number of replies have been received.
- Added the foundations of a Router class along with ACLRule and RouteTableEntry classes.
2023-08-25 09:07:32 +01:00
Marek Wolan
2dd191bf32 Merge branch 'feature/1789-add-convenience-methods-to-network-object' into feature/1801-Database 2023-08-24 14:41:09 +01:00
Marek Wolan
05bb0f295b Update notebook tutorial on creating a simulation 2023-08-24 13:06:45 +01:00
Marek Wolan
fec44aef53 Rename connect_nodes to connect and fix minor bug 2023-08-24 13:03:16 +01:00
Marek Wolan
78008e3c6e Fix container test 2023-08-24 12:52:38 +01:00
Marek Wolan
7058c7e9a8 Rename networkcontainer to network 2023-08-24 12:41:46 +01:00
Marek Wolan
a818de8f01 Add ability to connect nodes via the network. 2023-08-24 12:40:00 +01:00
Marek Wolan
f38b423886 Update comment 2023-08-24 10:27:30 +01:00
Marek Wolan
4077eb3a5c Add tests for network node adding/removal 2023-08-24 10:26:17 +01:00
Marek Wolan
01e8501bc1 Merged PR 169: Connect all components and add describe_state() methods
## Summary
- Add an object that holds the entire simulation, and a container for the network that keeps track of a list of nodes and links.
- Implement `describe_state()` for all existing sim components and take advantage of the inheritance relationships to avoid repetition.
- Fix some minor mistakes like typehints and indentation errors.
- Write a jupyter notebook which uses the python API to create a simulation and verify that it's `describe_state()` method outputs a correct value.
- Currently the notebook creates the simulation in a janky way, because the API for simulation creation is not fleshed out yet. Further tickets have been added to the backlog to address some of these shortcomings. They are:
  - #1790

## Test process
I have tested that the notebook runs and that after populating a simulation, the describe_state function returns a dictionary full of only serialisable data types.

## Checklist
- [y] This PR is linked to a **work item**
- [y] I have performed **self-review** of the code
- [~] I have written **tests** for any new functionality added with this PR
- [n] I have updated the **documentation** if this PR changes or adds functionality
- [na] I have written/updated **design docs** if this PR implements new functionality
- [y] I have update the **change log**
- [y] I have run **pre-commit** checks for code style

Note:
This ticket also makes a small amount of progress against: #1705, it adds a shell of a network class, but only by creating the class, not implementing any functionality.

Related work items: #1787
2023-08-23 15:24:17 +00:00
Marek Wolan
a82ffb9747 Add notebook outputs back into src control 2023-08-23 15:44:23 +01:00
Marek Wolan
72b019287a Add scratch notebook to gitignore. 2023-08-23 14:41:59 +01:00
Marek Wolan
1613bbe27a Add methods for adding/removing nodes form network 2023-08-23 14:41:30 +01:00
SunilSamra
c1ba3b0850 #1752 - Added comments to ticket 2023-08-22 21:43:57 +01:00
SunilSamra
550b62f75d #1752 - Removed unnecessary print statement
- Changed docstring on function check_domain_in_cache
2023-08-21 16:09:17 +01:00
SunilSamra
1a13af2f5e #1752 - Changed DNSReply and DNSResponse to have 1 parameter only 2023-08-21 14:11:53 +01:00
Marek Wolan
7e64acd368 Update container docstrings 2023-08-21 10:04:23 +01:00
Marek Wolan
07b740a81e Update docs and changelog. 2023-08-21 09:49:31 +01:00
SunilSamra
a0b258a597 #1752 - Added a dns_lookup function to dns_server.py 2023-08-21 09:02:04 +01:00
Marek Wolan
7c16a9cdde Update notebook 2023-08-20 18:43:21 +01:00
Marek Wolan
3911010777 update notebook 2023-08-20 18:42:58 +01:00
Marek Wolan
01c912c094 fix type hints and describe state functions 2023-08-20 18:38:02 +01:00
Marek Wolan
6ca53803cd Describe state 2023-08-17 15:32:12 +01:00
SunilSamra
2919be3796 #1752 - Added web_browser.py application for DNS modelling 2023-08-17 14:20:09 +01:00
Marek Wolan
ced45d4275 Connect actions of top-level sim components 2023-08-16 16:45:52 +01:00
SunilSamra
72cd9fd8e2 #1752 - Created dns.py protocol file with DNSPacket and DNSRequest and DNSReply packets
- Added reset_component logic for dns_server.py and dns_client.py
2023-08-16 13:00:16 +01:00
SunilSamra
76d404dc2f #1752 - Added dns_client.py and dns_server.py service files
- Added new get_install method to software.py
2023-08-15 13:56:38 +01:00
Chris McCarthy
18f57d6418 Added PrimAITE_logo_transparent.png file 2023-08-15 13:56:06 +01:00
Chris McCarthy
58048cd0e1 Dropped sphinx-pipeline 2023-08-15 13:28:02 +01:00
ARCD
eb70acf0c6 Create spinx-pipeline 2023-08-15 13:23:25 +01:00
Chris McCarthy
1a1c3c9344 Added sphinx docs build pipeline for GitHub pages on release 2023-08-15 11:26:15 +01:00
Chris McCarthy
01fb9e65fe Added the DSTL MIT license and updated the license in pyproject.toml 2023-08-15 11:14:23 +01:00