...
- Carry the above severity, retry_condition, and referenced_objects from the controller to the UI
- Make the controller event log include these with the severity field (bonus if the event log details has all if the info)
- UI does lookup of the type, UUID in the referenced_objects to display a name
Step3:
Look at whether we want a retry_count and other aspects from e.g, AWS Device Shadow service documents - AWS IoT Core in the EVE API. That is more related to EVE informing controller about pending changes and operationsthan the error/info reporting
Proto Changes:
To incorporate this change, the info.proto’s errorinfo has been updated as follows:
message ErrorInfo {
string description = 1; // error description
google.protobuf.Timestamp timestamp = 2; // Timestamp at which error had occurred
Severity severity = 3; // Severity of the error
repeated DeviceEntity entities = 4; // list of objects referenced by the description
string retry_condition = 5; // condition to retry
}
Where Severity is a enum:
enum Severity {
SEVERITY_UNSPECIFIED = 0; // severity unspecified
SEVERITY_NOTICE = 1; // severity notice
SEVERITY_WARNING = 2; // severity warning
SEVERITY_ERROR = 3; // severity error
}
and DeviceEntity is object of entityType and entityId:
message DeviceEntity {
Entity entity = 1; // entity type
string entity_id = 2; // entity uuid
}
Where Entity can be any of the following,
enum Entity {
// Invalid Device Entity
ENTITY_UNSPECIFIED = 0;
// Base OS entity
ENTITY_BASE_OS = 1;
// System Adapter Entity
ENTITY_SYSTEM_ADAPTER = 2;
// Vault Entity
ENTITY_VAULT = 3;
// Attestation Entity
ENTITY_ATTESTATION = 4;
// App Instance Entity
ENTITY_APP_INSTANCE = 5;
// Port Entity
ENTITY_PORT = 6;
// Network Entity
ENTITY_NETWORK = 7;
// Network Instance Entity
ENTITY_NETWORK_INSTANCE = 8;
// ContentTree Entity
ENTITY_CONTENT_TREE = 9;
// Blob Entity
ENTITY_CONTENT_BLOB = 10;
// VOLUME Entity
ENTITY_VOLUME = 11;
}
Please note that entities like ENTITY_SYSTEM_ADAPTER, ENTITY_VAULT, ENTITY_ATTESTATION and ENTITY_PORT have their own entity ID even though, unlike the others, they do not have UUIDs.