eddie merge requestshttps://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests2022-05-12T13:36:46Zhttps://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/1CI: first step towards using GitLab CI in EDDIE2022-05-12T13:36:46ZStefan SchmidtCI: first step towards using GitLab CI in EDDIEFor now this will only build eddie and provide feedback on merge requests.
Different compilers, sanitizers and unit tests are planned for the future.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>For now this will only build eddie and provide feedback on merge requests.
Different compilers, sanitizers and unit tests are planned for the future.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/16ci: add DCO compliance step and merge request workflow2022-05-17T11:01:08ZStefan Schmidtci: add DCO compliance step and merge request workflowDCO is needed for compliance checks and we need the merge request
workflow to ensure MR's are run in the parent repo and can use its
runners.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>DCO is needed for compliance checks and we need the merge request
workflow to ensure MR's are run in the parent repo and can use its
runners.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/18eddie-communication: rework networking code to match CoAP standards2022-05-18T10:42:09ZJacopo Zorzettoeddie-communication: rework networking code to match CoAP standards- new executable files for both client and server applications;
- resource publication: a node MUST provide a value for ep, d and base-address
where the resources are located, while the payload of the request MUST
contain a textual...- new executable files for both client and server applications;
- resource publication: a node MUST provide a value for ep, d and base-address
where the resources are located, while the payload of the request MUST
contain a textual representation of the list of resources to publish;
The resource directory will answer with a Location-Path,
that can be used to modify the attributes of the publication;
- publication update: to update a previous publication, a node can perform a
POST request using the Location-Path value obtained after the registration,
to modify parameters of the publication;
to remove a publication, a node can perform a DELETE request using
the same Location-Path value obtained after the registration;
to change the list of published resources, a node MUST perform
a new publication;
- resource discovery: a node that wants to find resources in the network
can reach the special resource /rd-lookup/res, specifying query
parameters to filter the results.https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/17Enable ctest with gtest and some basic unit tests for CI2022-05-20T10:52:21ZStefan SchmidtEnable ctest with gtest and some basic unit tests for CIThis series enables ctest together with gtest as our unit test framework, adds some basic test cases for verify its functionality and hooks it up into CI.This series enables ctest together with gtest as our unit test framework, adds some basic test cases for verify its functionality and hooks it up into CI.https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/19eddie-communication: implement communication layer APIs for higher layers2022-05-30T13:58:36ZJacopo Zorzettoeddie-communication: implement communication layer APIs for higher layersThe communication API is composed of:
- connect: set up the local CoAP node and connect it to the network
- disconnect: tear down the local CoAP node
- discover: get the list of all available resources in the network
- send_message: send...The communication API is composed of:
- connect: set up the local CoAP node and connect it to the network
- disconnect: tear down the local CoAP node
- discover: get the list of all available resources in the network
- send_message: send a message to the specified resource
(ip, port and resource uri), using the correct CoAP method, specifying
both the query and the body of the message.
- receive_message: return the message with the corresponding token value.
This message is the answer to the previous request made by the CoAP node.https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/20Cleanups and fixes for the communication layer2022-05-31T08:46:40ZStefan SchmidtCleanups and fixes for the communication layerRemove no longer used code and add include guards.
Details are in the commit messages.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>Remove no longer used code and add include guards.
Details are in the commit messages.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/21Extend unit tests on client, server and node2022-05-31T08:56:51ZStefan SchmidtExtend unit tests on client, server and nodeThis needs https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/20 to be merged first.
Line coverage up to 31%. We can only go further when we start runnign the eddie server and client from the test framework (next on th...This needs https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/20 to be merged first.
Line coverage up to 31%. We can only go further when we start runnign the eddie server and client from the test framework (next on the list)
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/22ci: enable coverage reports for test job2022-06-01T15:13:31ZStefan Schmidtci: enable coverage reports for test jobEnable coverage support in the CI pipeline to display in MR as well as
in repository analytics.
Passing the --coverage option to the compiler and running gcovr after
make test produces the summary gitlab is looking for with the regex.
...Enable coverage support in the CI pipeline to display in MR as well as
in repository analytics.
Passing the --coverage option to the compiler and running gcovr after
make test produces the summary gitlab is looking for with the regex.
We might want to tweak the gcovr run later on to only include the actual
libraries we test and some example code to have accurate reports, but for
now this is no problem.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/24build: search for first match between libcoap-3 and libcoap-3-openssl2022-06-14T09:47:25ZFrancesco Phambuild: search for first match between libcoap-3 and libcoap-3-openssl## build: search for first match between libcoap-3 and libcoap-3-openssl
some libcoap installation has libcoap-3.pc pkgconfig file that symlinks to a specific variant, others don't.
Therefore searching for the first successful match bet...## build: search for first match between libcoap-3 and libcoap-3-openssl
some libcoap installation has libcoap-3.pc pkgconfig file that symlinks to a specific variant, others don't.
Therefore searching for the first successful match between libcoap-3 and libcoap-3-openssl.
This allows other libcoap-3 variants to be used when libcoap-3-openssl is not found.
## cmake: add flag to skip tests build
Allowing to skip gtests when not necessaryhttps://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/25Remove exposure of libcoap internals2022-07-11T11:33:26ZJacopo ZorzettoRemove exposure of libcoap internalsRemove the exposure of libcoap internals from CoapNode APIs for the upper layers of EDDIE.Remove the exposure of libcoap internals from CoapNode APIs for the upper layers of EDDIE.https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/26Fixes for CoapServer2022-07-18T13:19:15ZJacopo ZorzettoFixes for CoapServerVarious fixes for the CoapServer component of the communication layer.Various fixes for the CoapServer component of the communication layer.https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/29eddie-zephyr: Import eddie-zephyr project into a subdirectory2022-07-21T15:59:15ZFrancesco Phameddie-zephyr: Import eddie-zephyr project into a subdirectoryeddie-zephyr implements eddie functionalities for the zephyr OS, the goals are the same of the eddie project,
up until now in eddie-zephyr we implemented the resource publishing and discovery.
eddie-zephyr was until now in a separate r...eddie-zephyr implements eddie functionalities for the zephyr OS, the goals are the same of the eddie project,
up until now in eddie-zephyr we implemented the resource publishing and discovery.
eddie-zephyr was until now in a separate repository,
therefore importing it now into main eddie repository in the eddie-zephyr/ subdirectory.
This merge commit has been generated using the git subtree command.
git subtree automatically generated message:\
Add 'eddie-zephyr/' from commit 'af538fcba399cdf31775927d86f00f2ff811ce35'\
git-subtree-dir: eddie-zephyr\
git-subtree-mainline: ba6f7670bd061b172f81868f2e632ebdbef001da\
git-subtree-split: af538fcba399cdf31775927d86f00f2ff811ce35
Signed-off-by: Francesco Pham <francesco.pham@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/27Fixes and Improvements for communication layer2022-07-26T08:40:40ZJacopo ZorzettoFixes and Improvements for communication layerVarious fixes in the communication layer of Eddie.
This version of the code (for the communication part) is the functionally
same used in the demos.Various fixes in the communication layer of Eddie.
This version of the code (for the communication part) is the functionally
same used in the demos.https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/30eddie-zephyr: restructure EddieResource, resource handling and more2022-07-26T11:46:56ZFrancesco Phameddie-zephyr: restructure EddieResource, resource handling and moreFor more information see commit messages
Signed-off-by: Francesco Pham <francesco.pham@huawei.com>For more information see commit messages
Signed-off-by: Francesco Pham <francesco.pham@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/32Implement virtualization layer for EDDIE2022-07-28T10:12:05ZJacopo ZorzettoImplement virtualization layer for EDDIEhttps://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/33move linux code into its subdirectory and move code that is shared between os...2022-08-16T12:54:43ZFrancesco Phammove linux code into its subdirectory and move code that is shared between os implementations into rootThese changes are to allow code sharing between linux and zephyr implementation.
- Moving linux code into a subdirectory
- move EddieEndpoint and EddieResource to root directory because both zephyr and linux code will share the same hea...These changes are to allow code sharing between linux and zephyr implementation.
- Moving linux code into a subdirectory
- move EddieEndpoint and EddieResource to root directory because both zephyr and linux code will share the same header files but with different implementations
see commit messages for more details
Signed-off-by: Francesco Pham <francesco.pham@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/34general restructuring, reimplement CoapNode into EddieEndpoint, extract resou...2022-08-16T12:54:43ZFrancesco Phamgeneral restructuring, reimplement CoapNode into EddieEndpoint, extract resource directory code, fixes and improvementsThis large MR is a general restructuring of the code, but does not add any new feature. These changes, other than improving the code, also allows to share some code with the zephyr implementation.
- Remove CoapNode and reimplement it in...This large MR is a general restructuring of the code, but does not add any new feature. These changes, other than improving the code, also allows to share some code with the zephyr implementation.
- Remove CoapNode and reimplement it into EddieEndpoint sharing the same header file used in zephyr
- Refactor CoapServer.cpp extracting the resource directory code into its own class: improves readability of CoapServer.cpp file and also allows to run the resource directory as a standalone process.
- replace printf and coap_log with LOG_ERR, LOG_INFO, LOG_DBG: this allows to set wanted log verbosity, or in the future log to a different location instead of stdout
- fix segmentation fault problem
- move send_message and receive_message methods into CoapClient
- adapt virtualization to use EddieEndpoint instead of CoapNode
for more details see the git history
Signed-off-by: Francesco Pham <francesco.pham@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/35more restructuring, ipv6 fixes, parse program arguments, refactor CoapClient,...2022-08-16T12:54:43ZFrancesco Phammore restructuring, ipv6 fixes, parse program arguments, refactor CoapClient, add tests- parse ip, port parameters using argparse
- move client coap_io_process thread into CoapClient
- refactor CoapClient to remove duplicate code
- fix ipv6 problems by properly formatting url
- add send_message_and_wait_response to avoi...- parse ip, port parameters using argparse
- move client coap_io_process thread into CoapClient
- refactor CoapClient to remove duplicate code
- fix ipv6 problems by properly formatting url
- add send_message_and_wait_response to avoid boilerplate when sending simple requests
- linux/CoapClient: stop waiting as soon as the response is received
- tests: add fixture to simulate two nodes communicating
- add tests
- fix GVariant format string not properly formatted
- other fixes and improvements
For more details see the git history
Signed-off-by: Francesco Pham <francesco.pham@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/36parse links retrieved from rd, move server thread into CoapServer, add tests2022-08-29T09:36:27ZFrancesco Phamparse links retrieved from rd, move server thread into CoapServer, add tests- linux/VirtualizationReceiver: MockEddieResource now stores data which is accessed by get/post/put requests
- parse links from resource directory response and return std::vector\<Link> from get_resources_from_rd
- zephyr: implement requ...- linux/VirtualizationReceiver: MockEddieResource now stores data which is accessed by get/post/put requests
- parse links from resource directory response and return std::vector\<Link> from get_resources_from_rd
- zephyr: implement request timeout
- add tests for requests and response
- add tests that send requests to discovered resources
- CoapServer's start_server() method now starts the server in a non-blocking separate thread
See git history for more details
Signed-off-by: Francesco Pham <francesco.pham@huawei.com>https://gitlab.eclipse.org/eclipse/oniro-core/eddie/-/merge_requests/37ci: Add Dockerfile used in CI runner2022-08-29T11:15:49ZStefan Schmidtci: Add Dockerfile used in CI runnerThis Dockerfile is used to build the image used to run the EDDIE CI.
Keeping it here as a reference and to extend it over time when updating
the image on the registry.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>This Dockerfile is used to build the image used to run the EDDIE CI.
Keeping it here as a reference and to extend it over time when updating
the image on the registry.
Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>