Skip to content

Commit

Permalink
Release v1.4 into main (#687)
Browse files Browse the repository at this point in the history
* Update requirements.txt (#429)

Signed-off-by: J Boddey <[email protected]>

* Remove in progress status after discovery (#422)

* Add steps to resolve to PDF report (#411)

* Add progress for steps to resolve

* Formatting

* Remove print statements

* Allow for no steps to resolve

* Add multipage

* Fix multipage

* Fix config

* update report unit tests

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Bump ejs in /modules/ui in the npm_and_yarn group across 1 directory (#428)

Bumps the npm_and_yarn group with 1 update in the /modules/ui directory: [ejs](https://github.com/mde/ejs).


Updates `ejs` from 3.1.9 to 3.1.10
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](mde/ejs@v3.1.9...v3.1.10)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* For delete report take mac_addr from upper level (#436)

* Update dependencies (#435)

* Add new mac addr field for report deleting (#432)

* Bump version to v1.2.2 (#433)

* fix: replace Feature Not Present to Feature Not Detected (#445)

Co-authored-by: Volha Mardvilka <[email protected]>

* Fix PDF alignment (#441)

* Do not remove form control on destroy as it causes error; call system/config on settings open (#442)

* Fix some pylint issues (#437)

* Update documentation (#448)

* Update documentation

* Update docs

* V1.3 (#393)

* Adds version analytics event (#306)

* Techdebt: adds state for testrun page (#392)

* Fix tests (#397)

* Fix tests

* Update node version

* 331379891: (feat) disable connection settings when testrun is in progress (#371)

* 331379891: (feat) disable connection settings when testrun is in progress

* 331379891: (fix) include more testrun results as progress

* 331379891: (fix) fix spelling

* 333349715: (fix) GAR 1.3 The disabled system settings panel contains a focusable element (#388)

Co-authored-by: Volha Mardvilka <[email protected]>

---------

Co-authored-by: Volha Mardvilka <[email protected]>

* Disable device item if device in progress (#370)

* Adds ga to track testrun initiation (#415)

Adds ga ti track testrun initiation

* Fix function return value (#421)

* Fix redirect + adds google analytics (#420)

* Adds certificates drawer component with list of certificates (#414)

Adds certificates drawer component with list of certificates. Upload and delete is out of scope

* List modules (#425)

* Adds delete certificate (#424)

Adds delete certificate

* Adds class for links to track report type on download; adds event when download report is clicked on progress page (#434)

* Adds upload certificate (#431)

* Adds upload certificate

* move delete functionality to certificates store

* Catch error on report/certificate deletion (#438)

* Fix button size; fix text-overflow (#440)

* Adds focus on next or close button when certificate is deleted (#439)

* Adds focus on next or close button when certificate is deleted

* Enable test modules for initiate test run dialog (#400)

Enable test modules for initiate test run dialog

* Add steps to resolve to PDF report (#411)

* Add progress for steps to resolve

* Formatting

* Remove print statements

* Allow for no steps to resolve

* Add multipage

* Fix multipage

* Fix config

* update report unit tests

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Add new mac addr field for report deleting (#432)

* Bump version to v1.2.2 (#433)

* 337012359: (feat) add snackBar with wait or stop testrun (#444)

* 337012359: (feat) add snackBar with wait or stop testrun

* 337012359: (fix) update to fix failed tests

* 337012359: (fix) add fix for deletCertificate test

---------

Co-authored-by: Volha Mardvilka <[email protected]>

* Feature/port stats (#430)

* Add port speed and duplex tests
Add unit tests for port stats testing
Add place holder for ip port link test

* Add ethtool to system dependencies
Restructure conn stats methods and tests
Resolve port stat information for link test

* Fix runtime issue

* Implement link test
Fix unit tests
Misc port stats updates

* fix pylint issues

* update readme

* pylint fixes

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: J Boddey <[email protected]>

* 339315842: (feat) add risk assessment tab (#450)

* 339315842: (feat) add risk assessment tab

* 339315842: (feat) add risk assessment tab

---------

Co-authored-by: Volha Mardvilka <[email protected]>

* Add steps to resolve to PDF report (#411)

* Add progress for steps to resolve

* Formatting

* Remove print statements

* Allow for no steps to resolve

* Add multipage

* Fix multipage

* Fix config

* update report unit tests

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Add new mac addr field for report deleting (#432)

* Remove rebase error

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: Olga Mardvilko <[email protected]>
Co-authored-by: Volha Mardvilka <[email protected]>
Co-authored-by: J Boddey <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Rename "history" to "reports" (#456)

* Rename "device-repository" to "devices" (#455)

* Change certificates endpoints (#458)

* 339311887: (feat) display saved risk profile (#460)

Co-authored-by: Volha Mardvilka <[email protected]>

* Fix ui defects (#459)

* 340835710: (fix) [Risk assessment] change page view when callout is visible (#461)

Co-authored-by: Volha Mardvilka <[email protected]>

* Fix style to allow screen reader to read label (#462)

* Updaate device test module configuration from api start endpoint (#463)

* Add get profiles format endpoint (#465)

* 339311250: (feat) delete risk profile (#466)

Co-authored-by: Volha Mardvilka <[email protected]>

* 341254121: (fix) [a11y] add item name for aria-labels delete and copy buttons (#467)

Co-authored-by: Volha Mardvilka <[email protected]>

* Make testing statuses available outside of Testing Tab (#468)

* Adds timeout token
* Status is available on all pages;
Removed unused field isTestrunStarted - actual status is available

* Validate  CA certificate on FE (#464)

* Adds validation on certificate upload
* Show notification when error happens

* 341901606: (fix) [GAR 1.6]: update for arrows usage on risk profile (#471)

Co-authored-by: Volha Mardvilka <[email protected]>

* Adds space in certificate name regexp (#469)

* 342096458: (fix) [GAR 1.3] add focus trap to certificates panel to prevent move focus to risk profile (#472)

Co-authored-by: Volha Mardvilka <[email protected]>

* The focus is not moved to the snackbar with certificate validation rule (#470)

* Adds class to fix focus flow

* Changes the delay according to string length

* Adds file name in error message (#473)

* Add certificate endpoints (#451)

* Adds version analytics event (#306)

* Techdebt: adds state for testrun page (#392)

* Fix tests (#397)

* Fix tests

* Update node version

* 331379891: (feat) disable connection settings when testrun is in progress (#371)

* 331379891: (feat) disable connection settings when testrun is in progress

* 331379891: (fix) include more testrun results as progress

* 331379891: (fix) fix spelling

* 333349715: (fix) GAR 1.3 The disabled system settings panel contains a focusable element (#388)

Co-authored-by: Volha Mardvilka <[email protected]>

---------

Co-authored-by: Volha Mardvilka <[email protected]>

* Disable device item if device in progress (#370)

* Adds ga to track testrun initiation (#415)

Adds ga ti track testrun initiation

* Certs progress

* Add list and upload cert endpoint

* Add delete certificate endpoint

* Update cert response codes

* Upgrade dependency

---------

Co-authored-by: Sofia Kurilova <[email protected]>
Co-authored-by: Olga Mardvilko <[email protected]>
Co-authored-by: Volha Mardvilka <[email protected]>

* Fix modify devices test (#449)

* Fix modify devices

* Remove excess logging

* "Waiting for Device" :the snack bar appears on all pages (#474)

* Make waiting for device snackbar global

* Do not dismiss snack bar onDestroy

* Rename testrun component (#480)

* Rename settings component (#476)

* Rename testrun component (#477)

* Rename testrun component

* Improve API test coverage (#291)

* Improve API test coverage

* Add timeouts

* Improve coverage

* Increase API timeout

Signed-off-by: J Boddey <[email protected]>

* Pylint fixes

* Disable broken tests

* Fix skip

* Disable broken tests

* Fix test

---------

Signed-off-by: J Boddey <[email protected]>

* Remove certificate if BE error happens (#484)

* Add cert status (#478)

* Add ethtool to make and docs (#483)

* Add exception handling to certificate upload (#479)

* Add cert status

* Add exception handling to cert upload

* Add get profiles format endpoint (#475)

* Add get profiles format endpoint

* Update risk assessment format

* Re-add modules endpoint

* Update session.py

Signed-off-by: J Boddey <[email protected]>

---------

Signed-off-by: J Boddey <[email protected]>

* Reduce locations of Testrun version (#453)

* Reduce locations of Testrun version

* Update from comments

* Resolve make control file

---------

Signed-off-by: J Boddey <[email protected]>

* Allow stop testrun from any other page (#487)

* Feature/tls client protocols (#485)

* Add methods to allow known protocols that dont fit into the strict tls client detection methods
Add QUIC protocol to approved protocols
Start moving unit tests to a docker container for consistency

* Fix client connections protocol method script
Downgrade cryptography and pyOpenSSL libraries
Move unit testing into docker for TLS module

* Misc cleanup and pylint issues

---------

Co-authored-by: J Boddey <[email protected]>

* The focus goes to the main page element after adding the ceriticate (#489)

* Focus first interactive element in cert container when cert snack bar closed

* The snack bar with test attempt status appears  if the user is not on Testing page (#488)

* Remove testrun status snack bar

* Update consent form (#490)

* Adds opt out checkbox

* Adds announce when settings or certificate panel is opened (#493)

* Set status code on failed cert upload (#491)

* Add risk profiles (#486)

* Add get profiles format endpoint

* Update risk assessment format

* Re-add modules endpoint

* Work on profiles

* Add load profiles format

* Pylint

* Add check status

---------

Signed-off-by: J Boddey <[email protected]>

* Add test count to PDF report (#482)

* Add test count to PDF report

* Fix pylint issue

* Exclude error

---------

Signed-off-by: J Boddey <[email protected]>

* Change network mode on network modules to fix gateway routing (#495)

* 342365574: (feat) display info about Risk Assessment during testing (#492)

* 342365574: (feat) display info about Risk Assessment during testing

* 342365574: (fix) change to show Risk Assessment callout only on InProgress

---------

Co-authored-by: Volha Mardvilka <[email protected]>

* Updates status with data from start response (#494)

* 341966862: (feat) display info about risk assessment in welcome modal (#496)

Co-authored-by: Volha Mardvilka <[email protected]>

* Adds download zip window (#497)

* 344874424: (fix) disable device tile in Canceling status (#500)

Co-authored-by: Volha Mardvilka <[email protected]>

* Fix/UI/345164706 (#501)

* 345164706: (fix) disable start testrun btn in canceling state

* 345164706: (fix) remove commented code

---------

Co-authored-by: Volha Mardvilka <[email protected]>

* GA option issues on the Welcome modal (#502)

* Fix ga initial value

* Fix label

* 345202815: (fix) callout with the RA message is shown on the RA page (#503)

Co-authored-by: Volha Mardvilka <[email protected]>

* 345203686: (fix) update callout block view on the welcome modal (#504)

Co-authored-by: Volha Mardvilka <[email protected]>

* Allow UI to specify modules (#505)

* Update risk assessment format (#499)

* Fix issue with checking for error result (#498)

* Fix issue with checking for error result

* Resolve issue

* Update html in test report

Signed-off-by: J Boddey <[email protected]>

---------

Signed-off-by: J Boddey <[email protected]>

* Announce disabled state of settings panel (#506)

* The Downlaod ZIP action can not be performed using the keaboard (#508)

* Changes aria-label for Download Anyway button
* Fix keyboard navigation for Download zip component

* Add create and delete profile endpoints (#507)

* Work towards creating profiles

* Add delete profile endpoint

* Exclude link local for arp (#418)

* Add feature not detected test result (#396)

* Add feature not present test result

* Remove changes to tls module

* Further pylint fixes

* Add Feature Not Present to relevant tests

* Reduce pylint limit

* Change to feature not detected

* Modify bacnet result

* Update DNS test

---------

Signed-off-by: J Boddey <[email protected]>

* Add extension for cert upload (#510)

* 340859666: (feat): display risk profile form with name field (#514)

Co-authored-by: Volha Mardvilka <[email protected]>

* Fixes some pylint issues (#511)

* Fix some pylint issues

* Fix more pylint issues

* bug/test_baseline (#513)

* Update mac address for baseline config dynamically

* fix line endings

* Update device config via Testrun api

* Add API to no ui mode

* Fix API endpoint call

* Remove mac address update
Change mac address in container

* Add container start command back

* Skip DNS tests

* Cleanup

---------

Co-authored-by: J Boddey <[email protected]>

* Attach profile to ZIP report (#518)

* Work towards creating profiles

* Add delete profile endpoint

* Work on attaching profile to zip

* Pylint

* Fix zipping

* Pylint fixes

---------

Signed-off-by: J Boddey <[email protected]>

* Generate Risk profile from json (#515)

Generate form from json

* The Downlaod ZIP action can not be performed using the keyboard (#517)

* Stop propagating event to eliminate the error

* Fix tests

* Adds tooltip

* Fix export endpoint to use POST request

* Fix zip download

---------

Co-authored-by: Jacob Boddey <[email protected]>

* Add required if applicable (#519)

* WIP: Add required if applicable

* Fix bug with TLS client test

* Update TLS results

* Fix styles for helperbird (#524)

* Form from json validation (#523)

* Adds field validation

* Fix vulnerabilities in dependencies (#526)

* Enable draft button when profile name is present; enable save button when form is valid; remove discard button (#530)

* Correct result on tls client test (#528)

* Add informational and fnd to report (#527)

* Mark fields required when trimmed value is empty (#529)

* Update requests dependency (#525)

* Remove debug artifact (#531)

* Fix scroll area on reports page (#532)

* Announce risk form open; focus first element in container (#536)

* Fix validation; change element for text-long (#538)

* 345258435: (feat) display expired certificate (#539)

Co-authored-by: Volha Mardvilka <[email protected]>

* 348187954: (fix) update callouts position on the small window size (#540)

Co-authored-by: Volha Mardvilka <[email protected]>

* 348356236: (fix) add tooltips for icons without any accompanying text (#541)

Co-authored-by: Volha Mardvilka <[email protected]>

* 348353479: (fix) add tooltip for the download zip button using the keyboard (#542)

Co-authored-by: Volha Mardvilka <[email protected]>

* 348361925: (fix) add helper text for mandatory profile name field (#543)

Co-authored-by: Volha Mardvilka <[email protected]>

* Save new risk profile (#533)

* Save new risk profile

* Clear and close form after profile saved

* Adds status valid for save profile

* Fix DNS report when DNS packet is missing the qname property (#546)

* Adds edit risk profile (#544)

* Refactor delete form: rename it to simple dialog as it is not used for delete anymore

* Adds edit risk profile

* Fix autozise (#547)

* Feature/risk profile (#522)

* Update risk profile

* Add unit tests for risk profile
Fix service nmap unit test

* Add unit tests for risk profile
Fix service nmap unit test

* Update api and session for new risk profile methods

* pylint

* pylint

* Fix some pylint

* Fix more pylint

* Fix some bugs

* Update risk profile logic (#535)

* Update risk profile logic

* Update test profiles
Remove duplicate test file
Cleanup temp test files

* Remove categories from profile

* Update expiration check to account for leap years

* Update risk assessment questions

* Update dependency

* Add missing question

* Update format and add error handling

---------

Co-authored-by: jhughesbiot <[email protected]>

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: Jacob Boddey <[email protected]>

* Adds save draft (#549)

Co-authored-by: Sofia Kurilova <[email protected]>

* 346351108: (feat) display risk assessment result (#553)

* Close form after selected risk profile was deleted (#554)

Co-authored-by: Sofia Kurilova <[email protected]>

* Fix error when updating profile (#555)

* Render informational result correctly (#551)

* Re-add method for exporting profle (#550)

* Fix bug when failed to fetch latest version (#548)

* 349769454: (fix) update size on the empty reports page to prevent overlapping (#557)

* Fix bad multiple ip report when no ip requested (#556)

* Fix Duplicate Certificate Names (#545)

* Check for existing common name before uploading new cert
Misc pylint updates

* Re-add missing session content

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: Jacob Boddey <[email protected]>

* Changes the icon; adds create date (#552)

* 349783464: (fix) add styles for selected elements and fix form size on RA (#558)

* 349793005: (fix) change focus to profile form to scroll up on opening profile (#559)

* Return focus on create button when new profile created; return focus on profile is profile was edited (#560)

* Small refactoring; update validators on selected profile update and on profile list update (#564)

* Enables save and draft button for edit mode (#565)

* Validate multi select form group on last checkbox tab press (#566)

* Remove copy button (#567)

* Bug/bacnet device (#568)

* Change BACnet device detection validation
Add unit tests

* Fix runtime

* cleanup

* Update unit tests to match runtime types

* Show only valid profile in modal; fix condition to not download profile if redirect button clicked (#569)

* Fix bug when saving draft profile (#563)

* Fix bug when saving draft

* Remove risk when status changes to draft

* Re-add exception handling

* Fix formatting
:

* Update questions before calculating risk

* Update unit testing

* Update unit testing

* Invoke risk profile update method in favor of manually updating properties in session

* Update risk after update and fix type error

* Update risk correctly

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Focus title or first element in container when navigation is triggered by enter (#570)

* Adds aria label and tooltip to risk profile icons (#572)

* Add profile PDF (#562)

* Work on pdf

* Work on profile PDF

* Fix risk answer formatting

* Downgrade weasyprint

* Remove duplicate line

* Update risk assessment after review

* Fix profile format undefined

* Update zip file to use /tmp directory (#571)

Update device report folder
Update file paths to use old and new patterns

Co-authored-by: J Boddey <[email protected]>

* Remove cert from session after delete request (#575)

* Fix error when only draft profiles are exist (#576)

* Focus fix; fix profile status icon (#579)

* Fix focus after page is opened

* Fix profile status

* Support longer string answers in profile PDF (#578)

* Add extra spacing for long string answers

* Format JSON

* Cleanup old test devices from runtime (#583)

* 351758698: (fix) update app version styles to meet design on expanded nav (#586)

* Update risk profile description (#582)

* Bump version for release (#584)

* Remove skipped result (#580)

* Prevent creating device with duplicate manufacturer and model (#581)

* Prevent duplicate mf and model

* Change error message to be more precise

* Fix logic

* Remove profile from runtime once included in ZIP (#577)

* Remove profile after ZIP creation

* Create /tmp dir for results
Copy test results and profile to results dir
Zip results dir and cleanup

---------

Co-authored-by: jhughesbiot <[email protected]>

* Do not show settings callout if there are no interfaces and saved settings (#587)

* Fix modbus results (#588)

* Don't show error if config is empty; don't show settings callout when settings are not empty after saving (#589)

* Catch error to proceed with device creation/editing (#592)

* Remove output logging from OS level commands (#594)

* Fix cancel after monitor bug and add testrun.log (#595)

* Fix step 1 callout error (#593)

* Fix GAR bug with cert upload (#590)

* Change exception logic on cert upload

* Fix error logic

* Update documentation (#591)

* Work on docs changes

* Update docs

* Update roadmap

* Update docs

* Update docs

* Remove dev README.md

* Remove skipped from docs

* Add exception handling to timestamp parsing (#598)

* Change exception logic on cert upload

* Fix error logic

* Add exception handling to timestamp parse

* Stick button to the bottom of risk page (#574)

* Adds copy of risk profile (#573)

* Lint fix

* Set testrun IDLE status if report of finished test run is removed (#585)

* Adds Discard risk profile (#596)

* Load test modules dynamically (#597)

* Update download zip modal: add link to Risk Profiles, remove redirect button, rename download button, add No Profile option (#599)

* 351338001: (feat) update rule for the third step message (#600)

* 347009372: (feat) add selector for profile options for GA4 (#604)

* Adds tooltip for copy and delete; show "same name" error when more than one copy is created (#606)

* 346999760: (feat) [GA4] Track CA Certificates (#607)

* 353476778: (fix) GAR 2.11 change for prevent risk profile tiles overlap (#609)

* If profile is editing, return focus on profile (#612)

* Change title for save profile dialog according to type of profile (#610)

* Get reports when app is opened and when report page is opened; change status if testrun does not exist in reports; do not change status if testrun is just finished but not in reports yet (#613)

* Show tooltip only on keyboard or hover (#614)

* Update condition as report field is unique (#615)

* Expired profile profile (#619)

* Use device mac_addr if report mac_addr is missing (#622)

* get system network interfaces util func

* test get_sys_interfaces

* pylint

* get all network interfaces on session start

* dicts diff

* detect network adapter change

* pylint

* logging

* Add ws server

* Add MQTT protocol

* Upgrade ws server

* paho-mqtt dependency

* getting docker container IP by container name

* MQTT client class

* Fix pylint

* rename mqtt client logger

* APScheduler

* initializing the client inside the testrun object

* pylint

* check networks adapters in background

* remove extra lines at the end of a file

* rename mgtt logger

* move network_adapters_checker to network_orchestrator

* Adds mqtt client, adds pop up when new adapter is available (#603)

* Fix some pylint issues (#620)

* Disabled test results (#212)

* Better handling of disbled tests
Add dns and tls tests back in disabled state

* pyling fixes

* Fix subscriptable error

* Re-add old tests as informational

---------

Co-authored-by: J Boddey <[email protected]>

* remove get ip of docker container because it is not necessary

* Fix individual test disabling when run from the UI (#629)

* Fix individual test disabling when run from the UI

* Remove disabled result for now

---------

Co-authored-by: Jacob Boddey <[email protected]>

* Update package.yml (#624)

Signed-off-by: J Boddey <[email protected]>

* Added risk profile api testing (#628)

* added tests for profile endpoints

* Modified test_start_testrun_started_successfully payload to match the expected json format, updated the profile endpoints tests

* fixed the  pylint errors from test_api.py

* fixed few more pylint errors

* Expired profile profile (#619)

* Use device mac_addr if report mac_addr is missing (#622)

* Fix some pylint issues (#620)

* Disabled test results (#212)

* Better handling of disbled tests
Add dns and tls tests back in disabled state

* pyling fixes

* Fix subscriptable error

* Re-add old tests as informational

---------

Co-authored-by: J Boddey <[email protected]>

* added try-except block to delete_all_profiles()

* Revert session file back

* Add new line

* Update api testing

* updated the tests for profile endpoint, added a new fixture (add_profile) to create a profile

* Updated profile endpoints: created a new fixture add_profile for creating profiles

* Fix pylint

* Fix pylint

* Fix pylint issues

---------

Co-authored-by: Sofia Kurilova <[email protected]>
Co-authored-by: J Boddey <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Adds close button for expired profile (#635)

* Copy changes from hotfix 1.3.1 to dev (#631)

* Copy changes from hotfix 1.3.1 to dev

* Add pydyf version

Signed-off-by: J Boddey <[email protected]>

---------

Signed-off-by: J Boddey <[email protected]>

* Inform FE  about a new network adapter discovered( rename mqtt topic according to naming convention) (#634)

* rename mqtt topic

* Rename topic in ui

---------

Co-authored-by: kurilova <[email protected]>
Co-authored-by: J Boddey <[email protected]>

* Fix network only mode issues (#617)

Co-authored-by: J Boddey <[email protected]>

* Update all unit tests to work within the runtime environment (#611)

* Update all unit tests to work within the runtime environment

* Fix some formatting

* fix line endings

* update gitignore

* Fix binary files in dockerfile

* Change unit tests to run from testrun root directory

* Run unit tests in actions

* Fix pylint issues

* Change command in actions

* Update testing.yml

Signed-off-by: J Boddey <[email protected]>

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: Jacob Boddey <[email protected]>

* Feature/dns report update (#637)

* Update DNS module report
Downgrade python packages for tls module

* Fix header

* pylint fixes

* refactor func to handle case when network interface not exists

* set test result "Error"

* check device connected

* thread for monitoring device connection

* Minor changes

* check the device connection only before each test

* Adds tooltip (#638)

Adds tooltip

* send testrun status using mqtt

* remove duplicatied line

* refactor setting remaining tests to error

* pylint

* Fix focus after profile delete - track by name (#640)

Fix focus after profile delete - track by name

* Update the requests dependency (#643)

* Update requests dependency

* Update requests dependency

* Update dependency in TLS test

* Update docker dependency

---------

Signed-off-by: J Boddey <[email protected]>

* Revert "Expired profile (#619)" (#645)

Prevent opening of Expired risk profile

* Improve documentation (#639)

* Improve docs

* Remove paragraph

* Text changes

* Fix text for the BE error

* Change tooltip (#650)

* Change tooltip

* Allows draft profiles to become expired (#636)

* Allow draft profiles to expire

* Move status method into risk profile class

* Use existing method

* Check for expiry in validate method

* Remove unused variable

* Build UI during package instead of install (#621)

* Build UI during package

* Fix local build

* Install npm

* Remove duplicate build message

* Fix ESLint

* Fix script

* Modify scripts

* Improve scripts

* Fix copy command

* Try installing package

* Depend on package job

* Add sudo

* Add sudo

* Troubleshoot

* Fix workflow

* Checkout source for prepare command

* Built ui within a container

* Mount src files for build instead of static copy in build image

* Attempt to fix actions

* Remove manual build container cleanup methods

* undo failed attempts to fix actions

* Fix path

* Remove -it flag

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: kurilova <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Feature/risk in selected (#654)

* Adds risk to selected value

* Adds risk to selected value

---------

Co-authored-by: J Boddey <[email protected]>

* Show risk for each question in the Risk profile (#647)

* Show risk for each question in the Risk profile

* set top position to 0

---------

Co-authored-by: J Boddey <[email protected]>

* Show internet connection (#653)

* MQTT show internet connection

* remove unused method

* Change tooltip for internet icon (#656)

* Change tooltip for internet icon

* Remove unused import'

---------

Co-authored-by: Jacob Boddey <[email protected]>

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: J Boddey <[email protected]>
Co-authored-by: Sofia Kurilova <[email protected]>

* bug/modbus_constructor (#657)

* Pin all required packages
Update modbus constructor to prevent error
Add full trace logging for general errors in tests

* Fix pylint issue

---------

Co-authored-by: Jacob Boddey <[email protected]>

* Use mqtt service instead of calling GET /status every 5 seconds. (#644)

* Use mqtt service instead of calling GET /status every 5 seconds.

* Adds tooltip (#638)

Adds tooltip

* Fix focus after profile delete - track by name (#640)

Fix focus after profile delete - track by name

* Update the requests dependency (#643)

* Update requests dependency

* Update requests dependency

* Update dependency in TLS test

* Update docker dependency

---------

Signed-off-by: J Boddey <[email protected]>

* remove unused output

* encode mqtt message to json

* Revert "Expired profile (#619)" (#645)

Prevent opening of Expired risk profile

* Improve documentation (#639)

* Improve docs

* Remove paragraph

* Text changes

* Fix text for the BE error

* Change tooltip (#650)

* Change tooltip

* Allows draft profiles to become expired (#636)

* Allow draft profiles to expire

* Move status method into risk profile class

* Use existing method

* Check for expiry in validate method

* Remove unused variable

* Build UI during package instead of install (#621)

* Build UI during package

* Fix local build

* Install npm

* Remove duplicate build message

* Fix ESLint

* Fix script

* Modify scripts

* Improve scripts

* Fix copy command

* Try installing package

* Depend on package job

* Add sudo

* Add sudo

* Troubleshoot

* Fix workflow

* Checkout source for prepare command

* Built ui within a container

* Mount src files for build instead of static copy in build image

* Attempt to fix actions

* Remove manual build container cleanup methods

* undo failed attempts to fix actions

* Fix path

* Remove -it flag

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: kurilova <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Feature/risk in selected (#654)

* Adds risk to selected value

* Adds risk to selected value

---------

Co-authored-by: J Boddey <[email protected]>

* Show risk for each question in the Risk profile (#647)

* Show risk for each question in the Risk profile

* set top position to 0

---------

Co-authored-by: J Boddey <[email protected]>

* Use mqtt service instead of calling GET /status every 5 seconds.

* Use mqtt service instead of calling GET /status every 5 seconds.

* Use mqtt service instead of calling GET /status every 5 seconds.

* pylint

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: J Boddey <[email protected]>
Co-authored-by: Aliaksandr Nikitsin <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Adds test statuses (#661)

* Ignore folders when loading certs (#660)

* Remove scorecard schedule and bump version (#659)

* Allow ICMP response to DHCP messages in DHCP snooping test (#608)

* Allow ICMP response to DHCP messages

* Bug/unit test runtime (#655)

* Change base test module startup to allow setup script to run independent of module startup process
Update connection_module to allow for unit testing
Update unit test run script to use new process

* enable all unit tests
update google cert

* Remove binary fix lines from docker files
pylint updates

* pylint updates

---------

Co-authored-by: jhughesbiot <[email protected]>

* The risk profile saved with old format is shown improperly  while loading based on a new format (#664)

* Fill only fields that are present in profile

* GAR : The alt text for the expired risk profile should be communicated on Enter key (#662)

* Change Expired profile title on Enter; announce Expired profile title on Enter

* Update wording of tls cipher results (#671)

* Show error message if provided; show default message if no (#680)

* Test install on supported operating systems (#675)

* Test install on multiple versions

* Update step names

* Remove recommendations on error (#674)

* Tests for API (#649)

* changed the tests order in test_api.py

* added tests for '/system/config' POST endpoint

* added the tests for 'system/shutdown' endpoint

* added the test for GET '/reports' endpoint, updated 'test_update_system_config_invalid_config' to return error 400

* Check for missing fields

Signed-off-by: J Boddey <[email protected]>

* added tests for delete profile (404, 400), added tests for create and update profile (400), added test 'run_test_and_get_report' skipped due to blocking during testing phase

* added a new json file in '/testing/api/' used in 400 error tests

* added error handling if 'name' and 'questions' not in profile json

* fixed pylint

* Added tests when update is available and 500 status code for '/system/version', test for system/modules

* added responses library in requirements.txt

* fixed the requested changes in api.py

* Renamed the load_profile method to load_json and changed the logic to allow to load any json based on file name and relative path, corrected the new lines issues

* updated restore_config fixture to run after the test

* added test for create/update profile (500 error)

* fixed pylint

* fixed spacing, removed get_report_one_report

* added tests:  500 error for delete '/profiles', 500 error for 'profles/format', 400, 404, 409 for '/system/start'

* modified the tests for 500 response

* added new profile with missing 'answer'

* removed the tests with mock response

* Update NTP report (#666)

* Update NTP report

* cleanup imports

* pylint  updates

* modified update profile for bad request

* changed validate_profile_json: handling empty spaces in name and question, handle if 'risk' field missing if status is 'Valid'

* updated the requested changes

* Add further profile validation

* Fix pylint issues

* Fix profile tests

* Move validation to session

* Fix pylint issue

Signed-off-by: J Boddey <[email protected]>

---------

Signed-off-by: J Boddey <[email protected]>
Co-authored-by: J Boddey <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>

* Fix a delay in the internet connectivity check (#669)

* Add a timeout to the command

* move single-intf  check to scheduler

* add timeout arg to run_command

* move jobs to constructor

* fping for internet connection checking

* Update internet connection when device is In Progress, Monitoring, Waiting for Device status (#677)

* Update internet connection when device is In Progress, Monitoring, Waiting for Device status

* check if interface physically connected

* Revert "fping for internet connection checking"

---------

Co-authored-by: Aliaksandr Nikitsin <[email protected]>
Co-authored-by: Sofia Kurilova <[email protected]>

* Check if device folder already exists (#678)

* Check if device folder already exists

* Fix error message

* Fix pylint issue

* Remove debug mqtt logs (#692)

---------

Signed-off-by: J Boddey <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sofia Kurilova <[email protected]>
Co-authored-by: Olga Mardvilko <[email protected]>
Co-authored-by: Volha Mardvilka <[email protected]>
Co-authored-by: jhughesbiot <[email protected]>
Co-authored-by: Sofia Kurilova <[email protected]>
Co-authored-by: Aliaksandr Nikitsin <[email protected]>
Co-authored-by: Marius <[email protected]>
  • Loading branch information
10 people authored Aug 20, 2024
1 parent 3694fb0 commit 549641c
Show file tree
Hide file tree
Showing 161 changed files with 5,329 additions and 2,892 deletions.
68 changes: 66 additions & 2 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@ on:
push:
branches:
- 'dev'
- 'release/*'

permissions:
contents: read

jobs:
testrun_package:
create_package:
permissions: {}
name: Package
runs-on: ubuntu-22.04
Expand All @@ -24,4 +28,64 @@ jobs:
uses: actions/upload-artifact@694cdabd8bdb0f10b2cea11669e1bf5453eed0a6 # v4.2.0
with:
name: testrun_package
path: testrun*.deb
path: testrun*.deb

install_package_20:
permissions: {}
needs: create_package
name: Install on Ubuntu 20.04
runs-on: ubuntu-20.04
timeout-minutes: 15
steps:
- name: Checkout source
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download package
uses: actions/download-artifact@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 2: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
name: testrun_package
- name: Install dependencies
shell: bash {0}
run: sudo cmd/prepare
- name: Install package
shell: bash {0}
run: sudo apt install ./testrun*.deb

install_package_22:
permissions: {}
needs: create_package
name: Install on Ubuntu 22.04
runs-on: ubuntu-22.04
timeout-minutes: 15
steps:
- name: Checkout source
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download package
uses: actions/download-artifact@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 2: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
name: testrun_package
- name: Install dependencies
shell: bash {0}
run: sudo cmd/prepare
- name: Install package
shell: bash {0}
run: sudo apt install ./testrun*.deb

install_package_24:
permissions: {}
needs: create_package
name: Install on Ubuntu 24.04
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- name: Checkout source
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Download package
uses: actions/download-artifact@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 2: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
name: testrun_package
- name: Install dependencies
shell: bash {0}
run: sudo cmd/prepare
- name: Install package
shell: bash {0}
run: sudo apt install ./testrun*.deb
6 changes: 1 addition & 5 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ on:
# For Branch-Protection check. Only the default branch is supported. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
branch_protection_rule:
# To guarantee Maintained check is occasionally updated. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: '20 6 * * 4'
push:
branches: [ "main" ]

Expand Down Expand Up @@ -70,4 +66,4 @@ jobs:
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
with:
sarif_file: results.sarif
sarif_file: results.sarif
24 changes: 23 additions & 1 deletion .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
run: cmd/prepare
- name: Install Testrun
shell: bash {0}
run: TESTRUN_DIR=. cmd/install
run: cmd/install -l
timeout-minutes: 30
- name: Run tests
shell: bash {0}
Expand All @@ -55,6 +55,28 @@ jobs:
name: runtime_api_${{ github.run_id }}
path: runtime.tgz

testrun_unit:
permissions: {}
name: Unit
runs-on: ubuntu-20.04
timeout-minutes: 15
steps:
- name: Checkout source
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install dependencies
shell: bash {0}
run: cmd/prepare
- name: Install Testrun
shell: bash {0}
run: cmd/install -l
- name: Build Testrun
shell: bash {0}
run: cmd/build
timeout-minutes: 10
- name: Run tests
shell: bash {0}
run: bash testing/unit/run.sh

pylint:
permissions: {}
name: Pylint
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ build/

# Ignore generated files from unit tests
testing/unit_test/temp/
testing/unit/conn/output/
testing/unit/dns/output/
testing/unit/nmap/output/
testing/unit/ntp/output/
testing/unit/tls/output/
testing/unit/tls/tmp/
testing/unit/report/output/
testing/unit/risk_profile/output/
testing/unit/services/output/

*.deb
make/DEBIAN/postinst
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ When manual testing or configuration changes are required, Testrun will provide
- DHCP client - The device must be able to obtain an IP address via DHCP

## Get started ▶️
Once you have met the hardware and software requirements, you can get started with Testrun by following the [Get started guide](docs/get_started.md).
Once you have met the hardware and software requirements, you can get started with Testrun by following the [Get started guide](docs/get_started.md). Further docs are available in the [docs directory](docs)

## Roadmap :chart_with_upwards_trend:
Testrun will constantly evolve to further support end-users by automating device network behaviour against industry standards. For further information on upcoming features, check out the [Roadmap](docs/roadmap.pdf).
Expand All @@ -59,7 +59,7 @@ We are proud of our tool and strive to provide an enjoyable experience for all o
If the application has come across a problem at any point during setup or use, please raise an issue under the [issues tab](https://github.com/google/testrun/issues). Issue templates exist for both bug reports and feature requests. If neither of these are appropriate for your issue, raise a blank issue instead.

## Contributing :keyboard:
The contributing requirements can be found in [CONTRIBUTING.md](CONTRIBUTING.md). In short, checkout the [Google CLA](https://cla.developers.google.com/) site to get started.
The contributing requirements can be found in [CONTRIBUTING.md](CONTRIBUTING.md). In short, checkout the [Google CLA](https://cla.developers.google.com/) site to get started. After that, check out our [developer documentation](docs/dev/README.md).

## FAQ :raising_hand:
1) I have an issue whilst installing/upgrading Testrun, what do I do?
Expand Down
19 changes: 16 additions & 3 deletions cmd/build
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,28 @@ fi
# Builds all docker images
echo Building docker images

# Build user interface
echo Building user interface
if docker build -t test-run/ui -f modules/ui/ui.Dockerfile . ; then
# Check if UI has already been built (if -l was used during install)
if [ ! -d "modules/ui/dist" ]; then
cmd/build_ui
fi

# Build UI image
if docker build -t testrun/ui -f modules/ui/ui.Dockerfile . ; then
echo Successully built the user interface
else
echo An error occured whilst building the user interface
exit 1
fi

# Build websockets server
echo Building websockets server
if docker build -t testrun/ws -f modules/ws/ws.Dockerfile . ; then
echo Successully built the web sockets server
else
echo An error occured whilst building the websockets server
exit 1
fi

# Build network modules
echo Building network modules
mkdir -p build/network
Expand Down
37 changes: 37 additions & 0 deletions cmd/build_ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/bash -e

# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Build the UI
echo Building the ui builder

# Build UI builder image
if docker build -t testrun/build-ui -f modules/ui/build.Dockerfile . ; then
echo Successully built the ui builder
else
echo An error occured whilst building the ui builder
exit 1
fi

# Check that the container is not already running
docker kill tr-ui-build 2> /dev/null || true

echo "Building the user interface"

# Start build container and build the ui dist
docker run --rm -v $PWD/modules/ui:/modules/ui testrun/build-ui /bin/sh -c "npm install && npm run build"

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 2: npmCommand not pinned by hash
Click Remediation section below to solve this issue
# Kill the container (Should not be running anymore)
docker kill tr-ui-build 2> /dev/null || true
18 changes: 16 additions & 2 deletions cmd/install
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,29 @@ echo Installing application dependencies
while getopts ":l" option; do
case $option in
l) # Install Testrun in local directory
TESTRUN_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")"/.. && pwd)
TESTRUN_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")"/.. && pwd)
esac
done

# Check if TESTRUN_DIR has been set, otherwise install in /usr/local/testrun
if [[ -z "${TESTRUN_DIR}" ]]; then
TESTRUN_DIR=/usr/local/testrun

# Check that user is sudo
if [[ "$EUID" -ne 0 ]]; then
echo "Installing Testrun in the default location requires sudo. Run using sudo cmd/install"
exit 1
fi

else
TESTRUN_DIR="${TESTRUN_DIR}"

# Check that user is in docker group
if ! (id -nGz "$USER" | grep -qzxF "docker"); then
echo User is not in docker group. Follow https://docs.docker.com/engine/install/linux-postinstall/ to finish setting up docker.
exit 1
fi

fi

echo Installing Testrun at $TESTRUN_DIR
Expand All @@ -51,7 +65,7 @@ cp -n local/system.json.example local/system.json
deactivate

# Build docker images
sudo cmd/build
cmd/build

# Create local folders
mkdir -p local/devices
Expand Down
13 changes: 11 additions & 2 deletions cmd/package
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@

# Creates a package for Testrun

# Check that user is not root
if [[ "$EUID" == 0 ]]; then
echo "Must not run as root. Use cmd/package as regular user"
exit 1
fi

MAKE_SRC_DIR=make
MAKE_CONTROL_DIR=make/DEBIAN/control

Expand All @@ -25,10 +31,10 @@ version=$(grep -R "Version: " $MAKE_CONTROL_DIR | awk '{print $2}')
# Replace invalid characters
version="${version//./_}"

# Delete existing make files
rm -rf $MAKE_SRC_DIR/usr
echo Building package for testrun v${version}

# Delete existing make files
echo Cleaning up previous build files
rm -rf $MAKE_SRC_DIR/usr

# Copy testrun script to /bin
Expand Down Expand Up @@ -60,6 +66,9 @@ mkdir -p $MAKE_SRC_DIR/usr/local/testrun/local/risk_profiles
mkdir -p local/root_certs
cp -r local/root_certs $MAKE_SRC_DIR/usr/local/testrun/local/

# Build the UI
cmd/build_ui

# Copy framework and modules into testrun folder
cp -r {framework,modules} $MAKE_SRC_DIR/usr/local/testrun

Expand Down
3 changes: 3 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@
- [Running on a virtual machine](virtual_machine.md)
- [Accessibility](ui/accessibility.mp4)
- [Roadmap](roadmap.pdf)

## Something missing?
If you feel there is some documentation that you would find useful, or have found an issue with existing documentation, please raise an issue on GitHub by navigating [here](https://github.com/google/testrun/issues/new/choose)
25 changes: 25 additions & 0 deletions docs/dev/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<img width="200" alt="Testrun logo" src="https://user-images.githubusercontent.com/7399056/221927867-4190a4e8-a571-4e40-9c2b-65780ad9264c.png" alt="Testrun">

## Developer docs

## Table of Contents
1) General guidelines (this page)
2) [Code quality](code_quality.md)

## General guidelines
As an open source project, we absolutely encourage contributions from the community to help Testrun remain an expanding but stable product. However, before contributing there are a number of things to take into consideration.

1) [Sign the Google CLA](https://cla.developers.google.com/): Whether you are an individual or contributing on behalf of your organisation, you must be covered by a Google CLA.

2) Determine the scope of your contribution

- Your contribution is more likely to be accepted if fewer files are changed (keep it simple)
- Are you going to be fixing a bug, dependency issue or a new framework capability? Whatever it is, ensure your pull request fixes or changes just one thing.

3) Get in touch to discuss whether your proposed changes are likely to be accepted

- It is best to get the opinion from the core maintainers whether your proposed changes meet our objectives and align with Testrun principles.

4) Fork Testrun and get developing

- We aim to provide thorough and easy to ready developer documentation to help you contribute successfully.
16 changes: 16 additions & 0 deletions docs/dev/code_quality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<img width="200" alt="Testrun logo" src="https://user-images.githubusercontent.com/7399056/221927867-4190a4e8-a571-4e40-9c2b-65780ad9264c.png" alt="Testrun">

## Code quality

Whilst developing code for Testrun, there are some style guides that you should follow.

- Python: https://google.github.io/styleguide/pyguide.html
- Angular: https://google.github.io/styleguide/angularjs-google-style.html
- Shell: https://google.github.io/styleguide/shellguide.html
- HTML/CSS: https://google.github.io/styleguide/htmlcssguide.html
- JSON: https://google.github.io/styleguide/jsoncstyleguide.xml
- Markdown: https://google.github.io/styleguide/docguide/style.html

### Automated actions

The current code base has been able to achieve 0 code lint issues. To maintain this, all lint checks are enforced on pull requests to dev and main. Please ensure that these lint checks are passing before marking your pull requests as 'Ready for review'.
3 changes: 1 addition & 2 deletions docs/network/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
<img width="200" alt="Testrun logo" src="https://user-images.githubusercontent.com/7399056/221927867-4190a4e8-a571-4e40-9c2b-65780ad9264c.png" alt="Testrun">


## Network Overview

## Table of Contents
1) Network Overview (this page)
1) Network overview (this page)
2) [How to identify network interfaces](identify_interfaces.md)
3) [Addresses](addresses.md)
4) [Add a new network service](add_new_service.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/network/add_new_service.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ COPY $MODULE_DIR/bin /testrun/bin
# Copy over all python files
COPY $MODULE_DIR/python /testrun/python

# Do not specify a CMD or Entrypoint as Test Run will automatically start your service as required
# Do not specify a CMD or Entrypoint as Testrun will automatically start your service as required
```

### Example of start_network_service script
Expand Down
Loading

0 comments on commit 549641c

Please sign in to comment.