Skip to content
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

Move cloud specific logic out of plugins #2017

Closed
3 of 4 tasks
reubenmiller opened this issue Jun 9, 2023 · 3 comments
Closed
3 of 4 tasks

Move cloud specific logic out of plugins #2017

reubenmiller opened this issue Jun 9, 2023 · 3 comments
Assignees
Labels
idea ideas/opportunities/feature requests which need to be further investigated before implementation theme:aws Theme: AWS cloud related topics theme:az Theme: Azure IoT related topics theme:c8y Theme: Cumulocity related topics theme:configuration Theme: Configuration management theme:firmware theme:troubleshooting Theme: Troubleshooting and remote control
Milestone

Comments

@reubenmiller
Copy link
Contributor

reubenmiller commented Jun 9, 2023

Is your feature request related to a problem? Please describe.

The following plugins assume that the cloud backend is Cumulocity IoT.

  • c8y-log-plugin
  • c8y-configuration-plugin
  • c8y-firmware-plugin (a PoC of this conversion can be seen here)

It would be very beneficial (and a cleaner overall design) if all cloud specific logic was moved out of the plugins and to the associated mappers. This would leave a plugin that could be usable for different clouds. A good reference is the Software Management feature in the tedge-agent which provides tedge/commands topics to handle requests and responses related software management in a cloud agnostic manner.

Describe the solution you'd like

The following points should be covered:

  • Move cloud specific logic from the non-mapper plugins (e.g. c8y-*) to the mapper
  • Rename the c8y-* plugins to tedge-* once all cloud specific logic has been moved. Ignore the c8y-firmware-plugin as it will be migrated at a later point in time.

Describe alternatives you've considered

Additional context

One specific challenged that will need to be addressed is how to handle cloud specific HTTP downloads/uploads. As this generally requires a cloud specific authorization. The actual implementation of a cloud specific downloader/uploader could be implemented in a different issue/PR and then used by this issue.

This is also related to the topic of subscribing to Cumulocity JSON operations via the devicecontrol/notifications #1718 topic which sends the operations as JSON instead of Cumulocity SmartREST.

Subtasks

@reubenmiller reubenmiller added idea ideas/opportunities/feature requests which need to be further investigated before implementation theme:configuration Theme: Configuration management theme:troubleshooting Theme: Troubleshooting and remote control theme:c8y Theme: Cumulocity related topics theme:aws Theme: AWS cloud related topics theme:az Theme: Azure IoT related topics theme:firmware labels Jun 9, 2023
@Ruadhri17 Ruadhri17 self-assigned this Jun 19, 2023
@rina23q

This comment was marked as outdated.

albinsuresh added a commit to albinsuresh/thin-edge.io that referenced this issue Jul 28, 2023
albinsuresh added a commit to albinsuresh/thin-edge.io that referenced this issue Jul 28, 2023
albinsuresh added a commit to albinsuresh/thin-edge.io that referenced this issue Jul 28, 2023
rina23q pushed a commit to albinsuresh/thin-edge.io that referenced this issue Aug 8, 2023
didier-wenzek pushed a commit to albinsuresh/thin-edge.io that referenced this issue Aug 14, 2023
didier-wenzek pushed a commit to albinsuresh/thin-edge.io that referenced this issue Aug 17, 2023
didier-wenzek pushed a commit to albinsuresh/thin-edge.io that referenced this issue Aug 23, 2023
didier-wenzek added a commit to albinsuresh/thin-edge.io that referenced this issue Aug 23, 2023
didier-wenzek added a commit to albinsuresh/thin-edge.io that referenced this issue Aug 23, 2023
didier-wenzek pushed a commit to albinsuresh/thin-edge.io that referenced this issue Aug 28, 2023
didier-wenzek pushed a commit to albinsuresh/thin-edge.io that referenced this issue Aug 29, 2023
didier-wenzek pushed a commit to albinsuresh/thin-edge.io that referenced this issue Aug 30, 2023
@rina23q rina23q assigned rina23q and unassigned Ruadhri17 Sep 27, 2023
@reubenmiller reubenmiller added this to the 0.13.0 milestone Oct 30, 2023
@reubenmiller
Copy link
Contributor Author

reubenmiller commented Oct 30, 2023

The following plugins have been migrated to a generic implementation with no cloud-specific logic:

  • c8y-configuration-plugin -> tedge-configuration-plugin
  • c8y-log-plugin -> tedge-log-plugin

The system tests have been updated to use the these new plugins.

@reubenmiller reubenmiller self-assigned this Nov 1, 2023
@reubenmiller
Copy link
Contributor Author

QA has thoroughly checked the feature and here are the results:

  • Test for ticket exists in the test suite.
  • QA has tested the bug and could not reproduce it anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
idea ideas/opportunities/feature requests which need to be further investigated before implementation theme:aws Theme: AWS cloud related topics theme:az Theme: Azure IoT related topics theme:c8y Theme: Cumulocity related topics theme:configuration Theme: Configuration management theme:firmware theme:troubleshooting Theme: Troubleshooting and remote control
Projects
None yet
Development

No branches or pull requests

3 participants