Add cloud_updater app to iotile-ext-cloud
- Dominant language
- Python
- Stars
- 14
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Description
## Overview
We want a simple app (`IOTileApp` subclass) that can download a script to a device in two different ways:
1. The app should be able to use iotile.cloud apis to check for any deployments that affect the given device and if there is a deployment, download the associated script and program it into the device. There should be an annotated method named `update` that does this all-in-one checking and programming
2. The app should be able to directly pull a script from iotile.cloud by slug and program it into a device. There should be an annotated method named `program_script` that takes a slug pointing to a cloud script, downloads it and programs it to the device.
The actual device programming should be done using the `device_updater`. The way to get a `DeviceUpdater` object is to call `self._hw.app(name='device_updater')`. See #403 for what a DeviceUpdater can do.
There should probably be a few other methods for checking whether any deployments affect a device without programming anything from them.
@dkarchmer This is my proposal for allowing users to download scripts directly from the cloud as well as automatically updating devices based on cloud deployments.
Contributor guide
Assessment
This issue has not been assessed yet.