| syntax = "proto3"; | |
| option go_package = "github.com/opencord/device-management-interface/v3/go/dmi"; | |
| package dmi; | |
| import "dmi/commons.proto"; | |
| // Protos for modeling a software image and it's status | |
| message ImageVersion { | |
| string image_name = 1; | |
| string version = 2; | |
| } | |
| message ImageInformation { | |
| ImageVersion image = 1; | |
| // Script used by the device specific managers to install the image. | |
| // Script must be included in the object downloaded from the image_url | |
| string image_install_script = 2; | |
| // Location of the image and installation script, authentication (user/pass) if any should be in the url string | |
| // The image_url would contain the protocol, credentials, the IP address/DNS of the server and the path of the file | |
| // e.g. sftp://download_user:download_pass@192.168.0.1:22/images/image1 | |
| string image_url = 3; | |
| // SHA-256 sum of the image (sha256sum on Linux) | |
| string sha256sum = 5; | |
| } | |
| message ImageStatus { | |
| enum ImageState { | |
| UNDEFINED_STATE = 0; // Initial state | |
| COPYING_IMAGE = 1; // Downloading the image on the standby partition | |
| INSTALLING_IMAGE = 2; // Installing the image on the standby partition | |
| COMMITTING_IMAGE = 3; // Committing the image and marking it as the active partition | |
| REBOOTING_DEVICE = 4; // Rebooting the device | |
| UPGRADE_COMPLETE = 5; // Image upgrade on the standby partition completed | |
| UPGRADE_FAILED = 6; // Image upgrade on the standby partition failed | |
| ACTIVATION_COMPLETE = 7; // Image activation completed | |
| ACTIVATION_FAILED = 8; // Image activation failed | |
| } | |
| enum Reason { | |
| UNDEFINED_REASON = 0; | |
| ERROR_IN_REQUEST = 1; | |
| INTERNAL_ERROR = 2; | |
| DEVICE_IN_WRONG_STATE = 3; | |
| INVALID_IMAGE = 4; | |
| WRONG_IMAGE_CHECKSUM = 5; | |
| OPERATION_ALREADY_IN_PROGRESS = 6; | |
| UNKNOWN_DEVICE = 7; | |
| // The DM implementations should have retry mechanisms (timeout values dependant on specific implementations) | |
| // and even after those if the operation cannot be completed/reached then return error with reason as DEVICE_NOT_REACHABLE | |
| DEVICE_NOT_REACHABLE = 8; | |
| } | |
| Status status = 1; | |
| Reason reason = 2; | |
| ImageState state = 3; | |
| // description contains more information about the current state of the procedure and is device dependant | |
| string description = 4; | |
| string reason_detail = 5; | |
| } |