@@ -11,11 +11,13 @@ import (
1111 "github.com/oasisprotocol/oasis-core/go/common/crypto/signature"
1212 "github.com/oasisprotocol/oasis-core/go/common/errors"
1313 "github.com/oasisprotocol/oasis-core/go/common/node"
14+ "github.com/oasisprotocol/oasis-core/go/common/version"
1415 "github.com/oasisprotocol/oasis-core/go/config"
1516 consensus "github.com/oasisprotocol/oasis-core/go/consensus/api"
1617 p2p "github.com/oasisprotocol/oasis-core/go/p2p/api"
1718 registry "github.com/oasisprotocol/oasis-core/go/registry/api"
1819 block "github.com/oasisprotocol/oasis-core/go/roothash/api/block"
20+ "github.com/oasisprotocol/oasis-core/go/runtime/bundle/component"
1921 storage "github.com/oasisprotocol/oasis-core/go/storage/api"
2022 upgrade "github.com/oasisprotocol/oasis-core/go/upgrade/api"
2123 commonWorker "github.com/oasisprotocol/oasis-core/go/worker/common/api"
@@ -85,6 +87,9 @@ type Status struct {
8587 // Runtimes is the status overview for each runtime supported by the node.
8688 Runtimes map [common.Namespace ]RuntimeStatus `json:"runtimes,omitempty"`
8789
90+ // Bundles is the status overview of known runtime bundles.
91+ Bundles []BundleStatus `json:"bundles,omitempty"`
92+
8893 // Registration is the node's registration status.
8994 Registration * RegistrationStatus `json:"registration,omitempty"`
9095
@@ -188,6 +193,37 @@ type RuntimeStatus struct {
188193 Provisioner string `json:"provisioner,omitempty"`
189194}
190195
196+ // BundleStatus is the per-runtime bundle status overview.
197+ type BundleStatus struct {
198+ // Name is the optional human readable runtime name.
199+ Name string `json:"name,omitempty"`
200+
201+ // ID is the runtime identifier.
202+ ID common.Namespace `json:"id"`
203+
204+ // Components contains statuses of the runtime components.
205+ Components []ComponentStatus `json:"components,omitempty"`
206+ }
207+
208+ // ComponentStatus is the component status overview.
209+ type ComponentStatus struct {
210+ // Kind is the component kind.
211+ Kind component.Kind `json:"kind"`
212+
213+ // Name is the name of the component.
214+ Name string `json:"name,omitempty"`
215+
216+ // Version is the component version.
217+ Version version.Version `json:"version,omitempty"`
218+
219+ // Detached specifies whether the component was in a detached bundle.
220+ Detached bool `json:"detached,omitempty"`
221+
222+ // Disabled specifies whether the component is disabled by default
223+ // and needs to be explicitly enabled via node configuration to be used.
224+ Disabled bool `json:"disabled,omitempty"`
225+ }
226+
191227// SeedStatus is the status of the seed node.
192228type SeedStatus struct {
193229 // ChainContext is the chain domain separation context.
0 commit comments