blob: f5b0653f4f0816603311b0bbe18a9a47c7c4e952 [file] [log] [blame]
module ciena-waveserver-software {
namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-software";
prefix software;
import ciena-waveserver-typedefs {
prefix cienawstypes;
}
organization
"Ciena Corporation";
contact
"Web URL: http://www.ciena.com/
Postal: 7035 Ridge Road
Hanover, Maryland 21076
U.S.A.
Phone: +1 800-921-1144
Fax: +1 410-694-5750";
description
"This module defines Software Status and Upgrade support for Ciena's Waveserver Platform.";
revision 2017-12-07 {
description
"Added support for multi-step upgrade RPCs for 'download', 'activate', and 'commit'.
Added 'upgrade-log' attribute support.";
reference "Waveserver Ai user's guide.";
}
revision 2017-09-07 {
description
"Waveserver Platform Data Model
Migrated from Waveserver Classic R1.4 YANG model.
Updated namespace to 'ciena-waveserver'.
Updated 'software-op-state' and 'upgrade-op-state' enum values.
Removed several unsupported attributes/containers/RPCs.
Added WCS and Module status containers/attributes.
Moved some common attributes into groupings.";
reference "Waveserver Ai user's guide.";
}
grouping software-device-status-group {
description
"Grouping for WCS and Module software status attributes.";
leaf boot-zone {
type boot-zone;
description
"The boot zone for the specified device.";
}
leaf last-restart {
type cienawstypes:string-maxl-32;
description
"The date and time of last restart in the format of a human readable string. e.g 'Wed Jun 30 21:49:08 2015'";
}
leaf last-restart-reason {
type cienawstypes:restart-reason;
description
"Cause for the last restart.";
}
leaf boot-image-a {
type cienawstypes:string-maxl-64;
description
"The boot image or firmware image name for zone A.";
}
leaf boot-image-b {
type cienawstypes:string-maxl-64;
description
"The boot image or firmware image name for zone B.";
}
}
grouping software-release-group {
description
"Grouping for active and installed software release attributes.";
leaf version {
type cienawstypes:string-maxl-32;
description
"The software release version.";
}
leaf build-number {
type cienawstypes:string-maxl-32;
description
"The software release build number.";
}
leaf build-tag {
type cienawstypes:string-maxl-32;
description
"The software release build tag.";
}
leaf build-date {
type cienawstypes:string-maxl-32;
description
"The software release build date.";
}
}
typedef software-rtncode {
type uint32;
description
"Return code value used in the software module. 0 indicate success. None-zero indicate failure.";
}
typedef software-op-state {
type enumeration {
enum "unknown" {
description
"Software operational state is unknown.";
}
enum "normal" {
description
"Software operational state is normal.";
}
enum "upgrade-in-progress" {
description
"Software upgrade is in progress.";
}
enum "automatic-upgrade-in-progress" {
description
"Automatic software upgrade is in progress.";
}
enum "restart-in-progress" {
description
"System restart is in progress. WCS is initializing but not yet in 'boot-complete' state.";
}
enum "module-restart-in-progress" {
description
"One or more modules is initializing and has not yet reached run-mode 'run' state.";
}
enum "application-failed" {
description
"One or more required applications is not running.";
}
}
description
"Software operational state.";
}
typedef upgrade-op-state {
type enumeration {
enum "unknown" {
description
"Upgrade operational state is unknown.";
}
enum "idle" {
description
"Software upgrade is idle.";
}
enum "download-in-progress" {
description
"Software download is in progress.";
}
enum "download-complete" {
description
"Software download is complete.";
}
enum "download-failed" {
description
"Software download failed.";
}
enum "activation-in-progress" {
description
"Software activation is in progress.";
}
enum "activation-complete" {
description
"Software activation is complete.";
}
enum "activation-failed" {
description
"Software activation failed.";
}
enum "installation-in-progress" {
description
"Software installation is in progress.";
}
enum "installation-failed" {
description
"Software installation failed.";
}
enum "commit-in-progress" {
description
"Software commit is in progress.";
}
enum "commit-failed" {
description
"Software commit failed.";
}
enum "cancel-in-progress" {
description
"Software cancel operation is in progress.";
}
enum "cancel-failed" {
description
"Software cancel operation failed.";
}
enum "delete-in-progress" {
description
"Software delete operation is in progress.";
}
enum "delete-failed" {
description
"Software delete operation failed.";
}
enum "automatic-upgrade-in-progress" {
description
"Automatic software upgrade is in progress.";
}
enum "automatic-upgrade-failed" {
description
"Automatic software upgrade failed.";
}
enum "module-cold-restart-required" {
description
"A cold restart is required on one or more modules.";
}
}
description
"Software upgrade operational state.";
}
typedef boot-zone {
type enumeration {
enum "unknown" {
description
"Boot zone is unknown.";
}
enum "a" {
description
"Boot zone A.";
}
enum "b" {
description
"Boot zone B.";
}
}
description
"The boot zone type.";
}
container waveserver-software {
config false;
description
"Waveserver software upgrade and load management.";
container status {
description
"Waveserver software status information.";
leaf software-operational-state {
type software-op-state;
description
"The current software operational state.";
}
leaf upgrade-operational-state {
type upgrade-op-state;
description
"The current upgrade operational state.";
}
leaf committed-version {
type cienawstypes:string-maxl-64;
description
"The committed software release version.";
}
leaf active-version {
type cienawstypes:string-maxl-64;
description
"The active software release version.";
}
leaf upgrade-to-version {
type cienawstypes:string-maxl-64;
description
"The software release version currently being upgraded to, if applicable.";
}
leaf last-operation {
type cienawstypes:string-maxl-128;
description
"The software upgrade last operation.";
}
leaf upgrade-log {
type cienawstypes:string-maxl-128;
description
"The software upgrade log file URI on the Waveserver.";
}
}
container wcs-status {
description
"Software status information for the Waveserver Control Subsystem control module.";
leaf boot-image-version {
type cienawstypes:string-maxl-32;
description
"The current boot image version for the WCS.";
}
leaf fpga-id {
type cienawstypes:string-maxl-64;
description
"The current FPGA image identifier for the WCS.";
}
uses software-device-status-group;
}
container module-status {
description
"Module software status information.";
list module {
key "module-id";
description
"List containing module-specific software status information.";
leaf module-id {
type cienawstypes:name-string;
mandatory true;
description
"Unique access identifier string of the Module, which may just be a slot number (e.g. '1'). Key value for the Module list. Read-only attribute.";
}
uses software-device-status-group;
}
}
container active {
description
"Waveserver active software information.";
uses software-release-group;
}
container installed {
description
"Waveserver installed software release information.";
list versions {
key "index";
description
"A list of installed software releases on this Waveserver.";
leaf index {
type uint8;
description
"Unique id, read-only attribute.";
}
uses software-release-group;
}
}
}
rpc waveserver-software-install {
description
"Perform one-step software upgrade (download, activate, and commit) via url string.";
input {
leaf url {
type cienawstypes:string-maxl-254;
mandatory true;
description
"The URL specifying the remote location and package name to be installed. Example format is 'scp://<uid>:<pwd>@<ip-address>/<path>/<filename>'.";
}
}
output {
leaf return-code {
type software-rtncode;
description
"return code: 0 is success; non-zero is failure";
}
leaf return-string {
type cienawstypes:string-maxl-254;
description
"Return code description";
}
}
}
rpc waveserver-software-download {
description
"Download software load via url string.";
input {
leaf url {
type cienawstypes:string-maxl-254;
mandatory true;
description
"The URL specifying the remote location and package name to be installed. Example format is 'scp://<uid>:<pwd>@<ip-address>/<path>/<filename>'.";
}
}
output {
leaf return-code {
type software-rtncode;
description
"return code: 0 is success; non-zero is failure";
}
leaf return-string {
type cienawstypes:string-maxl-254;
description
"Return code description";
}
}
}
rpc waveserver-software-activate {
description
"Perform software activate via version string.";
input {
leaf version {
type cienawstypes:string-maxl-32;
mandatory true;
description
"The load version string.";
}
leaf auto-commit {
type boolean;
default "false";
description
"Optionally specify that the software load be automatically committed after activation.";
}
}
output {
leaf return-code {
type software-rtncode;
description
"return code: 0 is success; non-zero is failure";
}
leaf return-string {
type cienawstypes:string-maxl-254;
description
"Return code description";
}
}
}
rpc waveserver-software-delete {
description
"Perform software delete via version string.";
input {
leaf version {
type cienawstypes:string-maxl-32;
mandatory true;
description
"The load version string.";
}
}
output {
leaf return-code {
type software-rtncode;
description
"return code: 0 is success; non-zero is failure";
}
leaf return-string {
type cienawstypes:string-maxl-254;
description
"Return code description";
}
}
}
rpc waveserver-software-commit {
description
"Perform software commit operation in the current load has not been committed and it is in boot completion state.";
output {
leaf return-code {
type software-rtncode;
description
"return code: 0 is success; non-zero is failure";
}
leaf return-string {
type cienawstypes:string-maxl-254;
description
"Return code description";
}
}
}
rpc waveserver-software-cancel {
description
"Cancel an existing software upgrade operation that is in a failed state.";
output {
leaf return-code {
type software-rtncode;
description
"return code: 0 is success; non-zero is failure";
}
leaf return-string {
type cienawstypes:string-maxl-254;
description
"Return code description";
}
}
}
}