Skip to main content

"UpdateHub's firmware update package management utilities"

Project description

Tests Coverage Status PyPI PyPI - Supported Python Versions

uhu - UpdateHub Utilities

uhu is an interactive prompt and a command line utility to manage update packages for UpdateHub agent.

Installing

uhu is available in PyPI and can be install with pip:

pip3 install uhu

System Dependencies

uhu is compatible with Python 3.4 and onwards.

If you plan to work with compressed data, be sure to also have installed in your system the compressors you use.

Until now, UpdateHub supports the following compressors:

  • lzop
  • xz
  • gzip

Getting started

To start uhu interactive prompt, just type uhu in your terminal. Within interactive prompt, you can always press tab to autocomplete or to check available commands.

Setting credentials

In the first run uhu, you will be prompted to provide your UpdateHub credentials. You can get your access and secret keys in UpdateHub web interface.

After that you are ready to start creating update packages.

You just have to do this step once, since uhu will save your credentials at $HOME/.uhu. If you need to update your credentials, you may use the auth command within interactive prompt.

Creating an update package

To create a update package, we need to set some basic info first.

The show command will always print your current package data so you can check if everything is ok.

1. Set the product

Currently, you can't create a new product within uhu, so you have to first create a product in the web interface.

After that, grab the product UID generated and type the following within the interactive prompt:

product use <your-product-uid>

Your prompt will be updated with an abbreviated version of what you typed. And remember, if you need to check if everything is ok, just type show.

2. Set the package version

The package version plays a very important role within UpdateHub. This version will be the software version that your device will run after an update. To set it, just type:

package version <the-new-version>

3. Set the hardware compatibility

By default, the package that you are creating will be available for all type of hardware that you have. But if you have many devices in field it is also possible that you also have different brands of hardware for the same product. Taking this in consideration, it is possible that, for example, hardware brand X requires an incompatible configuration with hardware brand Y to update to version 2.0.

For this kind of issue, uhu presents a way to create an update package to only selected hardware. To do so, just add the hardware identifiers that are compatible with the package that you are creating:

hardware add

It will start a new prompt that will ask you to specify a hardware identifier that you want to target with this package.

If you need to remove a hardware identifier, type the following:

hardware remove

And you all be presented to a prompt that will assist you into remove the identifiers that you want.

4. Add objects (files, images, firmwares, etc...)

With everything set, you are now able to add true content of your updated package. Since this content may be diverse, from just an image file to a complete root filesystem image, we like to call them as objects.

To add an object to your package, type:

package add

It will start a new prompt asking you all the needed information to instruct the UpdateHub device agent on how to install the object within your device.

There are also 2 more commands to help you to manage objects, edit and remove:

package edit    # edit an already added object
package remove  # remove an added object

5. Push the package

After to set product, version, supported hardware and objects, you are now able to upload your package to the UpdateHub server. To do so:

package push

It's done! You are now able to go to the UpdateHub web interface and rollout your package.

License

uhu is released under the GPL-2.0 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uhu-1.2.0.tar.gz (35.2 kB view details)

Uploaded Source

Built Distribution

uhu-1.2.0-py3-none-any.whl (52.0 kB view details)

Uploaded Python 3

File details

Details for the file uhu-1.2.0.tar.gz.

File metadata

  • Download URL: uhu-1.2.0.tar.gz
  • Upload date:
  • Size: 35.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for uhu-1.2.0.tar.gz
Algorithm Hash digest
SHA256 0976941d9941ecc0b6a1a8f419dd02e2f4e704d4364fb1185bdb4af7f3c7528c
MD5 7b37bf4ba949e1a957231686629ad6a6
BLAKE2b-256 e0bdeacb6d69ba930019515a416d678fdef5c32e039a925a2719aad9a2869b9a

See more details on using hashes here.

File details

Details for the file uhu-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: uhu-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 52.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for uhu-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f7f72b2865a5f47c9098820067d47d0de1b77903a0a5410465000ebfb58bce3
MD5 373bfd91aec61b2a2b4119954b5a5e98
BLAKE2b-256 fa5015bd7606e5ee4092db973eeffc2f940f561feffa7daabe33d12429112f78

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page