Uploaded image for project: 'Mender'
  1. Mender
  2. MEN-2462

Distinguish between full and partial updates in reporting

    XMLWordPrintable

    Details

    • Type: Epic
    • Status: DevelopmentReady
    • Priority: (None)
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:

      Description

      There are multiple reports from users where they want to see both the 1) current system version and 2) application versions running. In particular, it is very undesireable that the current system version (e.g. "os-release-2.20") is overwritten once an application update is installed on top of it (e.g. using single-file update).

      This is a complex problem and for the first iteration we will only focus on the reporting aspect of this: make sure versions of both system and application updates are reported (see the attached slide for an example).

      Acceptance criteria

      • Current software version stays until a system (full) image update is deployed
      • Current application (partial) update versions are reported separately as part of inventory
      • Existing Update Modules in Mender Hub written by us are adjusted to support version reporting

      There is support in the update module spec for this already, but it's not implemented. Revoked in the feature/partial_updates branch, we won't use it.

      Broken down requirements:

      • Names for all types of updates are stored in the artifact_provides structure in the Artifact, under the .version suffix:
        • All rootfs-image Artifacts get a rootfs-image.version key.
        • All other Artifacts get a rootfs-image.MODULE.version key, where MODULE is the payload type.
      • Introduce a new field, clears_artifact_provides, which acts as a glob pattern, and clears artifact_provides that match it.
        • All rootfs-image Artifacts by default get a "clears_artifact_provides": "rootfs-image.*" in them.
        • All other Artifacts by default get a "clears_artifact_provides": "rootfs-image.MODULE.*" in them, where MODULE is the payload type.
      • There is a mender-artifact option to set, and to clear custom clears_artifact_provides entries.
      • There is a mender option to show current artifact_provides.
      • There is a default inventory script which reports all artifact_provides.
      • There is a mender-artifact option, --software-name, which changes what the MODULE string will be, in both artifact_provides and clears_artifact_provides.
      • There is a mender-artifact option, --software-version, which sets the value of the .version field.
      • If only --artifact-name is given when creating artifact, its value is used instead of --software-version.
      • GUI displays artifact_provides information for Artifacts (for devices it should already be displayed through normal inventory).

      Feature branch name: feature/partial_updates

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                a10040 Kristian Amlie
                Reporter:
                a10040 Kristian Amlie
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Summary Panel