-
Notifications
You must be signed in to change notification settings - Fork 704
Component upgrade state. #1242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Component upgrade state. #1242
Changes from all commits
8ac03af
50134ec
7b9740d
7c1b119
a0feab6
5055ae4
15ac77f
db91e09
8b509e9
b003c71
c204ef2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -22,8 +22,13 @@ module openconfig-platform-types { | |
| "This module defines data types (e.g., YANG identities) | ||
| to support the OpenConfig component inventory model."; | ||
|
|
||
| oc-ext:openconfig-version "1.9.0"; | ||
| oc-ext:openconfig-version "1.10.0"; | ||
|
|
||
| revision "2025-01-07" { | ||
| description | ||
| "Add OPENCONFIG_INSTALL_STATUS"; | ||
| reference "1.10.0"; | ||
| } | ||
|
|
||
| revision "2024-11-04" { | ||
| description | ||
|
|
@@ -564,6 +569,41 @@ module openconfig-platform-types { | |
| "The component reboots due to critical errors."; | ||
| } | ||
|
|
||
| identity OPENCONFIG_INSTALL_STATUS { | ||
| description | ||
| "Base entity for component install status."; | ||
| } | ||
|
|
||
| identity INSTALL_FILE_LOADING { | ||
| base OPENCONFIG_INSTALL_STATUS; | ||
| description | ||
| "The file is being loaded on the component."; | ||
| } | ||
|
|
||
| identity INSTALL_IN_PROGRESS { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There can be 3 separate steps in an overall install:
|
||
| base OPENCONFIG_INSTALL_STATUS; | ||
| description | ||
| "The install is in-progress."; | ||
| } | ||
|
|
||
| identity INSTALL_COMPLETE { | ||
| base OPENCONFIG_INSTALL_STATUS; | ||
| description | ||
| "The install was completed."; | ||
| } | ||
|
|
||
| identity INSTALL_ABORT { | ||
| base OPENCONFIG_INSTALL_STATUS; | ||
| description | ||
| "The install was aborted."; | ||
| } | ||
|
|
||
| identity INSTALL_FAIL { | ||
| base OPENCONFIG_INSTALL_STATUS; | ||
| description | ||
| "The install failed."; | ||
| } | ||
|
|
||
| typedef component-redundant-role { | ||
| type enumeration { | ||
| enum PRIMARY { | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -65,7 +65,12 @@ module openconfig-platform { | |
| (presence or absence of a component) and state (physical | ||
| attributes or status)."; | ||
|
|
||
| oc-ext:openconfig-version "0.31.0"; | ||
| oc-ext:openconfig-version "0.32.0"; | ||
|
|
||
| revision "2025-03-14" { | ||
| description | ||
| "Add install state information."; | ||
| reference "0.32.0"; | ||
|
|
||
| revision "2025-01-30" { | ||
| description | ||
|
|
@@ -726,6 +731,83 @@ revision "2024-05-29" { | |
|
|
||
| } | ||
|
|
||
| grouping platform-component-install-state { | ||
| description | ||
| "Install state data for platform components"; | ||
|
|
||
| container install { | ||
| description | ||
| "Top-level container for component install state data"; | ||
|
|
||
| leaf new-version { | ||
| type string; | ||
| description | ||
| "This is the version that is available on the component, | ||
| but the install is not complete or has not yet started."; | ||
| } | ||
|
|
||
| leaf new-version-service-impacting { | ||
| type boolean; | ||
| description | ||
| "A value of true indicates that installing would | ||
| be a service impacting event."; | ||
| } | ||
|
|
||
| leaf status { | ||
| type identityref { | ||
| base oc-platform-types:OPENCONFIG_INSTALL_STATUS; | ||
| } | ||
| description | ||
| "The status of the install."; | ||
| } | ||
|
|
||
| leaf step { | ||
| type string; | ||
| description | ||
| "Description of the current in-progress step of the install."; | ||
| } | ||
|
|
||
| leaf step-percent-complete { | ||
| type oc-types:percentage; | ||
| description | ||
| "The percent complete for the in-progress step."; | ||
| } | ||
|
|
||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The most value for % complete, start-timestamp and end-timestamp is for the transfer step. And it isn't so clear that it is realistic (or important) to know the % complete for activate, commit or abort. I'd suggest we rework this to have transfer-start-time, transfer-end-time, and transfer-percent-complete. |
||
| leaf total-percent-complete { | ||
| type oc-types:percentage; | ||
| description | ||
| "The percent complete for the entire install process."; | ||
| } | ||
|
|
||
| leaf start-timestamp { | ||
| type oc-types:timeticks64; | ||
| description | ||
| "The timestamp when the install started."; | ||
| } | ||
|
|
||
| leaf duration { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It feels like there is some overlap/duplication in having a start-timestamp, stop-timestamp, and duration. And would duration constantly update every second? (i.e. be very noisy if subscriber to ON_CHANGE)? I'd propose we drop the duration leaf here. |
||
| type oc-yang:counter64; | ||
| units "seconds"; | ||
| description | ||
| "The time elapsed since the install was initiated or the | ||
| duration of the last install. This is reported in seconds."; | ||
| } | ||
|
|
||
| leaf stop-timestamp { | ||
| type oc-types:timeticks64; | ||
| description | ||
| "The timestamp when the install stopped."; | ||
| } | ||
|
|
||
| leaf last-known-failure { | ||
| type string; | ||
| description | ||
| "The reason of the last known failure, if the most recent | ||
| install ended in failure."; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| grouping platform-component-temp-alarm-state { | ||
| description | ||
| "Temperature alarm data for platform components"; | ||
|
|
@@ -1330,6 +1412,7 @@ revision "2024-05-29" { | |
| "'oc-platform-types:INTEGRATED_CIRCUIT' or " + | ||
| "'oc-platform-types:FRU'"; | ||
| } | ||
| uses platform-component-install-state; | ||
| } | ||
|
|
||
| uses platform-component-properties-top; | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the expected status when a device (e.g. router) first boots up and there hasn't been any firmware install on a transceiver? Suppress the install status leaf (i.e. don't return it)? Or do we need some sort of INSTALL_IDLE status?