Skip to content

Extend channels versions operation to identify active and inactive channels #648

@spyrkob

Description

@spyrkob

Overview:

Currently channels versions operation returns a list of channels that were used in the latest update of the server. The information is based entirely on the manifest's name field.

To provide more informations, we should check if the artifact versions declared in the manifest were used to provision the server.

The outcome of the modified command would look like following:

Installed server components:
 * wildfly                           org.wildfly.channels:wildfly                                          32.0.0.Final                        ACTIVE (PARTIAL)
 * one-offs                       org.wildflychannels.oneoff:customer-zero                 1.0.0                                    ACTIVE (FULL)

active(partial) - some of the installed artifacts are from this channel
active(full) - all the artifacts provided by this channel are installed in versions defined by this channel
inactive - none of the artifact versions from this channel are used by the installation
unknown - unable to figure out the artifacts in manifest (open manifest, no-cache+offline)

Implementation notes

Cached manifests together with manifest_versions record can be used to check what artifacts channels provide. Generated manifest.yaml provides information for what artifacts were used.

Compare artifacts installed currently (.installation/manifest.yaml) with artifacts defined by each subscribed channel manifest. The subscribed channel manifests can be found in the cache.

The operation should provide an option to run in offline mode or with offline repositories.

Nice-to-have

Extend the operation to provide information about which streams from a partial channel are overwritten by which channel. i.e. if one-off channel overwrites undertow-core, the base wildfly channel should report it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementEnhancement of existing featurereadyIssue can be worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions