-
Notifications
You must be signed in to change notification settings - Fork 235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[rest] add joiner to commissioner joiner table and get status of joiner … #2517
base: main
Are you sure you want to change the base?
Conversation
…by indirect 'addThreadDeviceTask' processing This commit implements - POST `addThreadDeviceTask` on api/actions/ - GET api/actions/<actionId> - DELETE api/actions The commit also provides integration tests, see tests/restjsonapi. Please follow the following steps to install/build OTBR. 1. Checkout this PR 2. Build and Install OTBR as usual, e.g. on a Raspberry Pi 3. Restart the OTBR. `sudo systemctl restart otbr-agent` 4. To monitor the log [Errors|Warnings|Info] please open a different terminal instance and use following command: ``` tail -f /var/log/syslog | grep otbr ``` 5. Send POST request using BRUNO or CURL, e.g. to join a new device into your network. ``` curl -X POST -H 'Content-Type: application/vnd.api+json' http://localhost:8081/api/actions -d '{"data": [{"type": "addThreadDeviceTask", "attributes": {"eui": "6234567890AACDEA", "pskd": "J01NME", "timeout": 3600}}]}' | jq ``` should return ``` { "data": [ { "id": "2d5a8844-b1bc-4f02-93f0-d87b8c3b4e92", "type": "addThreadDeviceTask", "attributes": { "eui": "6234567890AACDEB", "pskd": "J01NME", "timeout": 3600, "status": "pending" }, } ] } ``` 6. You may check the status and get the full collection of actions. ``` curl -X GET -H 'Accept: application/vnd.api+json' http://localhost:8081/api/actions | jq ``` should return ``` { "data": [ { "id": "2d5a8844-b1bc-4f02-93f0-d87b8c3b4e92", "type": "addThreadDeviceTask", "attributes": { "eui": "6234567890AACDEB", "pskd": "J01NME", "timeout": 3600, "status": "pending" } } ], "meta": { "collection": { "offset": 0, "limit": 100, "total": 1 } } } ``` 7. View the entry added to the commissioner's table `sudo ot-ctl commissioner joiner table` and expect ``` | ID | PSKd | Expiration | +-----------------------+----------------------------------+------------+ | 6234567890aacdea | J01NME | 3459027 | Done ``` 8. Start your joiner and after a few seconds repeat above steps 6. and 7. 9. For running the included test script install Bruno-Cli and run the bash script on your border router ``` cd tests/restjsonapi source ./install_bruno_cli ./test-restjsonapi-server ```
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2517 +/- ##
===========================================
- Coverage 55.77% 42.93% -12.85%
===========================================
Files 87 113 +26
Lines 6890 13482 +6592
Branches 0 1055 +1055
===========================================
+ Hits 3843 5788 +1945
- Misses 3047 7378 +4331
- Partials 0 316 +316 ☔ View full report in Codecov by Sentry. |
@martinzi Thanks for splitting this out! A few suggestions:
BRs! |
Please be aware that there is also another PR adding the commissioner feature to REST API #2515 |
0ff638e
to
08f6c06
Compare
…ation also includes bug fixes.
08f6c06
to
3c37296
Compare
…by indirect 'addThreadDeviceTask' processing
This PR is a carve-out from PR2514 to ease review. It implements the 'addThreadDeviceTask' to add a Joiner and auto-start on-mesh commissioner after POST:
addThreadDeviceTask
on api/actions/The commit also provides limited integration tests, see tests/restjsonapi.
Please follow below steps to reproduce and install/build OTBR.
Checkout this PR
Build and Install OTBR as usual, e.g. on a Raspberry Pi
Restart the OTBR.
sudo systemctl restart otbr-agent
To monitor the log [Errors|Warnings|Info] please open a different terminal instance and use following command:
should return
should return
sudo ot-ctl commissioner joiner table
and expectStart your joiner and after a few seconds repeat above steps 6. and 7.
For running the included test script install Bruno-Cli and run the bash script on your border router