VOL-4019: Initial commit with grpc nbi, sbi, etcd, kafka and hw management rpcs.
Change-Id: I78feaf7da284028fc61f42c5e0c5f56e72fe9e78
diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/commons.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/commons.pb.go
new file mode 100644
index 0000000..d30c79c
--- /dev/null
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/commons.pb.go
@@ -0,0 +1,109 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: dmi/commons.proto
+
+package dmi
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type Status int32
+
+const (
+ Status_UNDEFINED_STATUS Status = 0
+ Status_OK_STATUS Status = 1
+ Status_ERROR_STATUS Status = 2
+)
+
+var Status_name = map[int32]string{
+ 0: "UNDEFINED_STATUS",
+ 1: "OK_STATUS",
+ 2: "ERROR_STATUS",
+}
+
+var Status_value = map[string]int32{
+ "UNDEFINED_STATUS": 0,
+ "OK_STATUS": 1,
+ "ERROR_STATUS": 2,
+}
+
+func (x Status) String() string {
+ return proto.EnumName(Status_name, int32(x))
+}
+
+func (Status) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_74aedf0dda1205d8, []int{0}
+}
+
+//Log Level
+type LogLevel int32
+
+const (
+ LogLevel_TRACE LogLevel = 0
+ LogLevel_DEBUG LogLevel = 1
+ LogLevel_INFO LogLevel = 2
+ LogLevel_WARN LogLevel = 3
+ LogLevel_ERROR LogLevel = 4
+)
+
+var LogLevel_name = map[int32]string{
+ 0: "TRACE",
+ 1: "DEBUG",
+ 2: "INFO",
+ 3: "WARN",
+ 4: "ERROR",
+}
+
+var LogLevel_value = map[string]int32{
+ "TRACE": 0,
+ "DEBUG": 1,
+ "INFO": 2,
+ "WARN": 3,
+ "ERROR": 4,
+}
+
+func (x LogLevel) String() string {
+ return proto.EnumName(LogLevel_name, int32(x))
+}
+
+func (LogLevel) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_74aedf0dda1205d8, []int{1}
+}
+
+func init() {
+ proto.RegisterEnum("dmi.Status", Status_name, Status_value)
+ proto.RegisterEnum("dmi.LogLevel", LogLevel_name, LogLevel_value)
+}
+
+func init() { proto.RegisterFile("dmi/commons.proto", fileDescriptor_74aedf0dda1205d8) }
+
+var fileDescriptor_74aedf0dda1205d8 = []byte{
+ // 217 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x34, 0x8f, 0x5f, 0x6b, 0xc2, 0x30,
+ 0x14, 0xc5, 0xfd, 0x37, 0xd1, 0xb0, 0xc1, 0x5d, 0xd8, 0xa7, 0x10, 0x34, 0x0f, 0x3e, 0x8d, 0x3d,
+ 0x48, 0x5d, 0xe3, 0x90, 0x49, 0x0b, 0x69, 0xcb, 0x60, 0x2f, 0xa3, 0x26, 0x77, 0x5d, 0x60, 0x37,
+ 0x57, 0x6a, 0xec, 0xe7, 0x97, 0x0a, 0xbe, 0xfd, 0xce, 0x39, 0x70, 0xe0, 0x27, 0x9e, 0x1d, 0x79,
+ 0x65, 0x99, 0x88, 0xc3, 0x79, 0x75, 0x6a, 0x39, 0xb2, 0x1c, 0x3b, 0xf2, 0x8b, 0x8d, 0x98, 0x16,
+ 0xb1, 0x8e, 0x97, 0xb3, 0x7c, 0x11, 0x50, 0x65, 0xa9, 0xde, 0xed, 0x33, 0x9d, 0xfe, 0x14, 0x65,
+ 0x52, 0x56, 0x05, 0x0c, 0xe4, 0x93, 0x98, 0xe7, 0x9f, 0xf7, 0x38, 0x94, 0x20, 0x1e, 0xb5, 0x31,
+ 0xb9, 0xb9, 0x37, 0xa3, 0xc5, 0x46, 0xcc, 0x0e, 0xdc, 0x1c, 0xb0, 0xc3, 0x7f, 0x39, 0x17, 0x0f,
+ 0xa5, 0x49, 0xde, 0x35, 0x0c, 0x7a, 0x4c, 0xf5, 0xb6, 0xfa, 0x80, 0xa1, 0x9c, 0x89, 0xc9, 0x3e,
+ 0xdb, 0xe5, 0x30, 0xea, 0xe9, 0x2b, 0x31, 0x19, 0x8c, 0xfb, 0xf9, 0xf6, 0x03, 0x93, 0xed, 0xdb,
+ 0xf7, 0x6b, 0xe3, 0xe3, 0xdf, 0xe5, 0xb8, 0xb2, 0x4c, 0x8a, 0x4f, 0x18, 0x2c, 0xb7, 0x4e, 0x39,
+ 0xec, 0xbc, 0xc5, 0x25, 0xd5, 0xa1, 0x6e, 0x90, 0x30, 0xc4, 0xa5, 0x0f, 0x11, 0xdb, 0xdf, 0xda,
+ 0xa2, 0xea, 0xd6, 0xaa, 0x61, 0xe5, 0xc8, 0x1f, 0xa7, 0x37, 0x95, 0xf5, 0x35, 0x00, 0x00, 0xff,
+ 0xff, 0x6b, 0x43, 0x1e, 0x6c, 0xdf, 0x00, 0x00, 0x00,
+}
diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/hw.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/hw.pb.go
new file mode 100644
index 0000000..195169b
--- /dev/null
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/hw.pb.go
@@ -0,0 +1,1871 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: dmi/hw.proto
+
+package dmi
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type ComponentType int32
+
+const (
+ ComponentType_COMPONENT_TYPE_UNDEFINED ComponentType = 0
+ ComponentType_COMPONENT_TYPE_UNKNOWN ComponentType = 1
+ ComponentType_COMPONENT_TYPE_CHASSIS ComponentType = 2
+ ComponentType_COMPONENT_TYPE_BACKPLANE ComponentType = 3
+ ComponentType_COMPONENT_TYPE_CONTAINER ComponentType = 4
+ ComponentType_COMPONENT_TYPE_POWER_SUPPLY ComponentType = 5
+ ComponentType_COMPONENT_TYPE_FAN ComponentType = 6
+ ComponentType_COMPONENT_TYPE_SENSOR ComponentType = 7
+ ComponentType_COMPONENT_TYPE_MODULE ComponentType = 8
+ ComponentType_COMPONENT_TYPE_PORT ComponentType = 9
+ ComponentType_COMPONENT_TYPE_CPU ComponentType = 10
+ ComponentType_COMPONENT_TYPE_BATTERY ComponentType = 11
+ ComponentType_COMPONENT_TYPE_STORAGE ComponentType = 12
+ ComponentType_COMPONENT_TYPE_MEMORY ComponentType = 13
+ // A component of type "TRANSCEIVER" could have 0 or more components of type "PORT" as children.
+ ComponentType_COMPONENT_TYPE_TRANSCEIVER ComponentType = 14
+)
+
+var ComponentType_name = map[int32]string{
+ 0: "COMPONENT_TYPE_UNDEFINED",
+ 1: "COMPONENT_TYPE_UNKNOWN",
+ 2: "COMPONENT_TYPE_CHASSIS",
+ 3: "COMPONENT_TYPE_BACKPLANE",
+ 4: "COMPONENT_TYPE_CONTAINER",
+ 5: "COMPONENT_TYPE_POWER_SUPPLY",
+ 6: "COMPONENT_TYPE_FAN",
+ 7: "COMPONENT_TYPE_SENSOR",
+ 8: "COMPONENT_TYPE_MODULE",
+ 9: "COMPONENT_TYPE_PORT",
+ 10: "COMPONENT_TYPE_CPU",
+ 11: "COMPONENT_TYPE_BATTERY",
+ 12: "COMPONENT_TYPE_STORAGE",
+ 13: "COMPONENT_TYPE_MEMORY",
+ 14: "COMPONENT_TYPE_TRANSCEIVER",
+}
+
+var ComponentType_value = map[string]int32{
+ "COMPONENT_TYPE_UNDEFINED": 0,
+ "COMPONENT_TYPE_UNKNOWN": 1,
+ "COMPONENT_TYPE_CHASSIS": 2,
+ "COMPONENT_TYPE_BACKPLANE": 3,
+ "COMPONENT_TYPE_CONTAINER": 4,
+ "COMPONENT_TYPE_POWER_SUPPLY": 5,
+ "COMPONENT_TYPE_FAN": 6,
+ "COMPONENT_TYPE_SENSOR": 7,
+ "COMPONENT_TYPE_MODULE": 8,
+ "COMPONENT_TYPE_PORT": 9,
+ "COMPONENT_TYPE_CPU": 10,
+ "COMPONENT_TYPE_BATTERY": 11,
+ "COMPONENT_TYPE_STORAGE": 12,
+ "COMPONENT_TYPE_MEMORY": 13,
+ "COMPONENT_TYPE_TRANSCEIVER": 14,
+}
+
+func (x ComponentType) String() string {
+ return proto.EnumName(ComponentType_name, int32(x))
+}
+
+func (ComponentType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{0}
+}
+
+type ComponentAdminState int32
+
+const (
+ ComponentAdminState_COMP_ADMIN_STATE_UNDEFINED ComponentAdminState = 0
+ ComponentAdminState_COMP_ADMIN_STATE_UNKNOWN ComponentAdminState = 1
+ ComponentAdminState_COMP_ADMIN_STATE_LOCKED ComponentAdminState = 2
+ ComponentAdminState_COMP_ADMIN_STATE_SHUTTING_DOWN ComponentAdminState = 3
+ ComponentAdminState_COMP_ADMIN_STATE_UNLOCKED ComponentAdminState = 4
+)
+
+var ComponentAdminState_name = map[int32]string{
+ 0: "COMP_ADMIN_STATE_UNDEFINED",
+ 1: "COMP_ADMIN_STATE_UNKNOWN",
+ 2: "COMP_ADMIN_STATE_LOCKED",
+ 3: "COMP_ADMIN_STATE_SHUTTING_DOWN",
+ 4: "COMP_ADMIN_STATE_UNLOCKED",
+}
+
+var ComponentAdminState_value = map[string]int32{
+ "COMP_ADMIN_STATE_UNDEFINED": 0,
+ "COMP_ADMIN_STATE_UNKNOWN": 1,
+ "COMP_ADMIN_STATE_LOCKED": 2,
+ "COMP_ADMIN_STATE_SHUTTING_DOWN": 3,
+ "COMP_ADMIN_STATE_UNLOCKED": 4,
+}
+
+func (x ComponentAdminState) String() string {
+ return proto.EnumName(ComponentAdminState_name, int32(x))
+}
+
+func (ComponentAdminState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{1}
+}
+
+type ComponentOperState int32
+
+const (
+ ComponentOperState_COMP_OPER_STATE_UNDEFINED ComponentOperState = 0
+ ComponentOperState_COMP_OPER_STATE_UNKNOWN ComponentOperState = 1
+ ComponentOperState_COMP_OPER_STATE_DISABLED ComponentOperState = 2
+ ComponentOperState_COMP_OPER_STATE_ENABLED ComponentOperState = 3
+ ComponentOperState_COMP_OPER_STATE_TESTING ComponentOperState = 4
+)
+
+var ComponentOperState_name = map[int32]string{
+ 0: "COMP_OPER_STATE_UNDEFINED",
+ 1: "COMP_OPER_STATE_UNKNOWN",
+ 2: "COMP_OPER_STATE_DISABLED",
+ 3: "COMP_OPER_STATE_ENABLED",
+ 4: "COMP_OPER_STATE_TESTING",
+}
+
+var ComponentOperState_value = map[string]int32{
+ "COMP_OPER_STATE_UNDEFINED": 0,
+ "COMP_OPER_STATE_UNKNOWN": 1,
+ "COMP_OPER_STATE_DISABLED": 2,
+ "COMP_OPER_STATE_ENABLED": 3,
+ "COMP_OPER_STATE_TESTING": 4,
+}
+
+func (x ComponentOperState) String() string {
+ return proto.EnumName(ComponentOperState_name, int32(x))
+}
+
+func (ComponentOperState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{2}
+}
+
+type ComponentUsageState int32
+
+const (
+ ComponentUsageState_COMP_USAGE_STATE_UNDEFINED ComponentUsageState = 0
+ ComponentUsageState_COMP_USAGE_STATE_UNKNOWN ComponentUsageState = 1
+ ComponentUsageState_COMP_USAGE_STATE_IDLE ComponentUsageState = 2
+ ComponentUsageState_COMP_USAGE_STATE_ACTIVE ComponentUsageState = 3
+ ComponentUsageState_COMP_USAGE_STATE_BUSY ComponentUsageState = 4
+)
+
+var ComponentUsageState_name = map[int32]string{
+ 0: "COMP_USAGE_STATE_UNDEFINED",
+ 1: "COMP_USAGE_STATE_UNKNOWN",
+ 2: "COMP_USAGE_STATE_IDLE",
+ 3: "COMP_USAGE_STATE_ACTIVE",
+ 4: "COMP_USAGE_STATE_BUSY",
+}
+
+var ComponentUsageState_value = map[string]int32{
+ "COMP_USAGE_STATE_UNDEFINED": 0,
+ "COMP_USAGE_STATE_UNKNOWN": 1,
+ "COMP_USAGE_STATE_IDLE": 2,
+ "COMP_USAGE_STATE_ACTIVE": 3,
+ "COMP_USAGE_STATE_BUSY": 4,
+}
+
+func (x ComponentUsageState) String() string {
+ return proto.EnumName(ComponentUsageState_name, int32(x))
+}
+
+func (ComponentUsageState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{3}
+}
+
+type ComponentAlarmState int32
+
+const (
+ ComponentAlarmState_COMP_ALARM_STATE_UNDEFINED ComponentAlarmState = 0
+ ComponentAlarmState_COMP_ALARM_STATE_UNKNOWN ComponentAlarmState = 1
+ ComponentAlarmState_COMP_ALARM_STATE_UNDER_REPAIR ComponentAlarmState = 2
+ ComponentAlarmState_COMP_ALARM_STATE_CRITICAL ComponentAlarmState = 3
+ ComponentAlarmState_COMP_ALARM_STATE_MAJOR ComponentAlarmState = 4
+ ComponentAlarmState_COMP_ALARM_STATE_MINOR ComponentAlarmState = 5
+ ComponentAlarmState_COMP_ALARM_STATE_WARNING ComponentAlarmState = 6
+ ComponentAlarmState_COMP_ALARM_STATE_INDETERMINATE ComponentAlarmState = 7
+)
+
+var ComponentAlarmState_name = map[int32]string{
+ 0: "COMP_ALARM_STATE_UNDEFINED",
+ 1: "COMP_ALARM_STATE_UNKNOWN",
+ 2: "COMP_ALARM_STATE_UNDER_REPAIR",
+ 3: "COMP_ALARM_STATE_CRITICAL",
+ 4: "COMP_ALARM_STATE_MAJOR",
+ 5: "COMP_ALARM_STATE_MINOR",
+ 6: "COMP_ALARM_STATE_WARNING",
+ 7: "COMP_ALARM_STATE_INDETERMINATE",
+}
+
+var ComponentAlarmState_value = map[string]int32{
+ "COMP_ALARM_STATE_UNDEFINED": 0,
+ "COMP_ALARM_STATE_UNKNOWN": 1,
+ "COMP_ALARM_STATE_UNDER_REPAIR": 2,
+ "COMP_ALARM_STATE_CRITICAL": 3,
+ "COMP_ALARM_STATE_MAJOR": 4,
+ "COMP_ALARM_STATE_MINOR": 5,
+ "COMP_ALARM_STATE_WARNING": 6,
+ "COMP_ALARM_STATE_INDETERMINATE": 7,
+}
+
+func (x ComponentAlarmState) String() string {
+ return proto.EnumName(ComponentAlarmState_name, int32(x))
+}
+
+func (ComponentAlarmState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{4}
+}
+
+type ComponentStandbyState int32
+
+const (
+ ComponentStandbyState_COMP_STANDBY_STATE_UNDEFINED ComponentStandbyState = 0
+ ComponentStandbyState_COMP_STANDBY_STATE_UNKNOWN ComponentStandbyState = 1
+ ComponentStandbyState_COMP_STANDBY_STATE_HOT ComponentStandbyState = 2
+ ComponentStandbyState_COMP_STANDBY_STATE_COLD ComponentStandbyState = 3
+ ComponentStandbyState_COMP_STANDBY_STATE_PROVIDING_SERVICE ComponentStandbyState = 4
+)
+
+var ComponentStandbyState_name = map[int32]string{
+ 0: "COMP_STANDBY_STATE_UNDEFINED",
+ 1: "COMP_STANDBY_STATE_UNKNOWN",
+ 2: "COMP_STANDBY_STATE_HOT",
+ 3: "COMP_STANDBY_STATE_COLD",
+ 4: "COMP_STANDBY_STATE_PROVIDING_SERVICE",
+}
+
+var ComponentStandbyState_value = map[string]int32{
+ "COMP_STANDBY_STATE_UNDEFINED": 0,
+ "COMP_STANDBY_STATE_UNKNOWN": 1,
+ "COMP_STANDBY_STATE_HOT": 2,
+ "COMP_STANDBY_STATE_COLD": 3,
+ "COMP_STANDBY_STATE_PROVIDING_SERVICE": 4,
+}
+
+func (x ComponentStandbyState) String() string {
+ return proto.EnumName(ComponentStandbyState_name, int32(x))
+}
+
+func (ComponentStandbyState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{5}
+}
+
+type DataValueType int32
+
+const (
+ DataValueType_VALUE_TYPE_UNDEFINED DataValueType = 0
+ DataValueType_VALUE_TYPE_OTHER DataValueType = 1
+ DataValueType_VALUE_TYPE_UNKNOWN DataValueType = 2
+ DataValueType_VALUE_TYPE_VOLTS_AC DataValueType = 3
+ DataValueType_VALUE_TYPE_VOLTS_DC DataValueType = 4
+ DataValueType_VALUE_TYPE_AMPERES DataValueType = 5
+ DataValueType_VALUE_TYPE_WATTS DataValueType = 6
+ DataValueType_VALUE_TYPE_HERTZ DataValueType = 7
+ DataValueType_VALUE_TYPE_CELSIUS DataValueType = 8
+ DataValueType_VALUE_TYPE_PERCENT_RH DataValueType = 9
+ DataValueType_VALUE_TYPE_RPM DataValueType = 10
+ DataValueType_VALUE_TYPE_CMM DataValueType = 11
+ DataValueType_VALUE_TYPE_TRUTH_VALUE DataValueType = 12
+ DataValueType_VALUE_TYPE_PERCENT DataValueType = 13
+ DataValueType_VALUE_TYPE_METERS DataValueType = 14
+ DataValueType_VALUE_TYPE_BYTES DataValueType = 15
+)
+
+var DataValueType_name = map[int32]string{
+ 0: "VALUE_TYPE_UNDEFINED",
+ 1: "VALUE_TYPE_OTHER",
+ 2: "VALUE_TYPE_UNKNOWN",
+ 3: "VALUE_TYPE_VOLTS_AC",
+ 4: "VALUE_TYPE_VOLTS_DC",
+ 5: "VALUE_TYPE_AMPERES",
+ 6: "VALUE_TYPE_WATTS",
+ 7: "VALUE_TYPE_HERTZ",
+ 8: "VALUE_TYPE_CELSIUS",
+ 9: "VALUE_TYPE_PERCENT_RH",
+ 10: "VALUE_TYPE_RPM",
+ 11: "VALUE_TYPE_CMM",
+ 12: "VALUE_TYPE_TRUTH_VALUE",
+ 13: "VALUE_TYPE_PERCENT",
+ 14: "VALUE_TYPE_METERS",
+ 15: "VALUE_TYPE_BYTES",
+}
+
+var DataValueType_value = map[string]int32{
+ "VALUE_TYPE_UNDEFINED": 0,
+ "VALUE_TYPE_OTHER": 1,
+ "VALUE_TYPE_UNKNOWN": 2,
+ "VALUE_TYPE_VOLTS_AC": 3,
+ "VALUE_TYPE_VOLTS_DC": 4,
+ "VALUE_TYPE_AMPERES": 5,
+ "VALUE_TYPE_WATTS": 6,
+ "VALUE_TYPE_HERTZ": 7,
+ "VALUE_TYPE_CELSIUS": 8,
+ "VALUE_TYPE_PERCENT_RH": 9,
+ "VALUE_TYPE_RPM": 10,
+ "VALUE_TYPE_CMM": 11,
+ "VALUE_TYPE_TRUTH_VALUE": 12,
+ "VALUE_TYPE_PERCENT": 13,
+ "VALUE_TYPE_METERS": 14,
+ "VALUE_TYPE_BYTES": 15,
+}
+
+func (x DataValueType) String() string {
+ return proto.EnumName(DataValueType_name, int32(x))
+}
+
+func (DataValueType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{6}
+}
+
+type ValueScale int32
+
+const (
+ ValueScale_VALUE_SCALE_UNDEFINED ValueScale = 0
+ ValueScale_VALUE_SCALE_YOCTO ValueScale = 1
+ ValueScale_VALUE_SCALE_ZEPTO ValueScale = 2
+ ValueScale_VALUE_SCALE_ATTO ValueScale = 3
+ ValueScale_VALUE_SCALE_FEMTO ValueScale = 4
+ ValueScale_VALUE_SCALE_PICO ValueScale = 5
+ ValueScale_VALUE_SCALE_NANO ValueScale = 6
+ ValueScale_VALUE_SCALE_MICRO ValueScale = 7
+ ValueScale_VALUE_SCALE_MILLI ValueScale = 8
+ ValueScale_VALUE_SCALE_UNITS ValueScale = 9
+ ValueScale_VALUE_SCALE_KILO ValueScale = 10
+ ValueScale_VALUE_SCALE_MEGA ValueScale = 11
+ ValueScale_VALUE_SCALE_GIGA ValueScale = 12
+ ValueScale_VALUE_SCALE_TERA ValueScale = 13
+ ValueScale_VALUE_SCALE_PETA ValueScale = 14
+ ValueScale_VALUE_SCALE_EXA ValueScale = 15
+ ValueScale_VALUE_SCALE_ZETTA ValueScale = 16
+ ValueScale_VALUE_SCALE_YOTTA ValueScale = 17
+)
+
+var ValueScale_name = map[int32]string{
+ 0: "VALUE_SCALE_UNDEFINED",
+ 1: "VALUE_SCALE_YOCTO",
+ 2: "VALUE_SCALE_ZEPTO",
+ 3: "VALUE_SCALE_ATTO",
+ 4: "VALUE_SCALE_FEMTO",
+ 5: "VALUE_SCALE_PICO",
+ 6: "VALUE_SCALE_NANO",
+ 7: "VALUE_SCALE_MICRO",
+ 8: "VALUE_SCALE_MILLI",
+ 9: "VALUE_SCALE_UNITS",
+ 10: "VALUE_SCALE_KILO",
+ 11: "VALUE_SCALE_MEGA",
+ 12: "VALUE_SCALE_GIGA",
+ 13: "VALUE_SCALE_TERA",
+ 14: "VALUE_SCALE_PETA",
+ 15: "VALUE_SCALE_EXA",
+ 16: "VALUE_SCALE_ZETTA",
+ 17: "VALUE_SCALE_YOTTA",
+}
+
+var ValueScale_value = map[string]int32{
+ "VALUE_SCALE_UNDEFINED": 0,
+ "VALUE_SCALE_YOCTO": 1,
+ "VALUE_SCALE_ZEPTO": 2,
+ "VALUE_SCALE_ATTO": 3,
+ "VALUE_SCALE_FEMTO": 4,
+ "VALUE_SCALE_PICO": 5,
+ "VALUE_SCALE_NANO": 6,
+ "VALUE_SCALE_MICRO": 7,
+ "VALUE_SCALE_MILLI": 8,
+ "VALUE_SCALE_UNITS": 9,
+ "VALUE_SCALE_KILO": 10,
+ "VALUE_SCALE_MEGA": 11,
+ "VALUE_SCALE_GIGA": 12,
+ "VALUE_SCALE_TERA": 13,
+ "VALUE_SCALE_PETA": 14,
+ "VALUE_SCALE_EXA": 15,
+ "VALUE_SCALE_ZETTA": 16,
+ "VALUE_SCALE_YOTTA": 17,
+}
+
+func (x ValueScale) String() string {
+ return proto.EnumName(ValueScale_name, int32(x))
+}
+
+func (ValueScale) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{7}
+}
+
+type SensorStatus int32
+
+const (
+ SensorStatus_SENSOR_STATUS_UNDEFINED SensorStatus = 0
+ SensorStatus_SENSOR_STATUS_OK SensorStatus = 1
+ SensorStatus_SENSOR_STATUS_UNAVAILABLE SensorStatus = 2
+ SensorStatus_SENSOR_STATUS_NONOPERATIONAL SensorStatus = 3
+)
+
+var SensorStatus_name = map[int32]string{
+ 0: "SENSOR_STATUS_UNDEFINED",
+ 1: "SENSOR_STATUS_OK",
+ 2: "SENSOR_STATUS_UNAVAILABLE",
+ 3: "SENSOR_STATUS_NONOPERATIONAL",
+}
+
+var SensorStatus_value = map[string]int32{
+ "SENSOR_STATUS_UNDEFINED": 0,
+ "SENSOR_STATUS_OK": 1,
+ "SENSOR_STATUS_UNAVAILABLE": 2,
+ "SENSOR_STATUS_NONOPERATIONAL": 3,
+}
+
+func (x SensorStatus) String() string {
+ return proto.EnumName(SensorStatus_name, int32(x))
+}
+
+func (SensorStatus) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{8}
+}
+
+type PortComponentAttributes_ConnectorType int32
+
+const (
+ PortComponentAttributes_CONNECTOR_TYPE_UNDEFINED PortComponentAttributes_ConnectorType = 0
+ PortComponentAttributes_RJ45 PortComponentAttributes_ConnectorType = 1
+ PortComponentAttributes_FIBER_LC PortComponentAttributes_ConnectorType = 2
+ PortComponentAttributes_FIBER_SC_PC PortComponentAttributes_ConnectorType = 3
+ PortComponentAttributes_FIBER_MPO PortComponentAttributes_ConnectorType = 4
+ PortComponentAttributes_RS232 PortComponentAttributes_ConnectorType = 5
+)
+
+var PortComponentAttributes_ConnectorType_name = map[int32]string{
+ 0: "CONNECTOR_TYPE_UNDEFINED",
+ 1: "RJ45",
+ 2: "FIBER_LC",
+ 3: "FIBER_SC_PC",
+ 4: "FIBER_MPO",
+ 5: "RS232",
+}
+
+var PortComponentAttributes_ConnectorType_value = map[string]int32{
+ "CONNECTOR_TYPE_UNDEFINED": 0,
+ "RJ45": 1,
+ "FIBER_LC": 2,
+ "FIBER_SC_PC": 3,
+ "FIBER_MPO": 4,
+ "RS232": 5,
+}
+
+func (x PortComponentAttributes_ConnectorType) String() string {
+ return proto.EnumName(PortComponentAttributes_ConnectorType_name, int32(x))
+}
+
+func (PortComponentAttributes_ConnectorType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{5, 0}
+}
+
+type PortComponentAttributes_Speed int32
+
+const (
+ PortComponentAttributes_SPEED_UNDEFINED PortComponentAttributes_Speed = 0
+ PortComponentAttributes_DYNAMIC PortComponentAttributes_Speed = 1
+ PortComponentAttributes_GIGABIT_1 PortComponentAttributes_Speed = 2
+ PortComponentAttributes_GIGABIT_10 PortComponentAttributes_Speed = 3
+ PortComponentAttributes_GIGABIT_25 PortComponentAttributes_Speed = 4
+ PortComponentAttributes_GIGABIT_40 PortComponentAttributes_Speed = 5
+ PortComponentAttributes_GIGABIT_100 PortComponentAttributes_Speed = 6
+ PortComponentAttributes_GIGABIT_400 PortComponentAttributes_Speed = 7
+ PortComponentAttributes_MEGABIT_2500 PortComponentAttributes_Speed = 8
+ PortComponentAttributes_MEGABIT_1250 PortComponentAttributes_Speed = 9
+)
+
+var PortComponentAttributes_Speed_name = map[int32]string{
+ 0: "SPEED_UNDEFINED",
+ 1: "DYNAMIC",
+ 2: "GIGABIT_1",
+ 3: "GIGABIT_10",
+ 4: "GIGABIT_25",
+ 5: "GIGABIT_40",
+ 6: "GIGABIT_100",
+ 7: "GIGABIT_400",
+ 8: "MEGABIT_2500",
+ 9: "MEGABIT_1250",
+}
+
+var PortComponentAttributes_Speed_value = map[string]int32{
+ "SPEED_UNDEFINED": 0,
+ "DYNAMIC": 1,
+ "GIGABIT_1": 2,
+ "GIGABIT_10": 3,
+ "GIGABIT_25": 4,
+ "GIGABIT_40": 5,
+ "GIGABIT_100": 6,
+ "GIGABIT_400": 7,
+ "MEGABIT_2500": 8,
+ "MEGABIT_1250": 9,
+}
+
+func (x PortComponentAttributes_Speed) String() string {
+ return proto.EnumName(PortComponentAttributes_Speed_name, int32(x))
+}
+
+func (PortComponentAttributes_Speed) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{5, 1}
+}
+
+type PortComponentAttributes_Protocol int32
+
+const (
+ PortComponentAttributes_PROTOCOL_UNDEFINED PortComponentAttributes_Protocol = 0
+ PortComponentAttributes_ETHERNET PortComponentAttributes_Protocol = 1
+ PortComponentAttributes_GPON PortComponentAttributes_Protocol = 2
+ PortComponentAttributes_XGPON PortComponentAttributes_Protocol = 3
+ PortComponentAttributes_XGSPON PortComponentAttributes_Protocol = 4
+ PortComponentAttributes_GFAST PortComponentAttributes_Protocol = 5
+ PortComponentAttributes_SERIAL PortComponentAttributes_Protocol = 6
+ PortComponentAttributes_EPON PortComponentAttributes_Protocol = 7
+ PortComponentAttributes_BITS PortComponentAttributes_Protocol = 8
+)
+
+var PortComponentAttributes_Protocol_name = map[int32]string{
+ 0: "PROTOCOL_UNDEFINED",
+ 1: "ETHERNET",
+ 2: "GPON",
+ 3: "XGPON",
+ 4: "XGSPON",
+ 5: "GFAST",
+ 6: "SERIAL",
+ 7: "EPON",
+ 8: "BITS",
+}
+
+var PortComponentAttributes_Protocol_value = map[string]int32{
+ "PROTOCOL_UNDEFINED": 0,
+ "ETHERNET": 1,
+ "GPON": 2,
+ "XGPON": 3,
+ "XGSPON": 4,
+ "GFAST": 5,
+ "SERIAL": 6,
+ "EPON": 7,
+ "BITS": 8,
+}
+
+func (x PortComponentAttributes_Protocol) String() string {
+ return proto.EnumName(PortComponentAttributes_Protocol_name, int32(x))
+}
+
+func (PortComponentAttributes_Protocol) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{5, 2}
+}
+
+type PsuComponentAttributes_SupportedVoltage int32
+
+const (
+ PsuComponentAttributes_SUPPORTED_VOLTAGE_UNDEFINED PsuComponentAttributes_SupportedVoltage = 0
+ PsuComponentAttributes_V48 PsuComponentAttributes_SupportedVoltage = 1
+ PsuComponentAttributes_V230 PsuComponentAttributes_SupportedVoltage = 2
+ PsuComponentAttributes_V115 PsuComponentAttributes_SupportedVoltage = 3
+)
+
+var PsuComponentAttributes_SupportedVoltage_name = map[int32]string{
+ 0: "SUPPORTED_VOLTAGE_UNDEFINED",
+ 1: "V48",
+ 2: "V230",
+ 3: "V115",
+}
+
+var PsuComponentAttributes_SupportedVoltage_value = map[string]int32{
+ "SUPPORTED_VOLTAGE_UNDEFINED": 0,
+ "V48": 1,
+ "V230": 2,
+ "V115": 3,
+}
+
+func (x PsuComponentAttributes_SupportedVoltage) String() string {
+ return proto.EnumName(PsuComponentAttributes_SupportedVoltage_name, int32(x))
+}
+
+func (PsuComponentAttributes_SupportedVoltage) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{7, 0}
+}
+
+type TransceiverComponentsAttributes_FormFactor int32
+
+const (
+ TransceiverComponentsAttributes_FORM_FACTOR_UNKNOWN TransceiverComponentsAttributes_FormFactor = 0
+ TransceiverComponentsAttributes_QSFP TransceiverComponentsAttributes_FormFactor = 1
+ TransceiverComponentsAttributes_QSFP_PLUS TransceiverComponentsAttributes_FormFactor = 2
+ TransceiverComponentsAttributes_QSFP28 TransceiverComponentsAttributes_FormFactor = 3
+ TransceiverComponentsAttributes_SFP TransceiverComponentsAttributes_FormFactor = 4
+ TransceiverComponentsAttributes_SFP_PLUS TransceiverComponentsAttributes_FormFactor = 5
+ TransceiverComponentsAttributes_XFP TransceiverComponentsAttributes_FormFactor = 6
+ TransceiverComponentsAttributes_CFP4 TransceiverComponentsAttributes_FormFactor = 7
+ TransceiverComponentsAttributes_CFP2 TransceiverComponentsAttributes_FormFactor = 8
+ TransceiverComponentsAttributes_CPAK TransceiverComponentsAttributes_FormFactor = 9
+ TransceiverComponentsAttributes_X2 TransceiverComponentsAttributes_FormFactor = 10
+ TransceiverComponentsAttributes_OTHER TransceiverComponentsAttributes_FormFactor = 11
+ TransceiverComponentsAttributes_CFP TransceiverComponentsAttributes_FormFactor = 12
+ TransceiverComponentsAttributes_CFP2_ACO TransceiverComponentsAttributes_FormFactor = 13
+ TransceiverComponentsAttributes_CFP2_DCO TransceiverComponentsAttributes_FormFactor = 14
+)
+
+var TransceiverComponentsAttributes_FormFactor_name = map[int32]string{
+ 0: "FORM_FACTOR_UNKNOWN",
+ 1: "QSFP",
+ 2: "QSFP_PLUS",
+ 3: "QSFP28",
+ 4: "SFP",
+ 5: "SFP_PLUS",
+ 6: "XFP",
+ 7: "CFP4",
+ 8: "CFP2",
+ 9: "CPAK",
+ 10: "X2",
+ 11: "OTHER",
+ 12: "CFP",
+ 13: "CFP2_ACO",
+ 14: "CFP2_DCO",
+}
+
+var TransceiverComponentsAttributes_FormFactor_value = map[string]int32{
+ "FORM_FACTOR_UNKNOWN": 0,
+ "QSFP": 1,
+ "QSFP_PLUS": 2,
+ "QSFP28": 3,
+ "SFP": 4,
+ "SFP_PLUS": 5,
+ "XFP": 6,
+ "CFP4": 7,
+ "CFP2": 8,
+ "CPAK": 9,
+ "X2": 10,
+ "OTHER": 11,
+ "CFP": 12,
+ "CFP2_ACO": 13,
+ "CFP2_DCO": 14,
+}
+
+func (x TransceiverComponentsAttributes_FormFactor) String() string {
+ return proto.EnumName(TransceiverComponentsAttributes_FormFactor_name, int32(x))
+}
+
+func (TransceiverComponentsAttributes_FormFactor) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{8, 0}
+}
+
+type TransceiverComponentsAttributes_Type int32
+
+const (
+ TransceiverComponentsAttributes_TYPE_UNKNOWN TransceiverComponentsAttributes_Type = 0
+ TransceiverComponentsAttributes_ETHERNET TransceiverComponentsAttributes_Type = 1
+ TransceiverComponentsAttributes_GPON TransceiverComponentsAttributes_Type = 2
+ TransceiverComponentsAttributes_XGPON TransceiverComponentsAttributes_Type = 3
+ TransceiverComponentsAttributes_XGSPON TransceiverComponentsAttributes_Type = 4
+ TransceiverComponentsAttributes_CPON TransceiverComponentsAttributes_Type = 5
+ TransceiverComponentsAttributes_NG_PON2 TransceiverComponentsAttributes_Type = 6
+ TransceiverComponentsAttributes_EPON TransceiverComponentsAttributes_Type = 7
+)
+
+var TransceiverComponentsAttributes_Type_name = map[int32]string{
+ 0: "TYPE_UNKNOWN",
+ 1: "ETHERNET",
+ 2: "GPON",
+ 3: "XGPON",
+ 4: "XGSPON",
+ 5: "CPON",
+ 6: "NG_PON2",
+ 7: "EPON",
+}
+
+var TransceiverComponentsAttributes_Type_value = map[string]int32{
+ "TYPE_UNKNOWN": 0,
+ "ETHERNET": 1,
+ "GPON": 2,
+ "XGPON": 3,
+ "XGSPON": 4,
+ "CPON": 5,
+ "NG_PON2": 6,
+ "EPON": 7,
+}
+
+func (x TransceiverComponentsAttributes_Type) String() string {
+ return proto.EnumName(TransceiverComponentsAttributes_Type_name, int32(x))
+}
+
+func (TransceiverComponentsAttributes_Type) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{8, 1}
+}
+
+type Uuid struct {
+ Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Uuid) Reset() { *m = Uuid{} }
+func (m *Uuid) String() string { return proto.CompactTextString(m) }
+func (*Uuid) ProtoMessage() {}
+func (*Uuid) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{0}
+}
+
+func (m *Uuid) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Uuid.Unmarshal(m, b)
+}
+func (m *Uuid) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Uuid.Marshal(b, m, deterministic)
+}
+func (m *Uuid) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Uuid.Merge(m, src)
+}
+func (m *Uuid) XXX_Size() int {
+ return xxx_messageInfo_Uuid.Size(m)
+}
+func (m *Uuid) XXX_DiscardUnknown() {
+ xxx_messageInfo_Uuid.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Uuid proto.InternalMessageInfo
+
+func (m *Uuid) GetUuid() string {
+ if m != nil {
+ return m.Uuid
+ }
+ return ""
+}
+
+type HardwareID struct {
+ Uuid *Uuid `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HardwareID) Reset() { *m = HardwareID{} }
+func (m *HardwareID) String() string { return proto.CompactTextString(m) }
+func (*HardwareID) ProtoMessage() {}
+func (*HardwareID) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{1}
+}
+
+func (m *HardwareID) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_HardwareID.Unmarshal(m, b)
+}
+func (m *HardwareID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_HardwareID.Marshal(b, m, deterministic)
+}
+func (m *HardwareID) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HardwareID.Merge(m, src)
+}
+func (m *HardwareID) XXX_Size() int {
+ return xxx_messageInfo_HardwareID.Size(m)
+}
+func (m *HardwareID) XXX_DiscardUnknown() {
+ xxx_messageInfo_HardwareID.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HardwareID proto.InternalMessageInfo
+
+func (m *HardwareID) GetUuid() *Uuid {
+ if m != nil {
+ return m.Uuid
+ }
+ return nil
+}
+
+type Uri struct {
+ Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Uri) Reset() { *m = Uri{} }
+func (m *Uri) String() string { return proto.CompactTextString(m) }
+func (*Uri) ProtoMessage() {}
+func (*Uri) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{2}
+}
+
+func (m *Uri) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Uri.Unmarshal(m, b)
+}
+func (m *Uri) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Uri.Marshal(b, m, deterministic)
+}
+func (m *Uri) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Uri.Merge(m, src)
+}
+func (m *Uri) XXX_Size() int {
+ return xxx_messageInfo_Uri.Size(m)
+}
+func (m *Uri) XXX_DiscardUnknown() {
+ xxx_messageInfo_Uri.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Uri proto.InternalMessageInfo
+
+func (m *Uri) GetUri() string {
+ if m != nil {
+ return m.Uri
+ }
+ return ""
+}
+
+type ComponentState struct {
+ StateLastChanged *timestamp.Timestamp `protobuf:"bytes,1,opt,name=state_last_changed,json=stateLastChanged,proto3" json:"state_last_changed,omitempty"`
+ AdminState ComponentAdminState `protobuf:"varint,2,opt,name=admin_state,json=adminState,proto3,enum=dmi.ComponentAdminState" json:"admin_state,omitempty"`
+ OperState ComponentOperState `protobuf:"varint,3,opt,name=oper_state,json=operState,proto3,enum=dmi.ComponentOperState" json:"oper_state,omitempty"`
+ UsageState ComponentUsageState `protobuf:"varint,4,opt,name=usage_state,json=usageState,proto3,enum=dmi.ComponentUsageState" json:"usage_state,omitempty"`
+ AlarmState ComponentAlarmState `protobuf:"varint,5,opt,name=alarm_state,json=alarmState,proto3,enum=dmi.ComponentAlarmState" json:"alarm_state,omitempty"`
+ StandbyState ComponentStandbyState `protobuf:"varint,6,opt,name=standby_state,json=standbyState,proto3,enum=dmi.ComponentStandbyState" json:"standby_state,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ComponentState) Reset() { *m = ComponentState{} }
+func (m *ComponentState) String() string { return proto.CompactTextString(m) }
+func (*ComponentState) ProtoMessage() {}
+func (*ComponentState) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{3}
+}
+
+func (m *ComponentState) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ComponentState.Unmarshal(m, b)
+}
+func (m *ComponentState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ComponentState.Marshal(b, m, deterministic)
+}
+func (m *ComponentState) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ComponentState.Merge(m, src)
+}
+func (m *ComponentState) XXX_Size() int {
+ return xxx_messageInfo_ComponentState.Size(m)
+}
+func (m *ComponentState) XXX_DiscardUnknown() {
+ xxx_messageInfo_ComponentState.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ComponentState proto.InternalMessageInfo
+
+func (m *ComponentState) GetStateLastChanged() *timestamp.Timestamp {
+ if m != nil {
+ return m.StateLastChanged
+ }
+ return nil
+}
+
+func (m *ComponentState) GetAdminState() ComponentAdminState {
+ if m != nil {
+ return m.AdminState
+ }
+ return ComponentAdminState_COMP_ADMIN_STATE_UNDEFINED
+}
+
+func (m *ComponentState) GetOperState() ComponentOperState {
+ if m != nil {
+ return m.OperState
+ }
+ return ComponentOperState_COMP_OPER_STATE_UNDEFINED
+}
+
+func (m *ComponentState) GetUsageState() ComponentUsageState {
+ if m != nil {
+ return m.UsageState
+ }
+ return ComponentUsageState_COMP_USAGE_STATE_UNDEFINED
+}
+
+func (m *ComponentState) GetAlarmState() ComponentAlarmState {
+ if m != nil {
+ return m.AlarmState
+ }
+ return ComponentAlarmState_COMP_ALARM_STATE_UNDEFINED
+}
+
+func (m *ComponentState) GetStandbyState() ComponentStandbyState {
+ if m != nil {
+ return m.StandbyState
+ }
+ return ComponentStandbyState_COMP_STANDBY_STATE_UNDEFINED
+}
+
+type ComponentSensorData struct {
+ Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
+ Type DataValueType `protobuf:"varint,2,opt,name=type,proto3,enum=dmi.DataValueType" json:"type,omitempty"`
+ Scale ValueScale `protobuf:"varint,3,opt,name=scale,proto3,enum=dmi.ValueScale" json:"scale,omitempty"`
+ Precision int32 `protobuf:"varint,4,opt,name=precision,proto3" json:"precision,omitempty"`
+ Status SensorStatus `protobuf:"varint,5,opt,name=status,proto3,enum=dmi.SensorStatus" json:"status,omitempty"`
+ UnitsDisplay string `protobuf:"bytes,6,opt,name=units_display,json=unitsDisplay,proto3" json:"units_display,omitempty"`
+ Timestamp *timestamp.Timestamp `protobuf:"bytes,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ ValueUpdateRate uint32 `protobuf:"varint,8,opt,name=value_update_rate,json=valueUpdateRate,proto3" json:"value_update_rate,omitempty"`
+ // data_type can be of the string representation of MetricNames or something else as well
+ DataType string `protobuf:"bytes,9,opt,name=data_type,json=dataType,proto3" json:"data_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ComponentSensorData) Reset() { *m = ComponentSensorData{} }
+func (m *ComponentSensorData) String() string { return proto.CompactTextString(m) }
+func (*ComponentSensorData) ProtoMessage() {}
+func (*ComponentSensorData) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{4}
+}
+
+func (m *ComponentSensorData) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ComponentSensorData.Unmarshal(m, b)
+}
+func (m *ComponentSensorData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ComponentSensorData.Marshal(b, m, deterministic)
+}
+func (m *ComponentSensorData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ComponentSensorData.Merge(m, src)
+}
+func (m *ComponentSensorData) XXX_Size() int {
+ return xxx_messageInfo_ComponentSensorData.Size(m)
+}
+func (m *ComponentSensorData) XXX_DiscardUnknown() {
+ xxx_messageInfo_ComponentSensorData.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ComponentSensorData proto.InternalMessageInfo
+
+func (m *ComponentSensorData) GetValue() int32 {
+ if m != nil {
+ return m.Value
+ }
+ return 0
+}
+
+func (m *ComponentSensorData) GetType() DataValueType {
+ if m != nil {
+ return m.Type
+ }
+ return DataValueType_VALUE_TYPE_UNDEFINED
+}
+
+func (m *ComponentSensorData) GetScale() ValueScale {
+ if m != nil {
+ return m.Scale
+ }
+ return ValueScale_VALUE_SCALE_UNDEFINED
+}
+
+func (m *ComponentSensorData) GetPrecision() int32 {
+ if m != nil {
+ return m.Precision
+ }
+ return 0
+}
+
+func (m *ComponentSensorData) GetStatus() SensorStatus {
+ if m != nil {
+ return m.Status
+ }
+ return SensorStatus_SENSOR_STATUS_UNDEFINED
+}
+
+func (m *ComponentSensorData) GetUnitsDisplay() string {
+ if m != nil {
+ return m.UnitsDisplay
+ }
+ return ""
+}
+
+func (m *ComponentSensorData) GetTimestamp() *timestamp.Timestamp {
+ if m != nil {
+ return m.Timestamp
+ }
+ return nil
+}
+
+func (m *ComponentSensorData) GetValueUpdateRate() uint32 {
+ if m != nil {
+ return m.ValueUpdateRate
+ }
+ return 0
+}
+
+func (m *ComponentSensorData) GetDataType() string {
+ if m != nil {
+ return m.DataType
+ }
+ return ""
+}
+
+type PortComponentAttributes struct {
+ ConnectorType PortComponentAttributes_ConnectorType `protobuf:"varint,1,opt,name=connector_type,json=connectorType,proto3,enum=dmi.PortComponentAttributes_ConnectorType" json:"connector_type,omitempty"`
+ Speed PortComponentAttributes_Speed `protobuf:"varint,2,opt,name=speed,proto3,enum=dmi.PortComponentAttributes_Speed" json:"speed,omitempty"`
+ Protocol PortComponentAttributes_Protocol `protobuf:"varint,3,opt,name=protocol,proto3,enum=dmi.PortComponentAttributes_Protocol" json:"protocol,omitempty"`
+ PhysicalLabel string `protobuf:"bytes,4,opt,name=physical_label,json=physicalLabel,proto3" json:"physical_label,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PortComponentAttributes) Reset() { *m = PortComponentAttributes{} }
+func (m *PortComponentAttributes) String() string { return proto.CompactTextString(m) }
+func (*PortComponentAttributes) ProtoMessage() {}
+func (*PortComponentAttributes) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{5}
+}
+
+func (m *PortComponentAttributes) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PortComponentAttributes.Unmarshal(m, b)
+}
+func (m *PortComponentAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PortComponentAttributes.Marshal(b, m, deterministic)
+}
+func (m *PortComponentAttributes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PortComponentAttributes.Merge(m, src)
+}
+func (m *PortComponentAttributes) XXX_Size() int {
+ return xxx_messageInfo_PortComponentAttributes.Size(m)
+}
+func (m *PortComponentAttributes) XXX_DiscardUnknown() {
+ xxx_messageInfo_PortComponentAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PortComponentAttributes proto.InternalMessageInfo
+
+func (m *PortComponentAttributes) GetConnectorType() PortComponentAttributes_ConnectorType {
+ if m != nil {
+ return m.ConnectorType
+ }
+ return PortComponentAttributes_CONNECTOR_TYPE_UNDEFINED
+}
+
+func (m *PortComponentAttributes) GetSpeed() PortComponentAttributes_Speed {
+ if m != nil {
+ return m.Speed
+ }
+ return PortComponentAttributes_SPEED_UNDEFINED
+}
+
+func (m *PortComponentAttributes) GetProtocol() PortComponentAttributes_Protocol {
+ if m != nil {
+ return m.Protocol
+ }
+ return PortComponentAttributes_PROTOCOL_UNDEFINED
+}
+
+func (m *PortComponentAttributes) GetPhysicalLabel() string {
+ if m != nil {
+ return m.PhysicalLabel
+ }
+ return ""
+}
+
+type ContainerComponentAttributes struct {
+ PhysicalLabel string `protobuf:"bytes,1,opt,name=physical_label,json=physicalLabel,proto3" json:"physical_label,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ContainerComponentAttributes) Reset() { *m = ContainerComponentAttributes{} }
+func (m *ContainerComponentAttributes) String() string { return proto.CompactTextString(m) }
+func (*ContainerComponentAttributes) ProtoMessage() {}
+func (*ContainerComponentAttributes) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{6}
+}
+
+func (m *ContainerComponentAttributes) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ContainerComponentAttributes.Unmarshal(m, b)
+}
+func (m *ContainerComponentAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ContainerComponentAttributes.Marshal(b, m, deterministic)
+}
+func (m *ContainerComponentAttributes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContainerComponentAttributes.Merge(m, src)
+}
+func (m *ContainerComponentAttributes) XXX_Size() int {
+ return xxx_messageInfo_ContainerComponentAttributes.Size(m)
+}
+func (m *ContainerComponentAttributes) XXX_DiscardUnknown() {
+ xxx_messageInfo_ContainerComponentAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ContainerComponentAttributes proto.InternalMessageInfo
+
+func (m *ContainerComponentAttributes) GetPhysicalLabel() string {
+ if m != nil {
+ return m.PhysicalLabel
+ }
+ return ""
+}
+
+type PsuComponentAttributes struct {
+ SupportedVoltage PsuComponentAttributes_SupportedVoltage `protobuf:"varint,1,opt,name=supported_voltage,json=supportedVoltage,proto3,enum=dmi.PsuComponentAttributes_SupportedVoltage" json:"supported_voltage,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PsuComponentAttributes) Reset() { *m = PsuComponentAttributes{} }
+func (m *PsuComponentAttributes) String() string { return proto.CompactTextString(m) }
+func (*PsuComponentAttributes) ProtoMessage() {}
+func (*PsuComponentAttributes) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{7}
+}
+
+func (m *PsuComponentAttributes) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PsuComponentAttributes.Unmarshal(m, b)
+}
+func (m *PsuComponentAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PsuComponentAttributes.Marshal(b, m, deterministic)
+}
+func (m *PsuComponentAttributes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PsuComponentAttributes.Merge(m, src)
+}
+func (m *PsuComponentAttributes) XXX_Size() int {
+ return xxx_messageInfo_PsuComponentAttributes.Size(m)
+}
+func (m *PsuComponentAttributes) XXX_DiscardUnknown() {
+ xxx_messageInfo_PsuComponentAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PsuComponentAttributes proto.InternalMessageInfo
+
+func (m *PsuComponentAttributes) GetSupportedVoltage() PsuComponentAttributes_SupportedVoltage {
+ if m != nil {
+ return m.SupportedVoltage
+ }
+ return PsuComponentAttributes_SUPPORTED_VOLTAGE_UNDEFINED
+}
+
+type TransceiverComponentsAttributes struct {
+ FormFactor TransceiverComponentsAttributes_FormFactor `protobuf:"varint,1,opt,name=form_factor,json=formFactor,proto3,enum=dmi.TransceiverComponentsAttributes_FormFactor" json:"form_factor,omitempty"`
+ TransType TransceiverComponentsAttributes_Type `protobuf:"varint,2,opt,name=trans_type,json=transType,proto3,enum=dmi.TransceiverComponentsAttributes_Type" json:"trans_type,omitempty"`
+ // The maximum reach that can be achieved by this transceiver
+ MaxDistance uint32 `protobuf:"varint,3,opt,name=max_distance,json=maxDistance,proto3" json:"max_distance,omitempty"`
+ MaxDistanceScale ValueScale `protobuf:"varint,4,opt,name=max_distance_scale,json=maxDistanceScale,proto3,enum=dmi.ValueScale" json:"max_distance_scale,omitempty"`
+ // The receive and transmit wavelengths that the transeiver operates on
+ RxWavelength []uint32 `protobuf:"varint,5,rep,packed,name=rx_wavelength,json=rxWavelength,proto3" json:"rx_wavelength,omitempty"`
+ TxWavelength []uint32 `protobuf:"varint,6,rep,packed,name=tx_wavelength,json=txWavelength,proto3" json:"tx_wavelength,omitempty"`
+ WavelengthScale ValueScale `protobuf:"varint,7,opt,name=wavelength_scale,json=wavelengthScale,proto3,enum=dmi.ValueScale" json:"wavelength_scale,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *TransceiverComponentsAttributes) Reset() { *m = TransceiverComponentsAttributes{} }
+func (m *TransceiverComponentsAttributes) String() string { return proto.CompactTextString(m) }
+func (*TransceiverComponentsAttributes) ProtoMessage() {}
+func (*TransceiverComponentsAttributes) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{8}
+}
+
+func (m *TransceiverComponentsAttributes) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_TransceiverComponentsAttributes.Unmarshal(m, b)
+}
+func (m *TransceiverComponentsAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_TransceiverComponentsAttributes.Marshal(b, m, deterministic)
+}
+func (m *TransceiverComponentsAttributes) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TransceiverComponentsAttributes.Merge(m, src)
+}
+func (m *TransceiverComponentsAttributes) XXX_Size() int {
+ return xxx_messageInfo_TransceiverComponentsAttributes.Size(m)
+}
+func (m *TransceiverComponentsAttributes) XXX_DiscardUnknown() {
+ xxx_messageInfo_TransceiverComponentsAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TransceiverComponentsAttributes proto.InternalMessageInfo
+
+func (m *TransceiverComponentsAttributes) GetFormFactor() TransceiverComponentsAttributes_FormFactor {
+ if m != nil {
+ return m.FormFactor
+ }
+ return TransceiverComponentsAttributes_FORM_FACTOR_UNKNOWN
+}
+
+func (m *TransceiverComponentsAttributes) GetTransType() TransceiverComponentsAttributes_Type {
+ if m != nil {
+ return m.TransType
+ }
+ return TransceiverComponentsAttributes_TYPE_UNKNOWN
+}
+
+func (m *TransceiverComponentsAttributes) GetMaxDistance() uint32 {
+ if m != nil {
+ return m.MaxDistance
+ }
+ return 0
+}
+
+func (m *TransceiverComponentsAttributes) GetMaxDistanceScale() ValueScale {
+ if m != nil {
+ return m.MaxDistanceScale
+ }
+ return ValueScale_VALUE_SCALE_UNDEFINED
+}
+
+func (m *TransceiverComponentsAttributes) GetRxWavelength() []uint32 {
+ if m != nil {
+ return m.RxWavelength
+ }
+ return nil
+}
+
+func (m *TransceiverComponentsAttributes) GetTxWavelength() []uint32 {
+ if m != nil {
+ return m.TxWavelength
+ }
+ return nil
+}
+
+func (m *TransceiverComponentsAttributes) GetWavelengthScale() ValueScale {
+ if m != nil {
+ return m.WavelengthScale
+ }
+ return ValueScale_VALUE_SCALE_UNDEFINED
+}
+
+type Component struct {
+ // The name of a component uniquely identifies a component within the hardware
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Class ComponentType `protobuf:"varint,2,opt,name=class,proto3,enum=dmi.ComponentType" json:"class,omitempty"`
+ Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+ // The name of the parent of this component, empty string("") in case of the root component
+ Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
+ ParentRelPos int32 `protobuf:"varint,5,opt,name=parent_rel_pos,json=parentRelPos,proto3" json:"parent_rel_pos,omitempty"`
+ Children []*Component `protobuf:"bytes,6,rep,name=children,proto3" json:"children,omitempty"`
+ HardwareRev string `protobuf:"bytes,7,opt,name=hardware_rev,json=hardwareRev,proto3" json:"hardware_rev,omitempty"`
+ FirmwareRev string `protobuf:"bytes,8,opt,name=firmware_rev,json=firmwareRev,proto3" json:"firmware_rev,omitempty"`
+ SoftwareRev string `protobuf:"bytes,9,opt,name=software_rev,json=softwareRev,proto3" json:"software_rev,omitempty"`
+ SerialNum string `protobuf:"bytes,10,opt,name=serial_num,json=serialNum,proto3" json:"serial_num,omitempty"`
+ MfgName string `protobuf:"bytes,11,opt,name=mfg_name,json=mfgName,proto3" json:"mfg_name,omitempty"`
+ // Apart from the definition of this attribute as defined in RFC 8348, implementations could choose to carry
+ // the manufacturer's part number in this attribute.
+ ModelName string `protobuf:"bytes,12,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
+ Alias string `protobuf:"bytes,13,opt,name=alias,proto3" json:"alias,omitempty"`
+ AssetId string `protobuf:"bytes,14,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"`
+ IsFru bool `protobuf:"varint,15,opt,name=is_fru,json=isFru,proto3" json:"is_fru,omitempty"`
+ MfgDate *timestamp.Timestamp `protobuf:"bytes,16,opt,name=mfg_date,json=mfgDate,proto3" json:"mfg_date,omitempty"`
+ Uri *Uri `protobuf:"bytes,17,opt,name=uri,proto3" json:"uri,omitempty"`
+ // The uuid of the component uniquely identifies the component across the entire system
+ Uuid *Uuid `protobuf:"bytes,18,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ State *ComponentState `protobuf:"bytes,19,opt,name=state,proto3" json:"state,omitempty"`
+ SensorData []*ComponentSensorData `protobuf:"bytes,20,rep,name=sensor_data,json=sensorData,proto3" json:"sensor_data,omitempty"`
+ // The attribute 'specific' can be populated for components where more details are required by the users of the DMI interface
+ //
+ // Types that are valid to be assigned to Specific:
+ // *Component_PortAttr
+ // *Component_ContainerAttr
+ // *Component_PsuAttr
+ // *Component_TransceiverAttr
+ Specific isComponent_Specific `protobuf_oneof:"specific"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Component) Reset() { *m = Component{} }
+func (m *Component) String() string { return proto.CompactTextString(m) }
+func (*Component) ProtoMessage() {}
+func (*Component) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{9}
+}
+
+func (m *Component) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Component.Unmarshal(m, b)
+}
+func (m *Component) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Component.Marshal(b, m, deterministic)
+}
+func (m *Component) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Component.Merge(m, src)
+}
+func (m *Component) XXX_Size() int {
+ return xxx_messageInfo_Component.Size(m)
+}
+func (m *Component) XXX_DiscardUnknown() {
+ xxx_messageInfo_Component.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Component proto.InternalMessageInfo
+
+func (m *Component) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *Component) GetClass() ComponentType {
+ if m != nil {
+ return m.Class
+ }
+ return ComponentType_COMPONENT_TYPE_UNDEFINED
+}
+
+func (m *Component) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+func (m *Component) GetParent() string {
+ if m != nil {
+ return m.Parent
+ }
+ return ""
+}
+
+func (m *Component) GetParentRelPos() int32 {
+ if m != nil {
+ return m.ParentRelPos
+ }
+ return 0
+}
+
+func (m *Component) GetChildren() []*Component {
+ if m != nil {
+ return m.Children
+ }
+ return nil
+}
+
+func (m *Component) GetHardwareRev() string {
+ if m != nil {
+ return m.HardwareRev
+ }
+ return ""
+}
+
+func (m *Component) GetFirmwareRev() string {
+ if m != nil {
+ return m.FirmwareRev
+ }
+ return ""
+}
+
+func (m *Component) GetSoftwareRev() string {
+ if m != nil {
+ return m.SoftwareRev
+ }
+ return ""
+}
+
+func (m *Component) GetSerialNum() string {
+ if m != nil {
+ return m.SerialNum
+ }
+ return ""
+}
+
+func (m *Component) GetMfgName() string {
+ if m != nil {
+ return m.MfgName
+ }
+ return ""
+}
+
+func (m *Component) GetModelName() string {
+ if m != nil {
+ return m.ModelName
+ }
+ return ""
+}
+
+func (m *Component) GetAlias() string {
+ if m != nil {
+ return m.Alias
+ }
+ return ""
+}
+
+func (m *Component) GetAssetId() string {
+ if m != nil {
+ return m.AssetId
+ }
+ return ""
+}
+
+func (m *Component) GetIsFru() bool {
+ if m != nil {
+ return m.IsFru
+ }
+ return false
+}
+
+func (m *Component) GetMfgDate() *timestamp.Timestamp {
+ if m != nil {
+ return m.MfgDate
+ }
+ return nil
+}
+
+func (m *Component) GetUri() *Uri {
+ if m != nil {
+ return m.Uri
+ }
+ return nil
+}
+
+func (m *Component) GetUuid() *Uuid {
+ if m != nil {
+ return m.Uuid
+ }
+ return nil
+}
+
+func (m *Component) GetState() *ComponentState {
+ if m != nil {
+ return m.State
+ }
+ return nil
+}
+
+func (m *Component) GetSensorData() []*ComponentSensorData {
+ if m != nil {
+ return m.SensorData
+ }
+ return nil
+}
+
+type isComponent_Specific interface {
+ isComponent_Specific()
+}
+
+type Component_PortAttr struct {
+ PortAttr *PortComponentAttributes `protobuf:"bytes,50,opt,name=port_attr,json=portAttr,proto3,oneof"`
+}
+
+type Component_ContainerAttr struct {
+ ContainerAttr *ContainerComponentAttributes `protobuf:"bytes,51,opt,name=container_attr,json=containerAttr,proto3,oneof"`
+}
+
+type Component_PsuAttr struct {
+ PsuAttr *PsuComponentAttributes `protobuf:"bytes,52,opt,name=psu_attr,json=psuAttr,proto3,oneof"`
+}
+
+type Component_TransceiverAttr struct {
+ TransceiverAttr *TransceiverComponentsAttributes `protobuf:"bytes,53,opt,name=transceiver_attr,json=transceiverAttr,proto3,oneof"`
+}
+
+func (*Component_PortAttr) isComponent_Specific() {}
+
+func (*Component_ContainerAttr) isComponent_Specific() {}
+
+func (*Component_PsuAttr) isComponent_Specific() {}
+
+func (*Component_TransceiverAttr) isComponent_Specific() {}
+
+func (m *Component) GetSpecific() isComponent_Specific {
+ if m != nil {
+ return m.Specific
+ }
+ return nil
+}
+
+func (m *Component) GetPortAttr() *PortComponentAttributes {
+ if x, ok := m.GetSpecific().(*Component_PortAttr); ok {
+ return x.PortAttr
+ }
+ return nil
+}
+
+func (m *Component) GetContainerAttr() *ContainerComponentAttributes {
+ if x, ok := m.GetSpecific().(*Component_ContainerAttr); ok {
+ return x.ContainerAttr
+ }
+ return nil
+}
+
+func (m *Component) GetPsuAttr() *PsuComponentAttributes {
+ if x, ok := m.GetSpecific().(*Component_PsuAttr); ok {
+ return x.PsuAttr
+ }
+ return nil
+}
+
+func (m *Component) GetTransceiverAttr() *TransceiverComponentsAttributes {
+ if x, ok := m.GetSpecific().(*Component_TransceiverAttr); ok {
+ return x.TransceiverAttr
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*Component) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*Component_PortAttr)(nil),
+ (*Component_ContainerAttr)(nil),
+ (*Component_PsuAttr)(nil),
+ (*Component_TransceiverAttr)(nil),
+ }
+}
+
+type Hardware struct {
+ LastChange *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
+ // Each HW has one parent/root and all other components are children of this
+ // The class of the root component would be set as UNDEFINED
+ Root *Component `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
+ // TODO: Authentication?
+ // Timestamp at which the hardware last booted
+ LastBooted *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_booted,json=lastBooted,proto3" json:"last_booted,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Hardware) Reset() { *m = Hardware{} }
+func (m *Hardware) String() string { return proto.CompactTextString(m) }
+func (*Hardware) ProtoMessage() {}
+func (*Hardware) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{10}
+}
+
+func (m *Hardware) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Hardware.Unmarshal(m, b)
+}
+func (m *Hardware) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Hardware.Marshal(b, m, deterministic)
+}
+func (m *Hardware) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Hardware.Merge(m, src)
+}
+func (m *Hardware) XXX_Size() int {
+ return xxx_messageInfo_Hardware.Size(m)
+}
+func (m *Hardware) XXX_DiscardUnknown() {
+ xxx_messageInfo_Hardware.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Hardware proto.InternalMessageInfo
+
+func (m *Hardware) GetLastChange() *timestamp.Timestamp {
+ if m != nil {
+ return m.LastChange
+ }
+ return nil
+}
+
+func (m *Hardware) GetRoot() *Component {
+ if m != nil {
+ return m.Root
+ }
+ return nil
+}
+
+func (m *Hardware) GetLastBooted() *timestamp.Timestamp {
+ if m != nil {
+ return m.LastBooted
+ }
+ return nil
+}
+
+// The attributes of a component which are modifiable from the client side
+type ModifiableComponent struct {
+ // The name has to be unique for each component within the hardware and implementations need to
+ // ascertain this when modifying the name
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Class ComponentType `protobuf:"varint,2,opt,name=class,proto3,enum=dmi.ComponentType" json:"class,omitempty"`
+ Parent *Component `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"`
+ ParentRelPos int32 `protobuf:"varint,4,opt,name=parent_rel_pos,json=parentRelPos,proto3" json:"parent_rel_pos,omitempty"`
+ Alias string `protobuf:"bytes,5,opt,name=alias,proto3" json:"alias,omitempty"`
+ AssetId string `protobuf:"bytes,6,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"`
+ Uri *Uri `protobuf:"bytes,7,opt,name=uri,proto3" json:"uri,omitempty"`
+ AdminState ComponentAdminState `protobuf:"varint,8,opt,name=admin_state,json=adminState,proto3,enum=dmi.ComponentAdminState" json:"admin_state,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ModifiableComponent) Reset() { *m = ModifiableComponent{} }
+func (m *ModifiableComponent) String() string { return proto.CompactTextString(m) }
+func (*ModifiableComponent) ProtoMessage() {}
+func (*ModifiableComponent) Descriptor() ([]byte, []int) {
+ return fileDescriptor_d7c33d745c4ab367, []int{11}
+}
+
+func (m *ModifiableComponent) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ModifiableComponent.Unmarshal(m, b)
+}
+func (m *ModifiableComponent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ModifiableComponent.Marshal(b, m, deterministic)
+}
+func (m *ModifiableComponent) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ModifiableComponent.Merge(m, src)
+}
+func (m *ModifiableComponent) XXX_Size() int {
+ return xxx_messageInfo_ModifiableComponent.Size(m)
+}
+func (m *ModifiableComponent) XXX_DiscardUnknown() {
+ xxx_messageInfo_ModifiableComponent.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ModifiableComponent proto.InternalMessageInfo
+
+func (m *ModifiableComponent) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+func (m *ModifiableComponent) GetClass() ComponentType {
+ if m != nil {
+ return m.Class
+ }
+ return ComponentType_COMPONENT_TYPE_UNDEFINED
+}
+
+func (m *ModifiableComponent) GetParent() *Component {
+ if m != nil {
+ return m.Parent
+ }
+ return nil
+}
+
+func (m *ModifiableComponent) GetParentRelPos() int32 {
+ if m != nil {
+ return m.ParentRelPos
+ }
+ return 0
+}
+
+func (m *ModifiableComponent) GetAlias() string {
+ if m != nil {
+ return m.Alias
+ }
+ return ""
+}
+
+func (m *ModifiableComponent) GetAssetId() string {
+ if m != nil {
+ return m.AssetId
+ }
+ return ""
+}
+
+func (m *ModifiableComponent) GetUri() *Uri {
+ if m != nil {
+ return m.Uri
+ }
+ return nil
+}
+
+func (m *ModifiableComponent) GetAdminState() ComponentAdminState {
+ if m != nil {
+ return m.AdminState
+ }
+ return ComponentAdminState_COMP_ADMIN_STATE_UNDEFINED
+}
+
+func init() {
+ proto.RegisterEnum("dmi.ComponentType", ComponentType_name, ComponentType_value)
+ proto.RegisterEnum("dmi.ComponentAdminState", ComponentAdminState_name, ComponentAdminState_value)
+ proto.RegisterEnum("dmi.ComponentOperState", ComponentOperState_name, ComponentOperState_value)
+ proto.RegisterEnum("dmi.ComponentUsageState", ComponentUsageState_name, ComponentUsageState_value)
+ proto.RegisterEnum("dmi.ComponentAlarmState", ComponentAlarmState_name, ComponentAlarmState_value)
+ proto.RegisterEnum("dmi.ComponentStandbyState", ComponentStandbyState_name, ComponentStandbyState_value)
+ proto.RegisterEnum("dmi.DataValueType", DataValueType_name, DataValueType_value)
+ proto.RegisterEnum("dmi.ValueScale", ValueScale_name, ValueScale_value)
+ proto.RegisterEnum("dmi.SensorStatus", SensorStatus_name, SensorStatus_value)
+ proto.RegisterEnum("dmi.PortComponentAttributes_ConnectorType", PortComponentAttributes_ConnectorType_name, PortComponentAttributes_ConnectorType_value)
+ proto.RegisterEnum("dmi.PortComponentAttributes_Speed", PortComponentAttributes_Speed_name, PortComponentAttributes_Speed_value)
+ proto.RegisterEnum("dmi.PortComponentAttributes_Protocol", PortComponentAttributes_Protocol_name, PortComponentAttributes_Protocol_value)
+ proto.RegisterEnum("dmi.PsuComponentAttributes_SupportedVoltage", PsuComponentAttributes_SupportedVoltage_name, PsuComponentAttributes_SupportedVoltage_value)
+ proto.RegisterEnum("dmi.TransceiverComponentsAttributes_FormFactor", TransceiverComponentsAttributes_FormFactor_name, TransceiverComponentsAttributes_FormFactor_value)
+ proto.RegisterEnum("dmi.TransceiverComponentsAttributes_Type", TransceiverComponentsAttributes_Type_name, TransceiverComponentsAttributes_Type_value)
+ proto.RegisterType((*Uuid)(nil), "dmi.Uuid")
+ proto.RegisterType((*HardwareID)(nil), "dmi.HardwareID")
+ proto.RegisterType((*Uri)(nil), "dmi.Uri")
+ proto.RegisterType((*ComponentState)(nil), "dmi.ComponentState")
+ proto.RegisterType((*ComponentSensorData)(nil), "dmi.ComponentSensorData")
+ proto.RegisterType((*PortComponentAttributes)(nil), "dmi.PortComponentAttributes")
+ proto.RegisterType((*ContainerComponentAttributes)(nil), "dmi.ContainerComponentAttributes")
+ proto.RegisterType((*PsuComponentAttributes)(nil), "dmi.PsuComponentAttributes")
+ proto.RegisterType((*TransceiverComponentsAttributes)(nil), "dmi.TransceiverComponentsAttributes")
+ proto.RegisterType((*Component)(nil), "dmi.Component")
+ proto.RegisterType((*Hardware)(nil), "dmi.Hardware")
+ proto.RegisterType((*ModifiableComponent)(nil), "dmi.ModifiableComponent")
+}
+
+func init() { proto.RegisterFile("dmi/hw.proto", fileDescriptor_d7c33d745c4ab367) }
+
+var fileDescriptor_d7c33d745c4ab367 = []byte{
+ // 2612 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcd, 0x8e, 0xdb, 0xc8,
+ 0x11, 0xb6, 0xfe, 0xa5, 0xd2, 0xcf, 0xb4, 0x7b, 0xfc, 0xa3, 0x1d, 0xdb, 0xbb, 0xb3, 0xca, 0xee,
+ 0x62, 0x76, 0x92, 0x9d, 0x19, 0xcb, 0x76, 0xe0, 0xcd, 0x22, 0x08, 0x38, 0x14, 0x35, 0xe2, 0x5a,
+ 0x22, 0xb9, 0x4d, 0x6a, 0xec, 0xd9, 0x0b, 0xc1, 0x91, 0xa8, 0x19, 0x02, 0x92, 0x28, 0x90, 0xd4,
+ 0xac, 0x0d, 0xe4, 0x14, 0xe4, 0x92, 0x53, 0x5e, 0x22, 0x08, 0x36, 0x97, 0x00, 0x41, 0x72, 0xcc,
+ 0x21, 0x97, 0xbc, 0x40, 0x6e, 0x79, 0x86, 0xbc, 0x44, 0xd0, 0xdd, 0xa4, 0x44, 0x51, 0xf4, 0x4f,
+ 0x80, 0xdc, 0xba, 0xbf, 0xaf, 0xaa, 0xba, 0xba, 0xba, 0xab, 0xba, 0x48, 0xa8, 0x8d, 0x67, 0xce,
+ 0xf1, 0xf5, 0x0f, 0x47, 0x0b, 0xcf, 0x0d, 0x5c, 0x9c, 0x1b, 0xcf, 0x9c, 0xbd, 0x4f, 0xae, 0x5c,
+ 0xf7, 0x6a, 0x6a, 0x1f, 0x33, 0xe8, 0x72, 0x39, 0x39, 0x0e, 0x9c, 0x99, 0xed, 0x07, 0xd6, 0x6c,
+ 0xc1, 0xa5, 0x5a, 0x7b, 0x90, 0x1f, 0x2e, 0x9d, 0x31, 0xc6, 0x90, 0x5f, 0x2e, 0x9d, 0x71, 0x33,
+ 0xb3, 0x9f, 0x39, 0xa8, 0x10, 0x36, 0x6e, 0xfd, 0x14, 0xa0, 0x67, 0x79, 0xe3, 0x1f, 0x2c, 0xcf,
+ 0x96, 0x3b, 0xf8, 0x51, 0x4c, 0xa2, 0xda, 0xae, 0x1c, 0x8d, 0x67, 0xce, 0x11, 0x55, 0x0d, 0x85,
+ 0xef, 0x43, 0x6e, 0xe8, 0x39, 0x18, 0x41, 0x6e, 0xe9, 0x39, 0xa1, 0x19, 0x3a, 0x6c, 0xfd, 0x36,
+ 0x07, 0x0d, 0xd1, 0x9d, 0x2d, 0xdc, 0xb9, 0x3d, 0x0f, 0xf4, 0xc0, 0x0a, 0x6c, 0xdc, 0x03, 0xec,
+ 0xd3, 0x81, 0x39, 0xb5, 0xfc, 0xc0, 0x1c, 0x5d, 0x5b, 0xf3, 0x2b, 0x3b, 0x32, 0xbc, 0x77, 0xc4,
+ 0x5d, 0x3e, 0x8a, 0x5c, 0x3e, 0x32, 0x22, 0x97, 0x09, 0x62, 0x5a, 0x7d, 0xcb, 0x0f, 0x44, 0xae,
+ 0x83, 0xbf, 0x86, 0xaa, 0x35, 0x9e, 0x39, 0x73, 0x93, 0x31, 0xcd, 0xec, 0x7e, 0xe6, 0xa0, 0xd1,
+ 0x6e, 0x32, 0xdf, 0x56, 0x6b, 0x0a, 0x54, 0x80, 0x2d, 0x4c, 0xc0, 0x5a, 0x8d, 0xf1, 0xcf, 0x01,
+ 0xdc, 0x85, 0xed, 0x85, 0x9a, 0x39, 0xa6, 0x79, 0x7f, 0x53, 0x53, 0x5d, 0xd8, 0x1e, 0x57, 0xac,
+ 0xb8, 0xd1, 0x90, 0x2e, 0xb9, 0xf4, 0xad, 0x2b, 0x3b, 0x54, 0xcc, 0xa7, 0x2d, 0x39, 0xa4, 0x02,
+ 0xe1, 0x92, 0xcb, 0xd5, 0x98, 0x79, 0x3b, 0xb5, 0xbc, 0x59, 0xa8, 0x5a, 0x48, 0xf5, 0x96, 0x0a,
+ 0x44, 0xde, 0xae, 0xc6, 0xf8, 0x57, 0x50, 0xf7, 0x03, 0x6b, 0x3e, 0xbe, 0x7c, 0x13, 0x2a, 0x17,
+ 0x99, 0xf2, 0xde, 0xa6, 0xb2, 0xce, 0x45, 0xb8, 0x7a, 0xcd, 0x8f, 0xcd, 0x5a, 0xff, 0xc9, 0xc2,
+ 0xee, 0x5a, 0xce, 0x9e, 0xfb, 0xae, 0xd7, 0xb1, 0x02, 0x0b, 0xdf, 0x81, 0xc2, 0x8d, 0x35, 0x5d,
+ 0xda, 0x2c, 0xfc, 0x05, 0xc2, 0x27, 0xf8, 0x0b, 0xc8, 0x07, 0x6f, 0x16, 0x51, 0x40, 0x31, 0x5b,
+ 0x85, 0x8a, 0x9f, 0x53, 0xd6, 0x78, 0xb3, 0xb0, 0x09, 0xe3, 0xf1, 0xe7, 0x50, 0xf0, 0x47, 0xd6,
+ 0x34, 0x8a, 0xdf, 0x0e, 0x13, 0x64, 0x42, 0x3a, 0x85, 0x09, 0x67, 0xf1, 0x43, 0xa8, 0x2c, 0x3c,
+ 0x7b, 0xe4, 0xf8, 0x8e, 0x3b, 0x67, 0x11, 0x2b, 0x90, 0x35, 0x80, 0xbf, 0x84, 0x22, 0xdd, 0xd3,
+ 0xd2, 0x0f, 0x23, 0x72, 0x9b, 0x59, 0xe1, 0x3e, 0xea, 0x8c, 0x20, 0xa1, 0x00, 0xfe, 0x09, 0xd4,
+ 0x97, 0x73, 0x27, 0xf0, 0xcd, 0xb1, 0xe3, 0x2f, 0xa6, 0xd6, 0x1b, 0x16, 0x86, 0x0a, 0xa9, 0x31,
+ 0xb0, 0xc3, 0x31, 0xfc, 0x1c, 0x2a, 0xab, 0x6b, 0xde, 0x2c, 0xbd, 0xf7, 0x56, 0xad, 0x85, 0xf1,
+ 0x21, 0xdc, 0x66, 0xfb, 0x37, 0x97, 0x8b, 0x31, 0xbd, 0x9f, 0x1e, 0x8d, 0x74, 0x79, 0x3f, 0x73,
+ 0x50, 0x27, 0x3b, 0x8c, 0x18, 0x32, 0x9c, 0xd0, 0x13, 0x79, 0x00, 0x95, 0xb1, 0x15, 0x58, 0x26,
+ 0x8b, 0x53, 0x85, 0xb9, 0x51, 0xa6, 0x00, 0x8d, 0x4e, 0xeb, 0x2f, 0x05, 0xb8, 0xaf, 0xb9, 0x5e,
+ 0xb0, 0x3e, 0xd6, 0x20, 0xf0, 0x9c, 0xcb, 0x65, 0x60, 0xfb, 0xf8, 0x3b, 0x68, 0x8c, 0xdc, 0xf9,
+ 0xdc, 0x1e, 0x05, 0xae, 0xc7, 0xb5, 0x33, 0x6c, 0xdb, 0x87, 0x6c, 0xdb, 0x6f, 0xd1, 0x3a, 0x12,
+ 0x23, 0x15, 0x16, 0xfd, 0xfa, 0x28, 0x3e, 0xc5, 0xcf, 0xa1, 0xe0, 0x2f, 0x6c, 0x7b, 0x1c, 0x9e,
+ 0x57, 0xeb, 0x9d, 0x96, 0x74, 0x2a, 0x49, 0xb8, 0x02, 0x16, 0xa0, 0xcc, 0x42, 0x32, 0x72, 0xa7,
+ 0xe1, 0x19, 0x7e, 0xfe, 0x4e, 0x65, 0x2d, 0x14, 0x26, 0x2b, 0x35, 0xfc, 0x39, 0x34, 0x16, 0xd7,
+ 0x6f, 0x7c, 0x67, 0x64, 0x4d, 0xcd, 0xa9, 0x75, 0x69, 0x4f, 0xd9, 0x09, 0x57, 0x48, 0x3d, 0x42,
+ 0xfb, 0x14, 0x6c, 0x2d, 0xa0, 0xbe, 0xb1, 0x07, 0xfc, 0x10, 0x9a, 0xa2, 0xaa, 0x28, 0x92, 0x68,
+ 0xa8, 0xc4, 0x34, 0x2e, 0x34, 0xc9, 0x1c, 0x2a, 0x1d, 0xa9, 0x2b, 0x2b, 0x52, 0x07, 0xdd, 0xc2,
+ 0x65, 0xc8, 0x93, 0x6f, 0x9f, 0x3e, 0x43, 0x19, 0x5c, 0x83, 0x72, 0x57, 0x3e, 0x95, 0x88, 0xd9,
+ 0x17, 0x51, 0x16, 0xef, 0x40, 0x95, 0xcf, 0x74, 0xd1, 0xd4, 0x44, 0x94, 0xc3, 0x75, 0xa8, 0x70,
+ 0x60, 0xa0, 0xa9, 0x28, 0x8f, 0x2b, 0x50, 0x20, 0x7a, 0xfb, 0x49, 0x1b, 0x15, 0x5a, 0x7f, 0xce,
+ 0x40, 0x81, 0x6d, 0x16, 0xef, 0xc2, 0x8e, 0xae, 0x49, 0x52, 0x67, 0x63, 0x85, 0x2a, 0x94, 0x3a,
+ 0x17, 0x8a, 0x30, 0x90, 0x45, 0x94, 0xa1, 0x56, 0xce, 0xe4, 0x33, 0xe1, 0x54, 0x36, 0xcc, 0xc7,
+ 0x28, 0x8b, 0x1b, 0x00, 0xab, 0xe9, 0x09, 0xca, 0xc5, 0xe7, 0xed, 0x67, 0x28, 0x1f, 0x9f, 0x3f,
+ 0x3d, 0x41, 0x05, 0xea, 0xd5, 0x5a, 0xfe, 0x04, 0x15, 0xe3, 0xc0, 0xd3, 0x93, 0x13, 0x54, 0xc2,
+ 0x08, 0x6a, 0x03, 0x29, 0xb2, 0x70, 0x72, 0x82, 0xca, 0x71, 0xe4, 0x71, 0xfb, 0xd9, 0x09, 0xaa,
+ 0xb4, 0x7e, 0x0d, 0xe5, 0x28, 0xbe, 0xf8, 0x1e, 0x60, 0x8d, 0xa8, 0x86, 0x2a, 0xaa, 0xfd, 0x0d,
+ 0xaf, 0x6b, 0x50, 0x96, 0x8c, 0x9e, 0x44, 0x14, 0xc9, 0x40, 0x19, 0x1a, 0xa5, 0x33, 0x4d, 0x55,
+ 0x50, 0x96, 0xee, 0xfb, 0x15, 0x1b, 0xe6, 0x30, 0x40, 0xf1, 0xd5, 0x99, 0x4e, 0xc7, 0x2c, 0x1c,
+ 0x67, 0x5d, 0x41, 0x37, 0x50, 0x81, 0xc2, 0xba, 0x44, 0x64, 0xa1, 0x8f, 0x8a, 0x54, 0x4f, 0xa2,
+ 0x02, 0x25, 0x3a, 0x3a, 0x95, 0x0d, 0x1d, 0x95, 0x5b, 0x12, 0x3c, 0x14, 0xdd, 0x79, 0x60, 0x39,
+ 0x73, 0xdb, 0x4b, 0xbb, 0xb7, 0xdb, 0xe7, 0x9c, 0x49, 0x3b, 0xe7, 0x7f, 0x66, 0xe0, 0x9e, 0xe6,
+ 0x2f, 0xd3, 0x2c, 0x5c, 0xc0, 0x6d, 0x7f, 0xb9, 0x58, 0xb8, 0x5e, 0x60, 0x8f, 0xcd, 0x1b, 0x77,
+ 0x1a, 0x58, 0x57, 0xd1, 0xe5, 0xff, 0x19, 0xbf, 0x75, 0xa9, 0x7a, 0x47, 0x7a, 0xa4, 0x74, 0xce,
+ 0x75, 0x08, 0xf2, 0x13, 0x48, 0x4b, 0x03, 0x94, 0x94, 0xc2, 0x9f, 0xc0, 0x03, 0x7d, 0xa8, 0x69,
+ 0x2a, 0x31, 0xa4, 0x8e, 0x79, 0xae, 0xf6, 0x0d, 0xe1, 0x6c, 0xf3, 0x8e, 0x95, 0x20, 0x77, 0xfe,
+ 0xf4, 0x39, 0x0f, 0xe3, 0x79, 0xfb, 0xc9, 0x09, 0xca, 0xb2, 0xd1, 0xe3, 0xc7, 0xcf, 0x50, 0xae,
+ 0xf5, 0xaf, 0x02, 0x7c, 0x62, 0x78, 0xd6, 0xdc, 0x1f, 0xd9, 0xce, 0x4d, 0x2c, 0x22, 0x7e, 0x6c,
+ 0x43, 0x1a, 0x54, 0x27, 0xae, 0x37, 0x33, 0x27, 0x16, 0xbd, 0xd5, 0xe1, 0x56, 0x8e, 0xd9, 0x56,
+ 0xde, 0xa3, 0x7a, 0xd4, 0x75, 0xbd, 0x59, 0x97, 0xa9, 0x11, 0x98, 0xac, 0xc6, 0xb8, 0x07, 0x10,
+ 0x50, 0x4d, 0x33, 0x56, 0x7e, 0xbf, 0xfc, 0x20, 0x83, 0xac, 0x2e, 0x54, 0x98, 0x32, 0x4b, 0xaf,
+ 0x4f, 0xa1, 0x36, 0xb3, 0x5e, 0xd3, 0x42, 0x19, 0x58, 0xf3, 0x11, 0xaf, 0xd0, 0x75, 0x52, 0x9d,
+ 0x59, 0xaf, 0x3b, 0x21, 0x84, 0x7f, 0x09, 0x38, 0x2e, 0x62, 0xf2, 0x52, 0x9e, 0x4f, 0x2f, 0xe5,
+ 0x28, 0xa6, 0xc9, 0x10, 0x5a, 0x8c, 0xbd, 0xd7, 0xe6, 0x0f, 0xd6, 0x8d, 0x3d, 0xb5, 0xe7, 0x57,
+ 0xc1, 0x75, 0xb3, 0xb0, 0x9f, 0x3b, 0xa8, 0x93, 0x9a, 0xf7, 0xfa, 0xe5, 0x0a, 0xa3, 0x42, 0xc1,
+ 0x86, 0x50, 0x91, 0x0b, 0x05, 0x71, 0xa1, 0x5f, 0x00, 0x5a, 0x4b, 0x84, 0x6e, 0x94, 0xd2, 0xdd,
+ 0xd8, 0x59, 0x0b, 0x32, 0xa0, 0xf5, 0x8f, 0x0c, 0xc0, 0x3a, 0x98, 0xf8, 0x3e, 0xec, 0x76, 0x55,
+ 0x32, 0x30, 0xbb, 0x02, 0xab, 0x2b, 0x43, 0xe5, 0x85, 0xa2, 0xbe, 0x54, 0x78, 0x41, 0xf9, 0x4e,
+ 0xef, 0x6a, 0x3c, 0xd7, 0xe9, 0xc8, 0xd4, 0xfa, 0x43, 0x1d, 0x65, 0x69, 0x5e, 0xd0, 0x69, 0xfb,
+ 0x39, 0xca, 0xd1, 0x1b, 0x41, 0x65, 0xf2, 0x34, 0xcd, 0x56, 0x22, 0x05, 0x0a, 0xbf, 0xea, 0x6a,
+ 0x3c, 0x6f, 0xc4, 0xae, 0xf6, 0x94, 0xe7, 0x8d, 0xd8, 0xd5, 0xda, 0xa8, 0xcc, 0x46, 0x9a, 0xf0,
+ 0x02, 0x55, 0x70, 0x11, 0xb2, 0xaf, 0xda, 0x08, 0x68, 0xd2, 0xa9, 0x34, 0x47, 0x51, 0x95, 0x6a,
+ 0x8a, 0x5d, 0x0d, 0xd5, 0xa8, 0x41, 0x2a, 0x6f, 0x0a, 0xa2, 0x8a, 0xea, 0xab, 0x59, 0x47, 0x54,
+ 0x51, 0xa3, 0x75, 0x0d, 0x79, 0x76, 0x64, 0x08, 0x6a, 0x61, 0x1d, 0x8c, 0x9c, 0xfe, 0x1f, 0xb3,
+ 0x9d, 0xb9, 0xa2, 0x2a, 0xa8, 0x40, 0x8b, 0x9b, 0x72, 0x66, 0x6a, 0xaa, 0xd2, 0x8e, 0x67, 0x7b,
+ 0xeb, 0xdf, 0x25, 0xa8, 0xac, 0x6e, 0x0f, 0x6d, 0xfa, 0xe6, 0xd6, 0xcc, 0x8e, 0x9a, 0x3e, 0x3a,
+ 0xc6, 0x07, 0x50, 0x18, 0x4d, 0x2d, 0xdf, 0xdf, 0x78, 0xfa, 0x57, 0x2a, 0xec, 0x92, 0x71, 0x01,
+ 0xbc, 0x0f, 0xd5, 0xb1, 0xed, 0x8f, 0x3c, 0x67, 0x11, 0xd0, 0x67, 0x3d, 0xc7, 0x8c, 0xc4, 0x21,
+ 0x7c, 0x0f, 0x8a, 0x0b, 0xcb, 0xb3, 0xe7, 0x41, 0xf8, 0x22, 0x84, 0x33, 0xfc, 0x19, 0x34, 0xf8,
+ 0xc8, 0xf4, 0xec, 0xa9, 0xb9, 0x70, 0xf9, 0xc3, 0x5f, 0x20, 0x35, 0x8e, 0x12, 0x7b, 0xaa, 0xb9,
+ 0x3e, 0x3e, 0x84, 0xf2, 0xe8, 0xda, 0x99, 0x8e, 0x3d, 0x7b, 0xce, 0x2e, 0x4d, 0xb5, 0xdd, 0xd8,
+ 0x74, 0x86, 0xac, 0x78, 0x7a, 0xd9, 0xaf, 0xc3, 0x56, 0xd5, 0xf4, 0xec, 0x1b, 0x76, 0x79, 0x2a,
+ 0xa4, 0x1a, 0x61, 0xc4, 0xbe, 0xa1, 0x22, 0x13, 0xc7, 0x9b, 0xad, 0x44, 0xca, 0x5c, 0x24, 0xc2,
+ 0x42, 0x11, 0xdf, 0x9d, 0x04, 0x2b, 0x11, 0xfe, 0xaa, 0x57, 0x23, 0x8c, 0x8a, 0x3c, 0x02, 0xf0,
+ 0x6d, 0xcf, 0xb1, 0xa6, 0xe6, 0x7c, 0x39, 0x6b, 0x02, 0x13, 0xa8, 0x70, 0x44, 0x59, 0xce, 0xf0,
+ 0x47, 0x50, 0x9e, 0x4d, 0xae, 0x4c, 0x16, 0xd5, 0x2a, 0x23, 0x4b, 0xb3, 0xc9, 0x95, 0x42, 0x03,
+ 0xfb, 0x08, 0x60, 0xe6, 0x8e, 0xed, 0x29, 0x27, 0x6b, 0x5c, 0x93, 0x21, 0x8c, 0xbe, 0x03, 0x05,
+ 0x6b, 0xea, 0x58, 0x7e, 0xb3, 0xce, 0x18, 0x3e, 0xa1, 0xf6, 0x2c, 0xdf, 0xb7, 0x03, 0xd3, 0x19,
+ 0x37, 0x1b, 0xdc, 0x1e, 0x9b, 0xcb, 0x63, 0x7c, 0x17, 0x8a, 0x8e, 0x6f, 0x4e, 0xbc, 0x65, 0x73,
+ 0x67, 0x3f, 0x73, 0x50, 0x26, 0x05, 0xc7, 0xef, 0x7a, 0x4b, 0xfc, 0x8c, 0x7b, 0x40, 0xdb, 0x94,
+ 0x26, 0x7a, 0x6f, 0xef, 0x43, 0xbd, 0xeb, 0xd0, 0x6e, 0x66, 0x8f, 0xf7, 0xed, 0xb7, 0x99, 0x46,
+ 0x99, 0x37, 0xf7, 0x9e, 0xc3, 0x3a, 0xf8, 0x55, 0xe7, 0x8f, 0x53, 0x3b, 0x7f, 0xfc, 0x25, 0x14,
+ 0x78, 0x4b, 0xba, 0xcb, 0xf8, 0xdd, 0xad, 0x96, 0x34, 0xa0, 0x7d, 0x60, 0xd4, 0x00, 0xfb, 0xac,
+ 0xad, 0xa3, 0xfe, 0x59, 0xcd, 0x3b, 0xec, 0x54, 0x13, 0x0d, 0xf0, 0xba, 0x37, 0x25, 0xe0, 0xaf,
+ 0xfb, 0xd4, 0x6f, 0xa0, 0x42, 0xab, 0xbb, 0x69, 0x05, 0x81, 0xd7, 0x6c, 0xb3, 0x95, 0x1e, 0xbe,
+ 0xab, 0x53, 0xe9, 0xdd, 0x22, 0x65, 0xaa, 0x40, 0x11, 0xfc, 0x2d, 0x6b, 0xb9, 0xf8, 0xd3, 0xc6,
+ 0x2d, 0x3c, 0x61, 0x16, 0x3e, 0x0d, 0x97, 0x7e, 0xfb, 0xab, 0xd7, 0xbb, 0xc5, 0x7a, 0x2d, 0xce,
+ 0x33, 0x5b, 0xcf, 0xa1, 0xbc, 0xf0, 0x97, 0xdc, 0xca, 0x53, 0x66, 0xe5, 0xc1, 0x3b, 0xde, 0xae,
+ 0xde, 0x2d, 0x52, 0x5a, 0xf8, 0x4b, 0xa6, 0xf9, 0x1d, 0xa0, 0x60, 0x5d, 0xc4, 0xb9, 0x85, 0x67,
+ 0xcc, 0xc2, 0x67, 0x1f, 0x52, 0xe1, 0x7b, 0xb7, 0xc8, 0x4e, 0x4c, 0x9f, 0x12, 0xa7, 0x00, 0x65,
+ 0x7f, 0x61, 0x8f, 0x9c, 0x89, 0x33, 0x6a, 0xfd, 0x98, 0x81, 0x72, 0xf4, 0xbd, 0x86, 0xbf, 0x81,
+ 0x6a, 0xec, 0xe3, 0xea, 0x03, 0xbe, 0xad, 0x60, 0xba, 0xfa, 0xac, 0xc2, 0x2d, 0xc8, 0x7b, 0xae,
+ 0x1b, 0xb0, 0x12, 0xb0, 0x9d, 0x75, 0x8c, 0x5b, 0x2d, 0x70, 0xe9, 0xba, 0x81, 0x3d, 0x66, 0xd9,
+ 0xff, 0x01, 0x0b, 0x9c, 0x32, 0xe9, 0xd6, 0x9f, 0xb2, 0xb0, 0x3b, 0x70, 0xc7, 0xce, 0xc4, 0xb1,
+ 0x2e, 0xa7, 0xf6, 0xff, 0xab, 0x20, 0x7d, 0xb1, 0x2a, 0x37, 0xb9, 0x54, 0xc7, 0xdf, 0x5e, 0x7e,
+ 0xf2, 0x29, 0xe5, 0x67, 0x95, 0x90, 0x85, 0xb7, 0x25, 0x64, 0x71, 0x33, 0x21, 0xc3, 0x14, 0x2a,
+ 0xa5, 0xa5, 0x50, 0xe2, 0x3b, 0xb5, 0xfc, 0xe1, 0xdf, 0xa9, 0x87, 0x7f, 0xcb, 0xd1, 0xc6, 0x39,
+ 0xb6, 0x5d, 0xde, 0x38, 0x0f, 0x34, 0x55, 0x91, 0x14, 0x63, 0xbb, 0x71, 0xde, 0x83, 0x7b, 0x5b,
+ 0x2c, 0x7f, 0x4e, 0x32, 0x29, 0x9c, 0xd8, 0x13, 0x74, 0x5d, 0xa6, 0xcf, 0xe0, 0xb6, 0xd5, 0x53,
+ 0x41, 0x7c, 0xa1, 0xf5, 0x05, 0x45, 0x42, 0xb9, 0x14, 0x56, 0x54, 0x15, 0x43, 0x90, 0x15, 0x89,
+ 0xa0, 0x3c, 0xed, 0xb4, 0x12, 0xac, 0xa6, 0xbe, 0xa4, 0x3d, 0xfa, 0x50, 0xd3, 0xfa, 0x17, 0xa8,
+ 0x40, 0xbb, 0xd9, 0x84, 0x40, 0x57, 0x50, 0x50, 0x11, 0x7f, 0x04, 0x77, 0x13, 0xb8, 0x2e, 0x29,
+ 0xba, 0x4a, 0x50, 0x29, 0x85, 0x1a, 0xa8, 0x9d, 0x61, 0x5f, 0x42, 0x65, 0xfa, 0xc6, 0x6f, 0x2d,
+ 0x47, 0x0c, 0x54, 0x49, 0x59, 0x46, 0xd4, 0x86, 0x08, 0x52, 0xf6, 0x7d, 0x2a, 0x18, 0x86, 0x44,
+ 0x2e, 0x50, 0x35, 0x85, 0xd3, 0x0d, 0x95, 0x08, 0x67, 0x12, 0xaa, 0xa5, 0xf9, 0x20, 0x0d, 0x54,
+ 0x72, 0x81, 0xea, 0xf8, 0x63, 0xd8, 0x4b, 0x50, 0x06, 0x11, 0x14, 0x5d, 0x94, 0xe4, 0x73, 0x89,
+ 0xa0, 0xc6, 0xe1, 0x5f, 0x33, 0xb1, 0xef, 0xed, 0xf5, 0xd1, 0x46, 0x7a, 0xa6, 0xd0, 0x19, 0xc8,
+ 0x8a, 0xa9, 0x1b, 0x82, 0xb1, 0x79, 0x7c, 0x61, 0xa0, 0x13, 0x7c, 0x74, 0x80, 0x0f, 0xe0, 0xfe,
+ 0x16, 0xdb, 0x57, 0xc5, 0x17, 0x52, 0x07, 0x65, 0x71, 0x0b, 0x3e, 0xde, 0x22, 0xf5, 0xde, 0xd0,
+ 0x30, 0x64, 0xe5, 0xcc, 0xec, 0x50, 0x03, 0x39, 0xfc, 0x08, 0x3e, 0x4a, 0x31, 0x1f, 0x9a, 0xc8,
+ 0x1f, 0xfe, 0x98, 0x01, 0xbc, 0xfd, 0xfb, 0x63, 0xa5, 0xa5, 0x6a, 0xf4, 0x50, 0xb7, 0x7c, 0x8e,
+ 0xbc, 0xda, 0xa0, 0x23, 0x97, 0xa3, 0x0d, 0xc5, 0xc8, 0x8e, 0xac, 0x0b, 0xa7, 0x7d, 0xe6, 0x73,
+ 0x8a, 0xaa, 0xa4, 0x70, 0x32, 0x97, 0x46, 0x1a, 0x92, 0x4e, 0xb7, 0x83, 0xf2, 0x87, 0x7f, 0x8c,
+ 0x07, 0x78, 0xfd, 0xc3, 0x65, 0x15, 0xe0, 0xa1, 0x4e, 0xdb, 0xfd, 0xb7, 0x07, 0x78, 0x93, 0x8f,
+ 0xbc, 0x0d, 0x4f, 0x7c, 0x83, 0x95, 0x3b, 0x7d, 0x29, 0xe6, 0x6a, 0x9c, 0x12, 0x44, 0x43, 0x3e,
+ 0xa7, 0xf9, 0x91, 0xa6, 0x77, 0x3a, 0xd4, 0x2f, 0x50, 0xfe, 0xf0, 0xf7, 0xf1, 0x3f, 0x2f, 0xeb,
+ 0xdf, 0x3b, 0xeb, 0x9b, 0xd0, 0x17, 0xc8, 0xe0, 0x5d, 0x37, 0x61, 0x83, 0x8f, 0x1c, 0xfd, 0x14,
+ 0x1e, 0xa5, 0x6a, 0x13, 0x93, 0x48, 0x9a, 0x20, 0x13, 0x94, 0x5d, 0x9f, 0x75, 0x4c, 0x44, 0x24,
+ 0xb2, 0x21, 0x8b, 0x42, 0x1f, 0xe5, 0xa2, 0x8b, 0xbf, 0x41, 0x0f, 0x84, 0x6f, 0x55, 0x9a, 0xd0,
+ 0xa9, 0x9c, 0xac, 0xa8, 0x04, 0x15, 0x52, 0xfd, 0x7a, 0x29, 0x10, 0x85, 0x1e, 0x4b, 0x71, 0x7d,
+ 0x09, 0x63, 0xac, 0xac, 0x74, 0x24, 0x43, 0x22, 0x03, 0x59, 0x11, 0x0c, 0x09, 0x95, 0x0e, 0xff,
+ 0x9e, 0x81, 0xbb, 0xa9, 0xff, 0xac, 0xf0, 0x3e, 0x3c, 0x64, 0xda, 0xba, 0x21, 0x28, 0x9d, 0xd3,
+ 0x8b, 0x94, 0xa8, 0x44, 0x51, 0x4b, 0x4a, 0x24, 0x4a, 0x5c, 0x82, 0xef, 0xa9, 0x46, 0xec, 0x04,
+ 0x37, 0x39, 0x51, 0xed, 0xd3, 0xcb, 0x76, 0x00, 0x9f, 0xa5, 0x90, 0x1a, 0x51, 0xcf, 0xe5, 0x0e,
+ 0x4d, 0x20, 0x5d, 0x22, 0xe7, 0xb2, 0x28, 0xa1, 0xfc, 0xe1, 0xef, 0x72, 0x50, 0xdf, 0xf8, 0x19,
+ 0x86, 0x9b, 0x70, 0xe7, 0x5c, 0xe8, 0x0f, 0xa5, 0xed, 0x6a, 0x7c, 0x07, 0x50, 0x8c, 0xe1, 0x5f,
+ 0x05, 0x19, 0x5a, 0xa7, 0x36, 0xe4, 0xb9, 0xf3, 0x59, 0x5a, 0xd8, 0x62, 0x38, 0xfd, 0x64, 0xd5,
+ 0x4d, 0x41, 0x44, 0xb9, 0x54, 0xa2, 0x23, 0xa2, 0x7c, 0xc2, 0x92, 0x30, 0xd0, 0x24, 0x22, 0xd1,
+ 0x2f, 0x96, 0xcd, 0x75, 0x5f, 0x0a, 0x86, 0xa1, 0xa3, 0x62, 0x02, 0xed, 0x49, 0xc4, 0xf8, 0x1e,
+ 0x95, 0x12, 0x36, 0x44, 0xa9, 0xaf, 0xcb, 0x43, 0x1d, 0x95, 0xe9, 0x9d, 0x8e, 0xe1, 0x9a, 0x44,
+ 0x44, 0x5a, 0xeb, 0x48, 0x0f, 0x55, 0x30, 0x86, 0x46, 0x8c, 0x22, 0xda, 0x00, 0x41, 0x02, 0x13,
+ 0x07, 0x03, 0x5e, 0x5c, 0x63, 0x98, 0x41, 0x86, 0x46, 0xcf, 0x64, 0x00, 0xaa, 0x25, 0x96, 0x0d,
+ 0xcd, 0xa3, 0x3a, 0xbe, 0x0b, 0xb7, 0x63, 0xf8, 0x80, 0xde, 0x1c, 0x1d, 0x35, 0x12, 0xbe, 0x9f,
+ 0x5e, 0x18, 0x92, 0x8e, 0x76, 0x0e, 0xff, 0x90, 0x03, 0x58, 0x7f, 0x1d, 0xae, 0x5d, 0xd6, 0x45,
+ 0xa1, 0xbf, 0x79, 0x12, 0x2b, 0xb3, 0x9c, 0xba, 0x50, 0x45, 0x43, 0x45, 0x99, 0x24, 0xfc, 0xbd,
+ 0xa4, 0x19, 0x2a, 0xca, 0xae, 0x57, 0xe3, 0xb0, 0x60, 0x18, 0x2a, 0xca, 0x25, 0x85, 0xbb, 0xd2,
+ 0xc0, 0x50, 0x51, 0x3e, 0x29, 0xac, 0xc9, 0xa2, 0x1a, 0x3f, 0x02, 0x8e, 0x2a, 0x82, 0xa2, 0xa2,
+ 0x62, 0xd2, 0xc4, 0x40, 0x16, 0x89, 0x8a, 0x4a, 0xdb, 0x70, 0xbf, 0x2f, 0xa3, 0x72, 0x12, 0x1e,
+ 0x2a, 0xb2, 0xa1, 0xa3, 0x4a, 0xd2, 0xf4, 0x0b, 0xb9, 0xaf, 0x22, 0x48, 0xa2, 0x03, 0xe9, 0x4c,
+ 0x40, 0xd5, 0x24, 0x7a, 0x26, 0x9f, 0x09, 0xa8, 0x96, 0x44, 0x0d, 0x89, 0x08, 0xa8, 0xbe, 0xb5,
+ 0x11, 0xc9, 0x10, 0x50, 0x03, 0xef, 0xc2, 0x4e, 0x1c, 0x95, 0x5e, 0x09, 0x68, 0x67, 0x3b, 0x6e,
+ 0x86, 0x21, 0x20, 0xb4, 0x1d, 0x65, 0x0a, 0xdf, 0x3e, 0xfc, 0x4d, 0x06, 0x6a, 0xf1, 0x1f, 0xba,
+ 0x34, 0x15, 0xf9, 0x4b, 0xcf, 0xf2, 0x6c, 0xa8, 0x27, 0x93, 0x66, 0x93, 0x54, 0x5f, 0xa0, 0x0c,
+ 0x2d, 0x67, 0x49, 0x15, 0xe1, 0x5c, 0x90, 0xfb, 0xf4, 0xb5, 0x40, 0x59, 0x5a, 0x3a, 0x36, 0x69,
+ 0x45, 0x55, 0xe8, 0xc3, 0x21, 0x18, 0xb2, 0xaa, 0xd0, 0x82, 0x77, 0xfa, 0xcd, 0xf7, 0x5f, 0x5f,
+ 0x39, 0xc1, 0xf5, 0xf2, 0xf2, 0x68, 0xe4, 0xce, 0x8e, 0xdd, 0x85, 0x3d, 0x1f, 0xb9, 0xde, 0xf8,
+ 0x78, 0x6c, 0xdf, 0x38, 0x23, 0xfb, 0xab, 0x99, 0x35, 0xb7, 0xae, 0xec, 0x99, 0x3d, 0x0f, 0xbe,
+ 0x72, 0xe6, 0x81, 0xed, 0x4d, 0xac, 0x91, 0x7d, 0x7c, 0xf3, 0xe4, 0xf8, 0xca, 0x3d, 0x1e, 0xcf,
+ 0x9c, 0xcb, 0x22, 0x6b, 0x69, 0x9f, 0xfc, 0x37, 0x00, 0x00, 0xff, 0xff, 0x50, 0x7f, 0x9b, 0x1f,
+ 0x65, 0x19, 0x00, 0x00,
+}
diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/hw_events_mgmt_service.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/hw_events_mgmt_service.pb.go
new file mode 100644
index 0000000..2b5dc6e
--- /dev/null
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/hw_events_mgmt_service.pb.go
@@ -0,0 +1,1165 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: dmi/hw_events_mgmt_service.proto
+
+package dmi
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ grpc "google.golang.org/grpc"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type EventIds int32
+
+const (
+ EventIds_EVENT_NAME_UNDEFINED EventIds = 0
+ // Events from the Transceivers
+ EventIds_EVENT_TRANSCEIVER_PLUG_OUT EventIds = 100
+ EventIds_EVENT_TRANSCEIVER_PLUG_IN EventIds = 101
+ EventIds_EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD EventIds = 102
+ EventIds_EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD EventIds = 103
+ EventIds_EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD EventIds = 104
+ EventIds_EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD EventIds = 105
+ EventIds_EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD EventIds = 106
+ EventIds_EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD EventIds = 107
+ EventIds_EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD EventIds = 108
+ EventIds_EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD EventIds = 109
+ EventIds_EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD EventIds = 110
+ EventIds_EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD EventIds = 111
+ EventIds_EVENT_TRANSCEIVER_FAILURE EventIds = 112
+ EventIds_EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED EventIds = 113
+ EventIds_EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED EventIds = 114
+ EventIds_EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED EventIds = 115
+ EventIds_EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED EventIds = 116
+ EventIds_EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED EventIds = 117
+ EventIds_EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED EventIds = 118
+ EventIds_EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED EventIds = 119
+ EventIds_EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED EventIds = 120
+ EventIds_EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED EventIds = 121
+ EventIds_EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED EventIds = 122
+ EventIds_EVENT_TRANSCEIVER_FAILURE_RECOVERED EventIds = 123
+ // Events from the PSU
+ EventIds_EVENT_PSU_PLUG_OUT EventIds = 200
+ EventIds_EVENT_PSU_PLUG_IN EventIds = 201
+ EventIds_EVENT_PSU_FAILURE EventIds = 202
+ EventIds_EVENT_PSU_FAILURE_RECOVERED EventIds = 203
+ // Events for the Fans
+ EventIds_EVENT_FAN_FAILURE EventIds = 300
+ EventIds_EVENT_FAN_PLUG_OUT EventIds = 301
+ EventIds_EVENT_FAN_PLUG_IN EventIds = 302
+ EventIds_EVENT_FAN_FAILURE_RECOVERED EventIds = 303
+ // Events for the CPUs
+ EventIds_EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL EventIds = 400
+ EventIds_EVENT_CPU_TEMPERATURE_ABOVE_FATAL EventIds = 401
+ EventIds_EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED EventIds = 402
+ EventIds_EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED EventIds = 403
+ // Events for the complete HW Device
+ EventIds_EVENT_HW_DEVICE_RESET EventIds = 500
+ EventIds_EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL EventIds = 501
+ EventIds_EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL EventIds = 502
+ EventIds_EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED EventIds = 503
+ EventIds_EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED EventIds = 504
+)
+
+var EventIds_name = map[int32]string{
+ 0: "EVENT_NAME_UNDEFINED",
+ 100: "EVENT_TRANSCEIVER_PLUG_OUT",
+ 101: "EVENT_TRANSCEIVER_PLUG_IN",
+ 102: "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD",
+ 103: "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD",
+ 104: "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD",
+ 105: "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD",
+ 106: "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD",
+ 107: "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD",
+ 108: "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD",
+ 109: "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD",
+ 110: "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD",
+ 111: "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD",
+ 112: "EVENT_TRANSCEIVER_FAILURE",
+ 113: "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED",
+ 114: "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED",
+ 115: "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED",
+ 116: "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED",
+ 117: "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED",
+ 118: "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED",
+ 119: "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED",
+ 120: "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED",
+ 121: "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED",
+ 122: "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED",
+ 123: "EVENT_TRANSCEIVER_FAILURE_RECOVERED",
+ 200: "EVENT_PSU_PLUG_OUT",
+ 201: "EVENT_PSU_PLUG_IN",
+ 202: "EVENT_PSU_FAILURE",
+ 203: "EVENT_PSU_FAILURE_RECOVERED",
+ 300: "EVENT_FAN_FAILURE",
+ 301: "EVENT_FAN_PLUG_OUT",
+ 302: "EVENT_FAN_PLUG_IN",
+ 303: "EVENT_FAN_FAILURE_RECOVERED",
+ 400: "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL",
+ 401: "EVENT_CPU_TEMPERATURE_ABOVE_FATAL",
+ 402: "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED",
+ 403: "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED",
+ 500: "EVENT_HW_DEVICE_RESET",
+ 501: "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL",
+ 502: "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL",
+ 503: "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED",
+ 504: "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED",
+}
+
+var EventIds_value = map[string]int32{
+ "EVENT_NAME_UNDEFINED": 0,
+ "EVENT_TRANSCEIVER_PLUG_OUT": 100,
+ "EVENT_TRANSCEIVER_PLUG_IN": 101,
+ "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD": 102,
+ "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD": 103,
+ "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD": 104,
+ "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD": 105,
+ "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD": 106,
+ "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD": 107,
+ "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD": 108,
+ "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD": 109,
+ "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD": 110,
+ "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD": 111,
+ "EVENT_TRANSCEIVER_FAILURE": 112,
+ "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED": 113,
+ "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED": 114,
+ "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED": 115,
+ "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED": 116,
+ "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED": 117,
+ "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED": 118,
+ "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED": 119,
+ "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED": 120,
+ "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED": 121,
+ "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED": 122,
+ "EVENT_TRANSCEIVER_FAILURE_RECOVERED": 123,
+ "EVENT_PSU_PLUG_OUT": 200,
+ "EVENT_PSU_PLUG_IN": 201,
+ "EVENT_PSU_FAILURE": 202,
+ "EVENT_PSU_FAILURE_RECOVERED": 203,
+ "EVENT_FAN_FAILURE": 300,
+ "EVENT_FAN_PLUG_OUT": 301,
+ "EVENT_FAN_PLUG_IN": 302,
+ "EVENT_FAN_FAILURE_RECOVERED": 303,
+ "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL": 400,
+ "EVENT_CPU_TEMPERATURE_ABOVE_FATAL": 401,
+ "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED": 402,
+ "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED": 403,
+ "EVENT_HW_DEVICE_RESET": 500,
+ "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL": 501,
+ "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL": 502,
+ "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED": 503,
+ "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED": 504,
+}
+
+func (x EventIds) String() string {
+ return proto.EnumName(EventIds_name, int32(x))
+}
+
+func (EventIds) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{0}
+}
+
+type ListEventsResponse_Reason int32
+
+const (
+ ListEventsResponse_UNDEFINED_REASON ListEventsResponse_Reason = 0
+ ListEventsResponse_UNKNOWN_DEVICE ListEventsResponse_Reason = 1
+ ListEventsResponse_INTERNAL_ERROR ListEventsResponse_Reason = 2
+ ListEventsResponse_DEVICE_UNREACHABLE ListEventsResponse_Reason = 3
+)
+
+var ListEventsResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "DEVICE_UNREACHABLE",
+}
+
+var ListEventsResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "DEVICE_UNREACHABLE": 3,
+}
+
+func (x ListEventsResponse_Reason) String() string {
+ return proto.EnumName(ListEventsResponse_Reason_name, int32(x))
+}
+
+func (ListEventsResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{6, 0}
+}
+
+type EventsConfigurationResponse_Reason int32
+
+const (
+ EventsConfigurationResponse_UNDEFINED_REASON EventsConfigurationResponse_Reason = 0
+ EventsConfigurationResponse_UNKNOWN_DEVICE EventsConfigurationResponse_Reason = 1
+ EventsConfigurationResponse_INTERNAL_ERROR EventsConfigurationResponse_Reason = 2
+ EventsConfigurationResponse_INVALID_CONFIG EventsConfigurationResponse_Reason = 3
+ EventsConfigurationResponse_DEVICE_UNREACHABLE EventsConfigurationResponse_Reason = 4
+)
+
+var EventsConfigurationResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "INVALID_CONFIG",
+ 4: "DEVICE_UNREACHABLE",
+}
+
+var EventsConfigurationResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "INVALID_CONFIG": 3,
+ "DEVICE_UNREACHABLE": 4,
+}
+
+func (x EventsConfigurationResponse_Reason) String() string {
+ return proto.EnumName(EventsConfigurationResponse_Reason_name, int32(x))
+}
+
+func (EventsConfigurationResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{8, 0}
+}
+
+type ValueType struct {
+ // Types that are valid to be assigned to Val:
+ // *ValueType_IntVal
+ // *ValueType_UintVal
+ // *ValueType_FloatVal
+ Val isValueType_Val `protobuf_oneof:"val"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ValueType) Reset() { *m = ValueType{} }
+func (m *ValueType) String() string { return proto.CompactTextString(m) }
+func (*ValueType) ProtoMessage() {}
+func (*ValueType) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{0}
+}
+
+func (m *ValueType) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ValueType.Unmarshal(m, b)
+}
+func (m *ValueType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ValueType.Marshal(b, m, deterministic)
+}
+func (m *ValueType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ValueType.Merge(m, src)
+}
+func (m *ValueType) XXX_Size() int {
+ return xxx_messageInfo_ValueType.Size(m)
+}
+func (m *ValueType) XXX_DiscardUnknown() {
+ xxx_messageInfo_ValueType.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ValueType proto.InternalMessageInfo
+
+type isValueType_Val interface {
+ isValueType_Val()
+}
+
+type ValueType_IntVal struct {
+ IntVal int64 `protobuf:"varint,1,opt,name=int_val,json=intVal,proto3,oneof"`
+}
+
+type ValueType_UintVal struct {
+ UintVal uint64 `protobuf:"varint,2,opt,name=uint_val,json=uintVal,proto3,oneof"`
+}
+
+type ValueType_FloatVal struct {
+ FloatVal float32 `protobuf:"fixed32,3,opt,name=float_val,json=floatVal,proto3,oneof"`
+}
+
+func (*ValueType_IntVal) isValueType_Val() {}
+
+func (*ValueType_UintVal) isValueType_Val() {}
+
+func (*ValueType_FloatVal) isValueType_Val() {}
+
+func (m *ValueType) GetVal() isValueType_Val {
+ if m != nil {
+ return m.Val
+ }
+ return nil
+}
+
+func (m *ValueType) GetIntVal() int64 {
+ if x, ok := m.GetVal().(*ValueType_IntVal); ok {
+ return x.IntVal
+ }
+ return 0
+}
+
+func (m *ValueType) GetUintVal() uint64 {
+ if x, ok := m.GetVal().(*ValueType_UintVal); ok {
+ return x.UintVal
+ }
+ return 0
+}
+
+func (m *ValueType) GetFloatVal() float32 {
+ if x, ok := m.GetVal().(*ValueType_FloatVal); ok {
+ return x.FloatVal
+ }
+ return 0
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*ValueType) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*ValueType_IntVal)(nil),
+ (*ValueType_UintVal)(nil),
+ (*ValueType_FloatVal)(nil),
+ }
+}
+
+type WaterMarks struct {
+ High *ValueType `protobuf:"bytes,1,opt,name=high,proto3" json:"high,omitempty"`
+ Low *ValueType `protobuf:"bytes,2,opt,name=low,proto3" json:"low,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *WaterMarks) Reset() { *m = WaterMarks{} }
+func (m *WaterMarks) String() string { return proto.CompactTextString(m) }
+func (*WaterMarks) ProtoMessage() {}
+func (*WaterMarks) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{1}
+}
+
+func (m *WaterMarks) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_WaterMarks.Unmarshal(m, b)
+}
+func (m *WaterMarks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_WaterMarks.Marshal(b, m, deterministic)
+}
+func (m *WaterMarks) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_WaterMarks.Merge(m, src)
+}
+func (m *WaterMarks) XXX_Size() int {
+ return xxx_messageInfo_WaterMarks.Size(m)
+}
+func (m *WaterMarks) XXX_DiscardUnknown() {
+ xxx_messageInfo_WaterMarks.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_WaterMarks proto.InternalMessageInfo
+
+func (m *WaterMarks) GetHigh() *ValueType {
+ if m != nil {
+ return m.High
+ }
+ return nil
+}
+
+func (m *WaterMarks) GetLow() *ValueType {
+ if m != nil {
+ return m.Low
+ }
+ return nil
+}
+
+type Thresholds struct {
+ // Types that are valid to be assigned to Threshold:
+ // *Thresholds_Upper
+ // *Thresholds_Lower
+ Threshold isThresholds_Threshold `protobuf_oneof:"threshold"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Thresholds) Reset() { *m = Thresholds{} }
+func (m *Thresholds) String() string { return proto.CompactTextString(m) }
+func (*Thresholds) ProtoMessage() {}
+func (*Thresholds) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{2}
+}
+
+func (m *Thresholds) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Thresholds.Unmarshal(m, b)
+}
+func (m *Thresholds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Thresholds.Marshal(b, m, deterministic)
+}
+func (m *Thresholds) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Thresholds.Merge(m, src)
+}
+func (m *Thresholds) XXX_Size() int {
+ return xxx_messageInfo_Thresholds.Size(m)
+}
+func (m *Thresholds) XXX_DiscardUnknown() {
+ xxx_messageInfo_Thresholds.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Thresholds proto.InternalMessageInfo
+
+type isThresholds_Threshold interface {
+ isThresholds_Threshold()
+}
+
+type Thresholds_Upper struct {
+ Upper *WaterMarks `protobuf:"bytes,1,opt,name=upper,proto3,oneof"`
+}
+
+type Thresholds_Lower struct {
+ Lower *WaterMarks `protobuf:"bytes,2,opt,name=lower,proto3,oneof"`
+}
+
+func (*Thresholds_Upper) isThresholds_Threshold() {}
+
+func (*Thresholds_Lower) isThresholds_Threshold() {}
+
+func (m *Thresholds) GetThreshold() isThresholds_Threshold {
+ if m != nil {
+ return m.Threshold
+ }
+ return nil
+}
+
+func (m *Thresholds) GetUpper() *WaterMarks {
+ if x, ok := m.GetThreshold().(*Thresholds_Upper); ok {
+ return x.Upper
+ }
+ return nil
+}
+
+func (m *Thresholds) GetLower() *WaterMarks {
+ if x, ok := m.GetThreshold().(*Thresholds_Lower); ok {
+ return x.Lower
+ }
+ return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*Thresholds) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*Thresholds_Upper)(nil),
+ (*Thresholds_Lower)(nil),
+ }
+}
+
+type ThresholdInformation struct {
+ ObservedValue *ValueType `protobuf:"bytes,1,opt,name=observed_value,json=observedValue,proto3" json:"observed_value,omitempty"`
+ Thresholds *Thresholds `protobuf:"bytes,2,opt,name=thresholds,proto3" json:"thresholds,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ThresholdInformation) Reset() { *m = ThresholdInformation{} }
+func (m *ThresholdInformation) String() string { return proto.CompactTextString(m) }
+func (*ThresholdInformation) ProtoMessage() {}
+func (*ThresholdInformation) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{3}
+}
+
+func (m *ThresholdInformation) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ThresholdInformation.Unmarshal(m, b)
+}
+func (m *ThresholdInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ThresholdInformation.Marshal(b, m, deterministic)
+}
+func (m *ThresholdInformation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ThresholdInformation.Merge(m, src)
+}
+func (m *ThresholdInformation) XXX_Size() int {
+ return xxx_messageInfo_ThresholdInformation.Size(m)
+}
+func (m *ThresholdInformation) XXX_DiscardUnknown() {
+ xxx_messageInfo_ThresholdInformation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ThresholdInformation proto.InternalMessageInfo
+
+func (m *ThresholdInformation) GetObservedValue() *ValueType {
+ if m != nil {
+ return m.ObservedValue
+ }
+ return nil
+}
+
+func (m *ThresholdInformation) GetThresholds() *Thresholds {
+ if m != nil {
+ return m.Thresholds
+ }
+ return nil
+}
+
+type EventCfg struct {
+ EventId EventIds `protobuf:"varint,1,opt,name=event_id,json=eventId,proto3,enum=dmi.EventIds" json:"event_id,omitempty"`
+ IsConfigured bool `protobuf:"varint,2,opt,name=is_configured,json=isConfigured,proto3" json:"is_configured,omitempty"`
+ // Optional threshold values, applicable only for some specific events
+ Thresholds *Thresholds `protobuf:"bytes,3,opt,name=thresholds,proto3" json:"thresholds,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EventCfg) Reset() { *m = EventCfg{} }
+func (m *EventCfg) String() string { return proto.CompactTextString(m) }
+func (*EventCfg) ProtoMessage() {}
+func (*EventCfg) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{4}
+}
+
+func (m *EventCfg) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_EventCfg.Unmarshal(m, b)
+}
+func (m *EventCfg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_EventCfg.Marshal(b, m, deterministic)
+}
+func (m *EventCfg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventCfg.Merge(m, src)
+}
+func (m *EventCfg) XXX_Size() int {
+ return xxx_messageInfo_EventCfg.Size(m)
+}
+func (m *EventCfg) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventCfg.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventCfg proto.InternalMessageInfo
+
+func (m *EventCfg) GetEventId() EventIds {
+ if m != nil {
+ return m.EventId
+ }
+ return EventIds_EVENT_NAME_UNDEFINED
+}
+
+func (m *EventCfg) GetIsConfigured() bool {
+ if m != nil {
+ return m.IsConfigured
+ }
+ return false
+}
+
+func (m *EventCfg) GetThresholds() *Thresholds {
+ if m != nil {
+ return m.Thresholds
+ }
+ return nil
+}
+
+type EventsCfg struct {
+ Items []*EventCfg `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EventsCfg) Reset() { *m = EventsCfg{} }
+func (m *EventsCfg) String() string { return proto.CompactTextString(m) }
+func (*EventsCfg) ProtoMessage() {}
+func (*EventsCfg) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{5}
+}
+
+func (m *EventsCfg) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_EventsCfg.Unmarshal(m, b)
+}
+func (m *EventsCfg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_EventsCfg.Marshal(b, m, deterministic)
+}
+func (m *EventsCfg) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventsCfg.Merge(m, src)
+}
+func (m *EventsCfg) XXX_Size() int {
+ return xxx_messageInfo_EventsCfg.Size(m)
+}
+func (m *EventsCfg) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventsCfg.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventsCfg proto.InternalMessageInfo
+
+func (m *EventsCfg) GetItems() []*EventCfg {
+ if m != nil {
+ return m.Items
+ }
+ return nil
+}
+
+type ListEventsResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason ListEventsResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.ListEventsResponse_Reason" json:"reason,omitempty"`
+ Events *EventsCfg `protobuf:"bytes,3,opt,name=events,proto3" json:"events,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ListEventsResponse) Reset() { *m = ListEventsResponse{} }
+func (m *ListEventsResponse) String() string { return proto.CompactTextString(m) }
+func (*ListEventsResponse) ProtoMessage() {}
+func (*ListEventsResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{6}
+}
+
+func (m *ListEventsResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ListEventsResponse.Unmarshal(m, b)
+}
+func (m *ListEventsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ListEventsResponse.Marshal(b, m, deterministic)
+}
+func (m *ListEventsResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListEventsResponse.Merge(m, src)
+}
+func (m *ListEventsResponse) XXX_Size() int {
+ return xxx_messageInfo_ListEventsResponse.Size(m)
+}
+func (m *ListEventsResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ListEventsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListEventsResponse proto.InternalMessageInfo
+
+func (m *ListEventsResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *ListEventsResponse) GetReason() ListEventsResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return ListEventsResponse_UNDEFINED_REASON
+}
+
+func (m *ListEventsResponse) GetEvents() *EventsCfg {
+ if m != nil {
+ return m.Events
+ }
+ return nil
+}
+
+func (m *ListEventsResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type EventsConfigurationRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ // Types that are valid to be assigned to Operation:
+ // *EventsConfigurationRequest_Changes
+ // *EventsConfigurationRequest_ResetToDefault
+ Operation isEventsConfigurationRequest_Operation `protobuf_oneof:"operation"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EventsConfigurationRequest) Reset() { *m = EventsConfigurationRequest{} }
+func (m *EventsConfigurationRequest) String() string { return proto.CompactTextString(m) }
+func (*EventsConfigurationRequest) ProtoMessage() {}
+func (*EventsConfigurationRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{7}
+}
+
+func (m *EventsConfigurationRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_EventsConfigurationRequest.Unmarshal(m, b)
+}
+func (m *EventsConfigurationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_EventsConfigurationRequest.Marshal(b, m, deterministic)
+}
+func (m *EventsConfigurationRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventsConfigurationRequest.Merge(m, src)
+}
+func (m *EventsConfigurationRequest) XXX_Size() int {
+ return xxx_messageInfo_EventsConfigurationRequest.Size(m)
+}
+func (m *EventsConfigurationRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventsConfigurationRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventsConfigurationRequest proto.InternalMessageInfo
+
+func (m *EventsConfigurationRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+type isEventsConfigurationRequest_Operation interface {
+ isEventsConfigurationRequest_Operation()
+}
+
+type EventsConfigurationRequest_Changes struct {
+ Changes *EventsCfg `protobuf:"bytes,2,opt,name=changes,proto3,oneof"`
+}
+
+type EventsConfigurationRequest_ResetToDefault struct {
+ ResetToDefault bool `protobuf:"varint,3,opt,name=reset_to_default,json=resetToDefault,proto3,oneof"`
+}
+
+func (*EventsConfigurationRequest_Changes) isEventsConfigurationRequest_Operation() {}
+
+func (*EventsConfigurationRequest_ResetToDefault) isEventsConfigurationRequest_Operation() {}
+
+func (m *EventsConfigurationRequest) GetOperation() isEventsConfigurationRequest_Operation {
+ if m != nil {
+ return m.Operation
+ }
+ return nil
+}
+
+func (m *EventsConfigurationRequest) GetChanges() *EventsCfg {
+ if x, ok := m.GetOperation().(*EventsConfigurationRequest_Changes); ok {
+ return x.Changes
+ }
+ return nil
+}
+
+func (m *EventsConfigurationRequest) GetResetToDefault() bool {
+ if x, ok := m.GetOperation().(*EventsConfigurationRequest_ResetToDefault); ok {
+ return x.ResetToDefault
+ }
+ return false
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*EventsConfigurationRequest) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*EventsConfigurationRequest_Changes)(nil),
+ (*EventsConfigurationRequest_ResetToDefault)(nil),
+ }
+}
+
+type EventsConfigurationResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason EventsConfigurationResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.EventsConfigurationResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,3,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EventsConfigurationResponse) Reset() { *m = EventsConfigurationResponse{} }
+func (m *EventsConfigurationResponse) String() string { return proto.CompactTextString(m) }
+func (*EventsConfigurationResponse) ProtoMessage() {}
+func (*EventsConfigurationResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{8}
+}
+
+func (m *EventsConfigurationResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_EventsConfigurationResponse.Unmarshal(m, b)
+}
+func (m *EventsConfigurationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_EventsConfigurationResponse.Marshal(b, m, deterministic)
+}
+func (m *EventsConfigurationResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventsConfigurationResponse.Merge(m, src)
+}
+func (m *EventsConfigurationResponse) XXX_Size() int {
+ return xxx_messageInfo_EventsConfigurationResponse.Size(m)
+}
+func (m *EventsConfigurationResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventsConfigurationResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventsConfigurationResponse proto.InternalMessageInfo
+
+func (m *EventsConfigurationResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *EventsConfigurationResponse) GetReason() EventsConfigurationResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return EventsConfigurationResponse_UNDEFINED_REASON
+}
+
+func (m *EventsConfigurationResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type EventMetaData struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ // uuid of the component
+ ComponentUuid *Uuid `protobuf:"bytes,2,opt,name=component_uuid,json=componentUuid,proto3" json:"component_uuid,omitempty"`
+ ComponentName string `protobuf:"bytes,3,opt,name=component_name,json=componentName,proto3" json:"component_name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EventMetaData) Reset() { *m = EventMetaData{} }
+func (m *EventMetaData) String() string { return proto.CompactTextString(m) }
+func (*EventMetaData) ProtoMessage() {}
+func (*EventMetaData) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{9}
+}
+
+func (m *EventMetaData) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_EventMetaData.Unmarshal(m, b)
+}
+func (m *EventMetaData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_EventMetaData.Marshal(b, m, deterministic)
+}
+func (m *EventMetaData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventMetaData.Merge(m, src)
+}
+func (m *EventMetaData) XXX_Size() int {
+ return xxx_messageInfo_EventMetaData.Size(m)
+}
+func (m *EventMetaData) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventMetaData.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventMetaData proto.InternalMessageInfo
+
+func (m *EventMetaData) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *EventMetaData) GetComponentUuid() *Uuid {
+ if m != nil {
+ return m.ComponentUuid
+ }
+ return nil
+}
+
+func (m *EventMetaData) GetComponentName() string {
+ if m != nil {
+ return m.ComponentName
+ }
+ return ""
+}
+
+type Event struct {
+ EventMetadata *EventMetaData `protobuf:"bytes,1,opt,name=event_metadata,json=eventMetadata,proto3" json:"event_metadata,omitempty"`
+ EventId EventIds `protobuf:"varint,2,opt,name=event_id,json=eventId,proto3,enum=dmi.EventIds" json:"event_id,omitempty"`
+ RaisedTs *timestamp.Timestamp `protobuf:"bytes,3,opt,name=raised_ts,json=raisedTs,proto3" json:"raised_ts,omitempty"`
+ // Optional threshold information for an event
+ ThresholdInfo *ThresholdInformation `protobuf:"bytes,4,opt,name=threshold_info,json=thresholdInfo,proto3" json:"threshold_info,omitempty"`
+ // Any additional info regarding the event
+ AddInfo string `protobuf:"bytes,5,opt,name=add_info,json=addInfo,proto3" json:"add_info,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Event) Reset() { *m = Event{} }
+func (m *Event) String() string { return proto.CompactTextString(m) }
+func (*Event) ProtoMessage() {}
+func (*Event) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8962d785556e9979, []int{10}
+}
+
+func (m *Event) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Event.Unmarshal(m, b)
+}
+func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Event.Marshal(b, m, deterministic)
+}
+func (m *Event) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Event.Merge(m, src)
+}
+func (m *Event) XXX_Size() int {
+ return xxx_messageInfo_Event.Size(m)
+}
+func (m *Event) XXX_DiscardUnknown() {
+ xxx_messageInfo_Event.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Event proto.InternalMessageInfo
+
+func (m *Event) GetEventMetadata() *EventMetaData {
+ if m != nil {
+ return m.EventMetadata
+ }
+ return nil
+}
+
+func (m *Event) GetEventId() EventIds {
+ if m != nil {
+ return m.EventId
+ }
+ return EventIds_EVENT_NAME_UNDEFINED
+}
+
+func (m *Event) GetRaisedTs() *timestamp.Timestamp {
+ if m != nil {
+ return m.RaisedTs
+ }
+ return nil
+}
+
+func (m *Event) GetThresholdInfo() *ThresholdInformation {
+ if m != nil {
+ return m.ThresholdInfo
+ }
+ return nil
+}
+
+func (m *Event) GetAddInfo() string {
+ if m != nil {
+ return m.AddInfo
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterEnum("dmi.EventIds", EventIds_name, EventIds_value)
+ proto.RegisterEnum("dmi.ListEventsResponse_Reason", ListEventsResponse_Reason_name, ListEventsResponse_Reason_value)
+ proto.RegisterEnum("dmi.EventsConfigurationResponse_Reason", EventsConfigurationResponse_Reason_name, EventsConfigurationResponse_Reason_value)
+ proto.RegisterType((*ValueType)(nil), "dmi.ValueType")
+ proto.RegisterType((*WaterMarks)(nil), "dmi.WaterMarks")
+ proto.RegisterType((*Thresholds)(nil), "dmi.Thresholds")
+ proto.RegisterType((*ThresholdInformation)(nil), "dmi.ThresholdInformation")
+ proto.RegisterType((*EventCfg)(nil), "dmi.EventCfg")
+ proto.RegisterType((*EventsCfg)(nil), "dmi.EventsCfg")
+ proto.RegisterType((*ListEventsResponse)(nil), "dmi.ListEventsResponse")
+ proto.RegisterType((*EventsConfigurationRequest)(nil), "dmi.EventsConfigurationRequest")
+ proto.RegisterType((*EventsConfigurationResponse)(nil), "dmi.EventsConfigurationResponse")
+ proto.RegisterType((*EventMetaData)(nil), "dmi.EventMetaData")
+ proto.RegisterType((*Event)(nil), "dmi.Event")
+}
+
+func init() { proto.RegisterFile("dmi/hw_events_mgmt_service.proto", fileDescriptor_8962d785556e9979) }
+
+var fileDescriptor_8962d785556e9979 = []byte{
+ // 1448 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x73, 0xdb, 0xd4,
+ 0x17, 0x8f, 0xad, 0x3c, 0x9c, 0x93, 0xc6, 0x7f, 0xf5, 0x4e, 0xff, 0x6d, 0xe2, 0x4e, 0x5b, 0xe3,
+ 0x40, 0x93, 0x06, 0x62, 0xb7, 0x09, 0xb4, 0x74, 0xba, 0x00, 0xc5, 0x56, 0x6a, 0x0d, 0x8e, 0x9c,
+ 0xb9, 0x91, 0x1d, 0x86, 0x45, 0x35, 0x37, 0xd6, 0xb5, 0x2d, 0x6a, 0x49, 0xae, 0x74, 0x95, 0x50,
+ 0x98, 0x61, 0xc1, 0x92, 0x15, 0xaf, 0x25, 0xc3, 0x27, 0xa0, 0xb0, 0xe4, 0x2b, 0xf0, 0x58, 0xf1,
+ 0x5d, 0x78, 0x2d, 0x19, 0x5d, 0xc9, 0xb6, 0xe2, 0x47, 0x9c, 0xce, 0xb0, 0xb3, 0xce, 0xf9, 0xfd,
+ 0xce, 0xf9, 0x5d, 0x9d, 0x73, 0x8f, 0x8e, 0x21, 0x6b, 0x58, 0x66, 0xa1, 0x7d, 0xaa, 0xd3, 0x13,
+ 0x6a, 0x33, 0x4f, 0xb7, 0x5a, 0x16, 0xd3, 0x3d, 0xea, 0x9e, 0x98, 0x0d, 0x9a, 0xef, 0xba, 0x0e,
+ 0x73, 0x90, 0x60, 0x58, 0x66, 0xe6, 0x72, 0x00, 0x6b, 0x38, 0x96, 0xe5, 0xd8, 0x5e, 0x68, 0xcf,
+ 0x5c, 0x0a, 0x99, 0xd1, 0xd3, 0xad, 0x96, 0xe3, 0xb4, 0x3a, 0xb4, 0xc0, 0x9f, 0x8e, 0xfd, 0x66,
+ 0x81, 0x99, 0x16, 0xf5, 0x18, 0xb1, 0xba, 0x21, 0x20, 0x67, 0xc2, 0x62, 0x9d, 0x74, 0x7c, 0xaa,
+ 0x3d, 0xef, 0x52, 0xb4, 0x0a, 0x0b, 0xa6, 0xcd, 0xf4, 0x13, 0xd2, 0x59, 0x49, 0x64, 0x13, 0x1b,
+ 0x42, 0x79, 0x06, 0xcf, 0x9b, 0x36, 0xab, 0x93, 0x0e, 0xba, 0x0e, 0x29, 0xbf, 0xe7, 0x4b, 0x66,
+ 0x13, 0x1b, 0xb3, 0xe5, 0x19, 0xbc, 0xe0, 0x47, 0xce, 0x1b, 0xb0, 0xd8, 0xec, 0x38, 0x24, 0xf4,
+ 0x0a, 0xd9, 0xc4, 0x46, 0xb2, 0x3c, 0x83, 0x53, 0xdc, 0x54, 0x27, 0x9d, 0xdd, 0x39, 0x10, 0x4e,
+ 0x48, 0x27, 0x87, 0x01, 0x8e, 0x08, 0xa3, 0xee, 0x3e, 0x71, 0x9f, 0x7a, 0x28, 0x07, 0xb3, 0x6d,
+ 0xb3, 0xd5, 0xe6, 0x89, 0x96, 0xb6, 0xd3, 0x79, 0xc3, 0x32, 0xf3, 0x7d, 0x25, 0x98, 0xfb, 0x50,
+ 0x16, 0x84, 0x8e, 0x73, 0xca, 0xf3, 0x8d, 0x42, 0x02, 0x57, 0xee, 0x29, 0x80, 0xd6, 0x76, 0xa9,
+ 0xd7, 0x76, 0x3a, 0x86, 0x87, 0xd6, 0x61, 0xce, 0xef, 0x76, 0xa9, 0x1b, 0x05, 0xfd, 0x1f, 0x67,
+ 0x0c, 0x72, 0x96, 0x67, 0x70, 0xe8, 0x0f, 0x80, 0x1d, 0xe7, 0x94, 0xba, 0x51, 0xe8, 0x71, 0x40,
+ 0xee, 0xdf, 0x5d, 0x82, 0x45, 0xd6, 0x8b, 0x9f, 0xfb, 0x14, 0xae, 0xf4, 0x93, 0x29, 0x76, 0xd3,
+ 0x71, 0x2d, 0xc2, 0x4c, 0xc7, 0x46, 0x6f, 0x41, 0xda, 0x39, 0x0e, 0xaa, 0x43, 0x8d, 0xe0, 0x0d,
+ 0xf8, 0x74, 0xc2, 0xa1, 0x96, 0x7b, 0x28, 0x6e, 0x42, 0x05, 0x80, 0x7e, 0x6c, 0xef, 0x8c, 0x92,
+ 0xc1, 0x91, 0x70, 0x0c, 0x92, 0xfb, 0x3c, 0x01, 0x29, 0x39, 0x68, 0x88, 0x62, 0xb3, 0x85, 0x36,
+ 0x20, 0xc5, 0x9b, 0x43, 0x37, 0x0d, 0x9e, 0x2e, 0xbd, 0xbd, 0xcc, 0xb9, 0x1c, 0xa0, 0x18, 0x1e,
+ 0x5e, 0xa0, 0xe1, 0x2f, 0xb4, 0x06, 0xcb, 0xa6, 0xa7, 0x37, 0x1c, 0xbb, 0x69, 0xb6, 0x7c, 0x97,
+ 0x1a, 0x3c, 0x55, 0x0a, 0x5f, 0x32, 0xbd, 0x62, 0xdf, 0x36, 0x24, 0x46, 0x98, 0x2e, 0xe6, 0x2e,
+ 0x2c, 0xf2, 0x54, 0x5e, 0x20, 0x66, 0x0d, 0xe6, 0x4c, 0x46, 0x2d, 0x6f, 0x25, 0x91, 0x15, 0x36,
+ 0x96, 0xe2, 0x4a, 0x8a, 0xcd, 0x16, 0x0e, 0x7d, 0xb9, 0xef, 0x92, 0x80, 0x2a, 0xa6, 0xc7, 0x42,
+ 0x1a, 0xa6, 0x5e, 0xd7, 0xb1, 0x3d, 0x8a, 0xd6, 0x60, 0xde, 0x63, 0x84, 0xf9, 0x5e, 0x74, 0x8c,
+ 0x25, 0x4e, 0x3e, 0xe4, 0x26, 0x1c, 0xb9, 0xd0, 0x7d, 0x98, 0x77, 0x29, 0xf1, 0x1c, 0x9b, 0x8b,
+ 0x4f, 0x6f, 0xdf, 0xe4, 0xa0, 0xd1, 0x68, 0x79, 0xcc, 0x51, 0x38, 0x42, 0xa3, 0xdb, 0x30, 0x1f,
+ 0x5e, 0xa1, 0xe8, 0x48, 0xe9, 0x81, 0xb2, 0x40, 0x38, 0x8e, 0xbc, 0xc1, 0x3b, 0x0a, 0x19, 0xba,
+ 0x41, 0x19, 0x31, 0x3b, 0x2b, 0xb3, 0xd9, 0xc4, 0xc6, 0x22, 0xbe, 0x14, 0x1a, 0x4b, 0xdc, 0x96,
+ 0x7b, 0x02, 0xf3, 0x61, 0x78, 0x74, 0x05, 0xc4, 0x9a, 0x5a, 0x92, 0xf7, 0x14, 0x55, 0x2e, 0xe9,
+ 0x58, 0x96, 0x0e, 0xab, 0xaa, 0x38, 0x83, 0x10, 0xa4, 0x6b, 0xea, 0x7b, 0x6a, 0xf5, 0x48, 0xd5,
+ 0x4b, 0x72, 0x5d, 0x29, 0xca, 0x62, 0x22, 0xb0, 0x29, 0xaa, 0x26, 0x63, 0x55, 0xaa, 0xe8, 0x32,
+ 0xc6, 0x55, 0x2c, 0x26, 0xd1, 0x55, 0x40, 0xa1, 0x5f, 0xaf, 0xa9, 0x58, 0x96, 0x8a, 0x65, 0x69,
+ 0xb7, 0x22, 0x8b, 0x42, 0xee, 0x45, 0x02, 0x32, 0x91, 0xb4, 0xa8, 0x30, 0xbc, 0xbf, 0x30, 0x7d,
+ 0xe6, 0x53, 0x8f, 0xa1, 0x4d, 0x58, 0x32, 0x68, 0x30, 0x01, 0x74, 0xdf, 0x8f, 0x8a, 0xbe, 0xb4,
+ 0xbd, 0xc8, 0x0f, 0x54, 0xf3, 0x4d, 0x03, 0x43, 0xe8, 0x0d, 0x7e, 0xa3, 0x4d, 0x58, 0x68, 0xb4,
+ 0x89, 0xdd, 0xa2, 0xde, 0x99, 0xdb, 0xd3, 0x3f, 0x78, 0x70, 0x7b, 0x23, 0x00, 0xda, 0x04, 0xd1,
+ 0xa5, 0x1e, 0x65, 0x3a, 0x73, 0x74, 0x83, 0x36, 0x89, 0xdf, 0x61, 0xfc, 0x6d, 0xa5, 0xca, 0x33,
+ 0x38, 0xcd, 0x3d, 0x9a, 0x53, 0x0a, 0xed, 0xc1, 0x7d, 0x70, 0xba, 0x34, 0xd4, 0x95, 0xfb, 0x36,
+ 0x09, 0xd7, 0xc7, 0xea, 0x7d, 0x99, 0xca, 0xbe, 0x33, 0x54, 0xd9, 0xf5, 0xb8, 0xd0, 0x71, 0x61,
+ 0x87, 0x4b, 0x3c, 0x52, 0x3a, 0x61, 0x4c, 0xe9, 0xdc, 0xff, 0xa8, 0x74, 0xdc, 0x56, 0x97, 0x2a,
+ 0x4a, 0x49, 0x2f, 0x56, 0xd5, 0x3d, 0xe5, 0xb1, 0x28, 0x4c, 0x28, 0xe7, 0x6c, 0xee, 0x9b, 0x04,
+ 0x2c, 0xf3, 0x73, 0xec, 0x53, 0x46, 0x4a, 0x84, 0x91, 0x97, 0xaa, 0xe0, 0x5d, 0x48, 0x37, 0x1c,
+ 0xab, 0xeb, 0xd8, 0xc1, 0x1d, 0xe7, 0xf0, 0xe4, 0x30, 0x7c, 0xb9, 0x0f, 0xe0, 0x8c, 0xd7, 0xe2,
+ 0x0c, 0x9b, 0x58, 0x34, 0x7a, 0x13, 0x03, 0x98, 0x4a, 0x2c, 0x9a, 0xfb, 0x2c, 0x09, 0x73, 0x5c,
+ 0x16, 0x7a, 0x08, 0xe9, 0x70, 0x84, 0x58, 0x94, 0x11, 0x83, 0x30, 0x12, 0x29, 0x42, 0x83, 0x12,
+ 0xf4, 0xa4, 0xe3, 0x65, 0xda, 0x7b, 0x0c, 0x80, 0x67, 0xa6, 0x4f, 0xf2, 0xdc, 0xe9, 0xf3, 0x00,
+ 0x16, 0x5d, 0x62, 0x7a, 0xd4, 0xd0, 0xfb, 0x97, 0x30, 0x93, 0x0f, 0xbf, 0x4a, 0xf9, 0xde, 0x57,
+ 0x29, 0xaf, 0xf5, 0xbe, 0x4a, 0x38, 0x15, 0x82, 0x35, 0x0f, 0xbd, 0x0b, 0xe9, 0xfe, 0xb8, 0xd1,
+ 0x4d, 0xbb, 0xe9, 0xf0, 0x3b, 0xb9, 0xb4, 0xbd, 0x7a, 0x76, 0x2a, 0xc5, 0x06, 0x31, 0x5e, 0x66,
+ 0x71, 0x2b, 0x5a, 0x85, 0x14, 0x31, 0x22, 0xee, 0x1c, 0x7f, 0x15, 0x0b, 0xc4, 0xe0, 0xae, 0xcd,
+ 0xdf, 0xd3, 0xd1, 0x28, 0x55, 0x0c, 0x0f, 0xad, 0xc0, 0x15, 0xb9, 0x2e, 0xab, 0x9a, 0xae, 0x4a,
+ 0xfb, 0x41, 0x11, 0xa3, 0xee, 0x10, 0x67, 0xd0, 0x4d, 0xc8, 0x84, 0x1e, 0x0d, 0x4b, 0xea, 0x61,
+ 0x51, 0x56, 0xea, 0x32, 0xd6, 0x0f, 0x2a, 0xb5, 0xc7, 0x7a, 0xb5, 0xa6, 0x89, 0x06, 0xba, 0x01,
+ 0xab, 0x13, 0xfc, 0x8a, 0x2a, 0x52, 0xb4, 0x05, 0x77, 0x46, 0xdd, 0xf5, 0x6a, 0x45, 0x93, 0x1e,
+ 0xcb, 0xba, 0xb4, 0x5b, 0xad, 0xcb, 0xba, 0x56, 0xc6, 0xf2, 0x61, 0xb9, 0x5a, 0x29, 0x89, 0xcd,
+ 0xf3, 0xe1, 0xbb, 0x72, 0xa5, 0x7a, 0x14, 0x83, 0xb7, 0xd0, 0x3d, 0xd8, 0x1a, 0x85, 0x6b, 0xf2,
+ 0xfe, 0x81, 0x8c, 0x25, 0xad, 0x86, 0x47, 0x33, 0xb4, 0xa7, 0x53, 0x86, 0xb3, 0x98, 0xe3, 0x45,
+ 0x15, 0x6b, 0x18, 0x07, 0xb6, 0xe1, 0x0c, 0x1f, 0x9e, 0x0f, 0x1f, 0x8e, 0xfe, 0x14, 0xe5, 0x61,
+ 0x73, 0x14, 0x8e, 0xdf, 0xd7, 0x0f, 0xaa, 0x47, 0x32, 0x1e, 0x09, 0xdf, 0x99, 0x82, 0x1f, 0x8e,
+ 0x6f, 0x8d, 0xc7, 0x6b, 0x93, 0xe2, 0xdb, 0x53, 0xf0, 0xc3, 0xf1, 0x9d, 0xf1, 0x0d, 0xb0, 0x27,
+ 0x29, 0x95, 0x1a, 0x96, 0xc5, 0x2e, 0x7a, 0x00, 0x3b, 0x17, 0x6e, 0x00, 0x1d, 0xcb, 0xc5, 0x6a,
+ 0x5d, 0xc6, 0x72, 0x49, 0x7c, 0x76, 0x3e, 0x71, 0x48, 0x46, 0x8c, 0xe8, 0xa2, 0x47, 0xf0, 0xe0,
+ 0xa5, 0x9a, 0x22, 0x46, 0xf6, 0xa6, 0x93, 0x27, 0x67, 0x66, 0xe3, 0x25, 0x4f, 0x68, 0x94, 0x18,
+ 0xd1, 0x3f, 0x9f, 0x38, 0x39, 0xe3, 0x09, 0x7a, 0x1b, 0xde, 0xbc, 0x78, 0xf3, 0xc4, 0x98, 0xa7,
+ 0x53, 0x98, 0x93, 0x73, 0x7e, 0x34, 0x9e, 0xa9, 0x4d, 0xcf, 0xf9, 0x7c, 0x0a, 0x73, 0x72, 0xce,
+ 0x8f, 0xd1, 0x3a, 0xac, 0x4d, 0x6c, 0xb2, 0x18, 0xf0, 0x13, 0x74, 0x0d, 0x50, 0x08, 0x3c, 0x38,
+ 0xac, 0x0d, 0xc6, 0xd4, 0xcf, 0x09, 0x74, 0x15, 0x2e, 0x0f, 0x39, 0x14, 0x55, 0xfc, 0x65, 0xc8,
+ 0xde, 0x6b, 0xdb, 0x5f, 0x13, 0x28, 0x0b, 0xd7, 0x47, 0xec, 0xb1, 0x4c, 0xbf, 0xc5, 0x98, 0x7b,
+ 0x92, 0xda, 0x67, 0x7e, 0x9f, 0x1c, 0x48, 0x08, 0xec, 0x7d, 0x09, 0x2f, 0x92, 0x67, 0x09, 0x3d,
+ 0x09, 0x3f, 0x24, 0x07, 0xa9, 0x62, 0x81, 0x62, 0xa9, 0x7e, 0x4c, 0xa2, 0x3b, 0xf0, 0x6a, 0x88,
+ 0x28, 0x1e, 0xd4, 0xc6, 0xb4, 0x72, 0x11, 0x2b, 0x9a, 0x52, 0x94, 0x2a, 0xe2, 0x17, 0x02, 0xba,
+ 0x0d, 0xaf, 0x9c, 0x07, 0xdd, 0x93, 0x34, 0xa9, 0x22, 0x7e, 0x29, 0xa0, 0x1d, 0xc8, 0x5f, 0x24,
+ 0x64, 0x4c, 0xc7, 0x57, 0x02, 0xba, 0x0b, 0xaf, 0x4f, 0x0d, 0x1e, 0x63, 0x7c, 0x2d, 0xa0, 0x0c,
+ 0xfc, 0x3f, 0x64, 0x94, 0x8f, 0xa2, 0xb5, 0x42, 0xc7, 0xf2, 0xa1, 0xac, 0x89, 0x7f, 0x08, 0xa8,
+ 0xd0, 0x9b, 0x34, 0x03, 0xdf, 0x39, 0x67, 0xfb, 0x53, 0x40, 0x6f, 0xc0, 0xfa, 0x74, 0x42, 0x78,
+ 0xc2, 0xbf, 0x04, 0xf4, 0xb0, 0xd7, 0x6d, 0x17, 0x09, 0x1f, 0x53, 0xfd, 0xb7, 0x80, 0xee, 0xc3,
+ 0xbd, 0x0b, 0x26, 0x8a, 0xf1, 0xfe, 0x11, 0xb6, 0x7f, 0x4a, 0xc0, 0x0d, 0x95, 0x30, 0xf3, 0x84,
+ 0x86, 0xdb, 0xdb, 0x3e, 0xb1, 0x49, 0x8b, 0x5a, 0xd4, 0x66, 0x87, 0xe1, 0x3f, 0x57, 0x74, 0x1f,
+ 0x60, 0xb0, 0xb2, 0xa3, 0xf0, 0xef, 0x45, 0x99, 0xb8, 0xc6, 0x29, 0x71, 0xa9, 0x52, 0xca, 0x5c,
+ 0x9b, 0xb0, 0xd4, 0xa3, 0x27, 0xb0, 0x5a, 0xeb, 0x1a, 0x84, 0xd1, 0x31, 0x6b, 0x21, 0xba, 0x35,
+ 0x79, 0x61, 0xe4, 0x7b, 0x73, 0x26, 0x3b, 0x6d, 0xa3, 0xdc, 0x7d, 0xf4, 0xc1, 0xc3, 0x96, 0xc9,
+ 0xda, 0xfe, 0x71, 0xbe, 0xe1, 0x58, 0x05, 0xa7, 0x4b, 0xed, 0x86, 0xe3, 0x1a, 0x85, 0x70, 0x1b,
+ 0xdb, 0xb2, 0xfa, 0xe7, 0xd8, 0x32, 0x6d, 0x46, 0xdd, 0x26, 0x69, 0xd0, 0xc2, 0xc9, 0x4e, 0xa1,
+ 0xe5, 0x14, 0x0c, 0xcb, 0x3c, 0x9e, 0xe7, 0x5b, 0xcc, 0xce, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff,
+ 0x36, 0x83, 0x3b, 0x4c, 0xb3, 0x0f, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// NativeEventsManagementServiceClient is the client API for NativeEventsManagementService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type NativeEventsManagementServiceClient interface {
+ // List the supported events for the passed device
+ ListEvents(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*ListEventsResponse, error)
+ // Updates the configuration of the list of events in the request
+ // The default behavior of the device is to report all the supported events
+ // This configuration is persisted across reboots of the device or the device manager
+ UpdateEventsConfiguration(ctx context.Context, in *EventsConfigurationRequest, opts ...grpc.CallOption) (*EventsConfigurationResponse, error)
+}
+
+type nativeEventsManagementServiceClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewNativeEventsManagementServiceClient(cc *grpc.ClientConn) NativeEventsManagementServiceClient {
+ return &nativeEventsManagementServiceClient{cc}
+}
+
+func (c *nativeEventsManagementServiceClient) ListEvents(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*ListEventsResponse, error) {
+ out := new(ListEventsResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeEventsManagementService/ListEvents", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeEventsManagementServiceClient) UpdateEventsConfiguration(ctx context.Context, in *EventsConfigurationRequest, opts ...grpc.CallOption) (*EventsConfigurationResponse, error) {
+ out := new(EventsConfigurationResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeEventsManagementService/UpdateEventsConfiguration", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// NativeEventsManagementServiceServer is the server API for NativeEventsManagementService service.
+type NativeEventsManagementServiceServer interface {
+ // List the supported events for the passed device
+ ListEvents(context.Context, *HardwareID) (*ListEventsResponse, error)
+ // Updates the configuration of the list of events in the request
+ // The default behavior of the device is to report all the supported events
+ // This configuration is persisted across reboots of the device or the device manager
+ UpdateEventsConfiguration(context.Context, *EventsConfigurationRequest) (*EventsConfigurationResponse, error)
+}
+
+func RegisterNativeEventsManagementServiceServer(s *grpc.Server, srv NativeEventsManagementServiceServer) {
+ s.RegisterService(&_NativeEventsManagementService_serviceDesc, srv)
+}
+
+func _NativeEventsManagementService_ListEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HardwareID)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeEventsManagementServiceServer).ListEvents(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeEventsManagementService/ListEvents",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeEventsManagementServiceServer).ListEvents(ctx, req.(*HardwareID))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeEventsManagementService_UpdateEventsConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(EventsConfigurationRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeEventsManagementServiceServer).UpdateEventsConfiguration(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeEventsManagementService/UpdateEventsConfiguration",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeEventsManagementServiceServer).UpdateEventsConfiguration(ctx, req.(*EventsConfigurationRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _NativeEventsManagementService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "dmi.NativeEventsManagementService",
+ HandlerType: (*NativeEventsManagementServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListEvents",
+ Handler: _NativeEventsManagementService_ListEvents_Handler,
+ },
+ {
+ MethodName: "UpdateEventsConfiguration",
+ Handler: _NativeEventsManagementService_UpdateEventsConfiguration_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "dmi/hw_events_mgmt_service.proto",
+}
diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/hw_management_service.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/hw_management_service.pb.go
new file mode 100644
index 0000000..18d6108
--- /dev/null
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/hw_management_service.pb.go
@@ -0,0 +1,2225 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: dmi/hw_management_service.proto
+
+package dmi
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ empty "github.com/golang/protobuf/ptypes/empty"
+ grpc "google.golang.org/grpc"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type PhysicalInventoryResponse_Reason int32
+
+const (
+ PhysicalInventoryResponse_UNDEFINED_REASON PhysicalInventoryResponse_Reason = 0
+ PhysicalInventoryResponse_UNKNOWN_DEVICE PhysicalInventoryResponse_Reason = 1
+ PhysicalInventoryResponse_INTERNAL_ERROR PhysicalInventoryResponse_Reason = 2
+ PhysicalInventoryResponse_DEVICE_UNREACHABLE PhysicalInventoryResponse_Reason = 3
+)
+
+var PhysicalInventoryResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "DEVICE_UNREACHABLE",
+}
+
+var PhysicalInventoryResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "DEVICE_UNREACHABLE": 3,
+}
+
+func (x PhysicalInventoryResponse_Reason) String() string {
+ return proto.EnumName(PhysicalInventoryResponse_Reason_name, int32(x))
+}
+
+func (PhysicalInventoryResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{1, 0}
+}
+
+type HWComponentInfoGetResponse_Reason int32
+
+const (
+ HWComponentInfoGetResponse_UNDEFINED_REASON HWComponentInfoGetResponse_Reason = 0
+ HWComponentInfoGetResponse_UNKNOWN_DEVICE HWComponentInfoGetResponse_Reason = 1
+ HWComponentInfoGetResponse_UNKNOWN_COMPONENT HWComponentInfoGetResponse_Reason = 2
+ HWComponentInfoGetResponse_INTERNAL_ERROR HWComponentInfoGetResponse_Reason = 3
+ HWComponentInfoGetResponse_DEVICE_UNREACHABLE HWComponentInfoGetResponse_Reason = 4
+)
+
+var HWComponentInfoGetResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "UNKNOWN_COMPONENT",
+ 3: "INTERNAL_ERROR",
+ 4: "DEVICE_UNREACHABLE",
+}
+
+var HWComponentInfoGetResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "UNKNOWN_COMPONENT": 2,
+ "INTERNAL_ERROR": 3,
+ "DEVICE_UNREACHABLE": 4,
+}
+
+func (x HWComponentInfoGetResponse_Reason) String() string {
+ return proto.EnumName(HWComponentInfoGetResponse_Reason_name, int32(x))
+}
+
+func (HWComponentInfoGetResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{3, 0}
+}
+
+type HWComponentInfoSetResponse_Reason int32
+
+const (
+ HWComponentInfoSetResponse_UNDEFINED_REASON HWComponentInfoSetResponse_Reason = 0
+ HWComponentInfoSetResponse_UNKNOWN_DEVICE HWComponentInfoSetResponse_Reason = 1
+ HWComponentInfoSetResponse_UNKNOWN_COMPONENT HWComponentInfoSetResponse_Reason = 2
+ HWComponentInfoSetResponse_INVALID_PARAMS HWComponentInfoSetResponse_Reason = 3
+ HWComponentInfoSetResponse_INTERNAL_ERROR HWComponentInfoSetResponse_Reason = 4
+ HWComponentInfoSetResponse_DEVICE_UNREACHABLE HWComponentInfoSetResponse_Reason = 5
+)
+
+var HWComponentInfoSetResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "UNKNOWN_COMPONENT",
+ 3: "INVALID_PARAMS",
+ 4: "INTERNAL_ERROR",
+ 5: "DEVICE_UNREACHABLE",
+}
+
+var HWComponentInfoSetResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "UNKNOWN_COMPONENT": 2,
+ "INVALID_PARAMS": 3,
+ "INTERNAL_ERROR": 4,
+ "DEVICE_UNREACHABLE": 5,
+}
+
+func (x HWComponentInfoSetResponse_Reason) String() string {
+ return proto.EnumName(HWComponentInfoSetResponse_Reason_name, int32(x))
+}
+
+func (HWComponentInfoSetResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{5, 0}
+}
+
+type StartManagingDeviceResponse_Reason int32
+
+const (
+ StartManagingDeviceResponse_UNDEFINED_REASON StartManagingDeviceResponse_Reason = 0
+ // DEVICE_ALREADY_MANAGED is returned when StartManagingDevice is called again for the same name AFTER a previously
+ // successful StartManagingDevice operation
+ StartManagingDeviceResponse_DEVICE_ALREADY_MANAGED StartManagingDeviceResponse_Reason = 1
+ // OPERATION_ALREADY_IN_PROGRESS is returned when StartManagingDevice is called again for the same name BEFORE
+ // a previous StartManagingDevice operation has completed
+ StartManagingDeviceResponse_OPERATION_ALREADY_IN_PROGRESS StartManagingDeviceResponse_Reason = 2
+ StartManagingDeviceResponse_INVALID_PARAMS StartManagingDeviceResponse_Reason = 3
+ StartManagingDeviceResponse_INTERNAL_ERROR StartManagingDeviceResponse_Reason = 4
+)
+
+var StartManagingDeviceResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "DEVICE_ALREADY_MANAGED",
+ 2: "OPERATION_ALREADY_IN_PROGRESS",
+ 3: "INVALID_PARAMS",
+ 4: "INTERNAL_ERROR",
+}
+
+var StartManagingDeviceResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "DEVICE_ALREADY_MANAGED": 1,
+ "OPERATION_ALREADY_IN_PROGRESS": 2,
+ "INVALID_PARAMS": 3,
+ "INTERNAL_ERROR": 4,
+}
+
+func (x StartManagingDeviceResponse_Reason) String() string {
+ return proto.EnumName(StartManagingDeviceResponse_Reason_name, int32(x))
+}
+
+func (StartManagingDeviceResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{6, 0}
+}
+
+// The only case in which an error is expected is if the name of the
+// device to be stopped is not found
+type StopManagingDeviceResponse_Reason int32
+
+const (
+ StopManagingDeviceResponse_UNDEFINED_REASON StopManagingDeviceResponse_Reason = 0
+ StopManagingDeviceResponse_UNKNOWN_DEVICE StopManagingDeviceResponse_Reason = 1
+)
+
+var StopManagingDeviceResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+}
+
+var StopManagingDeviceResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+}
+
+func (x StopManagingDeviceResponse_Reason) String() string {
+ return proto.EnumName(StopManagingDeviceResponse_Reason_name, int32(x))
+}
+
+func (StopManagingDeviceResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{8, 0}
+}
+
+type SetRemoteEndpointResponse_Reason int32
+
+const (
+ SetRemoteEndpointResponse_UNDEFINED_REASON SetRemoteEndpointResponse_Reason = 0
+ SetRemoteEndpointResponse_UNKNOWN_DEVICE SetRemoteEndpointResponse_Reason = 1
+ SetRemoteEndpointResponse_INTERNAL_ERROR SetRemoteEndpointResponse_Reason = 2
+ SetRemoteEndpointResponse_LOGGING_ENDPOINT_ERROR SetRemoteEndpointResponse_Reason = 3
+ SetRemoteEndpointResponse_LOGGING_ENDPOINT_PROTOCOL_ERROR SetRemoteEndpointResponse_Reason = 4
+ SetRemoteEndpointResponse_MSGBUS_ENDPOINT_ERROR SetRemoteEndpointResponse_Reason = 5
+ SetRemoteEndpointResponse_DEVICE_UNREACHABLE SetRemoteEndpointResponse_Reason = 6
+)
+
+var SetRemoteEndpointResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "LOGGING_ENDPOINT_ERROR",
+ 4: "LOGGING_ENDPOINT_PROTOCOL_ERROR",
+ 5: "MSGBUS_ENDPOINT_ERROR",
+ 6: "DEVICE_UNREACHABLE",
+}
+
+var SetRemoteEndpointResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "LOGGING_ENDPOINT_ERROR": 3,
+ "LOGGING_ENDPOINT_PROTOCOL_ERROR": 4,
+ "MSGBUS_ENDPOINT_ERROR": 5,
+ "DEVICE_UNREACHABLE": 6,
+}
+
+func (x SetRemoteEndpointResponse_Reason) String() string {
+ return proto.EnumName(SetRemoteEndpointResponse_Reason_name, int32(x))
+}
+
+func (SetRemoteEndpointResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{11, 0}
+}
+
+type GetLoggingEndpointResponse_Reason int32
+
+const (
+ GetLoggingEndpointResponse_UNDEFINED_REASON GetLoggingEndpointResponse_Reason = 0
+ GetLoggingEndpointResponse_UNKNOWN_DEVICE GetLoggingEndpointResponse_Reason = 1
+ GetLoggingEndpointResponse_INTERNAL_ERROR GetLoggingEndpointResponse_Reason = 2
+ GetLoggingEndpointResponse_DEVICE_UNREACHABLE GetLoggingEndpointResponse_Reason = 3
+)
+
+var GetLoggingEndpointResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "DEVICE_UNREACHABLE",
+}
+
+var GetLoggingEndpointResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "DEVICE_UNREACHABLE": 3,
+}
+
+func (x GetLoggingEndpointResponse_Reason) String() string {
+ return proto.EnumName(GetLoggingEndpointResponse_Reason_name, int32(x))
+}
+
+func (GetLoggingEndpointResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{12, 0}
+}
+
+type GetMsgBusEndpointResponse_Reason int32
+
+const (
+ GetMsgBusEndpointResponse_UNDEFINED_REASON GetMsgBusEndpointResponse_Reason = 0
+ GetMsgBusEndpointResponse_INTERNAL_ERROR GetMsgBusEndpointResponse_Reason = 1
+ GetMsgBusEndpointResponse_DEVICE_UNREACHABLE GetMsgBusEndpointResponse_Reason = 2
+)
+
+var GetMsgBusEndpointResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "INTERNAL_ERROR",
+ 2: "DEVICE_UNREACHABLE",
+}
+
+var GetMsgBusEndpointResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "INTERNAL_ERROR": 1,
+ "DEVICE_UNREACHABLE": 2,
+}
+
+func (x GetMsgBusEndpointResponse_Reason) String() string {
+ return proto.EnumName(GetMsgBusEndpointResponse_Reason_name, int32(x))
+}
+
+func (GetMsgBusEndpointResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{14, 0}
+}
+
+type SetLogLevelResponse_Reason int32
+
+const (
+ SetLogLevelResponse_UNDEFINED_REASON SetLogLevelResponse_Reason = 0
+ SetLogLevelResponse_UNKNOWN_DEVICE SetLogLevelResponse_Reason = 1
+ SetLogLevelResponse_INTERNAL_ERROR SetLogLevelResponse_Reason = 2
+ SetLogLevelResponse_UNKNOWN_LOG_ENTITY SetLogLevelResponse_Reason = 3
+ SetLogLevelResponse_DEVICE_UNREACHABLE SetLogLevelResponse_Reason = 4
+)
+
+var SetLogLevelResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "UNKNOWN_LOG_ENTITY",
+ 4: "DEVICE_UNREACHABLE",
+}
+
+var SetLogLevelResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "UNKNOWN_LOG_ENTITY": 3,
+ "DEVICE_UNREACHABLE": 4,
+}
+
+func (x SetLogLevelResponse_Reason) String() string {
+ return proto.EnumName(SetLogLevelResponse_Reason_name, int32(x))
+}
+
+func (SetLogLevelResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{17, 0}
+}
+
+type GetLogLevelResponse_Reason int32
+
+const (
+ GetLogLevelResponse_UNDEFINED_REASON GetLogLevelResponse_Reason = 0
+ GetLogLevelResponse_UNKNOWN_DEVICE GetLogLevelResponse_Reason = 1
+ GetLogLevelResponse_INTERNAL_ERROR GetLogLevelResponse_Reason = 2
+ GetLogLevelResponse_UNKNOWN_LOG_ENTITY GetLogLevelResponse_Reason = 3
+ GetLogLevelResponse_DEVICE_UNREACHABLE GetLogLevelResponse_Reason = 4
+)
+
+var GetLogLevelResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "UNKNOWN_LOG_ENTITY",
+ 4: "DEVICE_UNREACHABLE",
+}
+
+var GetLogLevelResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "UNKNOWN_LOG_ENTITY": 3,
+ "DEVICE_UNREACHABLE": 4,
+}
+
+func (x GetLogLevelResponse_Reason) String() string {
+ return proto.EnumName(GetLogLevelResponse_Reason_name, int32(x))
+}
+
+func (GetLogLevelResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{19, 0}
+}
+
+type PhysicalInventoryRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PhysicalInventoryRequest) Reset() { *m = PhysicalInventoryRequest{} }
+func (m *PhysicalInventoryRequest) String() string { return proto.CompactTextString(m) }
+func (*PhysicalInventoryRequest) ProtoMessage() {}
+func (*PhysicalInventoryRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{0}
+}
+
+func (m *PhysicalInventoryRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PhysicalInventoryRequest.Unmarshal(m, b)
+}
+func (m *PhysicalInventoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PhysicalInventoryRequest.Marshal(b, m, deterministic)
+}
+func (m *PhysicalInventoryRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PhysicalInventoryRequest.Merge(m, src)
+}
+func (m *PhysicalInventoryRequest) XXX_Size() int {
+ return xxx_messageInfo_PhysicalInventoryRequest.Size(m)
+}
+func (m *PhysicalInventoryRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_PhysicalInventoryRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PhysicalInventoryRequest proto.InternalMessageInfo
+
+func (m *PhysicalInventoryRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+type PhysicalInventoryResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason PhysicalInventoryResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.PhysicalInventoryResponse_Reason" json:"reason,omitempty"`
+ Inventory *Hardware `protobuf:"bytes,3,opt,name=inventory,proto3" json:"inventory,omitempty"`
+ // It is recommended that upstream components/users of the DMI interface
+ // do not really interpret/parse the reson_detail, but rather use it for
+ // display purposes to the end user or use it for logging the error
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PhysicalInventoryResponse) Reset() { *m = PhysicalInventoryResponse{} }
+func (m *PhysicalInventoryResponse) String() string { return proto.CompactTextString(m) }
+func (*PhysicalInventoryResponse) ProtoMessage() {}
+func (*PhysicalInventoryResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{1}
+}
+
+func (m *PhysicalInventoryResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PhysicalInventoryResponse.Unmarshal(m, b)
+}
+func (m *PhysicalInventoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PhysicalInventoryResponse.Marshal(b, m, deterministic)
+}
+func (m *PhysicalInventoryResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PhysicalInventoryResponse.Merge(m, src)
+}
+func (m *PhysicalInventoryResponse) XXX_Size() int {
+ return xxx_messageInfo_PhysicalInventoryResponse.Size(m)
+}
+func (m *PhysicalInventoryResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_PhysicalInventoryResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PhysicalInventoryResponse proto.InternalMessageInfo
+
+func (m *PhysicalInventoryResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *PhysicalInventoryResponse) GetReason() PhysicalInventoryResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return PhysicalInventoryResponse_UNDEFINED_REASON
+}
+
+func (m *PhysicalInventoryResponse) GetInventory() *Hardware {
+ if m != nil {
+ return m.Inventory
+ }
+ return nil
+}
+
+func (m *PhysicalInventoryResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type HWComponentInfoGetRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ ComponentUuid *Uuid `protobuf:"bytes,2,opt,name=component_uuid,json=componentUuid,proto3" json:"component_uuid,omitempty"`
+ ComponentName string `protobuf:"bytes,3,opt,name=component_name,json=componentName,proto3" json:"component_name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HWComponentInfoGetRequest) Reset() { *m = HWComponentInfoGetRequest{} }
+func (m *HWComponentInfoGetRequest) String() string { return proto.CompactTextString(m) }
+func (*HWComponentInfoGetRequest) ProtoMessage() {}
+func (*HWComponentInfoGetRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{2}
+}
+
+func (m *HWComponentInfoGetRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_HWComponentInfoGetRequest.Unmarshal(m, b)
+}
+func (m *HWComponentInfoGetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_HWComponentInfoGetRequest.Marshal(b, m, deterministic)
+}
+func (m *HWComponentInfoGetRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HWComponentInfoGetRequest.Merge(m, src)
+}
+func (m *HWComponentInfoGetRequest) XXX_Size() int {
+ return xxx_messageInfo_HWComponentInfoGetRequest.Size(m)
+}
+func (m *HWComponentInfoGetRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_HWComponentInfoGetRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HWComponentInfoGetRequest proto.InternalMessageInfo
+
+func (m *HWComponentInfoGetRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *HWComponentInfoGetRequest) GetComponentUuid() *Uuid {
+ if m != nil {
+ return m.ComponentUuid
+ }
+ return nil
+}
+
+func (m *HWComponentInfoGetRequest) GetComponentName() string {
+ if m != nil {
+ return m.ComponentName
+ }
+ return ""
+}
+
+type HWComponentInfoGetResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason HWComponentInfoGetResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.HWComponentInfoGetResponse_Reason" json:"reason,omitempty"`
+ Component *Component `protobuf:"bytes,3,opt,name=component,proto3" json:"component,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HWComponentInfoGetResponse) Reset() { *m = HWComponentInfoGetResponse{} }
+func (m *HWComponentInfoGetResponse) String() string { return proto.CompactTextString(m) }
+func (*HWComponentInfoGetResponse) ProtoMessage() {}
+func (*HWComponentInfoGetResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{3}
+}
+
+func (m *HWComponentInfoGetResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_HWComponentInfoGetResponse.Unmarshal(m, b)
+}
+func (m *HWComponentInfoGetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_HWComponentInfoGetResponse.Marshal(b, m, deterministic)
+}
+func (m *HWComponentInfoGetResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HWComponentInfoGetResponse.Merge(m, src)
+}
+func (m *HWComponentInfoGetResponse) XXX_Size() int {
+ return xxx_messageInfo_HWComponentInfoGetResponse.Size(m)
+}
+func (m *HWComponentInfoGetResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_HWComponentInfoGetResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HWComponentInfoGetResponse proto.InternalMessageInfo
+
+func (m *HWComponentInfoGetResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *HWComponentInfoGetResponse) GetReason() HWComponentInfoGetResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return HWComponentInfoGetResponse_UNDEFINED_REASON
+}
+
+func (m *HWComponentInfoGetResponse) GetComponent() *Component {
+ if m != nil {
+ return m.Component
+ }
+ return nil
+}
+
+func (m *HWComponentInfoGetResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type HWComponentInfoSetRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ ComponentUuid *Uuid `protobuf:"bytes,2,opt,name=component_uuid,json=componentUuid,proto3" json:"component_uuid,omitempty"`
+ ComponentName string `protobuf:"bytes,3,opt,name=component_name,json=componentName,proto3" json:"component_name,omitempty"`
+ Changes *ModifiableComponent `protobuf:"bytes,4,opt,name=changes,proto3" json:"changes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HWComponentInfoSetRequest) Reset() { *m = HWComponentInfoSetRequest{} }
+func (m *HWComponentInfoSetRequest) String() string { return proto.CompactTextString(m) }
+func (*HWComponentInfoSetRequest) ProtoMessage() {}
+func (*HWComponentInfoSetRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{4}
+}
+
+func (m *HWComponentInfoSetRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_HWComponentInfoSetRequest.Unmarshal(m, b)
+}
+func (m *HWComponentInfoSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_HWComponentInfoSetRequest.Marshal(b, m, deterministic)
+}
+func (m *HWComponentInfoSetRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HWComponentInfoSetRequest.Merge(m, src)
+}
+func (m *HWComponentInfoSetRequest) XXX_Size() int {
+ return xxx_messageInfo_HWComponentInfoSetRequest.Size(m)
+}
+func (m *HWComponentInfoSetRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_HWComponentInfoSetRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HWComponentInfoSetRequest proto.InternalMessageInfo
+
+func (m *HWComponentInfoSetRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *HWComponentInfoSetRequest) GetComponentUuid() *Uuid {
+ if m != nil {
+ return m.ComponentUuid
+ }
+ return nil
+}
+
+func (m *HWComponentInfoSetRequest) GetComponentName() string {
+ if m != nil {
+ return m.ComponentName
+ }
+ return ""
+}
+
+func (m *HWComponentInfoSetRequest) GetChanges() *ModifiableComponent {
+ if m != nil {
+ return m.Changes
+ }
+ return nil
+}
+
+type HWComponentInfoSetResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason HWComponentInfoSetResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.HWComponentInfoSetResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,3,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *HWComponentInfoSetResponse) Reset() { *m = HWComponentInfoSetResponse{} }
+func (m *HWComponentInfoSetResponse) String() string { return proto.CompactTextString(m) }
+func (*HWComponentInfoSetResponse) ProtoMessage() {}
+func (*HWComponentInfoSetResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{5}
+}
+
+func (m *HWComponentInfoSetResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_HWComponentInfoSetResponse.Unmarshal(m, b)
+}
+func (m *HWComponentInfoSetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_HWComponentInfoSetResponse.Marshal(b, m, deterministic)
+}
+func (m *HWComponentInfoSetResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_HWComponentInfoSetResponse.Merge(m, src)
+}
+func (m *HWComponentInfoSetResponse) XXX_Size() int {
+ return xxx_messageInfo_HWComponentInfoSetResponse.Size(m)
+}
+func (m *HWComponentInfoSetResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_HWComponentInfoSetResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HWComponentInfoSetResponse proto.InternalMessageInfo
+
+func (m *HWComponentInfoSetResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *HWComponentInfoSetResponse) GetReason() HWComponentInfoSetResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return HWComponentInfoSetResponse_UNDEFINED_REASON
+}
+
+func (m *HWComponentInfoSetResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type StartManagingDeviceResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason StartManagingDeviceResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.StartManagingDeviceResponse_Reason" json:"reason,omitempty"`
+ DeviceUuid *Uuid `protobuf:"bytes,3,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StartManagingDeviceResponse) Reset() { *m = StartManagingDeviceResponse{} }
+func (m *StartManagingDeviceResponse) String() string { return proto.CompactTextString(m) }
+func (*StartManagingDeviceResponse) ProtoMessage() {}
+func (*StartManagingDeviceResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{6}
+}
+
+func (m *StartManagingDeviceResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StartManagingDeviceResponse.Unmarshal(m, b)
+}
+func (m *StartManagingDeviceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StartManagingDeviceResponse.Marshal(b, m, deterministic)
+}
+func (m *StartManagingDeviceResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StartManagingDeviceResponse.Merge(m, src)
+}
+func (m *StartManagingDeviceResponse) XXX_Size() int {
+ return xxx_messageInfo_StartManagingDeviceResponse.Size(m)
+}
+func (m *StartManagingDeviceResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_StartManagingDeviceResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StartManagingDeviceResponse proto.InternalMessageInfo
+
+func (m *StartManagingDeviceResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *StartManagingDeviceResponse) GetReason() StartManagingDeviceResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return StartManagingDeviceResponse_UNDEFINED_REASON
+}
+
+func (m *StartManagingDeviceResponse) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *StartManagingDeviceResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type StopManagingDeviceRequest struct {
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StopManagingDeviceRequest) Reset() { *m = StopManagingDeviceRequest{} }
+func (m *StopManagingDeviceRequest) String() string { return proto.CompactTextString(m) }
+func (*StopManagingDeviceRequest) ProtoMessage() {}
+func (*StopManagingDeviceRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{7}
+}
+
+func (m *StopManagingDeviceRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StopManagingDeviceRequest.Unmarshal(m, b)
+}
+func (m *StopManagingDeviceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StopManagingDeviceRequest.Marshal(b, m, deterministic)
+}
+func (m *StopManagingDeviceRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StopManagingDeviceRequest.Merge(m, src)
+}
+func (m *StopManagingDeviceRequest) XXX_Size() int {
+ return xxx_messageInfo_StopManagingDeviceRequest.Size(m)
+}
+func (m *StopManagingDeviceRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_StopManagingDeviceRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StopManagingDeviceRequest proto.InternalMessageInfo
+
+func (m *StopManagingDeviceRequest) GetName() string {
+ if m != nil {
+ return m.Name
+ }
+ return ""
+}
+
+type StopManagingDeviceResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason StopManagingDeviceResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.StopManagingDeviceResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,3,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StopManagingDeviceResponse) Reset() { *m = StopManagingDeviceResponse{} }
+func (m *StopManagingDeviceResponse) String() string { return proto.CompactTextString(m) }
+func (*StopManagingDeviceResponse) ProtoMessage() {}
+func (*StopManagingDeviceResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{8}
+}
+
+func (m *StopManagingDeviceResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StopManagingDeviceResponse.Unmarshal(m, b)
+}
+func (m *StopManagingDeviceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StopManagingDeviceResponse.Marshal(b, m, deterministic)
+}
+func (m *StopManagingDeviceResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StopManagingDeviceResponse.Merge(m, src)
+}
+func (m *StopManagingDeviceResponse) XXX_Size() int {
+ return xxx_messageInfo_StopManagingDeviceResponse.Size(m)
+}
+func (m *StopManagingDeviceResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_StopManagingDeviceResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StopManagingDeviceResponse proto.InternalMessageInfo
+
+func (m *StopManagingDeviceResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *StopManagingDeviceResponse) GetReason() StopManagingDeviceResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return StopManagingDeviceResponse_UNDEFINED_REASON
+}
+
+func (m *StopManagingDeviceResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type ManagedDevicesResponse struct {
+ Devices []*ModifiableComponent `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ManagedDevicesResponse) Reset() { *m = ManagedDevicesResponse{} }
+func (m *ManagedDevicesResponse) String() string { return proto.CompactTextString(m) }
+func (*ManagedDevicesResponse) ProtoMessage() {}
+func (*ManagedDevicesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{9}
+}
+
+func (m *ManagedDevicesResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ManagedDevicesResponse.Unmarshal(m, b)
+}
+func (m *ManagedDevicesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ManagedDevicesResponse.Marshal(b, m, deterministic)
+}
+func (m *ManagedDevicesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ManagedDevicesResponse.Merge(m, src)
+}
+func (m *ManagedDevicesResponse) XXX_Size() int {
+ return xxx_messageInfo_ManagedDevicesResponse.Size(m)
+}
+func (m *ManagedDevicesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ManagedDevicesResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ManagedDevicesResponse proto.InternalMessageInfo
+
+func (m *ManagedDevicesResponse) GetDevices() []*ModifiableComponent {
+ if m != nil {
+ return m.Devices
+ }
+ return nil
+}
+
+type SetLoggingEndpointRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ LoggingEndpoint string `protobuf:"bytes,2,opt,name=logging_endpoint,json=loggingEndpoint,proto3" json:"logging_endpoint,omitempty"`
+ LoggingProtocol string `protobuf:"bytes,3,opt,name=logging_protocol,json=loggingProtocol,proto3" json:"logging_protocol,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SetLoggingEndpointRequest) Reset() { *m = SetLoggingEndpointRequest{} }
+func (m *SetLoggingEndpointRequest) String() string { return proto.CompactTextString(m) }
+func (*SetLoggingEndpointRequest) ProtoMessage() {}
+func (*SetLoggingEndpointRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{10}
+}
+
+func (m *SetLoggingEndpointRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SetLoggingEndpointRequest.Unmarshal(m, b)
+}
+func (m *SetLoggingEndpointRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SetLoggingEndpointRequest.Marshal(b, m, deterministic)
+}
+func (m *SetLoggingEndpointRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SetLoggingEndpointRequest.Merge(m, src)
+}
+func (m *SetLoggingEndpointRequest) XXX_Size() int {
+ return xxx_messageInfo_SetLoggingEndpointRequest.Size(m)
+}
+func (m *SetLoggingEndpointRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_SetLoggingEndpointRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetLoggingEndpointRequest proto.InternalMessageInfo
+
+func (m *SetLoggingEndpointRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *SetLoggingEndpointRequest) GetLoggingEndpoint() string {
+ if m != nil {
+ return m.LoggingEndpoint
+ }
+ return ""
+}
+
+func (m *SetLoggingEndpointRequest) GetLoggingProtocol() string {
+ if m != nil {
+ return m.LoggingProtocol
+ }
+ return ""
+}
+
+type SetRemoteEndpointResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason SetRemoteEndpointResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.SetRemoteEndpointResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,3,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SetRemoteEndpointResponse) Reset() { *m = SetRemoteEndpointResponse{} }
+func (m *SetRemoteEndpointResponse) String() string { return proto.CompactTextString(m) }
+func (*SetRemoteEndpointResponse) ProtoMessage() {}
+func (*SetRemoteEndpointResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{11}
+}
+
+func (m *SetRemoteEndpointResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SetRemoteEndpointResponse.Unmarshal(m, b)
+}
+func (m *SetRemoteEndpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SetRemoteEndpointResponse.Marshal(b, m, deterministic)
+}
+func (m *SetRemoteEndpointResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SetRemoteEndpointResponse.Merge(m, src)
+}
+func (m *SetRemoteEndpointResponse) XXX_Size() int {
+ return xxx_messageInfo_SetRemoteEndpointResponse.Size(m)
+}
+func (m *SetRemoteEndpointResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_SetRemoteEndpointResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetRemoteEndpointResponse proto.InternalMessageInfo
+
+func (m *SetRemoteEndpointResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *SetRemoteEndpointResponse) GetReason() SetRemoteEndpointResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return SetRemoteEndpointResponse_UNDEFINED_REASON
+}
+
+func (m *SetRemoteEndpointResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type GetLoggingEndpointResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason GetLoggingEndpointResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetLoggingEndpointResponse_Reason" json:"reason,omitempty"`
+ LoggingEndpoint string `protobuf:"bytes,3,opt,name=logging_endpoint,json=loggingEndpoint,proto3" json:"logging_endpoint,omitempty"`
+ LoggingProtocol string `protobuf:"bytes,4,opt,name=logging_protocol,json=loggingProtocol,proto3" json:"logging_protocol,omitempty"`
+ ReasonDetail string `protobuf:"bytes,5,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetLoggingEndpointResponse) Reset() { *m = GetLoggingEndpointResponse{} }
+func (m *GetLoggingEndpointResponse) String() string { return proto.CompactTextString(m) }
+func (*GetLoggingEndpointResponse) ProtoMessage() {}
+func (*GetLoggingEndpointResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{12}
+}
+
+func (m *GetLoggingEndpointResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetLoggingEndpointResponse.Unmarshal(m, b)
+}
+func (m *GetLoggingEndpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetLoggingEndpointResponse.Marshal(b, m, deterministic)
+}
+func (m *GetLoggingEndpointResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetLoggingEndpointResponse.Merge(m, src)
+}
+func (m *GetLoggingEndpointResponse) XXX_Size() int {
+ return xxx_messageInfo_GetLoggingEndpointResponse.Size(m)
+}
+func (m *GetLoggingEndpointResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetLoggingEndpointResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetLoggingEndpointResponse proto.InternalMessageInfo
+
+func (m *GetLoggingEndpointResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *GetLoggingEndpointResponse) GetReason() GetLoggingEndpointResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return GetLoggingEndpointResponse_UNDEFINED_REASON
+}
+
+func (m *GetLoggingEndpointResponse) GetLoggingEndpoint() string {
+ if m != nil {
+ return m.LoggingEndpoint
+ }
+ return ""
+}
+
+func (m *GetLoggingEndpointResponse) GetLoggingProtocol() string {
+ if m != nil {
+ return m.LoggingProtocol
+ }
+ return ""
+}
+
+func (m *GetLoggingEndpointResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type SetMsgBusEndpointRequest struct {
+ MsgbusEndpoint string `protobuf:"bytes,1,opt,name=msgbus_endpoint,json=msgbusEndpoint,proto3" json:"msgbus_endpoint,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SetMsgBusEndpointRequest) Reset() { *m = SetMsgBusEndpointRequest{} }
+func (m *SetMsgBusEndpointRequest) String() string { return proto.CompactTextString(m) }
+func (*SetMsgBusEndpointRequest) ProtoMessage() {}
+func (*SetMsgBusEndpointRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{13}
+}
+
+func (m *SetMsgBusEndpointRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SetMsgBusEndpointRequest.Unmarshal(m, b)
+}
+func (m *SetMsgBusEndpointRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SetMsgBusEndpointRequest.Marshal(b, m, deterministic)
+}
+func (m *SetMsgBusEndpointRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SetMsgBusEndpointRequest.Merge(m, src)
+}
+func (m *SetMsgBusEndpointRequest) XXX_Size() int {
+ return xxx_messageInfo_SetMsgBusEndpointRequest.Size(m)
+}
+func (m *SetMsgBusEndpointRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_SetMsgBusEndpointRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetMsgBusEndpointRequest proto.InternalMessageInfo
+
+func (m *SetMsgBusEndpointRequest) GetMsgbusEndpoint() string {
+ if m != nil {
+ return m.MsgbusEndpoint
+ }
+ return ""
+}
+
+type GetMsgBusEndpointResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason GetMsgBusEndpointResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetMsgBusEndpointResponse_Reason" json:"reason,omitempty"`
+ MsgbusEndpoint string `protobuf:"bytes,3,opt,name=msgbus_endpoint,json=msgbusEndpoint,proto3" json:"msgbus_endpoint,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetMsgBusEndpointResponse) Reset() { *m = GetMsgBusEndpointResponse{} }
+func (m *GetMsgBusEndpointResponse) String() string { return proto.CompactTextString(m) }
+func (*GetMsgBusEndpointResponse) ProtoMessage() {}
+func (*GetMsgBusEndpointResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{14}
+}
+
+func (m *GetMsgBusEndpointResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetMsgBusEndpointResponse.Unmarshal(m, b)
+}
+func (m *GetMsgBusEndpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetMsgBusEndpointResponse.Marshal(b, m, deterministic)
+}
+func (m *GetMsgBusEndpointResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetMsgBusEndpointResponse.Merge(m, src)
+}
+func (m *GetMsgBusEndpointResponse) XXX_Size() int {
+ return xxx_messageInfo_GetMsgBusEndpointResponse.Size(m)
+}
+func (m *GetMsgBusEndpointResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetMsgBusEndpointResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetMsgBusEndpointResponse proto.InternalMessageInfo
+
+func (m *GetMsgBusEndpointResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *GetMsgBusEndpointResponse) GetReason() GetMsgBusEndpointResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return GetMsgBusEndpointResponse_UNDEFINED_REASON
+}
+
+func (m *GetMsgBusEndpointResponse) GetMsgbusEndpoint() string {
+ if m != nil {
+ return m.MsgbusEndpoint
+ }
+ return ""
+}
+
+func (m *GetMsgBusEndpointResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type EntitiesLogLevel struct {
+ LogLevel LogLevel `protobuf:"varint,1,opt,name=logLevel,proto3,enum=dmi.LogLevel" json:"logLevel,omitempty"`
+ Entities []string `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *EntitiesLogLevel) Reset() { *m = EntitiesLogLevel{} }
+func (m *EntitiesLogLevel) String() string { return proto.CompactTextString(m) }
+func (*EntitiesLogLevel) ProtoMessage() {}
+func (*EntitiesLogLevel) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{15}
+}
+
+func (m *EntitiesLogLevel) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_EntitiesLogLevel.Unmarshal(m, b)
+}
+func (m *EntitiesLogLevel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_EntitiesLogLevel.Marshal(b, m, deterministic)
+}
+func (m *EntitiesLogLevel) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EntitiesLogLevel.Merge(m, src)
+}
+func (m *EntitiesLogLevel) XXX_Size() int {
+ return xxx_messageInfo_EntitiesLogLevel.Size(m)
+}
+func (m *EntitiesLogLevel) XXX_DiscardUnknown() {
+ xxx_messageInfo_EntitiesLogLevel.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EntitiesLogLevel proto.InternalMessageInfo
+
+func (m *EntitiesLogLevel) GetLogLevel() LogLevel {
+ if m != nil {
+ return m.LogLevel
+ }
+ return LogLevel_TRACE
+}
+
+func (m *EntitiesLogLevel) GetEntities() []string {
+ if m != nil {
+ return m.Entities
+ }
+ return nil
+}
+
+type SetLogLevelRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ Loglevels []*EntitiesLogLevel `protobuf:"bytes,2,rep,name=loglevels,proto3" json:"loglevels,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SetLogLevelRequest) Reset() { *m = SetLogLevelRequest{} }
+func (m *SetLogLevelRequest) String() string { return proto.CompactTextString(m) }
+func (*SetLogLevelRequest) ProtoMessage() {}
+func (*SetLogLevelRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{16}
+}
+
+func (m *SetLogLevelRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SetLogLevelRequest.Unmarshal(m, b)
+}
+func (m *SetLogLevelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SetLogLevelRequest.Marshal(b, m, deterministic)
+}
+func (m *SetLogLevelRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SetLogLevelRequest.Merge(m, src)
+}
+func (m *SetLogLevelRequest) XXX_Size() int {
+ return xxx_messageInfo_SetLogLevelRequest.Size(m)
+}
+func (m *SetLogLevelRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_SetLogLevelRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetLogLevelRequest proto.InternalMessageInfo
+
+func (m *SetLogLevelRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *SetLogLevelRequest) GetLoglevels() []*EntitiesLogLevel {
+ if m != nil {
+ return m.Loglevels
+ }
+ return nil
+}
+
+type SetLogLevelResponse struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason SetLogLevelResponse_Reason `protobuf:"varint,3,opt,name=reason,proto3,enum=dmi.SetLogLevelResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SetLogLevelResponse) Reset() { *m = SetLogLevelResponse{} }
+func (m *SetLogLevelResponse) String() string { return proto.CompactTextString(m) }
+func (*SetLogLevelResponse) ProtoMessage() {}
+func (*SetLogLevelResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{17}
+}
+
+func (m *SetLogLevelResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SetLogLevelResponse.Unmarshal(m, b)
+}
+func (m *SetLogLevelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SetLogLevelResponse.Marshal(b, m, deterministic)
+}
+func (m *SetLogLevelResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SetLogLevelResponse.Merge(m, src)
+}
+func (m *SetLogLevelResponse) XXX_Size() int {
+ return xxx_messageInfo_SetLogLevelResponse.Size(m)
+}
+func (m *SetLogLevelResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_SetLogLevelResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetLogLevelResponse proto.InternalMessageInfo
+
+func (m *SetLogLevelResponse) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *SetLogLevelResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *SetLogLevelResponse) GetReason() SetLogLevelResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return SetLogLevelResponse_UNDEFINED_REASON
+}
+
+func (m *SetLogLevelResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type GetLogLevelRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ Entities []string `protobuf:"bytes,2,rep,name=entities,proto3" json:"entities,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetLogLevelRequest) Reset() { *m = GetLogLevelRequest{} }
+func (m *GetLogLevelRequest) String() string { return proto.CompactTextString(m) }
+func (*GetLogLevelRequest) ProtoMessage() {}
+func (*GetLogLevelRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{18}
+}
+
+func (m *GetLogLevelRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetLogLevelRequest.Unmarshal(m, b)
+}
+func (m *GetLogLevelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetLogLevelRequest.Marshal(b, m, deterministic)
+}
+func (m *GetLogLevelRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetLogLevelRequest.Merge(m, src)
+}
+func (m *GetLogLevelRequest) XXX_Size() int {
+ return xxx_messageInfo_GetLogLevelRequest.Size(m)
+}
+func (m *GetLogLevelRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetLogLevelRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetLogLevelRequest proto.InternalMessageInfo
+
+func (m *GetLogLevelRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *GetLogLevelRequest) GetEntities() []string {
+ if m != nil {
+ return m.Entities
+ }
+ return nil
+}
+
+type GetLogLevelResponse struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ LogLevels []*EntitiesLogLevel `protobuf:"bytes,2,rep,name=logLevels,proto3" json:"logLevels,omitempty"`
+ Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason GetLogLevelResponse_Reason `protobuf:"varint,4,opt,name=reason,proto3,enum=dmi.GetLogLevelResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,5,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetLogLevelResponse) Reset() { *m = GetLogLevelResponse{} }
+func (m *GetLogLevelResponse) String() string { return proto.CompactTextString(m) }
+func (*GetLogLevelResponse) ProtoMessage() {}
+func (*GetLogLevelResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{19}
+}
+
+func (m *GetLogLevelResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetLogLevelResponse.Unmarshal(m, b)
+}
+func (m *GetLogLevelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetLogLevelResponse.Marshal(b, m, deterministic)
+}
+func (m *GetLogLevelResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetLogLevelResponse.Merge(m, src)
+}
+func (m *GetLogLevelResponse) XXX_Size() int {
+ return xxx_messageInfo_GetLogLevelResponse.Size(m)
+}
+func (m *GetLogLevelResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetLogLevelResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetLogLevelResponse proto.InternalMessageInfo
+
+func (m *GetLogLevelResponse) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *GetLogLevelResponse) GetLogLevels() []*EntitiesLogLevel {
+ if m != nil {
+ return m.LogLevels
+ }
+ return nil
+}
+
+func (m *GetLogLevelResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *GetLogLevelResponse) GetReason() GetLogLevelResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return GetLogLevelResponse_UNDEFINED_REASON
+}
+
+func (m *GetLogLevelResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type GetLoggableEntitiesRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetLoggableEntitiesRequest) Reset() { *m = GetLoggableEntitiesRequest{} }
+func (m *GetLoggableEntitiesRequest) String() string { return proto.CompactTextString(m) }
+func (*GetLoggableEntitiesRequest) ProtoMessage() {}
+func (*GetLoggableEntitiesRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_eae902e73066286d, []int{20}
+}
+
+func (m *GetLoggableEntitiesRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetLoggableEntitiesRequest.Unmarshal(m, b)
+}
+func (m *GetLoggableEntitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetLoggableEntitiesRequest.Marshal(b, m, deterministic)
+}
+func (m *GetLoggableEntitiesRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetLoggableEntitiesRequest.Merge(m, src)
+}
+func (m *GetLoggableEntitiesRequest) XXX_Size() int {
+ return xxx_messageInfo_GetLoggableEntitiesRequest.Size(m)
+}
+func (m *GetLoggableEntitiesRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetLoggableEntitiesRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetLoggableEntitiesRequest proto.InternalMessageInfo
+
+func (m *GetLoggableEntitiesRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("dmi.PhysicalInventoryResponse_Reason", PhysicalInventoryResponse_Reason_name, PhysicalInventoryResponse_Reason_value)
+ proto.RegisterEnum("dmi.HWComponentInfoGetResponse_Reason", HWComponentInfoGetResponse_Reason_name, HWComponentInfoGetResponse_Reason_value)
+ proto.RegisterEnum("dmi.HWComponentInfoSetResponse_Reason", HWComponentInfoSetResponse_Reason_name, HWComponentInfoSetResponse_Reason_value)
+ proto.RegisterEnum("dmi.StartManagingDeviceResponse_Reason", StartManagingDeviceResponse_Reason_name, StartManagingDeviceResponse_Reason_value)
+ proto.RegisterEnum("dmi.StopManagingDeviceResponse_Reason", StopManagingDeviceResponse_Reason_name, StopManagingDeviceResponse_Reason_value)
+ proto.RegisterEnum("dmi.SetRemoteEndpointResponse_Reason", SetRemoteEndpointResponse_Reason_name, SetRemoteEndpointResponse_Reason_value)
+ proto.RegisterEnum("dmi.GetLoggingEndpointResponse_Reason", GetLoggingEndpointResponse_Reason_name, GetLoggingEndpointResponse_Reason_value)
+ proto.RegisterEnum("dmi.GetMsgBusEndpointResponse_Reason", GetMsgBusEndpointResponse_Reason_name, GetMsgBusEndpointResponse_Reason_value)
+ proto.RegisterEnum("dmi.SetLogLevelResponse_Reason", SetLogLevelResponse_Reason_name, SetLogLevelResponse_Reason_value)
+ proto.RegisterEnum("dmi.GetLogLevelResponse_Reason", GetLogLevelResponse_Reason_name, GetLogLevelResponse_Reason_value)
+ proto.RegisterType((*PhysicalInventoryRequest)(nil), "dmi.PhysicalInventoryRequest")
+ proto.RegisterType((*PhysicalInventoryResponse)(nil), "dmi.PhysicalInventoryResponse")
+ proto.RegisterType((*HWComponentInfoGetRequest)(nil), "dmi.HWComponentInfoGetRequest")
+ proto.RegisterType((*HWComponentInfoGetResponse)(nil), "dmi.HWComponentInfoGetResponse")
+ proto.RegisterType((*HWComponentInfoSetRequest)(nil), "dmi.HWComponentInfoSetRequest")
+ proto.RegisterType((*HWComponentInfoSetResponse)(nil), "dmi.HWComponentInfoSetResponse")
+ proto.RegisterType((*StartManagingDeviceResponse)(nil), "dmi.StartManagingDeviceResponse")
+ proto.RegisterType((*StopManagingDeviceRequest)(nil), "dmi.StopManagingDeviceRequest")
+ proto.RegisterType((*StopManagingDeviceResponse)(nil), "dmi.StopManagingDeviceResponse")
+ proto.RegisterType((*ManagedDevicesResponse)(nil), "dmi.ManagedDevicesResponse")
+ proto.RegisterType((*SetLoggingEndpointRequest)(nil), "dmi.SetLoggingEndpointRequest")
+ proto.RegisterType((*SetRemoteEndpointResponse)(nil), "dmi.SetRemoteEndpointResponse")
+ proto.RegisterType((*GetLoggingEndpointResponse)(nil), "dmi.GetLoggingEndpointResponse")
+ proto.RegisterType((*SetMsgBusEndpointRequest)(nil), "dmi.SetMsgBusEndpointRequest")
+ proto.RegisterType((*GetMsgBusEndpointResponse)(nil), "dmi.GetMsgBusEndpointResponse")
+ proto.RegisterType((*EntitiesLogLevel)(nil), "dmi.EntitiesLogLevel")
+ proto.RegisterType((*SetLogLevelRequest)(nil), "dmi.SetLogLevelRequest")
+ proto.RegisterType((*SetLogLevelResponse)(nil), "dmi.SetLogLevelResponse")
+ proto.RegisterType((*GetLogLevelRequest)(nil), "dmi.GetLogLevelRequest")
+ proto.RegisterType((*GetLogLevelResponse)(nil), "dmi.GetLogLevelResponse")
+ proto.RegisterType((*GetLoggableEntitiesRequest)(nil), "dmi.GetLoggableEntitiesRequest")
+}
+
+func init() { proto.RegisterFile("dmi/hw_management_service.proto", fileDescriptor_eae902e73066286d) }
+
+var fileDescriptor_eae902e73066286d = []byte{
+ // 1380 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xdd, 0x72, 0xdb, 0x44,
+ 0x14, 0x46, 0x52, 0x92, 0xd6, 0x27, 0x6d, 0xea, 0x6c, 0xdb, 0xe0, 0xa8, 0xd3, 0x24, 0xa8, 0x53,
+ 0xda, 0x02, 0xb5, 0x3b, 0xee, 0x05, 0xc3, 0x30, 0xfc, 0x38, 0xb1, 0xaa, 0x98, 0xda, 0x92, 0x67,
+ 0xe5, 0x34, 0x53, 0x86, 0x41, 0xa3, 0x58, 0x1b, 0x47, 0x33, 0x96, 0x64, 0x2c, 0xd9, 0x9d, 0x3c,
+ 0x00, 0x17, 0x3c, 0x02, 0x17, 0xcc, 0xf0, 0x06, 0x0c, 0x5c, 0x32, 0xbc, 0x01, 0xb7, 0x5c, 0x31,
+ 0xdc, 0xf0, 0x08, 0xbc, 0x01, 0xe3, 0x5d, 0xc9, 0x3f, 0xb2, 0x64, 0x3b, 0x4e, 0x19, 0x7a, 0x67,
+ 0xef, 0x7e, 0xfb, 0xe9, 0xec, 0xf9, 0xbe, 0x3d, 0x3a, 0x5a, 0xd8, 0xb5, 0x1c, 0xbb, 0x70, 0xf6,
+ 0xca, 0x70, 0x4c, 0xd7, 0x6c, 0x11, 0x87, 0xb8, 0x81, 0xe1, 0x93, 0x6e, 0xdf, 0x6e, 0x92, 0x7c,
+ 0xa7, 0xeb, 0x05, 0x1e, 0x12, 0x2c, 0xc7, 0x16, 0x37, 0x07, 0xa8, 0xa6, 0xe7, 0x38, 0x9e, 0xeb,
+ 0xb3, 0x71, 0xf1, 0x1a, 0x5b, 0x18, 0xfe, 0xbb, 0xd3, 0xf2, 0xbc, 0x56, 0x9b, 0x14, 0xe8, 0xbf,
+ 0x93, 0xde, 0x69, 0x81, 0x38, 0x9d, 0xe0, 0x9c, 0x4d, 0x4a, 0xcf, 0x20, 0x57, 0x3f, 0x3b, 0xf7,
+ 0xed, 0xa6, 0xd9, 0xae, 0xb8, 0x7d, 0xe2, 0x06, 0x5e, 0xf7, 0x1c, 0x93, 0x6f, 0x7a, 0xc4, 0x0f,
+ 0xd0, 0x7b, 0xb0, 0x6e, 0x91, 0xc1, 0xe3, 0x8c, 0x5e, 0xcf, 0xb6, 0x72, 0xdc, 0x1e, 0xf7, 0x70,
+ 0xbd, 0x98, 0xc9, 0x5b, 0x8e, 0x9d, 0x3f, 0xea, 0xd9, 0x16, 0x06, 0x36, 0x3b, 0xf8, 0x2d, 0xfd,
+ 0xcc, 0xc3, 0x76, 0x02, 0x91, 0xdf, 0xf1, 0x5c, 0x9f, 0xa0, 0x7b, 0xb0, 0xe6, 0x07, 0x66, 0xd0,
+ 0xf3, 0x29, 0xc9, 0x46, 0x71, 0x9d, 0x92, 0xe8, 0x74, 0x08, 0x87, 0x53, 0xe8, 0x13, 0x58, 0xeb,
+ 0x12, 0xd3, 0xf7, 0xdc, 0x1c, 0x4f, 0x41, 0xf7, 0x29, 0x28, 0x95, 0x34, 0x8f, 0x29, 0x18, 0x87,
+ 0x8b, 0xd0, 0xfb, 0x90, 0xb1, 0x23, 0x4c, 0x4e, 0xa0, 0xb1, 0x5e, 0xa7, 0x0c, 0x87, 0x66, 0xd7,
+ 0x7a, 0x65, 0x76, 0x09, 0x1e, 0xcd, 0xa3, 0x7b, 0x70, 0x9d, 0x2d, 0x33, 0x2c, 0x12, 0x98, 0x76,
+ 0x3b, 0xb7, 0xb2, 0xc7, 0x3d, 0xcc, 0xe0, 0x6b, 0x6c, 0xb0, 0x4c, 0xc7, 0xa4, 0xaf, 0x61, 0x8d,
+ 0x3d, 0x03, 0xdd, 0x82, 0xec, 0x91, 0x5a, 0x96, 0x9f, 0x55, 0x54, 0xb9, 0x6c, 0x60, 0xb9, 0xa4,
+ 0x6b, 0x6a, 0xf6, 0x2d, 0x84, 0x60, 0xe3, 0x48, 0x7d, 0xae, 0x6a, 0xc7, 0xaa, 0x51, 0x96, 0x5f,
+ 0x54, 0x0e, 0xe4, 0x2c, 0x37, 0x18, 0xab, 0xa8, 0x0d, 0x19, 0xab, 0xa5, 0xaa, 0x21, 0x63, 0xac,
+ 0xe1, 0x2c, 0x8f, 0xb6, 0x00, 0xb1, 0x79, 0xe3, 0x48, 0xc5, 0x72, 0xe9, 0xe0, 0xb0, 0xb4, 0x5f,
+ 0x95, 0xb3, 0x82, 0xf4, 0x23, 0x07, 0xdb, 0x87, 0xc7, 0x07, 0x9e, 0xd3, 0xf1, 0x5c, 0xe2, 0x06,
+ 0x15, 0xf7, 0xd4, 0x53, 0x48, 0xb0, 0x44, 0xf6, 0xd1, 0x13, 0xd8, 0x68, 0x46, 0x34, 0x0c, 0xce,
+ 0xc7, 0xe1, 0xd7, 0x87, 0x00, 0xba, 0xe2, 0xfe, 0xf8, 0x0a, 0xd7, 0x74, 0x08, 0x4d, 0x59, 0x66,
+ 0x0c, 0xa6, 0x9a, 0x0e, 0x91, 0x7e, 0xe7, 0x41, 0x4c, 0x0a, 0xf1, 0x22, 0xba, 0x7e, 0x1a, 0xd3,
+ 0xf5, 0x5d, 0xa6, 0x4a, 0x2a, 0x6b, 0x5c, 0xd8, 0x0f, 0x20, 0x33, 0x0c, 0x2a, 0x14, 0x76, 0x83,
+ 0x52, 0x0c, 0x09, 0xf0, 0x08, 0xb0, 0x98, 0xb2, 0xbd, 0x25, 0x94, 0xbd, 0x0d, 0x9b, 0xd1, 0xd8,
+ 0x81, 0x56, 0xab, 0x6b, 0xaa, 0xac, 0x36, 0xb2, 0x7c, 0x82, 0xe0, 0x42, 0x8a, 0xe0, 0x2b, 0xd2,
+ 0x1f, 0xd3, 0x82, 0xeb, 0x6f, 0x96, 0xe0, 0xa8, 0x08, 0x57, 0x9a, 0x67, 0xa6, 0xdb, 0x22, 0x3e,
+ 0x4d, 0xdc, 0x7a, 0x31, 0x47, 0x19, 0x6b, 0x9e, 0x65, 0x9f, 0xda, 0xe6, 0x49, 0x9b, 0x8c, 0x92,
+ 0x1e, 0x01, 0xa5, 0x5f, 0xa6, 0x4d, 0xa2, 0xff, 0x27, 0x26, 0xd1, 0xd3, 0x4d, 0x32, 0x25, 0xbb,
+ 0x90, 0x20, 0xfb, 0x77, 0xdc, 0x6b, 0xd6, 0xfd, 0x45, 0xa9, 0x5a, 0x29, 0x1b, 0xf5, 0x12, 0x2e,
+ 0xd5, 0xf4, 0xac, 0x90, 0xe0, 0x85, 0x95, 0x14, 0x2f, 0xac, 0x4a, 0x7f, 0xf1, 0x70, 0x47, 0x0f,
+ 0xcc, 0x6e, 0x50, 0x1b, 0x54, 0x77, 0xdb, 0x6d, 0x95, 0xa9, 0xba, 0x17, 0xcb, 0xda, 0x67, 0xb1,
+ 0xac, 0x3d, 0x88, 0x40, 0x69, 0xb4, 0xf1, 0xb4, 0xc5, 0x3c, 0x27, 0xcc, 0xf2, 0xdc, 0x42, 0x27,
+ 0xeb, 0xdb, 0x79, 0x29, 0x16, 0x61, 0x2b, 0xcc, 0x47, 0xa9, 0x8a, 0xe5, 0x52, 0xf9, 0xa5, 0x51,
+ 0x2b, 0xa9, 0x25, 0x45, 0x2e, 0x67, 0x39, 0xf4, 0x0e, 0xdc, 0xd5, 0xea, 0x32, 0x2e, 0x35, 0x2a,
+ 0x9a, 0x3a, 0x9c, 0xae, 0xa8, 0x46, 0x1d, 0x6b, 0x0a, 0x96, 0x75, 0x7d, 0xf1, 0xb4, 0x4b, 0x05,
+ 0xd8, 0xd6, 0x03, 0xaf, 0x13, 0xcf, 0x02, 0x3b, 0x69, 0x08, 0x56, 0xe8, 0x09, 0xe0, 0xe8, 0x06,
+ 0xe8, 0x6f, 0xe9, 0x4f, 0x0e, 0xc4, 0xa4, 0x15, 0x97, 0x37, 0x71, 0x3a, 0xeb, 0x52, 0x26, 0x2e,
+ 0x5e, 0xdc, 0xc3, 0x52, 0x15, 0xb6, 0x68, 0x04, 0xc4, 0x62, 0x01, 0xf8, 0xc3, 0x7d, 0x15, 0xe1,
+ 0x0a, 0x93, 0x78, 0xb0, 0x31, 0x61, 0xf6, 0x79, 0x0f, 0x81, 0xd2, 0x0f, 0x1c, 0x6c, 0xeb, 0x24,
+ 0xa8, 0x7a, 0xad, 0xc1, 0x96, 0x64, 0xd7, 0xea, 0x78, 0xb6, 0xbb, 0x54, 0x19, 0x7b, 0x04, 0xd9,
+ 0x36, 0x63, 0x31, 0x48, 0x48, 0x43, 0x53, 0x97, 0xc1, 0x37, 0xda, 0x93, 0xec, 0xe3, 0x50, 0xda,
+ 0xb9, 0x34, 0xbd, 0x28, 0x3d, 0x11, 0xb4, 0x1e, 0x0e, 0x4b, 0x7f, 0xf3, 0x34, 0x3e, 0x4c, 0x1c,
+ 0x2f, 0x20, 0xa3, 0xf0, 0x2e, 0xdf, 0x8b, 0xa4, 0x92, 0x2e, 0x25, 0xe4, 0xaf, 0xdc, 0x6b, 0xea,
+ 0x2f, 0x44, 0xd8, 0xaa, 0x6a, 0x8a, 0x52, 0x51, 0x15, 0x43, 0x56, 0xcb, 0x75, 0xad, 0xa2, 0x36,
+ 0x86, 0xaf, 0xa2, 0x7b, 0xb0, 0x3b, 0x35, 0x57, 0xc7, 0x5a, 0x43, 0x3b, 0xd0, 0x46, 0x35, 0x6a,
+ 0x1b, 0x6e, 0xd7, 0x74, 0x65, 0xff, 0x48, 0x8f, 0xaf, 0x5f, 0x4d, 0x29, 0x5f, 0x6b, 0x83, 0xf2,
+ 0x25, 0x2a, 0x09, 0x1e, 0xb8, 0xfc, 0x71, 0x49, 0x67, 0x8d, 0x67, 0x39, 0xc9, 0x3d, 0xc2, 0xe2,
+ 0xee, 0x59, 0x49, 0x74, 0xcf, 0xb4, 0x76, 0xab, 0xff, 0x43, 0x6b, 0x78, 0x00, 0x39, 0x9d, 0x04,
+ 0x35, 0xbf, 0xb5, 0xdf, 0xf3, 0xe3, 0x07, 0xec, 0x01, 0xdc, 0x70, 0xfc, 0xd6, 0x49, 0xcf, 0x1f,
+ 0xed, 0x9a, 0x15, 0xb2, 0x0d, 0x36, 0x1c, 0xe1, 0xa5, 0xef, 0x79, 0xd8, 0x56, 0xa6, 0x59, 0x2e,
+ 0x7f, 0x0e, 0x52, 0x49, 0xe3, 0x0a, 0x25, 0x84, 0x2a, 0x24, 0x85, 0xba, 0xd8, 0xbb, 0xe5, 0x8b,
+ 0xf9, 0x49, 0x8f, 0x25, 0x98, 0x4b, 0x49, 0x30, 0x2f, 0xbd, 0x84, 0xac, 0xec, 0x06, 0x76, 0x60,
+ 0x13, 0xbf, 0xea, 0xb5, 0xaa, 0xa4, 0x4f, 0xda, 0xe8, 0x11, 0x5c, 0x6d, 0x87, 0xbf, 0xc3, 0x9c,
+ 0xb0, 0x0f, 0x88, 0x08, 0x80, 0x87, 0xd3, 0x48, 0x84, 0xab, 0x24, 0x5c, 0x9e, 0xe3, 0xf7, 0x84,
+ 0x87, 0x19, 0x3c, 0xfc, 0x2f, 0xf5, 0x00, 0xb1, 0xea, 0xc8, 0x16, 0x2d, 0x51, 0x16, 0x9f, 0x42,
+ 0xa6, 0x3d, 0xf8, 0x64, 0xeb, 0x93, 0x36, 0xa3, 0x5f, 0x2f, 0xde, 0xa6, 0xc8, 0x78, 0xc8, 0x78,
+ 0x84, 0x93, 0x7e, 0xe3, 0xe1, 0xe6, 0xc4, 0x73, 0x43, 0x9d, 0x2f, 0xf2, 0xe0, 0x91, 0x27, 0xf8,
+ 0x74, 0x4f, 0x7c, 0x38, 0xf4, 0x84, 0x40, 0x41, 0xbb, 0x51, 0x6d, 0x8c, 0x3f, 0x7a, 0x6e, 0x55,
+ 0x4c, 0x12, 0xb9, 0xff, 0xfa, 0x4e, 0x56, 0x84, 0xab, 0x6a, 0x83, 0xe2, 0xd7, 0xa8, 0x34, 0x5e,
+ 0xce, 0xe8, 0xcd, 0xbf, 0x02, 0xa4, 0x5c, 0x4e, 0xb5, 0x59, 0x9e, 0xf8, 0x87, 0x87, 0x9b, 0xca,
+ 0x25, 0xc5, 0x61, 0xae, 0xa8, 0x2e, 0xe8, 0x0a, 0x86, 0x1b, 0x53, 0x54, 0x58, 0x44, 0xd1, 0x95,
+ 0x31, 0x45, 0x95, 0x25, 0x14, 0x5d, 0x7d, 0x83, 0x14, 0x3d, 0x1c, 0xbe, 0xa1, 0x06, 0x7d, 0x4c,
+ 0x94, 0xa4, 0x25, 0x94, 0x2d, 0xfe, 0x74, 0x15, 0xb6, 0x55, 0x33, 0xb0, 0xfb, 0xe4, 0xf0, 0xb8,
+ 0x36, 0xbc, 0x8c, 0xd1, 0xd9, 0x5d, 0x0c, 0xd2, 0xe1, 0x66, 0x42, 0xc7, 0x8d, 0x52, 0x1b, 0x29,
+ 0x71, 0x6f, 0x5e, 0x97, 0xfe, 0x84, 0x43, 0x47, 0x80, 0xa6, 0xfb, 0x46, 0xb4, 0x93, 0xda, 0x50,
+ 0xd2, 0x4d, 0x89, 0xbb, 0x73, 0x1a, 0x4e, 0x74, 0x08, 0x9b, 0x83, 0xe2, 0x3d, 0xd1, 0x0b, 0xa2,
+ 0xad, 0x3c, 0xbb, 0x21, 0xca, 0x47, 0x37, 0x44, 0x79, 0xd9, 0xe9, 0x04, 0xe7, 0xe2, 0x1d, 0xb6,
+ 0x83, 0xe4, 0xc6, 0xf1, 0x18, 0x6e, 0x29, 0x24, 0x98, 0xba, 0x9d, 0x41, 0x77, 0xd3, 0x6e, 0x6d,
+ 0x58, 0x84, 0x3b, 0xb3, 0x2f, 0x75, 0x9e, 0x70, 0xe8, 0x98, 0x1e, 0xc4, 0xd8, 0x97, 0x5f, 0xb8,
+ 0xf3, 0xd4, 0xdb, 0x92, 0x70, 0xe7, 0xe9, 0x97, 0x0a, 0x61, 0x4a, 0x17, 0x24, 0xd6, 0xe7, 0x10,
+ 0x8f, 0x7f, 0xde, 0x36, 0xa2, 0x72, 0x3f, 0xd1, 0x70, 0xec, 0x8c, 0x15, 0xc5, 0x84, 0x2e, 0x59,
+ 0xdc, 0x99, 0xdd, 0x50, 0xa2, 0x67, 0x51, 0x39, 0x9a, 0x60, 0xbd, 0x31, 0x71, 0xa1, 0x55, 0x29,
+ 0x8b, 0xbb, 0x73, 0x5a, 0x26, 0x84, 0x61, 0x73, 0xaa, 0x91, 0x08, 0x35, 0x4a, 0x6b, 0x30, 0xe6,
+ 0xc6, 0xf6, 0x9c, 0x99, 0x68, 0x92, 0x33, 0xcd, 0x44, 0x3b, 0xb3, 0x3b, 0x06, 0x54, 0x8f, 0x0a,
+ 0xe3, 0xc4, 0x29, 0x45, 0x13, 0x1b, 0x4b, 0x38, 0xbf, 0x62, 0x2e, 0xad, 0x46, 0xa1, 0xcf, 0x61,
+ 0x7d, 0xec, 0x65, 0x84, 0xde, 0x9e, 0x7e, 0x3d, 0x8d, 0x33, 0xe8, 0xc9, 0x0c, 0xca, 0x14, 0x83,
+ 0x92, 0xc6, 0x90, 0x10, 0xc3, 0xfe, 0xc7, 0x5f, 0x7e, 0xd4, 0xb2, 0x83, 0xb3, 0xde, 0x49, 0xbe,
+ 0xe9, 0x39, 0x05, 0xaf, 0x43, 0xdc, 0xa6, 0xd7, 0xb5, 0x0a, 0xac, 0xa6, 0x3c, 0x1e, 0x5d, 0xe8,
+ 0x3e, 0xb6, 0xdd, 0x80, 0x74, 0x4f, 0xcd, 0x26, 0x29, 0xf4, 0x9f, 0x16, 0x5a, 0x5e, 0xc1, 0x72,
+ 0xec, 0x93, 0x35, 0x9a, 0xc2, 0xa7, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xbf, 0x86, 0x1b, 0xa1,
+ 0x00, 0x16, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// NativeHWManagementServiceClient is the client API for NativeHWManagementService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type NativeHWManagementServiceClient interface {
+ // Initializes context for a device and sets up required states
+ // In the call to StartManagingDevice, the fields of ModifiableComponent which are relevant
+ // and their meanings in this context is mentioned below:
+ // name = The unique name that needs to be assigned to this hardware;
+ // class = COMPONENT_TYPE_UNDEFINED;
+ // parent = nil;
+ // alias = Optional;
+ // asset_id = Optional;
+ // uri = IP Address of the Hardware;
+ StartManagingDevice(ctx context.Context, in *ModifiableComponent, opts ...grpc.CallOption) (NativeHWManagementService_StartManagingDeviceClient, error)
+ // Stop management of a device and clean up any context and caches for that device
+ // This rpc can be called at any time, even before the StartManagingDevice operation
+ // has completed, and should be able to cleanup.
+ StopManagingDevice(ctx context.Context, in *StopManagingDeviceRequest, opts ...grpc.CallOption) (*StopManagingDeviceResponse, error)
+ // Returns an object containing a list of devices managed by this entity
+ GetManagedDevices(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ManagedDevicesResponse, error)
+ // Get the HW inventory details of the Device
+ GetPhysicalInventory(ctx context.Context, in *PhysicalInventoryRequest, opts ...grpc.CallOption) (NativeHWManagementService_GetPhysicalInventoryClient, error)
+ // Get the details of a particular HW component
+ GetHWComponentInfo(ctx context.Context, in *HWComponentInfoGetRequest, opts ...grpc.CallOption) (NativeHWManagementService_GetHWComponentInfoClient, error)
+ // Sets the permissible attributes of a HW component
+ SetHWComponentInfo(ctx context.Context, in *HWComponentInfoSetRequest, opts ...grpc.CallOption) (*HWComponentInfoSetResponse, error)
+ // Sets the location to which logs need to be shipped
+ SetLoggingEndpoint(ctx context.Context, in *SetLoggingEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error)
+ // Gets the configured location to which the logs are being shipped
+ GetLoggingEndpoint(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*GetLoggingEndpointResponse, error)
+ // Sets the location of the Message Bus to which events and metrics are shipped
+ SetMsgBusEndpoint(ctx context.Context, in *SetMsgBusEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error)
+ // Gets the configured location to which the events and metrics are being shipped
+ GetMsgBusEndpoint(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*GetMsgBusEndpointResponse, error)
+ // Gets the entities of a device on which log can be configured. A few are expected, like OS, PON Management etc.
+ // In general an entity is any item within an hardware system that can emit logs, e.g. service, process, subsystem,
+ // interface, package etc.
+ GetLoggableEntities(ctx context.Context, in *GetLoggableEntitiesRequest, opts ...grpc.CallOption) (*GetLogLevelResponse, error)
+ // Sets the log level of the device, for each given entity to a certain level.
+ // If only one EntitiesLogLevel is provided for the device and that request contains only a log level with
+ // no entity in the list it's assumed that the caller wants to set that level for all the entities.
+ SetLogLevel(ctx context.Context, in *SetLogLevelRequest, opts ...grpc.CallOption) (*SetLogLevelResponse, error)
+ // Gets the configured log level for a certain entity on a certain device.
+ // If no entity is specified in the request all the entities with their log level should be returned.
+ GetLogLevel(ctx context.Context, in *GetLogLevelRequest, opts ...grpc.CallOption) (*GetLogLevelResponse, error)
+}
+
+type nativeHWManagementServiceClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewNativeHWManagementServiceClient(cc *grpc.ClientConn) NativeHWManagementServiceClient {
+ return &nativeHWManagementServiceClient{cc}
+}
+
+func (c *nativeHWManagementServiceClient) StartManagingDevice(ctx context.Context, in *ModifiableComponent, opts ...grpc.CallOption) (NativeHWManagementService_StartManagingDeviceClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_NativeHWManagementService_serviceDesc.Streams[0], "/dmi.NativeHWManagementService/StartManagingDevice", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &nativeHWManagementServiceStartManagingDeviceClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type NativeHWManagementService_StartManagingDeviceClient interface {
+ Recv() (*StartManagingDeviceResponse, error)
+ grpc.ClientStream
+}
+
+type nativeHWManagementServiceStartManagingDeviceClient struct {
+ grpc.ClientStream
+}
+
+func (x *nativeHWManagementServiceStartManagingDeviceClient) Recv() (*StartManagingDeviceResponse, error) {
+ m := new(StartManagingDeviceResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *nativeHWManagementServiceClient) StopManagingDevice(ctx context.Context, in *StopManagingDeviceRequest, opts ...grpc.CallOption) (*StopManagingDeviceResponse, error) {
+ out := new(StopManagingDeviceResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/StopManagingDevice", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetManagedDevices(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ManagedDevicesResponse, error) {
+ out := new(ManagedDevicesResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetManagedDevices", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetPhysicalInventory(ctx context.Context, in *PhysicalInventoryRequest, opts ...grpc.CallOption) (NativeHWManagementService_GetPhysicalInventoryClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_NativeHWManagementService_serviceDesc.Streams[1], "/dmi.NativeHWManagementService/GetPhysicalInventory", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &nativeHWManagementServiceGetPhysicalInventoryClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type NativeHWManagementService_GetPhysicalInventoryClient interface {
+ Recv() (*PhysicalInventoryResponse, error)
+ grpc.ClientStream
+}
+
+type nativeHWManagementServiceGetPhysicalInventoryClient struct {
+ grpc.ClientStream
+}
+
+func (x *nativeHWManagementServiceGetPhysicalInventoryClient) Recv() (*PhysicalInventoryResponse, error) {
+ m := new(PhysicalInventoryResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetHWComponentInfo(ctx context.Context, in *HWComponentInfoGetRequest, opts ...grpc.CallOption) (NativeHWManagementService_GetHWComponentInfoClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_NativeHWManagementService_serviceDesc.Streams[2], "/dmi.NativeHWManagementService/GetHWComponentInfo", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &nativeHWManagementServiceGetHWComponentInfoClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type NativeHWManagementService_GetHWComponentInfoClient interface {
+ Recv() (*HWComponentInfoGetResponse, error)
+ grpc.ClientStream
+}
+
+type nativeHWManagementServiceGetHWComponentInfoClient struct {
+ grpc.ClientStream
+}
+
+func (x *nativeHWManagementServiceGetHWComponentInfoClient) Recv() (*HWComponentInfoGetResponse, error) {
+ m := new(HWComponentInfoGetResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *nativeHWManagementServiceClient) SetHWComponentInfo(ctx context.Context, in *HWComponentInfoSetRequest, opts ...grpc.CallOption) (*HWComponentInfoSetResponse, error) {
+ out := new(HWComponentInfoSetResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/SetHWComponentInfo", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) SetLoggingEndpoint(ctx context.Context, in *SetLoggingEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error) {
+ out := new(SetRemoteEndpointResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/SetLoggingEndpoint", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetLoggingEndpoint(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*GetLoggingEndpointResponse, error) {
+ out := new(GetLoggingEndpointResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetLoggingEndpoint", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) SetMsgBusEndpoint(ctx context.Context, in *SetMsgBusEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error) {
+ out := new(SetRemoteEndpointResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/SetMsgBusEndpoint", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetMsgBusEndpoint(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*GetMsgBusEndpointResponse, error) {
+ out := new(GetMsgBusEndpointResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetMsgBusEndpoint", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetLoggableEntities(ctx context.Context, in *GetLoggableEntitiesRequest, opts ...grpc.CallOption) (*GetLogLevelResponse, error) {
+ out := new(GetLogLevelResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetLoggableEntities", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) SetLogLevel(ctx context.Context, in *SetLogLevelRequest, opts ...grpc.CallOption) (*SetLogLevelResponse, error) {
+ out := new(SetLogLevelResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/SetLogLevel", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetLogLevel(ctx context.Context, in *GetLogLevelRequest, opts ...grpc.CallOption) (*GetLogLevelResponse, error) {
+ out := new(GetLogLevelResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetLogLevel", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// NativeHWManagementServiceServer is the server API for NativeHWManagementService service.
+type NativeHWManagementServiceServer interface {
+ // Initializes context for a device and sets up required states
+ // In the call to StartManagingDevice, the fields of ModifiableComponent which are relevant
+ // and their meanings in this context is mentioned below:
+ // name = The unique name that needs to be assigned to this hardware;
+ // class = COMPONENT_TYPE_UNDEFINED;
+ // parent = nil;
+ // alias = Optional;
+ // asset_id = Optional;
+ // uri = IP Address of the Hardware;
+ StartManagingDevice(*ModifiableComponent, NativeHWManagementService_StartManagingDeviceServer) error
+ // Stop management of a device and clean up any context and caches for that device
+ // This rpc can be called at any time, even before the StartManagingDevice operation
+ // has completed, and should be able to cleanup.
+ StopManagingDevice(context.Context, *StopManagingDeviceRequest) (*StopManagingDeviceResponse, error)
+ // Returns an object containing a list of devices managed by this entity
+ GetManagedDevices(context.Context, *empty.Empty) (*ManagedDevicesResponse, error)
+ // Get the HW inventory details of the Device
+ GetPhysicalInventory(*PhysicalInventoryRequest, NativeHWManagementService_GetPhysicalInventoryServer) error
+ // Get the details of a particular HW component
+ GetHWComponentInfo(*HWComponentInfoGetRequest, NativeHWManagementService_GetHWComponentInfoServer) error
+ // Sets the permissible attributes of a HW component
+ SetHWComponentInfo(context.Context, *HWComponentInfoSetRequest) (*HWComponentInfoSetResponse, error)
+ // Sets the location to which logs need to be shipped
+ SetLoggingEndpoint(context.Context, *SetLoggingEndpointRequest) (*SetRemoteEndpointResponse, error)
+ // Gets the configured location to which the logs are being shipped
+ GetLoggingEndpoint(context.Context, *HardwareID) (*GetLoggingEndpointResponse, error)
+ // Sets the location of the Message Bus to which events and metrics are shipped
+ SetMsgBusEndpoint(context.Context, *SetMsgBusEndpointRequest) (*SetRemoteEndpointResponse, error)
+ // Gets the configured location to which the events and metrics are being shipped
+ GetMsgBusEndpoint(context.Context, *empty.Empty) (*GetMsgBusEndpointResponse, error)
+ // Gets the entities of a device on which log can be configured. A few are expected, like OS, PON Management etc.
+ // In general an entity is any item within an hardware system that can emit logs, e.g. service, process, subsystem,
+ // interface, package etc.
+ GetLoggableEntities(context.Context, *GetLoggableEntitiesRequest) (*GetLogLevelResponse, error)
+ // Sets the log level of the device, for each given entity to a certain level.
+ // If only one EntitiesLogLevel is provided for the device and that request contains only a log level with
+ // no entity in the list it's assumed that the caller wants to set that level for all the entities.
+ SetLogLevel(context.Context, *SetLogLevelRequest) (*SetLogLevelResponse, error)
+ // Gets the configured log level for a certain entity on a certain device.
+ // If no entity is specified in the request all the entities with their log level should be returned.
+ GetLogLevel(context.Context, *GetLogLevelRequest) (*GetLogLevelResponse, error)
+}
+
+func RegisterNativeHWManagementServiceServer(s *grpc.Server, srv NativeHWManagementServiceServer) {
+ s.RegisterService(&_NativeHWManagementService_serviceDesc, srv)
+}
+
+func _NativeHWManagementService_StartManagingDevice_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(ModifiableComponent)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(NativeHWManagementServiceServer).StartManagingDevice(m, &nativeHWManagementServiceStartManagingDeviceServer{stream})
+}
+
+type NativeHWManagementService_StartManagingDeviceServer interface {
+ Send(*StartManagingDeviceResponse) error
+ grpc.ServerStream
+}
+
+type nativeHWManagementServiceStartManagingDeviceServer struct {
+ grpc.ServerStream
+}
+
+func (x *nativeHWManagementServiceStartManagingDeviceServer) Send(m *StartManagingDeviceResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _NativeHWManagementService_StopManagingDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StopManagingDeviceRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).StopManagingDevice(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/StopManagingDevice",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).StopManagingDevice(ctx, req.(*StopManagingDeviceRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetManagedDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(empty.Empty)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).GetManagedDevices(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/GetManagedDevices",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).GetManagedDevices(ctx, req.(*empty.Empty))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetPhysicalInventory_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(PhysicalInventoryRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(NativeHWManagementServiceServer).GetPhysicalInventory(m, &nativeHWManagementServiceGetPhysicalInventoryServer{stream})
+}
+
+type NativeHWManagementService_GetPhysicalInventoryServer interface {
+ Send(*PhysicalInventoryResponse) error
+ grpc.ServerStream
+}
+
+type nativeHWManagementServiceGetPhysicalInventoryServer struct {
+ grpc.ServerStream
+}
+
+func (x *nativeHWManagementServiceGetPhysicalInventoryServer) Send(m *PhysicalInventoryResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _NativeHWManagementService_GetHWComponentInfo_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(HWComponentInfoGetRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(NativeHWManagementServiceServer).GetHWComponentInfo(m, &nativeHWManagementServiceGetHWComponentInfoServer{stream})
+}
+
+type NativeHWManagementService_GetHWComponentInfoServer interface {
+ Send(*HWComponentInfoGetResponse) error
+ grpc.ServerStream
+}
+
+type nativeHWManagementServiceGetHWComponentInfoServer struct {
+ grpc.ServerStream
+}
+
+func (x *nativeHWManagementServiceGetHWComponentInfoServer) Send(m *HWComponentInfoGetResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _NativeHWManagementService_SetHWComponentInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HWComponentInfoSetRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).SetHWComponentInfo(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/SetHWComponentInfo",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).SetHWComponentInfo(ctx, req.(*HWComponentInfoSetRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_SetLoggingEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SetLoggingEndpointRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).SetLoggingEndpoint(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/SetLoggingEndpoint",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).SetLoggingEndpoint(ctx, req.(*SetLoggingEndpointRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetLoggingEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HardwareID)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).GetLoggingEndpoint(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/GetLoggingEndpoint",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).GetLoggingEndpoint(ctx, req.(*HardwareID))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_SetMsgBusEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SetMsgBusEndpointRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).SetMsgBusEndpoint(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/SetMsgBusEndpoint",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).SetMsgBusEndpoint(ctx, req.(*SetMsgBusEndpointRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetMsgBusEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(empty.Empty)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).GetMsgBusEndpoint(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/GetMsgBusEndpoint",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).GetMsgBusEndpoint(ctx, req.(*empty.Empty))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetLoggableEntities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetLoggableEntitiesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).GetLoggableEntities(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/GetLoggableEntities",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).GetLoggableEntities(ctx, req.(*GetLoggableEntitiesRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_SetLogLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SetLogLevelRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).SetLogLevel(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/SetLogLevel",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).SetLogLevel(ctx, req.(*SetLogLevelRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetLogLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetLogLevelRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeHWManagementServiceServer).GetLogLevel(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeHWManagementService/GetLogLevel",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeHWManagementServiceServer).GetLogLevel(ctx, req.(*GetLogLevelRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _NativeHWManagementService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "dmi.NativeHWManagementService",
+ HandlerType: (*NativeHWManagementServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "StopManagingDevice",
+ Handler: _NativeHWManagementService_StopManagingDevice_Handler,
+ },
+ {
+ MethodName: "GetManagedDevices",
+ Handler: _NativeHWManagementService_GetManagedDevices_Handler,
+ },
+ {
+ MethodName: "SetHWComponentInfo",
+ Handler: _NativeHWManagementService_SetHWComponentInfo_Handler,
+ },
+ {
+ MethodName: "SetLoggingEndpoint",
+ Handler: _NativeHWManagementService_SetLoggingEndpoint_Handler,
+ },
+ {
+ MethodName: "GetLoggingEndpoint",
+ Handler: _NativeHWManagementService_GetLoggingEndpoint_Handler,
+ },
+ {
+ MethodName: "SetMsgBusEndpoint",
+ Handler: _NativeHWManagementService_SetMsgBusEndpoint_Handler,
+ },
+ {
+ MethodName: "GetMsgBusEndpoint",
+ Handler: _NativeHWManagementService_GetMsgBusEndpoint_Handler,
+ },
+ {
+ MethodName: "GetLoggableEntities",
+ Handler: _NativeHWManagementService_GetLoggableEntities_Handler,
+ },
+ {
+ MethodName: "SetLogLevel",
+ Handler: _NativeHWManagementService_SetLogLevel_Handler,
+ },
+ {
+ MethodName: "GetLogLevel",
+ Handler: _NativeHWManagementService_GetLogLevel_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "StartManagingDevice",
+ Handler: _NativeHWManagementService_StartManagingDevice_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "GetPhysicalInventory",
+ Handler: _NativeHWManagementService_GetPhysicalInventory_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "GetHWComponentInfo",
+ Handler: _NativeHWManagementService_GetHWComponentInfo_Handler,
+ ServerStreams: true,
+ },
+ },
+ Metadata: "dmi/hw_management_service.proto",
+}
diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/hw_metrics_mgmt_service.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/hw_metrics_mgmt_service.pb.go
new file mode 100644
index 0000000..b812950
--- /dev/null
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/hw_metrics_mgmt_service.pb.go
@@ -0,0 +1,1007 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: dmi/hw_metrics_mgmt_service.proto
+
+package dmi
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ grpc "google.golang.org/grpc"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type MetricNames int32
+
+const (
+ MetricNames_METRIC_NAME_UNDEFINED MetricNames = 0
+ // FAN related metrics
+ MetricNames_METRIC_FAN_SPEED MetricNames = 1
+ // CPU related metrics
+ MetricNames_METRIC_CPU_TEMP MetricNames = 100
+ MetricNames_METRIC_CPU_USAGE_PERCENTAGE MetricNames = 101
+ // Transceiver related metrics
+ MetricNames_METRIC_TRANSCEIVER_TEMP MetricNames = 200
+ MetricNames_METRIC_TRANSCEIVER_VOLTAGE MetricNames = 201
+ MetricNames_METRIC_TRANSCEIVER_BIAS MetricNames = 202
+ MetricNames_METRIC_TRANSCEIVER_RX_POWER MetricNames = 203
+ MetricNames_METRIC_TRANSCEIVER_TX_POWER MetricNames = 204
+ MetricNames_METRIC_TRANSCEIVER_WAVELENGTH MetricNames = 205
+ // Disk related metrics
+ MetricNames_METRIC_DISK_TEMP MetricNames = 300
+ MetricNames_METRIC_DISK_CAPACITY MetricNames = 301
+ MetricNames_METRIC_DISK_USAGE MetricNames = 302
+ MetricNames_METRIC_DISK_USAGE_PERCENTAGE MetricNames = 303
+ MetricNames_METRIC_DISK_READ_WRITE_PERCENTAGE MetricNames = 304
+ MetricNames_METRIC_DISK_FAULTY_CELLS_PERCENTAGE MetricNames = 305
+ // RAM related metrics
+ MetricNames_METRIC_RAM_TEMP MetricNames = 400
+ MetricNames_METRIC_RAM_CAPACITY MetricNames = 401
+ MetricNames_METRIC_RAM_USAGE MetricNames = 402
+ MetricNames_METRIC_RAM_USAGE_PERCENTAGE MetricNames = 403
+ // Power related metrics
+ MetricNames_METRIC_POWER_MAX MetricNames = 500
+ MetricNames_METRIC_POWER_USAGE MetricNames = 501
+ MetricNames_METRIC_POWER_USAGE_PERCENTAGE MetricNames = 502
+ // Chassis related metrics
+ MetricNames_METRIC_INNER_SURROUNDING_TEMP MetricNames = 600
+)
+
+var MetricNames_name = map[int32]string{
+ 0: "METRIC_NAME_UNDEFINED",
+ 1: "METRIC_FAN_SPEED",
+ 100: "METRIC_CPU_TEMP",
+ 101: "METRIC_CPU_USAGE_PERCENTAGE",
+ 200: "METRIC_TRANSCEIVER_TEMP",
+ 201: "METRIC_TRANSCEIVER_VOLTAGE",
+ 202: "METRIC_TRANSCEIVER_BIAS",
+ 203: "METRIC_TRANSCEIVER_RX_POWER",
+ 204: "METRIC_TRANSCEIVER_TX_POWER",
+ 205: "METRIC_TRANSCEIVER_WAVELENGTH",
+ 300: "METRIC_DISK_TEMP",
+ 301: "METRIC_DISK_CAPACITY",
+ 302: "METRIC_DISK_USAGE",
+ 303: "METRIC_DISK_USAGE_PERCENTAGE",
+ 304: "METRIC_DISK_READ_WRITE_PERCENTAGE",
+ 305: "METRIC_DISK_FAULTY_CELLS_PERCENTAGE",
+ 400: "METRIC_RAM_TEMP",
+ 401: "METRIC_RAM_CAPACITY",
+ 402: "METRIC_RAM_USAGE",
+ 403: "METRIC_RAM_USAGE_PERCENTAGE",
+ 500: "METRIC_POWER_MAX",
+ 501: "METRIC_POWER_USAGE",
+ 502: "METRIC_POWER_USAGE_PERCENTAGE",
+ 600: "METRIC_INNER_SURROUNDING_TEMP",
+}
+
+var MetricNames_value = map[string]int32{
+ "METRIC_NAME_UNDEFINED": 0,
+ "METRIC_FAN_SPEED": 1,
+ "METRIC_CPU_TEMP": 100,
+ "METRIC_CPU_USAGE_PERCENTAGE": 101,
+ "METRIC_TRANSCEIVER_TEMP": 200,
+ "METRIC_TRANSCEIVER_VOLTAGE": 201,
+ "METRIC_TRANSCEIVER_BIAS": 202,
+ "METRIC_TRANSCEIVER_RX_POWER": 203,
+ "METRIC_TRANSCEIVER_TX_POWER": 204,
+ "METRIC_TRANSCEIVER_WAVELENGTH": 205,
+ "METRIC_DISK_TEMP": 300,
+ "METRIC_DISK_CAPACITY": 301,
+ "METRIC_DISK_USAGE": 302,
+ "METRIC_DISK_USAGE_PERCENTAGE": 303,
+ "METRIC_DISK_READ_WRITE_PERCENTAGE": 304,
+ "METRIC_DISK_FAULTY_CELLS_PERCENTAGE": 305,
+ "METRIC_RAM_TEMP": 400,
+ "METRIC_RAM_CAPACITY": 401,
+ "METRIC_RAM_USAGE": 402,
+ "METRIC_RAM_USAGE_PERCENTAGE": 403,
+ "METRIC_POWER_MAX": 500,
+ "METRIC_POWER_USAGE": 501,
+ "METRIC_POWER_USAGE_PERCENTAGE": 502,
+ "METRIC_INNER_SURROUNDING_TEMP": 600,
+}
+
+func (x MetricNames) String() string {
+ return proto.EnumName(MetricNames_name, int32(x))
+}
+
+func (MetricNames) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{0}
+}
+
+type ListMetricsResponse_Reason int32
+
+const (
+ ListMetricsResponse_UNDEFINED_REASON ListMetricsResponse_Reason = 0
+ ListMetricsResponse_UNKNOWN_DEVICE ListMetricsResponse_Reason = 1
+ ListMetricsResponse_INTERNAL_ERROR ListMetricsResponse_Reason = 2
+ ListMetricsResponse_DEVICE_UNREACHABLE ListMetricsResponse_Reason = 3
+)
+
+var ListMetricsResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "DEVICE_UNREACHABLE",
+}
+
+var ListMetricsResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "DEVICE_UNREACHABLE": 3,
+}
+
+func (x ListMetricsResponse_Reason) String() string {
+ return proto.EnumName(ListMetricsResponse_Reason_name, int32(x))
+}
+
+func (ListMetricsResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{2, 0}
+}
+
+type MetricsConfigurationResponse_Reason int32
+
+const (
+ MetricsConfigurationResponse_UNDEFINED_REASON MetricsConfigurationResponse_Reason = 0
+ MetricsConfigurationResponse_UNKNOWN_DEVICE MetricsConfigurationResponse_Reason = 1
+ MetricsConfigurationResponse_INTERNAL_ERROR MetricsConfigurationResponse_Reason = 2
+ MetricsConfigurationResponse_POLL_INTERVAL_UNSUPPORTED MetricsConfigurationResponse_Reason = 3
+ MetricsConfigurationResponse_INVALID_METRIC MetricsConfigurationResponse_Reason = 4
+ MetricsConfigurationResponse_DEVICE_UNREACHABLE MetricsConfigurationResponse_Reason = 5
+)
+
+var MetricsConfigurationResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "POLL_INTERVAL_UNSUPPORTED",
+ 4: "INVALID_METRIC",
+ 5: "DEVICE_UNREACHABLE",
+}
+
+var MetricsConfigurationResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "POLL_INTERVAL_UNSUPPORTED": 3,
+ "INVALID_METRIC": 4,
+ "DEVICE_UNREACHABLE": 5,
+}
+
+func (x MetricsConfigurationResponse_Reason) String() string {
+ return proto.EnumName(MetricsConfigurationResponse_Reason_name, int32(x))
+}
+
+func (MetricsConfigurationResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{4, 0}
+}
+
+type GetMetricResponse_Reason int32
+
+const (
+ GetMetricResponse_UNDEFINED_REASON GetMetricResponse_Reason = 0
+ GetMetricResponse_UNKNOWN_DEVICE GetMetricResponse_Reason = 1
+ GetMetricResponse_UNKNOWN_COMPONENT GetMetricResponse_Reason = 2
+ GetMetricResponse_INTERNAL_ERROR GetMetricResponse_Reason = 3
+ GetMetricResponse_INVALID_METRIC GetMetricResponse_Reason = 4
+ GetMetricResponse_DEVICE_UNREACHABLE GetMetricResponse_Reason = 5
+)
+
+var GetMetricResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "UNKNOWN_COMPONENT",
+ 3: "INTERNAL_ERROR",
+ 4: "INVALID_METRIC",
+ 5: "DEVICE_UNREACHABLE",
+}
+
+var GetMetricResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "UNKNOWN_COMPONENT": 2,
+ "INTERNAL_ERROR": 3,
+ "INVALID_METRIC": 4,
+ "DEVICE_UNREACHABLE": 5,
+}
+
+func (x GetMetricResponse_Reason) String() string {
+ return proto.EnumName(GetMetricResponse_Reason_name, int32(x))
+}
+
+func (GetMetricResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{8, 0}
+}
+
+type MetricConfig struct {
+ MetricId MetricNames `protobuf:"varint,1,opt,name=metric_id,json=metricId,proto3,enum=dmi.MetricNames" json:"metric_id,omitempty"`
+ // Whether the device manager is collecting and reporting this metric or not
+ IsConfigured bool `protobuf:"varint,2,opt,name=is_configured,json=isConfigured,proto3" json:"is_configured,omitempty"`
+ // Number of seconds between two consecutive polls of the particular metric
+ // Each device manager implemenation could have it's per metric default poll frequency which
+ // can be requested to be changed using this value
+ PollInterval uint32 `protobuf:"varint,3,opt,name=poll_interval,json=pollInterval,proto3" json:"poll_interval,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MetricConfig) Reset() { *m = MetricConfig{} }
+func (m *MetricConfig) String() string { return proto.CompactTextString(m) }
+func (*MetricConfig) ProtoMessage() {}
+func (*MetricConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{0}
+}
+
+func (m *MetricConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MetricConfig.Unmarshal(m, b)
+}
+func (m *MetricConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MetricConfig.Marshal(b, m, deterministic)
+}
+func (m *MetricConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MetricConfig.Merge(m, src)
+}
+func (m *MetricConfig) XXX_Size() int {
+ return xxx_messageInfo_MetricConfig.Size(m)
+}
+func (m *MetricConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_MetricConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MetricConfig proto.InternalMessageInfo
+
+func (m *MetricConfig) GetMetricId() MetricNames {
+ if m != nil {
+ return m.MetricId
+ }
+ return MetricNames_METRIC_NAME_UNDEFINED
+}
+
+func (m *MetricConfig) GetIsConfigured() bool {
+ if m != nil {
+ return m.IsConfigured
+ }
+ return false
+}
+
+func (m *MetricConfig) GetPollInterval() uint32 {
+ if m != nil {
+ return m.PollInterval
+ }
+ return 0
+}
+
+type MetricsConfig struct {
+ Metrics []*MetricConfig `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MetricsConfig) Reset() { *m = MetricsConfig{} }
+func (m *MetricsConfig) String() string { return proto.CompactTextString(m) }
+func (*MetricsConfig) ProtoMessage() {}
+func (*MetricsConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{1}
+}
+
+func (m *MetricsConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MetricsConfig.Unmarshal(m, b)
+}
+func (m *MetricsConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MetricsConfig.Marshal(b, m, deterministic)
+}
+func (m *MetricsConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MetricsConfig.Merge(m, src)
+}
+func (m *MetricsConfig) XXX_Size() int {
+ return xxx_messageInfo_MetricsConfig.Size(m)
+}
+func (m *MetricsConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_MetricsConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MetricsConfig proto.InternalMessageInfo
+
+func (m *MetricsConfig) GetMetrics() []*MetricConfig {
+ if m != nil {
+ return m.Metrics
+ }
+ return nil
+}
+
+type ListMetricsResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason ListMetricsResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.ListMetricsResponse_Reason" json:"reason,omitempty"`
+ Metrics *MetricsConfig `protobuf:"bytes,3,opt,name=metrics,proto3" json:"metrics,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ListMetricsResponse) Reset() { *m = ListMetricsResponse{} }
+func (m *ListMetricsResponse) String() string { return proto.CompactTextString(m) }
+func (*ListMetricsResponse) ProtoMessage() {}
+func (*ListMetricsResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{2}
+}
+
+func (m *ListMetricsResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ListMetricsResponse.Unmarshal(m, b)
+}
+func (m *ListMetricsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ListMetricsResponse.Marshal(b, m, deterministic)
+}
+func (m *ListMetricsResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListMetricsResponse.Merge(m, src)
+}
+func (m *ListMetricsResponse) XXX_Size() int {
+ return xxx_messageInfo_ListMetricsResponse.Size(m)
+}
+func (m *ListMetricsResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ListMetricsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListMetricsResponse proto.InternalMessageInfo
+
+func (m *ListMetricsResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *ListMetricsResponse) GetReason() ListMetricsResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return ListMetricsResponse_UNDEFINED_REASON
+}
+
+func (m *ListMetricsResponse) GetMetrics() *MetricsConfig {
+ if m != nil {
+ return m.Metrics
+ }
+ return nil
+}
+
+func (m *ListMetricsResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type MetricsConfigurationRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ // Types that are valid to be assigned to Operation:
+ // *MetricsConfigurationRequest_Changes
+ // *MetricsConfigurationRequest_ResetToDefault
+ Operation isMetricsConfigurationRequest_Operation `protobuf_oneof:"operation"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MetricsConfigurationRequest) Reset() { *m = MetricsConfigurationRequest{} }
+func (m *MetricsConfigurationRequest) String() string { return proto.CompactTextString(m) }
+func (*MetricsConfigurationRequest) ProtoMessage() {}
+func (*MetricsConfigurationRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{3}
+}
+
+func (m *MetricsConfigurationRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MetricsConfigurationRequest.Unmarshal(m, b)
+}
+func (m *MetricsConfigurationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MetricsConfigurationRequest.Marshal(b, m, deterministic)
+}
+func (m *MetricsConfigurationRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MetricsConfigurationRequest.Merge(m, src)
+}
+func (m *MetricsConfigurationRequest) XXX_Size() int {
+ return xxx_messageInfo_MetricsConfigurationRequest.Size(m)
+}
+func (m *MetricsConfigurationRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_MetricsConfigurationRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MetricsConfigurationRequest proto.InternalMessageInfo
+
+func (m *MetricsConfigurationRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+type isMetricsConfigurationRequest_Operation interface {
+ isMetricsConfigurationRequest_Operation()
+}
+
+type MetricsConfigurationRequest_Changes struct {
+ Changes *MetricsConfig `protobuf:"bytes,2,opt,name=changes,proto3,oneof"`
+}
+
+type MetricsConfigurationRequest_ResetToDefault struct {
+ ResetToDefault bool `protobuf:"varint,3,opt,name=reset_to_default,json=resetToDefault,proto3,oneof"`
+}
+
+func (*MetricsConfigurationRequest_Changes) isMetricsConfigurationRequest_Operation() {}
+
+func (*MetricsConfigurationRequest_ResetToDefault) isMetricsConfigurationRequest_Operation() {}
+
+func (m *MetricsConfigurationRequest) GetOperation() isMetricsConfigurationRequest_Operation {
+ if m != nil {
+ return m.Operation
+ }
+ return nil
+}
+
+func (m *MetricsConfigurationRequest) GetChanges() *MetricsConfig {
+ if x, ok := m.GetOperation().(*MetricsConfigurationRequest_Changes); ok {
+ return x.Changes
+ }
+ return nil
+}
+
+func (m *MetricsConfigurationRequest) GetResetToDefault() bool {
+ if x, ok := m.GetOperation().(*MetricsConfigurationRequest_ResetToDefault); ok {
+ return x.ResetToDefault
+ }
+ return false
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*MetricsConfigurationRequest) XXX_OneofWrappers() []interface{} {
+ return []interface{}{
+ (*MetricsConfigurationRequest_Changes)(nil),
+ (*MetricsConfigurationRequest_ResetToDefault)(nil),
+ }
+}
+
+type MetricsConfigurationResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason MetricsConfigurationResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.MetricsConfigurationResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,3,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MetricsConfigurationResponse) Reset() { *m = MetricsConfigurationResponse{} }
+func (m *MetricsConfigurationResponse) String() string { return proto.CompactTextString(m) }
+func (*MetricsConfigurationResponse) ProtoMessage() {}
+func (*MetricsConfigurationResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{4}
+}
+
+func (m *MetricsConfigurationResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MetricsConfigurationResponse.Unmarshal(m, b)
+}
+func (m *MetricsConfigurationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MetricsConfigurationResponse.Marshal(b, m, deterministic)
+}
+func (m *MetricsConfigurationResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MetricsConfigurationResponse.Merge(m, src)
+}
+func (m *MetricsConfigurationResponse) XXX_Size() int {
+ return xxx_messageInfo_MetricsConfigurationResponse.Size(m)
+}
+func (m *MetricsConfigurationResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_MetricsConfigurationResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MetricsConfigurationResponse proto.InternalMessageInfo
+
+func (m *MetricsConfigurationResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *MetricsConfigurationResponse) GetReason() MetricsConfigurationResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return MetricsConfigurationResponse_UNDEFINED_REASON
+}
+
+func (m *MetricsConfigurationResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type MetricMetaData struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ // uuid of the component
+ ComponentUuid *Uuid `protobuf:"bytes,2,opt,name=component_uuid,json=componentUuid,proto3" json:"component_uuid,omitempty"`
+ ComponentName string `protobuf:"bytes,3,opt,name=component_name,json=componentName,proto3" json:"component_name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MetricMetaData) Reset() { *m = MetricMetaData{} }
+func (m *MetricMetaData) String() string { return proto.CompactTextString(m) }
+func (*MetricMetaData) ProtoMessage() {}
+func (*MetricMetaData) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{5}
+}
+
+func (m *MetricMetaData) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MetricMetaData.Unmarshal(m, b)
+}
+func (m *MetricMetaData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MetricMetaData.Marshal(b, m, deterministic)
+}
+func (m *MetricMetaData) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MetricMetaData.Merge(m, src)
+}
+func (m *MetricMetaData) XXX_Size() int {
+ return xxx_messageInfo_MetricMetaData.Size(m)
+}
+func (m *MetricMetaData) XXX_DiscardUnknown() {
+ xxx_messageInfo_MetricMetaData.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MetricMetaData proto.InternalMessageInfo
+
+func (m *MetricMetaData) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *MetricMetaData) GetComponentUuid() *Uuid {
+ if m != nil {
+ return m.ComponentUuid
+ }
+ return nil
+}
+
+func (m *MetricMetaData) GetComponentName() string {
+ if m != nil {
+ return m.ComponentName
+ }
+ return ""
+}
+
+// The Metrics are conveyed to external systems by submitting them on a kafka bus.
+// The topic to which are Metrics are submitted would be configured as startup
+// configuration of the components
+type Metric struct {
+ MetricId MetricNames `protobuf:"varint,1,opt,name=metric_id,json=metricId,proto3,enum=dmi.MetricNames" json:"metric_id,omitempty"`
+ MetricMetadata *MetricMetaData `protobuf:"bytes,2,opt,name=metric_metadata,json=metricMetadata,proto3" json:"metric_metadata,omitempty"`
+ Value *ComponentSensorData `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Metric) Reset() { *m = Metric{} }
+func (m *Metric) String() string { return proto.CompactTextString(m) }
+func (*Metric) ProtoMessage() {}
+func (*Metric) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{6}
+}
+
+func (m *Metric) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Metric.Unmarshal(m, b)
+}
+func (m *Metric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Metric.Marshal(b, m, deterministic)
+}
+func (m *Metric) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Metric.Merge(m, src)
+}
+func (m *Metric) XXX_Size() int {
+ return xxx_messageInfo_Metric.Size(m)
+}
+func (m *Metric) XXX_DiscardUnknown() {
+ xxx_messageInfo_Metric.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Metric proto.InternalMessageInfo
+
+func (m *Metric) GetMetricId() MetricNames {
+ if m != nil {
+ return m.MetricId
+ }
+ return MetricNames_METRIC_NAME_UNDEFINED
+}
+
+func (m *Metric) GetMetricMetadata() *MetricMetaData {
+ if m != nil {
+ return m.MetricMetadata
+ }
+ return nil
+}
+
+func (m *Metric) GetValue() *ComponentSensorData {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+type GetMetricRequest struct {
+ MetaData *MetricMetaData `protobuf:"bytes,1,opt,name=meta_data,json=metaData,proto3" json:"meta_data,omitempty"`
+ MetricId MetricNames `protobuf:"varint,2,opt,name=metric_id,json=metricId,proto3,enum=dmi.MetricNames" json:"metric_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetMetricRequest) Reset() { *m = GetMetricRequest{} }
+func (m *GetMetricRequest) String() string { return proto.CompactTextString(m) }
+func (*GetMetricRequest) ProtoMessage() {}
+func (*GetMetricRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{7}
+}
+
+func (m *GetMetricRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetMetricRequest.Unmarshal(m, b)
+}
+func (m *GetMetricRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetMetricRequest.Marshal(b, m, deterministic)
+}
+func (m *GetMetricRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetMetricRequest.Merge(m, src)
+}
+func (m *GetMetricRequest) XXX_Size() int {
+ return xxx_messageInfo_GetMetricRequest.Size(m)
+}
+func (m *GetMetricRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetMetricRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetMetricRequest proto.InternalMessageInfo
+
+func (m *GetMetricRequest) GetMetaData() *MetricMetaData {
+ if m != nil {
+ return m.MetaData
+ }
+ return nil
+}
+
+func (m *GetMetricRequest) GetMetricId() MetricNames {
+ if m != nil {
+ return m.MetricId
+ }
+ return MetricNames_METRIC_NAME_UNDEFINED
+}
+
+type GetMetricResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason GetMetricResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetMetricResponse_Reason" json:"reason,omitempty"`
+ Metric *Metric `protobuf:"bytes,3,opt,name=metric,proto3" json:"metric,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetMetricResponse) Reset() { *m = GetMetricResponse{} }
+func (m *GetMetricResponse) String() string { return proto.CompactTextString(m) }
+func (*GetMetricResponse) ProtoMessage() {}
+func (*GetMetricResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_6b6c2f1384c11ff5, []int{8}
+}
+
+func (m *GetMetricResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetMetricResponse.Unmarshal(m, b)
+}
+func (m *GetMetricResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetMetricResponse.Marshal(b, m, deterministic)
+}
+func (m *GetMetricResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetMetricResponse.Merge(m, src)
+}
+func (m *GetMetricResponse) XXX_Size() int {
+ return xxx_messageInfo_GetMetricResponse.Size(m)
+}
+func (m *GetMetricResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetMetricResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetMetricResponse proto.InternalMessageInfo
+
+func (m *GetMetricResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *GetMetricResponse) GetReason() GetMetricResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return GetMetricResponse_UNDEFINED_REASON
+}
+
+func (m *GetMetricResponse) GetMetric() *Metric {
+ if m != nil {
+ return m.Metric
+ }
+ return nil
+}
+
+func (m *GetMetricResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterEnum("dmi.MetricNames", MetricNames_name, MetricNames_value)
+ proto.RegisterEnum("dmi.ListMetricsResponse_Reason", ListMetricsResponse_Reason_name, ListMetricsResponse_Reason_value)
+ proto.RegisterEnum("dmi.MetricsConfigurationResponse_Reason", MetricsConfigurationResponse_Reason_name, MetricsConfigurationResponse_Reason_value)
+ proto.RegisterEnum("dmi.GetMetricResponse_Reason", GetMetricResponse_Reason_name, GetMetricResponse_Reason_value)
+ proto.RegisterType((*MetricConfig)(nil), "dmi.MetricConfig")
+ proto.RegisterType((*MetricsConfig)(nil), "dmi.MetricsConfig")
+ proto.RegisterType((*ListMetricsResponse)(nil), "dmi.ListMetricsResponse")
+ proto.RegisterType((*MetricsConfigurationRequest)(nil), "dmi.MetricsConfigurationRequest")
+ proto.RegisterType((*MetricsConfigurationResponse)(nil), "dmi.MetricsConfigurationResponse")
+ proto.RegisterType((*MetricMetaData)(nil), "dmi.MetricMetaData")
+ proto.RegisterType((*Metric)(nil), "dmi.Metric")
+ proto.RegisterType((*GetMetricRequest)(nil), "dmi.GetMetricRequest")
+ proto.RegisterType((*GetMetricResponse)(nil), "dmi.GetMetricResponse")
+}
+
+func init() { proto.RegisterFile("dmi/hw_metrics_mgmt_service.proto", fileDescriptor_6b6c2f1384c11ff5) }
+
+var fileDescriptor_6b6c2f1384c11ff5 = []byte{
+ // 1198 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4d, 0x6f, 0xdb, 0x46,
+ 0x13, 0x36, 0xa9, 0xc4, 0x89, 0x57, 0xb6, 0x42, 0xaf, 0xf3, 0xa1, 0x38, 0xc9, 0x1b, 0x59, 0xc1,
+ 0x5b, 0x08, 0x69, 0x23, 0x07, 0x0e, 0x8a, 0x7e, 0xe5, 0x50, 0x9a, 0xdc, 0xd8, 0x44, 0x28, 0x4a,
+ 0x58, 0x91, 0x72, 0xd2, 0x43, 0x17, 0x1b, 0x71, 0x23, 0x13, 0x10, 0x49, 0x95, 0xa4, 0x9c, 0x9f,
+ 0x50, 0xf4, 0xd6, 0xb4, 0xe8, 0x4f, 0x68, 0x4f, 0xfd, 0xfe, 0x01, 0xbd, 0x15, 0xe8, 0xe7, 0xbd,
+ 0xfd, 0x1f, 0x6d, 0x81, 0xde, 0x0a, 0xee, 0x52, 0xca, 0x5a, 0x96, 0x9b, 0xba, 0xe8, 0x4d, 0x7a,
+ 0xe6, 0x99, 0x99, 0x67, 0x66, 0x96, 0xb3, 0x0b, 0x36, 0xfc, 0x30, 0xd8, 0xdc, 0x7f, 0x42, 0x42,
+ 0x96, 0x25, 0x41, 0x3f, 0x25, 0xe1, 0x20, 0xcc, 0x48, 0xca, 0x92, 0x83, 0xa0, 0xcf, 0x9a, 0xa3,
+ 0x24, 0xce, 0x62, 0x58, 0xf2, 0xc3, 0x60, 0x7d, 0x35, 0xe7, 0xf5, 0xe3, 0x30, 0x8c, 0xa3, 0x54,
+ 0xe0, 0xeb, 0xcb, 0xc2, 0x55, 0xfc, 0xab, 0xbf, 0xab, 0x80, 0xe5, 0x16, 0x0f, 0x62, 0xc4, 0xd1,
+ 0xe3, 0x60, 0x00, 0x6f, 0x81, 0x25, 0x11, 0x94, 0x04, 0x7e, 0x55, 0xa9, 0x29, 0x8d, 0xca, 0x96,
+ 0xd6, 0xf4, 0xc3, 0xa0, 0x29, 0x58, 0x0e, 0x0d, 0x59, 0x8a, 0xcf, 0x0a, 0x8a, 0xe5, 0xc3, 0x1b,
+ 0x60, 0x25, 0x48, 0x49, 0x9f, 0xfb, 0x8e, 0x13, 0xe6, 0x57, 0xd5, 0x9a, 0xd2, 0x38, 0x8b, 0x97,
+ 0x83, 0xd4, 0x98, 0x62, 0x39, 0x69, 0x14, 0x0f, 0x87, 0x24, 0x88, 0x32, 0x96, 0x1c, 0xd0, 0x61,
+ 0xb5, 0x54, 0x53, 0x1a, 0x2b, 0x78, 0x39, 0x07, 0xad, 0x02, 0xab, 0xdf, 0x05, 0x2b, 0x22, 0x45,
+ 0xe1, 0x09, 0x5f, 0x04, 0x67, 0x8a, 0xf2, 0xaa, 0x4a, 0xad, 0xd4, 0x28, 0x6f, 0xad, 0x4a, 0x3a,
+ 0x04, 0x07, 0x4f, 0x18, 0xf5, 0x4f, 0x54, 0xb0, 0x66, 0x07, 0x69, 0x56, 0x84, 0xc0, 0x2c, 0x1d,
+ 0xc5, 0x51, 0xca, 0xe0, 0x0d, 0xb0, 0x98, 0x66, 0x34, 0x1b, 0xa7, 0x45, 0x2d, 0x65, 0x1e, 0xa3,
+ 0xcb, 0x21, 0x5c, 0x98, 0xe0, 0x2b, 0x60, 0x31, 0x61, 0x34, 0x8d, 0x23, 0xae, 0xbe, 0xb2, 0x75,
+ 0x9d, 0x93, 0xe6, 0x84, 0x6b, 0x62, 0x4e, 0xc3, 0x05, 0x1d, 0xbe, 0xf4, 0x4c, 0x62, 0x5e, 0x52,
+ 0x79, 0x0b, 0x4a, 0x12, 0xd3, 0x19, 0x8d, 0x79, 0x1b, 0x84, 0x1f, 0xf1, 0x59, 0x46, 0x83, 0x61,
+ 0xf5, 0x54, 0x4d, 0x69, 0x2c, 0xe1, 0x65, 0x01, 0x9a, 0x1c, 0xab, 0xbf, 0x0d, 0x16, 0x45, 0x12,
+ 0x78, 0x1e, 0x68, 0x9e, 0x63, 0xa2, 0x7b, 0x96, 0x83, 0x4c, 0x82, 0x91, 0xde, 0x6d, 0x3b, 0xda,
+ 0x02, 0x84, 0xa0, 0xe2, 0x39, 0xf7, 0x9d, 0xf6, 0x9e, 0x43, 0x4c, 0xd4, 0xb3, 0x0c, 0xa4, 0x29,
+ 0x39, 0x66, 0x39, 0x2e, 0xc2, 0x8e, 0x6e, 0x13, 0x84, 0x71, 0x1b, 0x6b, 0x2a, 0xbc, 0x08, 0xa0,
+ 0xb0, 0x13, 0xcf, 0xc1, 0x48, 0x37, 0x76, 0xf5, 0x6d, 0x1b, 0x69, 0xa5, 0xfa, 0xd7, 0x0a, 0xb8,
+ 0x72, 0x48, 0xdf, 0x38, 0xa1, 0x59, 0x10, 0x47, 0x98, 0xbd, 0x33, 0x66, 0x69, 0x06, 0x6f, 0x82,
+ 0xb2, 0xcf, 0xf2, 0x63, 0x44, 0xc6, 0xe3, 0xe2, 0x04, 0x94, 0xb7, 0x96, 0x78, 0x59, 0xde, 0x38,
+ 0xf0, 0x31, 0x10, 0xd6, 0xfc, 0x37, 0x6c, 0x82, 0x33, 0xfd, 0x7d, 0x1a, 0x0d, 0x58, 0xca, 0x1b,
+ 0x37, 0xb7, 0xfc, 0xdd, 0x05, 0x3c, 0x21, 0xc1, 0x9b, 0x40, 0x4b, 0x58, 0xca, 0x32, 0x92, 0xc5,
+ 0xc4, 0x67, 0x8f, 0xe9, 0x78, 0x98, 0xf1, 0xbe, 0x9d, 0xdd, 0x5d, 0xc0, 0x15, 0x6e, 0x71, 0x63,
+ 0x53, 0xe0, 0xdb, 0x65, 0xb0, 0x14, 0x8f, 0x98, 0xd0, 0x56, 0xff, 0x46, 0x05, 0x57, 0xe7, 0x8b,
+ 0x3e, 0xc9, 0x98, 0xdf, 0x9c, 0x19, 0x73, 0xe3, 0xa8, 0xda, 0x99, 0xb8, 0xb3, 0xf3, 0x3e, 0x32,
+ 0xc1, 0xd2, 0x9c, 0x09, 0x3e, 0x55, 0xfe, 0xa3, 0x11, 0x5e, 0x03, 0x97, 0x3b, 0x6d, 0xdb, 0x26,
+ 0xdc, 0xd0, 0xd3, 0x6d, 0xe2, 0x39, 0x5d, 0xaf, 0xd3, 0x69, 0x63, 0x17, 0x99, 0x5a, 0x49, 0xb8,
+ 0xf4, 0x74, 0xdb, 0x32, 0x49, 0x0b, 0xb9, 0xd8, 0x32, 0xb4, 0x53, 0xc7, 0x4c, 0xfd, 0x74, 0xfd,
+ 0x23, 0x05, 0x54, 0x44, 0xa1, 0x2d, 0x96, 0x51, 0x93, 0x66, 0xf4, 0x44, 0x83, 0xbe, 0x0d, 0x2a,
+ 0xfd, 0x38, 0x1c, 0xc5, 0x11, 0x8b, 0x32, 0x41, 0x57, 0x67, 0xe9, 0x2b, 0x53, 0x02, 0xf7, 0xf8,
+ 0xbf, 0xec, 0x11, 0xd1, 0x90, 0x15, 0xad, 0x7a, 0x46, 0xcb, 0x37, 0x49, 0xfd, 0x63, 0x05, 0x2c,
+ 0x0a, 0x5d, 0x27, 0x5d, 0x3c, 0x77, 0xc1, 0xb9, 0x82, 0x1e, 0xb2, 0x8c, 0xfa, 0x34, 0xa3, 0x85,
+ 0xa6, 0x35, 0xc9, 0x69, 0x52, 0x2c, 0xae, 0x84, 0xd3, 0xff, 0x39, 0x15, 0x36, 0xc1, 0xe9, 0x03,
+ 0x3a, 0x1c, 0xb3, 0xe2, 0xb3, 0xad, 0x72, 0x1f, 0x63, 0x22, 0xad, 0xcb, 0xa2, 0x34, 0x4e, 0xb8,
+ 0xa3, 0xa0, 0xd5, 0x53, 0xa0, 0xed, 0xb0, 0x62, 0x1b, 0x4c, 0xbe, 0x94, 0xdb, 0x5c, 0x30, 0x25,
+ 0x3c, 0xb7, 0x72, 0x7c, 0xee, 0x5c, 0xb3, 0x68, 0xf9, 0xa1, 0x12, 0xd5, 0xe7, 0x95, 0x58, 0xff,
+ 0x56, 0x05, 0xab, 0x52, 0xd6, 0x93, 0x1c, 0xf5, 0x97, 0x67, 0x8e, 0xfa, 0x35, 0x4e, 0x3a, 0x12,
+ 0xec, 0xe8, 0xf9, 0x5e, 0x14, 0xd9, 0x8b, 0xbe, 0x94, 0x25, 0x75, 0xb8, 0x30, 0xfd, 0xb3, 0x35,
+ 0xf6, 0xde, 0xbf, 0xf9, 0x08, 0x2e, 0x80, 0xd5, 0x09, 0x66, 0xb4, 0x5b, 0x9d, 0xb6, 0x83, 0x1c,
+ 0x57, 0x53, 0xe7, 0x7c, 0x1b, 0x27, 0x3a, 0xfc, 0x37, 0x7f, 0x3d, 0x0d, 0xca, 0x52, 0x87, 0xe1,
+ 0x65, 0x70, 0x41, 0xf8, 0x10, 0x47, 0x6f, 0xe5, 0xe4, 0x42, 0x9c, 0xb6, 0x90, 0x6b, 0x2d, 0x4c,
+ 0xf7, 0x74, 0x87, 0x74, 0x3b, 0x08, 0x99, 0x9a, 0x02, 0xd7, 0xc0, 0xb9, 0x02, 0x35, 0x3a, 0x1e,
+ 0x71, 0x51, 0xab, 0xa3, 0xf9, 0xf0, 0x3a, 0xb8, 0x22, 0x81, 0x5e, 0x57, 0xdf, 0x41, 0xa4, 0x83,
+ 0xb0, 0x81, 0x1c, 0x57, 0xdf, 0x41, 0x1a, 0x83, 0x57, 0xc1, 0xa5, 0x82, 0xe0, 0x62, 0xdd, 0xe9,
+ 0x1a, 0xc8, 0xea, 0x21, 0x2c, 0xbc, 0xbf, 0x53, 0xe0, 0x75, 0xb0, 0x3e, 0xc7, 0xda, 0x6b, 0xdb,
+ 0xdc, 0xfb, 0x7b, 0xe5, 0x18, 0xf7, 0x6d, 0x4b, 0xef, 0x6a, 0x3f, 0x28, 0xb0, 0x36, 0xcd, 0x2e,
+ 0x5b, 0xf1, 0x03, 0xd2, 0x69, 0xef, 0x21, 0xac, 0xfd, 0x78, 0x1c, 0xc3, 0x9d, 0x30, 0x7e, 0x52,
+ 0x60, 0x1d, 0x5c, 0x9b, 0xc3, 0xd8, 0xd3, 0x7b, 0xc8, 0x46, 0xce, 0x8e, 0xbb, 0xab, 0xfd, 0x9c,
+ 0x8f, 0x64, 0xd2, 0x10, 0xd3, 0xea, 0xde, 0x17, 0xea, 0x3f, 0x55, 0xe1, 0x65, 0x70, 0x5e, 0x86,
+ 0x0d, 0xbd, 0xa3, 0x1b, 0x96, 0xfb, 0x50, 0xfb, 0x2c, 0xbf, 0x78, 0x56, 0x65, 0x13, 0x6f, 0x8c,
+ 0xf6, 0xb9, 0x0a, 0x37, 0xc0, 0xd5, 0x23, 0xb8, 0xdc, 0xb0, 0x2f, 0x54, 0xf8, 0x02, 0xd8, 0x90,
+ 0x29, 0x18, 0xe9, 0x26, 0xd9, 0xc3, 0x96, 0x7b, 0x88, 0xf7, 0xa5, 0x0a, 0x1b, 0xe0, 0x86, 0xcc,
+ 0xbb, 0xa7, 0x7b, 0xb6, 0xfb, 0x90, 0x18, 0xc8, 0xb6, 0xbb, 0x32, 0xf3, 0x2b, 0x15, 0x9e, 0x9f,
+ 0x4e, 0x0e, 0xeb, 0x2d, 0xa1, 0xfe, 0xfd, 0x12, 0xac, 0x82, 0x35, 0x09, 0x9d, 0x8a, 0x7f, 0x5a,
+ 0x92, 0xca, 0xcd, 0x2d, 0x42, 0xfb, 0x07, 0x25, 0xa9, 0x97, 0x53, 0x58, 0x4e, 0xf4, 0xa1, 0xec,
+ 0xc8, 0xdb, 0x4b, 0x5a, 0xfa, 0x03, 0xed, 0xb7, 0x12, 0xbc, 0x04, 0xe0, 0x21, 0x58, 0x44, 0xfc,
+ 0xbd, 0x24, 0xf5, 0x5e, 0x32, 0xc8, 0x31, 0xff, 0x90, 0x39, 0x96, 0xe3, 0x20, 0x4c, 0xba, 0x1e,
+ 0xc6, 0x6d, 0xcf, 0x31, 0x2d, 0x67, 0x47, 0x94, 0xf2, 0xcb, 0xa9, 0xad, 0x3f, 0x15, 0xf0, 0x3f,
+ 0x87, 0x66, 0xc1, 0x01, 0x2b, 0xee, 0xb1, 0x16, 0x8d, 0xe8, 0x80, 0x85, 0x7c, 0x8b, 0xf1, 0xe7,
+ 0x20, 0x7c, 0x15, 0x94, 0xa5, 0xa7, 0x0c, 0x3c, 0xc7, 0xbf, 0xe9, 0x5d, 0x9a, 0xf8, 0x4f, 0x68,
+ 0xc2, 0x2c, 0x73, 0xbd, 0x7a, 0xdc, 0x6b, 0x07, 0x52, 0xb0, 0xee, 0x8d, 0x7c, 0x9a, 0xb1, 0x79,
+ 0x77, 0x24, 0xac, 0xfd, 0xcd, 0xf5, 0xc9, 0x37, 0xe4, 0xfa, 0xc6, 0x73, 0x2f, 0x58, 0xf8, 0x3a,
+ 0x58, 0x9a, 0x6e, 0x25, 0x78, 0x61, 0x76, 0x4b, 0x89, 0x30, 0x17, 0xe7, 0x2f, 0xaf, 0xed, 0x37,
+ 0xde, 0x7a, 0x6d, 0x10, 0x64, 0xfb, 0xe3, 0x47, 0xcd, 0x7e, 0x1c, 0x6e, 0xc6, 0x23, 0x16, 0xf5,
+ 0xe3, 0xc4, 0xdf, 0x14, 0xf7, 0xd6, 0xad, 0x70, 0xda, 0x88, 0x5b, 0xfc, 0xdd, 0xf9, 0x98, 0xf6,
+ 0xd9, 0xe6, 0xc1, 0x9d, 0xcd, 0x41, 0xbc, 0xe9, 0x87, 0xc1, 0xa3, 0x45, 0xfe, 0xfe, 0xbd, 0xf3,
+ 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xee, 0x26, 0xad, 0x4a, 0x0b, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// NativeMetricsManagementServiceClient is the client API for NativeMetricsManagementService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type NativeMetricsManagementServiceClient interface {
+ // List the supported metrics for the passed device.
+ // This would be the first call that you make to know about the metrics that a particular device supports and
+ // then use the UpdateMetricsConfiguration API to monitor only the required metrics.
+ ListMetrics(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*ListMetricsResponse, error)
+ // Updates the configuration of the list of metrics in the request
+ // Acts upon single metric configuration, collection of a single metric can be started/stopped
+ // by changing its configuration.
+ //
+ // This configuration is persisted across restart of the device or the device manager
+ UpdateMetricsConfiguration(ctx context.Context, in *MetricsConfigurationRequest, opts ...grpc.CallOption) (*MetricsConfigurationResponse, error)
+ // Get the instantenous value of a metric
+ GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*GetMetricResponse, error)
+}
+
+type nativeMetricsManagementServiceClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewNativeMetricsManagementServiceClient(cc *grpc.ClientConn) NativeMetricsManagementServiceClient {
+ return &nativeMetricsManagementServiceClient{cc}
+}
+
+func (c *nativeMetricsManagementServiceClient) ListMetrics(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*ListMetricsResponse, error) {
+ out := new(ListMetricsResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeMetricsManagementService/ListMetrics", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeMetricsManagementServiceClient) UpdateMetricsConfiguration(ctx context.Context, in *MetricsConfigurationRequest, opts ...grpc.CallOption) (*MetricsConfigurationResponse, error) {
+ out := new(MetricsConfigurationResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeMetricsManagementService/UpdateMetricsConfiguration", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeMetricsManagementServiceClient) GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*GetMetricResponse, error) {
+ out := new(GetMetricResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeMetricsManagementService/GetMetric", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// NativeMetricsManagementServiceServer is the server API for NativeMetricsManagementService service.
+type NativeMetricsManagementServiceServer interface {
+ // List the supported metrics for the passed device.
+ // This would be the first call that you make to know about the metrics that a particular device supports and
+ // then use the UpdateMetricsConfiguration API to monitor only the required metrics.
+ ListMetrics(context.Context, *HardwareID) (*ListMetricsResponse, error)
+ // Updates the configuration of the list of metrics in the request
+ // Acts upon single metric configuration, collection of a single metric can be started/stopped
+ // by changing its configuration.
+ //
+ // This configuration is persisted across restart of the device or the device manager
+ UpdateMetricsConfiguration(context.Context, *MetricsConfigurationRequest) (*MetricsConfigurationResponse, error)
+ // Get the instantenous value of a metric
+ GetMetric(context.Context, *GetMetricRequest) (*GetMetricResponse, error)
+}
+
+func RegisterNativeMetricsManagementServiceServer(s *grpc.Server, srv NativeMetricsManagementServiceServer) {
+ s.RegisterService(&_NativeMetricsManagementService_serviceDesc, srv)
+}
+
+func _NativeMetricsManagementService_ListMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HardwareID)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeMetricsManagementServiceServer).ListMetrics(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeMetricsManagementService/ListMetrics",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeMetricsManagementServiceServer).ListMetrics(ctx, req.(*HardwareID))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeMetricsManagementService_UpdateMetricsConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(MetricsConfigurationRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeMetricsManagementServiceServer).UpdateMetricsConfiguration(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeMetricsManagementService/UpdateMetricsConfiguration",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeMetricsManagementServiceServer).UpdateMetricsConfiguration(ctx, req.(*MetricsConfigurationRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeMetricsManagementService_GetMetric_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetMetricRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeMetricsManagementServiceServer).GetMetric(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeMetricsManagementService/GetMetric",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeMetricsManagementServiceServer).GetMetric(ctx, req.(*GetMetricRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _NativeMetricsManagementService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "dmi.NativeMetricsManagementService",
+ HandlerType: (*NativeMetricsManagementServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "ListMetrics",
+ Handler: _NativeMetricsManagementService_ListMetrics_Handler,
+ },
+ {
+ MethodName: "UpdateMetricsConfiguration",
+ Handler: _NativeMetricsManagementService_UpdateMetricsConfiguration_Handler,
+ },
+ {
+ MethodName: "GetMetric",
+ Handler: _NativeMetricsManagementService_GetMetric_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "dmi/hw_metrics_mgmt_service.proto",
+}
diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/sw_image.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/sw_image.pb.go
new file mode 100644
index 0000000..5bdb543
--- /dev/null
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/sw_image.pb.go
@@ -0,0 +1,357 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: dmi/sw_image.proto
+
+package dmi
+
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type ImageStatus_ImageState int32
+
+const (
+ ImageStatus_UNDEFINED_STATE ImageStatus_ImageState = 0
+ ImageStatus_COPYING_IMAGE ImageStatus_ImageState = 1
+ ImageStatus_INSTALLING_IMAGE ImageStatus_ImageState = 2
+ ImageStatus_COMMITTING_IMAGE ImageStatus_ImageState = 3
+ ImageStatus_REBOOTING_DEVICE ImageStatus_ImageState = 4
+ ImageStatus_UPGRADE_COMPLETE ImageStatus_ImageState = 5
+ ImageStatus_UPGRADE_FAILED ImageStatus_ImageState = 6
+ ImageStatus_ACTIVATION_COMPLETE ImageStatus_ImageState = 7
+ ImageStatus_ACTIVATION_FAILED ImageStatus_ImageState = 8
+)
+
+var ImageStatus_ImageState_name = map[int32]string{
+ 0: "UNDEFINED_STATE",
+ 1: "COPYING_IMAGE",
+ 2: "INSTALLING_IMAGE",
+ 3: "COMMITTING_IMAGE",
+ 4: "REBOOTING_DEVICE",
+ 5: "UPGRADE_COMPLETE",
+ 6: "UPGRADE_FAILED",
+ 7: "ACTIVATION_COMPLETE",
+ 8: "ACTIVATION_FAILED",
+}
+
+var ImageStatus_ImageState_value = map[string]int32{
+ "UNDEFINED_STATE": 0,
+ "COPYING_IMAGE": 1,
+ "INSTALLING_IMAGE": 2,
+ "COMMITTING_IMAGE": 3,
+ "REBOOTING_DEVICE": 4,
+ "UPGRADE_COMPLETE": 5,
+ "UPGRADE_FAILED": 6,
+ "ACTIVATION_COMPLETE": 7,
+ "ACTIVATION_FAILED": 8,
+}
+
+func (x ImageStatus_ImageState) String() string {
+ return proto.EnumName(ImageStatus_ImageState_name, int32(x))
+}
+
+func (ImageStatus_ImageState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_3d058607a829baf4, []int{2, 0}
+}
+
+type ImageStatus_Reason int32
+
+const (
+ ImageStatus_UNDEFINED_REASON ImageStatus_Reason = 0
+ ImageStatus_ERROR_IN_REQUEST ImageStatus_Reason = 1
+ ImageStatus_INTERNAL_ERROR ImageStatus_Reason = 2
+ ImageStatus_DEVICE_IN_WRONG_STATE ImageStatus_Reason = 3
+ ImageStatus_INVALID_IMAGE ImageStatus_Reason = 4
+ ImageStatus_WRONG_IMAGE_CHECKSUM ImageStatus_Reason = 5
+ ImageStatus_OPERATION_ALREADY_IN_PROGRESS ImageStatus_Reason = 6
+ ImageStatus_UNKNOWN_DEVICE ImageStatus_Reason = 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
+ ImageStatus_DEVICE_NOT_REACHABLE ImageStatus_Reason = 8
+)
+
+var ImageStatus_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "ERROR_IN_REQUEST",
+ 2: "INTERNAL_ERROR",
+ 3: "DEVICE_IN_WRONG_STATE",
+ 4: "INVALID_IMAGE",
+ 5: "WRONG_IMAGE_CHECKSUM",
+ 6: "OPERATION_ALREADY_IN_PROGRESS",
+ 7: "UNKNOWN_DEVICE",
+ 8: "DEVICE_NOT_REACHABLE",
+}
+
+var ImageStatus_Reason_value = map[string]int32{
+ "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,
+ "DEVICE_NOT_REACHABLE": 8,
+}
+
+func (x ImageStatus_Reason) String() string {
+ return proto.EnumName(ImageStatus_Reason_name, int32(x))
+}
+
+func (ImageStatus_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_3d058607a829baf4, []int{2, 1}
+}
+
+type ImageVersion struct {
+ ImageName string `protobuf:"bytes,1,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
+ Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ImageVersion) Reset() { *m = ImageVersion{} }
+func (m *ImageVersion) String() string { return proto.CompactTextString(m) }
+func (*ImageVersion) ProtoMessage() {}
+func (*ImageVersion) Descriptor() ([]byte, []int) {
+ return fileDescriptor_3d058607a829baf4, []int{0}
+}
+
+func (m *ImageVersion) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ImageVersion.Unmarshal(m, b)
+}
+func (m *ImageVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ImageVersion.Marshal(b, m, deterministic)
+}
+func (m *ImageVersion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ImageVersion.Merge(m, src)
+}
+func (m *ImageVersion) XXX_Size() int {
+ return xxx_messageInfo_ImageVersion.Size(m)
+}
+func (m *ImageVersion) XXX_DiscardUnknown() {
+ xxx_messageInfo_ImageVersion.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ImageVersion proto.InternalMessageInfo
+
+func (m *ImageVersion) GetImageName() string {
+ if m != nil {
+ return m.ImageName
+ }
+ return ""
+}
+
+func (m *ImageVersion) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+type ImageInformation struct {
+ Image *ImageVersion `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
+ // Script used by the device specific managers to install the image.
+ // Script must be included in the object downloaded from the image_url
+ ImageInstallScript string `protobuf:"bytes,2,opt,name=image_install_script,json=imageInstallScript,proto3" json:"image_install_script,omitempty"`
+ // 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
+ ImageUrl string `protobuf:"bytes,3,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
+ // SHA-256 sum of the image (sha256sum on Linux)
+ Sha256Sum string `protobuf:"bytes,5,opt,name=sha256sum,proto3" json:"sha256sum,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ImageInformation) Reset() { *m = ImageInformation{} }
+func (m *ImageInformation) String() string { return proto.CompactTextString(m) }
+func (*ImageInformation) ProtoMessage() {}
+func (*ImageInformation) Descriptor() ([]byte, []int) {
+ return fileDescriptor_3d058607a829baf4, []int{1}
+}
+
+func (m *ImageInformation) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ImageInformation.Unmarshal(m, b)
+}
+func (m *ImageInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ImageInformation.Marshal(b, m, deterministic)
+}
+func (m *ImageInformation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ImageInformation.Merge(m, src)
+}
+func (m *ImageInformation) XXX_Size() int {
+ return xxx_messageInfo_ImageInformation.Size(m)
+}
+func (m *ImageInformation) XXX_DiscardUnknown() {
+ xxx_messageInfo_ImageInformation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ImageInformation proto.InternalMessageInfo
+
+func (m *ImageInformation) GetImage() *ImageVersion {
+ if m != nil {
+ return m.Image
+ }
+ return nil
+}
+
+func (m *ImageInformation) GetImageInstallScript() string {
+ if m != nil {
+ return m.ImageInstallScript
+ }
+ return ""
+}
+
+func (m *ImageInformation) GetImageUrl() string {
+ if m != nil {
+ return m.ImageUrl
+ }
+ return ""
+}
+
+func (m *ImageInformation) GetSha256Sum() string {
+ if m != nil {
+ return m.Sha256Sum
+ }
+ return ""
+}
+
+type ImageStatus struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason ImageStatus_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.ImageStatus_Reason" json:"reason,omitempty"`
+ State ImageStatus_ImageState `protobuf:"varint,3,opt,name=state,proto3,enum=dmi.ImageStatus_ImageState" json:"state,omitempty"`
+ // description contains more information about the current state of the procedure and is device dependant
+ Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
+ ReasonDetail string `protobuf:"bytes,5,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ImageStatus) Reset() { *m = ImageStatus{} }
+func (m *ImageStatus) String() string { return proto.CompactTextString(m) }
+func (*ImageStatus) ProtoMessage() {}
+func (*ImageStatus) Descriptor() ([]byte, []int) {
+ return fileDescriptor_3d058607a829baf4, []int{2}
+}
+
+func (m *ImageStatus) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ImageStatus.Unmarshal(m, b)
+}
+func (m *ImageStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ImageStatus.Marshal(b, m, deterministic)
+}
+func (m *ImageStatus) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ImageStatus.Merge(m, src)
+}
+func (m *ImageStatus) XXX_Size() int {
+ return xxx_messageInfo_ImageStatus.Size(m)
+}
+func (m *ImageStatus) XXX_DiscardUnknown() {
+ xxx_messageInfo_ImageStatus.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ImageStatus proto.InternalMessageInfo
+
+func (m *ImageStatus) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *ImageStatus) GetReason() ImageStatus_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return ImageStatus_UNDEFINED_REASON
+}
+
+func (m *ImageStatus) GetState() ImageStatus_ImageState {
+ if m != nil {
+ return m.State
+ }
+ return ImageStatus_UNDEFINED_STATE
+}
+
+func (m *ImageStatus) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+func (m *ImageStatus) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterEnum("dmi.ImageStatus_ImageState", ImageStatus_ImageState_name, ImageStatus_ImageState_value)
+ proto.RegisterEnum("dmi.ImageStatus_Reason", ImageStatus_Reason_name, ImageStatus_Reason_value)
+ proto.RegisterType((*ImageVersion)(nil), "dmi.ImageVersion")
+ proto.RegisterType((*ImageInformation)(nil), "dmi.ImageInformation")
+ proto.RegisterType((*ImageStatus)(nil), "dmi.ImageStatus")
+}
+
+func init() { proto.RegisterFile("dmi/sw_image.proto", fileDescriptor_3d058607a829baf4) }
+
+var fileDescriptor_3d058607a829baf4 = []byte{
+ // 636 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x93, 0x51, 0x4e, 0xdb, 0x4a,
+ 0x14, 0x86, 0x09, 0x21, 0x01, 0x4e, 0x20, 0xd7, 0x19, 0x40, 0xe4, 0x5e, 0x2e, 0x12, 0x0d, 0x0f,
+ 0xed, 0x0b, 0x71, 0x1b, 0xd4, 0x4a, 0x55, 0x9f, 0x8c, 0x3d, 0x84, 0x11, 0xce, 0x38, 0x1d, 0x3b,
+ 0x41, 0xf4, 0xc5, 0x32, 0xf1, 0x10, 0x2c, 0x65, 0x6c, 0x64, 0x3b, 0x74, 0x23, 0x5d, 0x44, 0x97,
+ 0xd3, 0x2d, 0x74, 0x27, 0xd5, 0xcc, 0x18, 0x82, 0xd4, 0x37, 0xe7, 0xfb, 0xff, 0x39, 0xe7, 0xff,
+ 0x8f, 0x14, 0x40, 0xb1, 0x48, 0xcc, 0xe2, 0x7b, 0x98, 0x88, 0x68, 0xce, 0xfb, 0x8f, 0x79, 0x56,
+ 0x66, 0xa8, 0x1e, 0x8b, 0xe4, 0xbf, 0x8e, 0x14, 0x66, 0x99, 0x10, 0x59, 0x5a, 0x68, 0xde, 0x1b,
+ 0xc2, 0x0e, 0x91, 0xb6, 0x29, 0xcf, 0x8b, 0x24, 0x4b, 0xd1, 0x31, 0x80, 0x7a, 0x16, 0xa6, 0x91,
+ 0xe0, 0xdd, 0xda, 0x49, 0xed, 0xdd, 0x36, 0xdb, 0x56, 0x84, 0x46, 0x82, 0xa3, 0x2e, 0x6c, 0x3e,
+ 0x69, 0x67, 0x77, 0x5d, 0x69, 0xcf, 0x3f, 0x7b, 0x3f, 0x6b, 0x60, 0xa8, 0x49, 0x24, 0xbd, 0xcf,
+ 0x72, 0x11, 0x95, 0x72, 0xda, 0x5b, 0x68, 0xa8, 0xb7, 0x6a, 0x50, 0x6b, 0xd0, 0xe9, 0xc7, 0x22,
+ 0xe9, 0xbf, 0xde, 0xc7, 0xb4, 0x8e, 0xde, 0xc3, 0xbe, 0x5e, 0x9b, 0xa4, 0x45, 0x19, 0x2d, 0x16,
+ 0x61, 0x31, 0xcb, 0x93, 0xc7, 0xb2, 0x5a, 0x82, 0x12, 0x3d, 0x58, 0x49, 0xbe, 0x52, 0xd0, 0x11,
+ 0xe8, 0x58, 0xe1, 0x32, 0x5f, 0x74, 0xeb, 0xca, 0xb6, 0xa5, 0xc0, 0x24, 0x5f, 0xa0, 0xff, 0x61,
+ 0xbb, 0x78, 0x88, 0x06, 0x1f, 0x3f, 0x15, 0x4b, 0xd1, 0x6d, 0xe8, 0x12, 0x2f, 0xa0, 0xf7, 0xa3,
+ 0x01, 0x2d, 0x15, 0xc2, 0x2f, 0xa3, 0x72, 0x59, 0xa0, 0x53, 0x68, 0x16, 0xea, 0x4b, 0xc5, 0x6c,
+ 0x0f, 0x5a, 0x2a, 0xa6, 0x16, 0x59, 0x25, 0x21, 0x13, 0x9a, 0x39, 0x8f, 0x8a, 0xaa, 0x78, 0x7b,
+ 0x70, 0xb8, 0xea, 0xa2, 0x9d, 0x7d, 0xa6, 0x64, 0x56, 0xd9, 0xd0, 0x07, 0x68, 0xc8, 0xa7, 0x5c,
+ 0x85, 0x6b, 0x0f, 0x8e, 0xfe, 0xf2, 0xbf, 0x7c, 0x73, 0xa6, 0x9d, 0xe8, 0x04, 0x5a, 0x31, 0xd7,
+ 0xcd, 0xe5, 0x85, 0x37, 0x54, 0xf0, 0xd7, 0x08, 0x9d, 0xc2, 0xae, 0x1e, 0x1f, 0xc6, 0xbc, 0x8c,
+ 0x92, 0x45, 0x55, 0x6e, 0x47, 0x43, 0x47, 0xb1, 0xde, 0xaf, 0x1a, 0xc0, 0x6a, 0x38, 0xda, 0x83,
+ 0x7f, 0x26, 0xd4, 0xc1, 0x97, 0x84, 0x62, 0x27, 0xf4, 0x03, 0x2b, 0xc0, 0xc6, 0x1a, 0xea, 0xc0,
+ 0xae, 0xed, 0x8d, 0x6f, 0x09, 0x1d, 0x86, 0x64, 0x64, 0x0d, 0xb1, 0x51, 0x43, 0xfb, 0x60, 0x10,
+ 0xea, 0x07, 0x96, 0xeb, 0xae, 0xe8, 0xba, 0xa4, 0xb6, 0x37, 0x1a, 0x91, 0x20, 0x58, 0xd1, 0xba,
+ 0xa4, 0x0c, 0x5f, 0x78, 0x9e, 0x82, 0x0e, 0x9e, 0x12, 0x1b, 0x1b, 0x1b, 0x92, 0x4e, 0xc6, 0x43,
+ 0x66, 0x39, 0x38, 0xb4, 0xbd, 0xd1, 0xd8, 0xc5, 0x01, 0x36, 0x1a, 0x08, 0x41, 0xfb, 0x99, 0x5e,
+ 0x5a, 0xc4, 0xc5, 0x8e, 0xd1, 0x44, 0x87, 0xb0, 0x67, 0xd9, 0x01, 0x99, 0x5a, 0x01, 0xf1, 0xe8,
+ 0xca, 0xbc, 0x89, 0x0e, 0xa0, 0xf3, 0x4a, 0xa8, 0xfc, 0x5b, 0xbd, 0xdf, 0x35, 0x68, 0xea, 0xfb,
+ 0xaa, 0x25, 0x2f, 0x75, 0x18, 0xb6, 0x7c, 0x8f, 0x1a, 0x6b, 0x92, 0x62, 0xc6, 0x3c, 0x16, 0x12,
+ 0x1a, 0x32, 0xfc, 0x75, 0x82, 0xfd, 0xc0, 0xa8, 0xc9, 0xd5, 0x84, 0x06, 0x98, 0x51, 0xcb, 0x0d,
+ 0x95, 0x6c, 0xac, 0xa3, 0x7f, 0xe1, 0x40, 0x07, 0x96, 0xd6, 0x1b, 0xe6, 0xd1, 0x61, 0x75, 0x94,
+ 0xba, 0x3c, 0x0a, 0xa1, 0x53, 0xcb, 0x25, 0x4e, 0x55, 0x74, 0x03, 0x75, 0x61, 0x5f, 0x7b, 0x14,
+ 0x08, 0xed, 0x2b, 0x6c, 0x5f, 0xfb, 0x93, 0x91, 0xd1, 0x40, 0x6f, 0xe0, 0xd8, 0x1b, 0x63, 0xa6,
+ 0x83, 0x5a, 0x2e, 0xc3, 0x96, 0x73, 0x2b, 0x47, 0x8e, 0x99, 0x37, 0x64, 0xd8, 0xf7, 0x8d, 0xa6,
+ 0x6a, 0x4e, 0xaf, 0xa9, 0x77, 0x43, 0x9f, 0x6f, 0xb4, 0x29, 0x07, 0x56, 0xeb, 0xa9, 0x17, 0xc8,
+ 0xfc, 0xf6, 0x95, 0x75, 0xe1, 0x62, 0x63, 0xeb, 0xe2, 0xcb, 0xb7, 0xcf, 0xf3, 0xa4, 0x7c, 0x58,
+ 0xde, 0xf5, 0x67, 0x99, 0x30, 0xb3, 0x47, 0x9e, 0xce, 0xb2, 0x3c, 0x36, 0x63, 0xfe, 0x94, 0xcc,
+ 0xf8, 0x99, 0x88, 0xd2, 0x68, 0xce, 0x05, 0x4f, 0xcb, 0xb3, 0x24, 0x2d, 0x79, 0x7e, 0x1f, 0xcd,
+ 0xb8, 0xf9, 0x74, 0x6e, 0xce, 0x33, 0x33, 0x16, 0xc9, 0x5d, 0x53, 0xfd, 0x9d, 0xcf, 0xff, 0x04,
+ 0x00, 0x00, 0xff, 0xff, 0x2c, 0x3d, 0x59, 0x21, 0xfc, 0x03, 0x00, 0x00,
+}
diff --git a/vendor/github.com/opencord/device-management-interface/go/dmi/sw_management_service.pb.go b/vendor/github.com/opencord/device-management-interface/go/dmi/sw_management_service.pb.go
new file mode 100644
index 0000000..7dbb089
--- /dev/null
+++ b/vendor/github.com/opencord/device-management-interface/go/dmi/sw_management_service.pb.go
@@ -0,0 +1,936 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: dmi/sw_management_service.proto
+
+package dmi
+
+import (
+ context "context"
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ grpc "google.golang.org/grpc"
+ math "math"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+
+type GetSoftwareVersionInformationResponse_Reason int32
+
+const (
+ GetSoftwareVersionInformationResponse_UNDEFINED_REASON GetSoftwareVersionInformationResponse_Reason = 0
+ GetSoftwareVersionInformationResponse_UNKNOWN_DEVICE GetSoftwareVersionInformationResponse_Reason = 1
+ GetSoftwareVersionInformationResponse_INTERNAL_ERROR GetSoftwareVersionInformationResponse_Reason = 2
+ GetSoftwareVersionInformationResponse_DEVICE_UNREACHABLE GetSoftwareVersionInformationResponse_Reason = 3
+)
+
+var GetSoftwareVersionInformationResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "DEVICE_UNREACHABLE",
+}
+
+var GetSoftwareVersionInformationResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "DEVICE_UNREACHABLE": 3,
+}
+
+func (x GetSoftwareVersionInformationResponse_Reason) String() string {
+ return proto.EnumName(GetSoftwareVersionInformationResponse_Reason_name, int32(x))
+}
+
+func (GetSoftwareVersionInformationResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{1, 0}
+}
+
+type ConfigResponse_Reason int32
+
+const (
+ ConfigResponse_UNDEFINED_REASON ConfigResponse_Reason = 0
+ ConfigResponse_UNKNOWN_DEVICE ConfigResponse_Reason = 1
+ ConfigResponse_INTERNAL_ERROR ConfigResponse_Reason = 2
+ ConfigResponse_ERROR_FETCHING_CONFIG ConfigResponse_Reason = 3
+ ConfigResponse_INVALID_CONFIG ConfigResponse_Reason = 4
+ ConfigResponse_OPERATION_ALREADY_IN_PROGRESS ConfigResponse_Reason = 5
+ ConfigResponse_DEVICE_UNREACHABLE ConfigResponse_Reason = 6
+)
+
+var ConfigResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "ERROR_FETCHING_CONFIG",
+ 4: "INVALID_CONFIG",
+ 5: "OPERATION_ALREADY_IN_PROGRESS",
+ 6: "DEVICE_UNREACHABLE",
+}
+
+var ConfigResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "ERROR_FETCHING_CONFIG": 3,
+ "INVALID_CONFIG": 4,
+ "OPERATION_ALREADY_IN_PROGRESS": 5,
+ "DEVICE_UNREACHABLE": 6,
+}
+
+func (x ConfigResponse_Reason) String() string {
+ return proto.EnumName(ConfigResponse_Reason_name, int32(x))
+}
+
+func (ConfigResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{4, 0}
+}
+
+type StartupConfigInfoResponse_Reason int32
+
+const (
+ StartupConfigInfoResponse_UNDEFINED_REASON StartupConfigInfoResponse_Reason = 0
+ StartupConfigInfoResponse_UNKNOWN_DEVICE StartupConfigInfoResponse_Reason = 1
+ StartupConfigInfoResponse_INTERNAL_ERROR StartupConfigInfoResponse_Reason = 2
+ StartupConfigInfoResponse_DEVICE_UNREACHABLE StartupConfigInfoResponse_Reason = 3
+)
+
+var StartupConfigInfoResponse_Reason_name = map[int32]string{
+ 0: "UNDEFINED_REASON",
+ 1: "UNKNOWN_DEVICE",
+ 2: "INTERNAL_ERROR",
+ 3: "DEVICE_UNREACHABLE",
+}
+
+var StartupConfigInfoResponse_Reason_value = map[string]int32{
+ "UNDEFINED_REASON": 0,
+ "UNKNOWN_DEVICE": 1,
+ "INTERNAL_ERROR": 2,
+ "DEVICE_UNREACHABLE": 3,
+}
+
+func (x StartupConfigInfoResponse_Reason) String() string {
+ return proto.EnumName(StartupConfigInfoResponse_Reason_name, int32(x))
+}
+
+func (StartupConfigInfoResponse_Reason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{6, 0}
+}
+
+type SoftwareVersionInformation struct {
+ ActiveVersions []*ImageVersion `protobuf:"bytes,1,rep,name=active_versions,json=activeVersions,proto3" json:"active_versions,omitempty"`
+ StandbyVersions []*ImageVersion `protobuf:"bytes,2,rep,name=standby_versions,json=standbyVersions,proto3" json:"standby_versions,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SoftwareVersionInformation) Reset() { *m = SoftwareVersionInformation{} }
+func (m *SoftwareVersionInformation) String() string { return proto.CompactTextString(m) }
+func (*SoftwareVersionInformation) ProtoMessage() {}
+func (*SoftwareVersionInformation) Descriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{0}
+}
+
+func (m *SoftwareVersionInformation) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SoftwareVersionInformation.Unmarshal(m, b)
+}
+func (m *SoftwareVersionInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SoftwareVersionInformation.Marshal(b, m, deterministic)
+}
+func (m *SoftwareVersionInformation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SoftwareVersionInformation.Merge(m, src)
+}
+func (m *SoftwareVersionInformation) XXX_Size() int {
+ return xxx_messageInfo_SoftwareVersionInformation.Size(m)
+}
+func (m *SoftwareVersionInformation) XXX_DiscardUnknown() {
+ xxx_messageInfo_SoftwareVersionInformation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SoftwareVersionInformation proto.InternalMessageInfo
+
+func (m *SoftwareVersionInformation) GetActiveVersions() []*ImageVersion {
+ if m != nil {
+ return m.ActiveVersions
+ }
+ return nil
+}
+
+func (m *SoftwareVersionInformation) GetStandbyVersions() []*ImageVersion {
+ if m != nil {
+ return m.StandbyVersions
+ }
+ return nil
+}
+
+type GetSoftwareVersionInformationResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason GetSoftwareVersionInformationResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetSoftwareVersionInformationResponse_Reason" json:"reason,omitempty"`
+ Info *SoftwareVersionInformation `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"`
+ ReasonDetail string `protobuf:"bytes,4,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetSoftwareVersionInformationResponse) Reset() { *m = GetSoftwareVersionInformationResponse{} }
+func (m *GetSoftwareVersionInformationResponse) String() string { return proto.CompactTextString(m) }
+func (*GetSoftwareVersionInformationResponse) ProtoMessage() {}
+func (*GetSoftwareVersionInformationResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{1}
+}
+
+func (m *GetSoftwareVersionInformationResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetSoftwareVersionInformationResponse.Unmarshal(m, b)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetSoftwareVersionInformationResponse.Marshal(b, m, deterministic)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetSoftwareVersionInformationResponse.Merge(m, src)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_Size() int {
+ return xxx_messageInfo_GetSoftwareVersionInformationResponse.Size(m)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetSoftwareVersionInformationResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetSoftwareVersionInformationResponse proto.InternalMessageInfo
+
+func (m *GetSoftwareVersionInformationResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *GetSoftwareVersionInformationResponse) GetReason() GetSoftwareVersionInformationResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return GetSoftwareVersionInformationResponse_UNDEFINED_REASON
+}
+
+func (m *GetSoftwareVersionInformationResponse) GetInfo() *SoftwareVersionInformation {
+ if m != nil {
+ return m.Info
+ }
+ return nil
+}
+
+func (m *GetSoftwareVersionInformationResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type DownloadImageRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ ImageInfo *ImageInformation `protobuf:"bytes,2,opt,name=image_info,json=imageInfo,proto3" json:"image_info,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *DownloadImageRequest) Reset() { *m = DownloadImageRequest{} }
+func (m *DownloadImageRequest) String() string { return proto.CompactTextString(m) }
+func (*DownloadImageRequest) ProtoMessage() {}
+func (*DownloadImageRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{2}
+}
+
+func (m *DownloadImageRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_DownloadImageRequest.Unmarshal(m, b)
+}
+func (m *DownloadImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_DownloadImageRequest.Marshal(b, m, deterministic)
+}
+func (m *DownloadImageRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_DownloadImageRequest.Merge(m, src)
+}
+func (m *DownloadImageRequest) XXX_Size() int {
+ return xxx_messageInfo_DownloadImageRequest.Size(m)
+}
+func (m *DownloadImageRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_DownloadImageRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_DownloadImageRequest proto.InternalMessageInfo
+
+func (m *DownloadImageRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *DownloadImageRequest) GetImageInfo() *ImageInformation {
+ if m != nil {
+ return m.ImageInfo
+ }
+ return nil
+}
+
+type ConfigRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ // Location of the configuration file, authentication (user/pass) if any should be in the url string
+ // The config_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/OLT-configs/config-v1.2.3.xml
+ ConfigUrl string `protobuf:"bytes,2,opt,name=config_url,json=configUrl,proto3" json:"config_url,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigRequest) Reset() { *m = ConfigRequest{} }
+func (m *ConfigRequest) String() string { return proto.CompactTextString(m) }
+func (*ConfigRequest) ProtoMessage() {}
+func (*ConfigRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{3}
+}
+
+func (m *ConfigRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigRequest.Unmarshal(m, b)
+}
+func (m *ConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigRequest.Marshal(b, m, deterministic)
+}
+func (m *ConfigRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigRequest.Merge(m, src)
+}
+func (m *ConfigRequest) XXX_Size() int {
+ return xxx_messageInfo_ConfigRequest.Size(m)
+}
+func (m *ConfigRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigRequest proto.InternalMessageInfo
+
+func (m *ConfigRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+func (m *ConfigRequest) GetConfigUrl() string {
+ if m != nil {
+ return m.ConfigUrl
+ }
+ return ""
+}
+
+type ConfigResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason ConfigResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.ConfigResponse_Reason" json:"reason,omitempty"`
+ ReasonDetail string `protobuf:"bytes,3,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ConfigResponse) Reset() { *m = ConfigResponse{} }
+func (m *ConfigResponse) String() string { return proto.CompactTextString(m) }
+func (*ConfigResponse) ProtoMessage() {}
+func (*ConfigResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{4}
+}
+
+func (m *ConfigResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ConfigResponse.Unmarshal(m, b)
+}
+func (m *ConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ConfigResponse.Marshal(b, m, deterministic)
+}
+func (m *ConfigResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ConfigResponse.Merge(m, src)
+}
+func (m *ConfigResponse) XXX_Size() int {
+ return xxx_messageInfo_ConfigResponse.Size(m)
+}
+func (m *ConfigResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ConfigResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ConfigResponse proto.InternalMessageInfo
+
+func (m *ConfigResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *ConfigResponse) GetReason() ConfigResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return ConfigResponse_UNDEFINED_REASON
+}
+
+func (m *ConfigResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+type StartupConfigInfoRequest struct {
+ DeviceUuid *Uuid `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StartupConfigInfoRequest) Reset() { *m = StartupConfigInfoRequest{} }
+func (m *StartupConfigInfoRequest) String() string { return proto.CompactTextString(m) }
+func (*StartupConfigInfoRequest) ProtoMessage() {}
+func (*StartupConfigInfoRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{5}
+}
+
+func (m *StartupConfigInfoRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StartupConfigInfoRequest.Unmarshal(m, b)
+}
+func (m *StartupConfigInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StartupConfigInfoRequest.Marshal(b, m, deterministic)
+}
+func (m *StartupConfigInfoRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StartupConfigInfoRequest.Merge(m, src)
+}
+func (m *StartupConfigInfoRequest) XXX_Size() int {
+ return xxx_messageInfo_StartupConfigInfoRequest.Size(m)
+}
+func (m *StartupConfigInfoRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_StartupConfigInfoRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StartupConfigInfoRequest proto.InternalMessageInfo
+
+func (m *StartupConfigInfoRequest) GetDeviceUuid() *Uuid {
+ if m != nil {
+ return m.DeviceUuid
+ }
+ return nil
+}
+
+type StartupConfigInfoResponse struct {
+ Status Status `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+ Reason StartupConfigInfoResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.StartupConfigInfoResponse_Reason" json:"reason,omitempty"`
+ // The config_url is an optional attribute, the device manager could return the location from
+ // where the config was downloaded. Also it would not be present/empty for a fresh device into which the
+ // startup config would have been installed in the factory.
+ ConfigUrl string `protobuf:"bytes,3,opt,name=config_url,json=configUrl,proto3" json:"config_url,omitempty"`
+ // The version of the startup configuration. It is recommended to use semVer, but the DM implementations
+ // and operators could choose any other format as well.
+ Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
+ ReasonDetail string `protobuf:"bytes,5,opt,name=reason_detail,json=reasonDetail,proto3" json:"reason_detail,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *StartupConfigInfoResponse) Reset() { *m = StartupConfigInfoResponse{} }
+func (m *StartupConfigInfoResponse) String() string { return proto.CompactTextString(m) }
+func (*StartupConfigInfoResponse) ProtoMessage() {}
+func (*StartupConfigInfoResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_000929e4bec891d7, []int{6}
+}
+
+func (m *StartupConfigInfoResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_StartupConfigInfoResponse.Unmarshal(m, b)
+}
+func (m *StartupConfigInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_StartupConfigInfoResponse.Marshal(b, m, deterministic)
+}
+func (m *StartupConfigInfoResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_StartupConfigInfoResponse.Merge(m, src)
+}
+func (m *StartupConfigInfoResponse) XXX_Size() int {
+ return xxx_messageInfo_StartupConfigInfoResponse.Size(m)
+}
+func (m *StartupConfigInfoResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_StartupConfigInfoResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_StartupConfigInfoResponse proto.InternalMessageInfo
+
+func (m *StartupConfigInfoResponse) GetStatus() Status {
+ if m != nil {
+ return m.Status
+ }
+ return Status_UNDEFINED_STATUS
+}
+
+func (m *StartupConfigInfoResponse) GetReason() StartupConfigInfoResponse_Reason {
+ if m != nil {
+ return m.Reason
+ }
+ return StartupConfigInfoResponse_UNDEFINED_REASON
+}
+
+func (m *StartupConfigInfoResponse) GetConfigUrl() string {
+ if m != nil {
+ return m.ConfigUrl
+ }
+ return ""
+}
+
+func (m *StartupConfigInfoResponse) GetVersion() string {
+ if m != nil {
+ return m.Version
+ }
+ return ""
+}
+
+func (m *StartupConfigInfoResponse) GetReasonDetail() string {
+ if m != nil {
+ return m.ReasonDetail
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterEnum("dmi.GetSoftwareVersionInformationResponse_Reason", GetSoftwareVersionInformationResponse_Reason_name, GetSoftwareVersionInformationResponse_Reason_value)
+ proto.RegisterEnum("dmi.ConfigResponse_Reason", ConfigResponse_Reason_name, ConfigResponse_Reason_value)
+ proto.RegisterEnum("dmi.StartupConfigInfoResponse_Reason", StartupConfigInfoResponse_Reason_name, StartupConfigInfoResponse_Reason_value)
+ proto.RegisterType((*SoftwareVersionInformation)(nil), "dmi.SoftwareVersionInformation")
+ proto.RegisterType((*GetSoftwareVersionInformationResponse)(nil), "dmi.GetSoftwareVersionInformationResponse")
+ proto.RegisterType((*DownloadImageRequest)(nil), "dmi.DownloadImageRequest")
+ proto.RegisterType((*ConfigRequest)(nil), "dmi.ConfigRequest")
+ proto.RegisterType((*ConfigResponse)(nil), "dmi.ConfigResponse")
+ proto.RegisterType((*StartupConfigInfoRequest)(nil), "dmi.StartupConfigInfoRequest")
+ proto.RegisterType((*StartupConfigInfoResponse)(nil), "dmi.StartupConfigInfoResponse")
+}
+
+func init() { proto.RegisterFile("dmi/sw_management_service.proto", fileDescriptor_000929e4bec891d7) }
+
+var fileDescriptor_000929e4bec891d7 = []byte{
+ // 804 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xed, 0x6e, 0xe3, 0x44,
+ 0x14, 0xc5, 0x71, 0x37, 0x28, 0x37, 0xdb, 0xd6, 0x3b, 0x74, 0x51, 0x1a, 0x54, 0x5a, 0xbc, 0x5a,
+ 0xa9, 0x5a, 0x69, 0x93, 0x25, 0xdd, 0x3f, 0xb0, 0x80, 0xe4, 0x8d, 0xdd, 0xd4, 0xa2, 0x38, 0xcb,
+ 0xb8, 0x29, 0x62, 0x85, 0x18, 0x4d, 0xe3, 0x49, 0x76, 0xa4, 0xda, 0x13, 0xec, 0x71, 0x0a, 0x2f,
+ 0xc2, 0x73, 0xf0, 0x02, 0xfc, 0xe0, 0x05, 0x90, 0x78, 0x23, 0xe4, 0x19, 0x87, 0x90, 0x2f, 0xb4,
+ 0xad, 0xd0, 0xfe, 0xb3, 0xef, 0xdc, 0x73, 0x66, 0xe6, 0x9e, 0x7b, 0xcf, 0xc0, 0x61, 0x14, 0xf3,
+ 0x76, 0x76, 0x43, 0x62, 0x9a, 0xd0, 0x31, 0x8b, 0x59, 0x22, 0x49, 0xc6, 0xd2, 0x29, 0x1f, 0xb2,
+ 0xd6, 0x24, 0x15, 0x52, 0x20, 0x33, 0x8a, 0x79, 0xf3, 0x41, 0x91, 0x35, 0x14, 0x71, 0x2c, 0x92,
+ 0x4c, 0xc7, 0x9b, 0xf7, 0x8b, 0xd0, 0x9b, 0x9b, 0xf2, 0x0f, 0x95, 0x34, 0x3c, 0xa6, 0xe3, 0x12,
+ 0x69, 0xff, 0x6a, 0x40, 0x33, 0x14, 0x23, 0x79, 0x43, 0x53, 0x76, 0xc9, 0xd2, 0x8c, 0x8b, 0xc4,
+ 0x4f, 0x46, 0x22, 0x8d, 0xa9, 0xe4, 0x22, 0x41, 0x9f, 0xc3, 0x2e, 0x1d, 0x4a, 0x3e, 0x65, 0x64,
+ 0xaa, 0x17, 0xb3, 0x86, 0x71, 0x64, 0x1e, 0xd7, 0x3b, 0x0f, 0x5a, 0x51, 0xcc, 0x5b, 0x7e, 0xc1,
+ 0x54, 0xc2, 0xf0, 0x8e, 0xce, 0x2c, 0x7f, 0x33, 0xf4, 0x05, 0x58, 0x99, 0xa4, 0x49, 0x74, 0xf5,
+ 0xcb, 0x1c, 0x5c, 0xd9, 0x04, 0xde, 0x2d, 0x53, 0x67, 0x68, 0xfb, 0xaf, 0x0a, 0x3c, 0xee, 0x31,
+ 0xb9, 0xf9, 0x6c, 0x98, 0x65, 0x13, 0x91, 0x64, 0x0c, 0x3d, 0x82, 0x6a, 0x26, 0xa9, 0xcc, 0x8b,
+ 0xa3, 0x19, 0xc7, 0x3b, 0x9d, 0xba, 0x62, 0x0f, 0x55, 0x08, 0x97, 0x4b, 0xc8, 0x87, 0x6a, 0xca,
+ 0x68, 0x26, 0x92, 0x46, 0x45, 0x25, 0x7d, 0xaa, 0x92, 0xde, 0x6a, 0x83, 0x16, 0x56, 0x40, 0x5c,
+ 0x12, 0xa0, 0x13, 0xd8, 0xe2, 0xc9, 0x48, 0x34, 0xcc, 0x23, 0xe3, 0xb8, 0xde, 0x39, 0xd4, 0xbb,
+ 0x6d, 0x66, 0x51, 0xc9, 0xe8, 0x11, 0x6c, 0x6b, 0x38, 0x89, 0x98, 0xa4, 0xfc, 0xba, 0xb1, 0x75,
+ 0x64, 0x1c, 0xd7, 0xf0, 0x7d, 0x1d, 0x74, 0x55, 0xcc, 0xfe, 0x11, 0xaa, 0x7a, 0x2f, 0xb4, 0x07,
+ 0xd6, 0x20, 0x70, 0xbd, 0x53, 0x3f, 0xf0, 0x5c, 0x82, 0x3d, 0x27, 0xec, 0x07, 0xd6, 0x7b, 0x08,
+ 0xc1, 0xce, 0x20, 0xf8, 0x3a, 0xe8, 0x7f, 0x17, 0x10, 0xd7, 0xbb, 0xf4, 0xbb, 0x9e, 0x65, 0x14,
+ 0x31, 0x3f, 0xb8, 0xf0, 0x70, 0xe0, 0x9c, 0x13, 0x0f, 0xe3, 0x3e, 0xb6, 0x2a, 0xe8, 0x43, 0x40,
+ 0x7a, 0x9d, 0x0c, 0x02, 0xec, 0x39, 0xdd, 0x33, 0xe7, 0xe5, 0xb9, 0x67, 0x99, 0xf6, 0xcf, 0xb0,
+ 0xe7, 0x8a, 0x9b, 0xe4, 0x5a, 0xd0, 0x48, 0x15, 0x1f, 0xb3, 0x9f, 0x72, 0x96, 0x49, 0xf4, 0x04,
+ 0xea, 0x11, 0x2b, 0xda, 0x89, 0xe4, 0x39, 0x8f, 0x54, 0x19, 0xeb, 0x9d, 0x9a, 0xba, 0xd8, 0x20,
+ 0xe7, 0x11, 0x06, 0xbd, 0x5a, 0x7c, 0xa3, 0xe7, 0x00, 0xaa, 0x7f, 0x88, 0xaa, 0x41, 0x45, 0xa5,
+ 0x3e, 0x9c, 0xeb, 0xf9, 0xef, 0x9b, 0xd7, 0xf8, 0x2c, 0x62, 0xbf, 0x86, 0xed, 0xae, 0x48, 0x46,
+ 0x7c, 0x7c, 0x97, 0x2d, 0x0f, 0x00, 0x86, 0x0a, 0x4c, 0xf2, 0xf4, 0x5a, 0x6d, 0x59, 0xc3, 0x35,
+ 0x1d, 0x19, 0xa4, 0xd7, 0xf6, 0x1f, 0x15, 0xd8, 0x99, 0x91, 0xdf, 0xa6, 0x25, 0x3a, 0x4b, 0x2d,
+ 0xd1, 0x54, 0x49, 0x8b, 0x4c, 0xcb, 0xda, 0xaf, 0xc8, 0x68, 0xae, 0x91, 0xf1, 0x37, 0xe3, 0x7f,
+ 0xd2, 0x71, 0x1f, 0x1e, 0xaa, 0x4f, 0x72, 0xea, 0x5d, 0x74, 0xcf, 0xfc, 0xa0, 0x47, 0xba, 0xfd,
+ 0xe0, 0xd4, 0xef, 0x59, 0xa6, 0x4e, 0xbf, 0x74, 0xce, 0x7d, 0x77, 0x16, 0xdb, 0x42, 0x9f, 0xc0,
+ 0x41, 0xff, 0x95, 0x87, 0x9d, 0x0b, 0xbf, 0x1f, 0x10, 0xe7, 0x1c, 0x7b, 0x8e, 0xfb, 0x3d, 0xf1,
+ 0x03, 0xf2, 0x0a, 0xf7, 0x7b, 0xd8, 0x0b, 0x43, 0xeb, 0xde, 0x86, 0xce, 0xa8, 0xda, 0xa7, 0xd0,
+ 0x08, 0x25, 0x4d, 0x65, 0x3e, 0xd1, 0xf7, 0x2f, 0x44, 0xbb, 0x83, 0x54, 0xf6, 0xef, 0x15, 0xd8,
+ 0x5f, 0x43, 0x74, 0x1b, 0x59, 0xbe, 0x5c, 0x92, 0xe5, 0xf1, 0x2c, 0x69, 0x3d, 0xe9, 0xb2, 0x42,
+ 0x8b, 0xcd, 0x62, 0x2e, 0x35, 0x0b, 0x6a, 0xc0, 0xfb, 0xa5, 0x19, 0x95, 0x13, 0x38, 0xfb, 0x5d,
+ 0x95, 0xf6, 0xde, 0xbb, 0x9f, 0xd0, 0xce, 0x9f, 0x26, 0x1c, 0x06, 0xb4, 0xb0, 0xd1, 0x99, 0xa3,
+ 0x7c, 0xf3, 0x8f, 0xe7, 0x87, 0xda, 0xf2, 0xd1, 0xb7, 0x80, 0x56, 0x7d, 0x0b, 0xed, 0xaa, 0x32,
+ 0x9d, 0xd1, 0x34, 0x2a, 0xa2, 0xbe, 0xdb, 0x7c, 0xf2, 0xf6, 0x0e, 0x87, 0xbe, 0x82, 0xed, 0x05,
+ 0x63, 0x40, 0xfb, 0x0a, 0xbc, 0xce, 0x2c, 0x9a, 0xd6, 0x7c, 0xd8, 0xb5, 0x72, 0xcf, 0x0c, 0xf4,
+ 0x1c, 0xb6, 0x9d, 0xc2, 0xfc, 0xa9, 0x64, 0x1a, 0xbf, 0x72, 0x9a, 0x75, 0xa8, 0x17, 0xb0, 0x87,
+ 0xd9, 0x94, 0xa5, 0xf2, 0x42, 0x84, 0xda, 0xfd, 0x6f, 0x01, 0xee, 0x41, 0x73, 0x30, 0x89, 0xa8,
+ 0x64, 0x0b, 0x9d, 0x91, 0xa7, 0xfa, 0xdd, 0x42, 0x0b, 0xb3, 0xac, 0x0f, 0xfe, 0xc1, 0x9a, 0xf9,
+ 0x7e, 0x66, 0xa0, 0x1f, 0xe0, 0xa3, 0xa2, 0x48, 0x6b, 0x58, 0x8a, 0x4a, 0xa1, 0x83, 0x4d, 0xed,
+ 0xa7, 0x49, 0x3f, 0xfe, 0xef, 0xee, 0x7c, 0xf9, 0xe2, 0xf5, 0x67, 0x63, 0x2e, 0xdf, 0xe4, 0x57,
+ 0xad, 0xa1, 0x88, 0xdb, 0x62, 0xc2, 0x92, 0xa1, 0x48, 0xa3, 0xb6, 0x1e, 0x99, 0xa7, 0xf3, 0x07,
+ 0xfd, 0x29, 0x4f, 0x24, 0x4b, 0x47, 0x74, 0xc8, 0xda, 0xd3, 0x93, 0xf6, 0x58, 0xb4, 0xa3, 0x98,
+ 0x5f, 0x55, 0xd5, 0x1b, 0x7d, 0xf2, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdd, 0xa9, 0x07, 0xea,
+ 0x00, 0x08, 0x00, 0x00,
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// NativeSoftwareManagementServiceClient is the client API for NativeSoftwareManagementService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
+type NativeSoftwareManagementServiceClient interface {
+ // Get the software version information of the Active and Standby images
+ GetSoftwareVersion(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*GetSoftwareVersionInformationResponse, error)
+ // Downloads and installs the image in the standby partition, returns the status/progress of the Install
+ DownloadImage(ctx context.Context, in *DownloadImageRequest, opts ...grpc.CallOption) (NativeSoftwareManagementService_DownloadImageClient, error)
+ // Activates and runs the OLT with the image in the standby partition. If things are fine this image will
+ // henceforth be marked as the Active Partition. The old working image would remain on the Standby partition.
+ // Any possibly required (sub-)steps like "commit" are left to the "Device Manager"
+ ActivateImage(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (NativeSoftwareManagementService_ActivateImageClient, error)
+ // Marks the image in the Standby as Active and reboots the device, so that it boots from that image which was in the standby.
+ // This API is to be used if operator wants to go back to the previous software
+ RevertToStandbyImage(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (NativeSoftwareManagementService_RevertToStandbyImageClient, error)
+ // This API can be used to let the devices pickup their properitary configuration which they need at startup.
+ UpdateStartupConfiguration(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (NativeSoftwareManagementService_UpdateStartupConfigurationClient, error)
+ // This API can be used to retrieve information about the current startup configuration that a device is using
+ GetStartupConfigurationInfo(ctx context.Context, in *StartupConfigInfoRequest, opts ...grpc.CallOption) (*StartupConfigInfoResponse, error)
+}
+
+type nativeSoftwareManagementServiceClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewNativeSoftwareManagementServiceClient(cc *grpc.ClientConn) NativeSoftwareManagementServiceClient {
+ return &nativeSoftwareManagementServiceClient{cc}
+}
+
+func (c *nativeSoftwareManagementServiceClient) GetSoftwareVersion(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*GetSoftwareVersionInformationResponse, error) {
+ out := new(GetSoftwareVersionInformationResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeSoftwareManagementService/GetSoftwareVersion", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *nativeSoftwareManagementServiceClient) DownloadImage(ctx context.Context, in *DownloadImageRequest, opts ...grpc.CallOption) (NativeSoftwareManagementService_DownloadImageClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_NativeSoftwareManagementService_serviceDesc.Streams[0], "/dmi.NativeSoftwareManagementService/DownloadImage", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &nativeSoftwareManagementServiceDownloadImageClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type NativeSoftwareManagementService_DownloadImageClient interface {
+ Recv() (*ImageStatus, error)
+ grpc.ClientStream
+}
+
+type nativeSoftwareManagementServiceDownloadImageClient struct {
+ grpc.ClientStream
+}
+
+func (x *nativeSoftwareManagementServiceDownloadImageClient) Recv() (*ImageStatus, error) {
+ m := new(ImageStatus)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *nativeSoftwareManagementServiceClient) ActivateImage(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (NativeSoftwareManagementService_ActivateImageClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_NativeSoftwareManagementService_serviceDesc.Streams[1], "/dmi.NativeSoftwareManagementService/ActivateImage", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &nativeSoftwareManagementServiceActivateImageClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type NativeSoftwareManagementService_ActivateImageClient interface {
+ Recv() (*ImageStatus, error)
+ grpc.ClientStream
+}
+
+type nativeSoftwareManagementServiceActivateImageClient struct {
+ grpc.ClientStream
+}
+
+func (x *nativeSoftwareManagementServiceActivateImageClient) Recv() (*ImageStatus, error) {
+ m := new(ImageStatus)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *nativeSoftwareManagementServiceClient) RevertToStandbyImage(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (NativeSoftwareManagementService_RevertToStandbyImageClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_NativeSoftwareManagementService_serviceDesc.Streams[2], "/dmi.NativeSoftwareManagementService/RevertToStandbyImage", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &nativeSoftwareManagementServiceRevertToStandbyImageClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type NativeSoftwareManagementService_RevertToStandbyImageClient interface {
+ Recv() (*ImageStatus, error)
+ grpc.ClientStream
+}
+
+type nativeSoftwareManagementServiceRevertToStandbyImageClient struct {
+ grpc.ClientStream
+}
+
+func (x *nativeSoftwareManagementServiceRevertToStandbyImageClient) Recv() (*ImageStatus, error) {
+ m := new(ImageStatus)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *nativeSoftwareManagementServiceClient) UpdateStartupConfiguration(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (NativeSoftwareManagementService_UpdateStartupConfigurationClient, error) {
+ stream, err := c.cc.NewStream(ctx, &_NativeSoftwareManagementService_serviceDesc.Streams[3], "/dmi.NativeSoftwareManagementService/UpdateStartupConfiguration", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &nativeSoftwareManagementServiceUpdateStartupConfigurationClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type NativeSoftwareManagementService_UpdateStartupConfigurationClient interface {
+ Recv() (*ConfigResponse, error)
+ grpc.ClientStream
+}
+
+type nativeSoftwareManagementServiceUpdateStartupConfigurationClient struct {
+ grpc.ClientStream
+}
+
+func (x *nativeSoftwareManagementServiceUpdateStartupConfigurationClient) Recv() (*ConfigResponse, error) {
+ m := new(ConfigResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *nativeSoftwareManagementServiceClient) GetStartupConfigurationInfo(ctx context.Context, in *StartupConfigInfoRequest, opts ...grpc.CallOption) (*StartupConfigInfoResponse, error) {
+ out := new(StartupConfigInfoResponse)
+ err := c.cc.Invoke(ctx, "/dmi.NativeSoftwareManagementService/GetStartupConfigurationInfo", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// NativeSoftwareManagementServiceServer is the server API for NativeSoftwareManagementService service.
+type NativeSoftwareManagementServiceServer interface {
+ // Get the software version information of the Active and Standby images
+ GetSoftwareVersion(context.Context, *HardwareID) (*GetSoftwareVersionInformationResponse, error)
+ // Downloads and installs the image in the standby partition, returns the status/progress of the Install
+ DownloadImage(*DownloadImageRequest, NativeSoftwareManagementService_DownloadImageServer) error
+ // Activates and runs the OLT with the image in the standby partition. If things are fine this image will
+ // henceforth be marked as the Active Partition. The old working image would remain on the Standby partition.
+ // Any possibly required (sub-)steps like "commit" are left to the "Device Manager"
+ ActivateImage(*HardwareID, NativeSoftwareManagementService_ActivateImageServer) error
+ // Marks the image in the Standby as Active and reboots the device, so that it boots from that image which was in the standby.
+ // This API is to be used if operator wants to go back to the previous software
+ RevertToStandbyImage(*HardwareID, NativeSoftwareManagementService_RevertToStandbyImageServer) error
+ // This API can be used to let the devices pickup their properitary configuration which they need at startup.
+ UpdateStartupConfiguration(*ConfigRequest, NativeSoftwareManagementService_UpdateStartupConfigurationServer) error
+ // This API can be used to retrieve information about the current startup configuration that a device is using
+ GetStartupConfigurationInfo(context.Context, *StartupConfigInfoRequest) (*StartupConfigInfoResponse, error)
+}
+
+func RegisterNativeSoftwareManagementServiceServer(s *grpc.Server, srv NativeSoftwareManagementServiceServer) {
+ s.RegisterService(&_NativeSoftwareManagementService_serviceDesc, srv)
+}
+
+func _NativeSoftwareManagementService_GetSoftwareVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(HardwareID)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeSoftwareManagementServiceServer).GetSoftwareVersion(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeSoftwareManagementService/GetSoftwareVersion",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeSoftwareManagementServiceServer).GetSoftwareVersion(ctx, req.(*HardwareID))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _NativeSoftwareManagementService_DownloadImage_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(DownloadImageRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(NativeSoftwareManagementServiceServer).DownloadImage(m, &nativeSoftwareManagementServiceDownloadImageServer{stream})
+}
+
+type NativeSoftwareManagementService_DownloadImageServer interface {
+ Send(*ImageStatus) error
+ grpc.ServerStream
+}
+
+type nativeSoftwareManagementServiceDownloadImageServer struct {
+ grpc.ServerStream
+}
+
+func (x *nativeSoftwareManagementServiceDownloadImageServer) Send(m *ImageStatus) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _NativeSoftwareManagementService_ActivateImage_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(HardwareID)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(NativeSoftwareManagementServiceServer).ActivateImage(m, &nativeSoftwareManagementServiceActivateImageServer{stream})
+}
+
+type NativeSoftwareManagementService_ActivateImageServer interface {
+ Send(*ImageStatus) error
+ grpc.ServerStream
+}
+
+type nativeSoftwareManagementServiceActivateImageServer struct {
+ grpc.ServerStream
+}
+
+func (x *nativeSoftwareManagementServiceActivateImageServer) Send(m *ImageStatus) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _NativeSoftwareManagementService_RevertToStandbyImage_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(HardwareID)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(NativeSoftwareManagementServiceServer).RevertToStandbyImage(m, &nativeSoftwareManagementServiceRevertToStandbyImageServer{stream})
+}
+
+type NativeSoftwareManagementService_RevertToStandbyImageServer interface {
+ Send(*ImageStatus) error
+ grpc.ServerStream
+}
+
+type nativeSoftwareManagementServiceRevertToStandbyImageServer struct {
+ grpc.ServerStream
+}
+
+func (x *nativeSoftwareManagementServiceRevertToStandbyImageServer) Send(m *ImageStatus) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _NativeSoftwareManagementService_UpdateStartupConfiguration_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(ConfigRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(NativeSoftwareManagementServiceServer).UpdateStartupConfiguration(m, &nativeSoftwareManagementServiceUpdateStartupConfigurationServer{stream})
+}
+
+type NativeSoftwareManagementService_UpdateStartupConfigurationServer interface {
+ Send(*ConfigResponse) error
+ grpc.ServerStream
+}
+
+type nativeSoftwareManagementServiceUpdateStartupConfigurationServer struct {
+ grpc.ServerStream
+}
+
+func (x *nativeSoftwareManagementServiceUpdateStartupConfigurationServer) Send(m *ConfigResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _NativeSoftwareManagementService_GetStartupConfigurationInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StartupConfigInfoRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NativeSoftwareManagementServiceServer).GetStartupConfigurationInfo(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/dmi.NativeSoftwareManagementService/GetStartupConfigurationInfo",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NativeSoftwareManagementServiceServer).GetStartupConfigurationInfo(ctx, req.(*StartupConfigInfoRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _NativeSoftwareManagementService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "dmi.NativeSoftwareManagementService",
+ HandlerType: (*NativeSoftwareManagementServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "GetSoftwareVersion",
+ Handler: _NativeSoftwareManagementService_GetSoftwareVersion_Handler,
+ },
+ {
+ MethodName: "GetStartupConfigurationInfo",
+ Handler: _NativeSoftwareManagementService_GetStartupConfigurationInfo_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "DownloadImage",
+ Handler: _NativeSoftwareManagementService_DownloadImage_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "ActivateImage",
+ Handler: _NativeSoftwareManagementService_ActivateImage_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "RevertToStandbyImage",
+ Handler: _NativeSoftwareManagementService_RevertToStandbyImage_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "UpdateStartupConfiguration",
+ Handler: _NativeSoftwareManagementService_UpdateStartupConfiguration_Handler,
+ ServerStreams: true,
+ },
+ },
+ Metadata: "dmi/sw_management_service.proto",
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/backend.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/backend.go
new file mode 100644
index 0000000..bf30a48
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/backend.go
@@ -0,0 +1,272 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package db
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "sync"
+ "time"
+
+ "github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore"
+ "github.com/opencord/voltha-lib-go/v4/pkg/log"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
+)
+
+const (
+ // Default Minimal Interval for posting alive state of backend kvstore on Liveness Channel
+ DefaultLivenessChannelInterval = time.Second * 30
+)
+
+// Backend structure holds details for accessing the kv store
+type Backend struct {
+ Client kvstore.Client
+ StoreType string
+ Timeout time.Duration
+ Address string
+ PathPrefix string
+ alive bool // Is this backend connection alive?
+ livenessMutex sync.Mutex
+ liveness chan bool // channel to post alive state
+ LivenessChannelInterval time.Duration // regularly push alive state beyond this interval
+ lastLivenessTime time.Time // Instant of last alive state push
+}
+
+// NewBackend creates a new instance of a Backend structure
+func NewBackend(ctx context.Context, storeType string, address string, timeout time.Duration, pathPrefix string) *Backend {
+ var err error
+
+ b := &Backend{
+ StoreType: storeType,
+ Address: address,
+ Timeout: timeout,
+ LivenessChannelInterval: DefaultLivenessChannelInterval,
+ PathPrefix: pathPrefix,
+ alive: false, // connection considered down at start
+ }
+
+ if b.Client, err = b.newClient(ctx, address, timeout); err != nil {
+ logger.Errorw(ctx, "failed-to-create-kv-client",
+ log.Fields{
+ "type": storeType, "address": address,
+ "timeout": timeout, "prefix": pathPrefix,
+ "error": err.Error(),
+ })
+ }
+
+ return b
+}
+
+func (b *Backend) newClient(ctx context.Context, address string, timeout time.Duration) (kvstore.Client, error) {
+ switch b.StoreType {
+ case "etcd":
+ return kvstore.NewEtcdClient(ctx, address, timeout, log.WarnLevel)
+ }
+ return nil, errors.New("unsupported-kv-store")
+}
+
+func (b *Backend) makePath(ctx context.Context, key string) string {
+ path := fmt.Sprintf("%s/%s", b.PathPrefix, key)
+ return path
+}
+
+func (b *Backend) updateLiveness(ctx context.Context, alive bool) {
+ // Periodically push stream of liveness data to the channel,
+ // so that in a live state, the core does not timeout and
+ // send a forced liveness message. Push alive state if the
+ // last push to channel was beyond livenessChannelInterval
+ b.livenessMutex.Lock()
+ defer b.livenessMutex.Unlock()
+ if b.liveness != nil {
+ if b.alive != alive {
+ logger.Debug(ctx, "update-liveness-channel-reason-change")
+ b.liveness <- alive
+ b.lastLivenessTime = time.Now()
+ } else if time.Since(b.lastLivenessTime) > b.LivenessChannelInterval {
+ logger.Debug(ctx, "update-liveness-channel-reason-interval")
+ b.liveness <- alive
+ b.lastLivenessTime = time.Now()
+ }
+ }
+
+ // Emit log message only for alive state change
+ if b.alive != alive {
+ logger.Debugw(ctx, "change-kvstore-alive-status", log.Fields{"alive": alive})
+ b.alive = alive
+ }
+}
+
+// Perform a dummy Key Lookup on kvstore to test Connection Liveness and
+// post on Liveness channel
+func (b *Backend) PerformLivenessCheck(ctx context.Context) bool {
+ alive := b.Client.IsConnectionUp(ctx)
+ logger.Debugw(ctx, "kvstore-liveness-check-result", log.Fields{"alive": alive})
+
+ b.updateLiveness(ctx, alive)
+ return alive
+}
+
+// Enable the liveness monitor channel. This channel will report
+// a "true" or "false" on every kvstore operation which indicates whether
+// or not the connection is still Live. This channel is then picked up
+// by the service (i.e. rw_core / ro_core) to update readiness status
+// and/or take other actions.
+func (b *Backend) EnableLivenessChannel(ctx context.Context) chan bool {
+ logger.Debug(ctx, "enable-kvstore-liveness-channel")
+ b.livenessMutex.Lock()
+ defer b.livenessMutex.Unlock()
+ if b.liveness == nil {
+ b.liveness = make(chan bool, 10)
+ b.liveness <- b.alive
+ b.lastLivenessTime = time.Now()
+ }
+
+ return b.liveness
+}
+
+// Extract Alive status of Kvstore based on type of error
+func (b *Backend) isErrorIndicatingAliveKvstore(ctx context.Context, err error) bool {
+ // Alive unless observed an error indicating so
+ alive := true
+
+ if err != nil {
+
+ // timeout indicates kvstore not reachable/alive
+ if err == context.DeadlineExceeded {
+ alive = false
+ }
+
+ // Need to analyze client-specific errors based on backend type
+ if b.StoreType == "etcd" {
+
+ // For etcd backend, consider not-alive only for errors indicating
+ // timedout request or unavailable/corrupted cluster. For all remaining
+ // error codes listed in https://godoc.org/google.golang.org/grpc/codes#Code,
+ // we would not infer a not-alive backend because such a error may also
+ // occur due to bad client requests or sequence of operations
+ switch status.Code(err) {
+ case codes.DeadlineExceeded:
+ fallthrough
+ case codes.Unavailable:
+ fallthrough
+ case codes.DataLoss:
+ alive = false
+ }
+ }
+ }
+
+ return alive
+}
+
+// List retrieves one or more items that match the specified key
+func (b *Backend) List(ctx context.Context, key string) (map[string]*kvstore.KVPair, error) {
+ span, ctx := log.CreateChildSpan(ctx, "etcd-list")
+ defer span.Finish()
+
+ formattedPath := b.makePath(ctx, key)
+ logger.Debugw(ctx, "listing-key", log.Fields{"key": key, "path": formattedPath})
+
+ pair, err := b.Client.List(ctx, formattedPath)
+
+ b.updateLiveness(ctx, b.isErrorIndicatingAliveKvstore(ctx, err))
+
+ return pair, err
+}
+
+// Get retrieves an item that matches the specified key
+func (b *Backend) Get(ctx context.Context, key string) (*kvstore.KVPair, error) {
+ span, ctx := log.CreateChildSpan(ctx, "etcd-get")
+ defer span.Finish()
+
+ formattedPath := b.makePath(ctx, key)
+ logger.Debugw(ctx, "getting-key", log.Fields{"key": key, "path": formattedPath})
+
+ pair, err := b.Client.Get(ctx, formattedPath)
+
+ b.updateLiveness(ctx, b.isErrorIndicatingAliveKvstore(ctx, err))
+
+ return pair, err
+}
+
+// Put stores an item value under the specifed key
+func (b *Backend) Put(ctx context.Context, key string, value interface{}) error {
+ span, ctx := log.CreateChildSpan(ctx, "etcd-put")
+ defer span.Finish()
+
+ formattedPath := b.makePath(ctx, key)
+ logger.Debugw(ctx, "putting-key", log.Fields{"key": key, "path": formattedPath})
+
+ err := b.Client.Put(ctx, formattedPath, value)
+
+ b.updateLiveness(ctx, b.isErrorIndicatingAliveKvstore(ctx, err))
+
+ return err
+}
+
+// Delete removes an item under the specified key
+func (b *Backend) Delete(ctx context.Context, key string) error {
+ span, ctx := log.CreateChildSpan(ctx, "etcd-delete")
+ defer span.Finish()
+
+ formattedPath := b.makePath(ctx, key)
+ logger.Debugw(ctx, "deleting-key", log.Fields{"key": key, "path": formattedPath})
+
+ err := b.Client.Delete(ctx, formattedPath)
+
+ b.updateLiveness(ctx, b.isErrorIndicatingAliveKvstore(ctx, err))
+
+ return err
+}
+
+// DeleteWithPrefix removes items having prefix key
+func (b *Backend) DeleteWithPrefix(ctx context.Context, prefixKey string) error {
+ span, ctx := log.CreateChildSpan(ctx, "etcd-delete-with-prefix")
+ defer span.Finish()
+
+ formattedPath := b.makePath(ctx, prefixKey)
+ logger.Debugw(ctx, "deleting-prefix-key", log.Fields{"key": prefixKey, "path": formattedPath})
+
+ err := b.Client.DeleteWithPrefix(ctx, formattedPath)
+
+ b.updateLiveness(ctx, b.isErrorIndicatingAliveKvstore(ctx, err))
+
+ return err
+}
+
+// CreateWatch starts watching events for the specified key
+func (b *Backend) CreateWatch(ctx context.Context, key string, withPrefix bool) chan *kvstore.Event {
+ span, ctx := log.CreateChildSpan(ctx, "etcd-create-watch")
+ defer span.Finish()
+
+ formattedPath := b.makePath(ctx, key)
+ logger.Debugw(ctx, "creating-key-watch", log.Fields{"key": key, "path": formattedPath})
+
+ return b.Client.Watch(ctx, formattedPath, withPrefix)
+}
+
+// DeleteWatch stops watching events for the specified key
+func (b *Backend) DeleteWatch(ctx context.Context, key string, ch chan *kvstore.Event) {
+ span, ctx := log.CreateChildSpan(ctx, "etcd-delete-watch")
+ defer span.Finish()
+
+ formattedPath := b.makePath(ctx, key)
+ logger.Debugw(ctx, "deleting-key-watch", log.Fields{"key": key, "path": formattedPath})
+
+ b.Client.CloseWatch(ctx, formattedPath, ch)
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/common.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/common.go
new file mode 100644
index 0000000..25cddf5
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/common.go
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package db
+
+import (
+ "github.com/opencord/voltha-lib-go/v4/pkg/log"
+)
+
+var logger log.CLogger
+
+func init() {
+ // Setup this package so that it's log level can be modified at run time
+ var err error
+ logger, err = log.RegisterPackage(log.JSON, log.ErrorLevel, log.Fields{})
+ if err != nil {
+ panic(err)
+ }
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/client.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/client.go
new file mode 100644
index 0000000..b35f1f3
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/client.go
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package kvstore
+
+import (
+ "context"
+ "time"
+)
+
+const (
+ // Maximum channel buffer between publisher/subscriber goroutines
+ maxClientChannelBufferSize = 10
+)
+
+// These constants represent the event types returned by the KV client
+const (
+ PUT = iota
+ DELETE
+ CONNECTIONDOWN
+ UNKNOWN
+)
+
+// KVPair is a common wrapper for key-value pairs returned from the KV store
+type KVPair struct {
+ Key string
+ Value interface{}
+ Version int64
+ Session string
+ Lease int64
+}
+
+// NewKVPair creates a new KVPair object
+func NewKVPair(key string, value interface{}, session string, lease int64, version int64) *KVPair {
+ kv := new(KVPair)
+ kv.Key = key
+ kv.Value = value
+ kv.Session = session
+ kv.Lease = lease
+ kv.Version = version
+ return kv
+}
+
+// Event is generated by the KV client when a key change is detected
+type Event struct {
+ EventType int
+ Key interface{}
+ Value interface{}
+ Version int64
+}
+
+// NewEvent creates a new Event object
+func NewEvent(eventType int, key interface{}, value interface{}, version int64) *Event {
+ evnt := new(Event)
+ evnt.EventType = eventType
+ evnt.Key = key
+ evnt.Value = value
+ evnt.Version = version
+
+ return evnt
+}
+
+// Client represents the set of APIs a KV Client must implement
+type Client interface {
+ List(ctx context.Context, key string) (map[string]*KVPair, error)
+ Get(ctx context.Context, key string) (*KVPair, error)
+ Put(ctx context.Context, key string, value interface{}) error
+ Delete(ctx context.Context, key string) error
+ DeleteWithPrefix(ctx context.Context, prefixKey string) error
+ Reserve(ctx context.Context, key string, value interface{}, ttl time.Duration) (interface{}, error)
+ ReleaseReservation(ctx context.Context, key string) error
+ ReleaseAllReservations(ctx context.Context) error
+ RenewReservation(ctx context.Context, key string) error
+ Watch(ctx context.Context, key string, withPrefix bool) chan *Event
+ AcquireLock(ctx context.Context, lockName string, timeout time.Duration) error
+ ReleaseLock(lockName string) error
+ IsConnectionUp(ctx context.Context) bool // timeout in second
+ CloseWatch(ctx context.Context, key string, ch chan *Event)
+ Close(ctx context.Context)
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/common.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/common.go
new file mode 100644
index 0000000..99c603d
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/common.go
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package kvstore
+
+import (
+ "github.com/opencord/voltha-lib-go/v4/pkg/log"
+)
+
+var logger log.CLogger
+
+func init() {
+ // Setup this package so that it's log level can be modified at run time
+ var err error
+ logger, err = log.RegisterPackage(log.JSON, log.ErrorLevel, log.Fields{})
+ if err != nil {
+ panic(err)
+ }
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/etcdclient.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/etcdclient.go
new file mode 100644
index 0000000..98f0559
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/etcdclient.go
@@ -0,0 +1,506 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package kvstore
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "sync"
+ "time"
+
+ "github.com/opencord/voltha-lib-go/v4/pkg/log"
+ v3Client "go.etcd.io/etcd/clientv3"
+
+ v3Concurrency "go.etcd.io/etcd/clientv3/concurrency"
+ v3rpcTypes "go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes"
+)
+
+// EtcdClient represents the Etcd KV store client
+type EtcdClient struct {
+ ectdAPI *v3Client.Client
+ keyReservations map[string]*v3Client.LeaseID
+ watchedChannels sync.Map
+ keyReservationsLock sync.RWMutex
+ lockToMutexMap map[string]*v3Concurrency.Mutex
+ lockToSessionMap map[string]*v3Concurrency.Session
+ lockToMutexLock sync.Mutex
+}
+
+// NewEtcdCustomClient returns a new client for the Etcd KV store allowing
+// the called to specify etcd client configuration
+func NewEtcdCustomClient(ctx context.Context, config *v3Client.Config) (*EtcdClient, error) {
+ c, err := v3Client.New(*config)
+ if err != nil {
+ logger.Error(ctx, err)
+ return nil, err
+ }
+
+ reservations := make(map[string]*v3Client.LeaseID)
+ lockMutexMap := make(map[string]*v3Concurrency.Mutex)
+ lockSessionMap := make(map[string]*v3Concurrency.Session)
+
+ return &EtcdClient{ectdAPI: c, keyReservations: reservations, lockToMutexMap: lockMutexMap,
+ lockToSessionMap: lockSessionMap}, nil
+}
+
+// NewEtcdClient returns a new client for the Etcd KV store
+func NewEtcdClient(ctx context.Context, addr string, timeout time.Duration, level log.LogLevel) (*EtcdClient, error) {
+ logconfig := log.ConstructZapConfig(log.JSON, level, log.Fields{})
+
+ return NewEtcdCustomClient(
+ ctx,
+ &v3Client.Config{
+ Endpoints: []string{addr},
+ DialTimeout: timeout,
+ LogConfig: &logconfig})
+}
+
+// IsConnectionUp returns whether the connection to the Etcd KV store is up. If a timeout occurs then
+// it is assumed the connection is down or unreachable.
+func (c *EtcdClient) IsConnectionUp(ctx context.Context) bool {
+ // Let's try to get a non existent key. If the connection is up then there will be no error returned.
+ if _, err := c.Get(ctx, "non-existent-key"); err != nil {
+ return false
+ }
+ //cancel()
+ return true
+}
+
+// List returns an array of key-value pairs with key as a prefix. Timeout defines how long the function will
+// wait for a response
+func (c *EtcdClient) List(ctx context.Context, key string) (map[string]*KVPair, error) {
+ resp, err := c.ectdAPI.Get(ctx, key, v3Client.WithPrefix())
+ if err != nil {
+ logger.Error(ctx, err)
+ return nil, err
+ }
+ m := make(map[string]*KVPair)
+ for _, ev := range resp.Kvs {
+ m[string(ev.Key)] = NewKVPair(string(ev.Key), ev.Value, "", ev.Lease, ev.Version)
+ }
+ return m, nil
+}
+
+// Get returns a key-value pair for a given key. Timeout defines how long the function will
+// wait for a response
+func (c *EtcdClient) Get(ctx context.Context, key string) (*KVPair, error) {
+
+ resp, err := c.ectdAPI.Get(ctx, key)
+
+ if err != nil {
+ logger.Error(ctx, err)
+ return nil, err
+ }
+ for _, ev := range resp.Kvs {
+ // Only one value is returned
+ return NewKVPair(string(ev.Key), ev.Value, "", ev.Lease, ev.Version), nil
+ }
+ return nil, nil
+}
+
+// Put writes a key-value pair to the KV store. Value can only be a string or []byte since the etcd API
+// accepts only a string as a value for a put operation. Timeout defines how long the function will
+// wait for a response
+func (c *EtcdClient) Put(ctx context.Context, key string, value interface{}) error {
+
+ // Validate that we can convert value to a string as etcd API expects a string
+ var val string
+ var er error
+ if val, er = ToString(value); er != nil {
+ return fmt.Errorf("unexpected-type-%T", value)
+ }
+
+ var err error
+ // Check if there is already a lease for this key - if there is then use it, otherwise a PUT will make
+ // that KV key permanent instead of automatically removing it after a lease expiration
+ c.keyReservationsLock.RLock()
+ leaseID, ok := c.keyReservations[key]
+ c.keyReservationsLock.RUnlock()
+ if ok {
+ _, err = c.ectdAPI.Put(ctx, key, val, v3Client.WithLease(*leaseID))
+ } else {
+ _, err = c.ectdAPI.Put(ctx, key, val)
+ }
+
+ if err != nil {
+ switch err {
+ case context.Canceled:
+ logger.Warnw(ctx, "context-cancelled", log.Fields{"error": err})
+ case context.DeadlineExceeded:
+ logger.Warnw(ctx, "context-deadline-exceeded", log.Fields{"error": err})
+ case v3rpcTypes.ErrEmptyKey:
+ logger.Warnw(ctx, "etcd-client-error", log.Fields{"error": err})
+ default:
+ logger.Warnw(ctx, "bad-endpoints", log.Fields{"error": err})
+ }
+ return err
+ }
+ return nil
+}
+
+// Delete removes a key from the KV store. Timeout defines how long the function will
+// wait for a response
+func (c *EtcdClient) Delete(ctx context.Context, key string) error {
+
+ // delete the key
+ if _, err := c.ectdAPI.Delete(ctx, key); err != nil {
+ logger.Errorw(ctx, "failed-to-delete-key", log.Fields{"key": key, "error": err})
+ return err
+ }
+ logger.Debugw(ctx, "key(s)-deleted", log.Fields{"key": key})
+ return nil
+}
+
+func (c *EtcdClient) DeleteWithPrefix(ctx context.Context, prefixKey string) error {
+
+ //delete the prefix
+ if _, err := c.ectdAPI.Delete(ctx, prefixKey, v3Client.WithPrefix()); err != nil {
+ logger.Errorw(ctx, "failed-to-delete-prefix-key", log.Fields{"key": prefixKey, "error": err})
+ return err
+ }
+ logger.Debugw(ctx, "key(s)-deleted", log.Fields{"key": prefixKey})
+ return nil
+}
+
+// Reserve is invoked to acquire a key and set it to a given value. Value can only be a string or []byte since
+// the etcd API accepts only a string. Timeout defines how long the function will wait for a response. TTL
+// defines how long that reservation is valid. When TTL expires the key is unreserved by the KV store itself.
+// If the key is acquired then the value returned will be the value passed in. If the key is already acquired
+// then the value assigned to that key will be returned.
+func (c *EtcdClient) Reserve(ctx context.Context, key string, value interface{}, ttl time.Duration) (interface{}, error) {
+ // Validate that we can convert value to a string as etcd API expects a string
+ var val string
+ var er error
+ if val, er = ToString(value); er != nil {
+ return nil, fmt.Errorf("unexpected-type%T", value)
+ }
+
+ resp, err := c.ectdAPI.Grant(ctx, int64(ttl.Seconds()))
+ if err != nil {
+ logger.Error(ctx, err)
+ return nil, err
+ }
+ // Register the lease id
+ c.keyReservationsLock.Lock()
+ c.keyReservations[key] = &resp.ID
+ c.keyReservationsLock.Unlock()
+
+ // Revoke lease if reservation is not successful
+ reservationSuccessful := false
+ defer func() {
+ if !reservationSuccessful {
+ if err = c.ReleaseReservation(context.Background(), key); err != nil {
+ logger.Error(ctx, "cannot-release-lease")
+ }
+ }
+ }()
+
+ // Try to grap the Key with the above lease
+ c.ectdAPI.Txn(context.Background())
+ txn := c.ectdAPI.Txn(context.Background())
+ txn = txn.If(v3Client.Compare(v3Client.Version(key), "=", 0))
+ txn = txn.Then(v3Client.OpPut(key, val, v3Client.WithLease(resp.ID)))
+ txn = txn.Else(v3Client.OpGet(key))
+ result, er := txn.Commit()
+ if er != nil {
+ return nil, er
+ }
+
+ if !result.Succeeded {
+ // Verify whether we are already the owner of that Key
+ if len(result.Responses) > 0 &&
+ len(result.Responses[0].GetResponseRange().Kvs) > 0 {
+ kv := result.Responses[0].GetResponseRange().Kvs[0]
+ if string(kv.Value) == val {
+ reservationSuccessful = true
+ return value, nil
+ }
+ return kv.Value, nil
+ }
+ } else {
+ // Read the Key to ensure this is our Key
+ m, err := c.Get(ctx, key)
+ if err != nil {
+ return nil, err
+ }
+ if m != nil {
+ if m.Key == key && isEqual(m.Value, value) {
+ // My reservation is successful - register it. For now, support is only for 1 reservation per key
+ // per session.
+ reservationSuccessful = true
+ return value, nil
+ }
+ // My reservation has failed. Return the owner of that key
+ return m.Value, nil
+ }
+ }
+ return nil, nil
+}
+
+// ReleaseAllReservations releases all key reservations previously made (using Reserve API)
+func (c *EtcdClient) ReleaseAllReservations(ctx context.Context) error {
+ c.keyReservationsLock.Lock()
+ defer c.keyReservationsLock.Unlock()
+
+ for key, leaseID := range c.keyReservations {
+ _, err := c.ectdAPI.Revoke(ctx, *leaseID)
+ if err != nil {
+ logger.Errorw(ctx, "cannot-release-reservation", log.Fields{"key": key, "error": err})
+ return err
+ }
+ delete(c.keyReservations, key)
+ }
+ return nil
+}
+
+// ReleaseReservation releases reservation for a specific key.
+func (c *EtcdClient) ReleaseReservation(ctx context.Context, key string) error {
+ // Get the leaseid using the key
+ logger.Debugw(ctx, "Release-reservation", log.Fields{"key": key})
+ var ok bool
+ var leaseID *v3Client.LeaseID
+ c.keyReservationsLock.Lock()
+ defer c.keyReservationsLock.Unlock()
+ if leaseID, ok = c.keyReservations[key]; !ok {
+ return nil
+ }
+
+ if leaseID != nil {
+ _, err := c.ectdAPI.Revoke(ctx, *leaseID)
+ if err != nil {
+ logger.Error(ctx, err)
+ return err
+ }
+ delete(c.keyReservations, key)
+ }
+ return nil
+}
+
+// RenewReservation renews a reservation. A reservation will go stale after the specified TTL (Time To Live)
+// period specified when reserving the key
+func (c *EtcdClient) RenewReservation(ctx context.Context, key string) error {
+ // Get the leaseid using the key
+ var ok bool
+ var leaseID *v3Client.LeaseID
+ c.keyReservationsLock.RLock()
+ leaseID, ok = c.keyReservations[key]
+ c.keyReservationsLock.RUnlock()
+
+ if !ok {
+ return errors.New("key-not-reserved")
+ }
+
+ if leaseID != nil {
+ _, err := c.ectdAPI.KeepAliveOnce(ctx, *leaseID)
+ if err != nil {
+ logger.Errorw(ctx, "lease-may-have-expired", log.Fields{"error": err})
+ return err
+ }
+ } else {
+ return errors.New("lease-expired")
+ }
+ return nil
+}
+
+// Watch provides the watch capability on a given key. It returns a channel onto which the callee needs to
+// listen to receive Events.
+func (c *EtcdClient) Watch(ctx context.Context, key string, withPrefix bool) chan *Event {
+ w := v3Client.NewWatcher(c.ectdAPI)
+ ctx, cancel := context.WithCancel(ctx)
+ var channel v3Client.WatchChan
+ if withPrefix {
+ channel = w.Watch(ctx, key, v3Client.WithPrefix())
+ } else {
+ channel = w.Watch(ctx, key)
+ }
+
+ // Create a new channel
+ ch := make(chan *Event, maxClientChannelBufferSize)
+
+ // Keep track of the created channels so they can be closed when required
+ channelMap := make(map[chan *Event]v3Client.Watcher)
+ channelMap[ch] = w
+
+ channelMaps := c.addChannelMap(key, channelMap)
+
+ // Changing the log field (from channelMaps) as the underlying logger cannot format the map of channels into a
+ // json format.
+ logger.Debugw(ctx, "watched-channels", log.Fields{"len": len(channelMaps)})
+ // Launch a go routine to listen for updates
+ go c.listenForKeyChange(ctx, channel, ch, cancel)
+
+ return ch
+
+}
+
+func (c *EtcdClient) addChannelMap(key string, channelMap map[chan *Event]v3Client.Watcher) []map[chan *Event]v3Client.Watcher {
+ var channels interface{}
+ var exists bool
+
+ if channels, exists = c.watchedChannels.Load(key); exists {
+ channels = append(channels.([]map[chan *Event]v3Client.Watcher), channelMap)
+ } else {
+ channels = []map[chan *Event]v3Client.Watcher{channelMap}
+ }
+ c.watchedChannels.Store(key, channels)
+
+ return channels.([]map[chan *Event]v3Client.Watcher)
+}
+
+func (c *EtcdClient) removeChannelMap(key string, pos int) []map[chan *Event]v3Client.Watcher {
+ var channels interface{}
+ var exists bool
+
+ if channels, exists = c.watchedChannels.Load(key); exists {
+ channels = append(channels.([]map[chan *Event]v3Client.Watcher)[:pos], channels.([]map[chan *Event]v3Client.Watcher)[pos+1:]...)
+ c.watchedChannels.Store(key, channels)
+ }
+
+ return channels.([]map[chan *Event]v3Client.Watcher)
+}
+
+func (c *EtcdClient) getChannelMaps(key string) ([]map[chan *Event]v3Client.Watcher, bool) {
+ var channels interface{}
+ var exists bool
+
+ channels, exists = c.watchedChannels.Load(key)
+
+ if channels == nil {
+ return nil, exists
+ }
+
+ return channels.([]map[chan *Event]v3Client.Watcher), exists
+}
+
+// CloseWatch closes a specific watch. Both the key and the channel are required when closing a watch as there
+// may be multiple listeners on the same key. The previously created channel serves as a key
+func (c *EtcdClient) CloseWatch(ctx context.Context, key string, ch chan *Event) {
+ // Get the array of channels mapping
+ var watchedChannels []map[chan *Event]v3Client.Watcher
+ var ok bool
+
+ if watchedChannels, ok = c.getChannelMaps(key); !ok {
+ logger.Warnw(ctx, "key-has-no-watched-channels", log.Fields{"key": key})
+ return
+ }
+ // Look for the channels
+ var pos = -1
+ for i, chMap := range watchedChannels {
+ if t, ok := chMap[ch]; ok {
+ logger.Debug(ctx, "channel-found")
+ // Close the etcd watcher before the client channel. This should close the etcd channel as well
+ if err := t.Close(); err != nil {
+ logger.Errorw(ctx, "watcher-cannot-be-closed", log.Fields{"key": key, "error": err})
+ }
+ pos = i
+ break
+ }
+ }
+
+ channelMaps, _ := c.getChannelMaps(key)
+ // Remove that entry if present
+ if pos >= 0 {
+ channelMaps = c.removeChannelMap(key, pos)
+ }
+ logger.Infow(ctx, "watcher-channel-exiting", log.Fields{"key": key, "channel": channelMaps})
+}
+
+func (c *EtcdClient) listenForKeyChange(ctx context.Context, channel v3Client.WatchChan, ch chan<- *Event, cancel context.CancelFunc) {
+ logger.Debug(ctx, "start-listening-on-channel ...")
+ defer cancel()
+ defer close(ch)
+ for resp := range channel {
+ for _, ev := range resp.Events {
+ ch <- NewEvent(getEventType(ev), ev.Kv.Key, ev.Kv.Value, ev.Kv.Version)
+ }
+ }
+ logger.Debug(ctx, "stop-listening-on-channel ...")
+}
+
+func getEventType(event *v3Client.Event) int {
+ switch event.Type {
+ case v3Client.EventTypePut:
+ return PUT
+ case v3Client.EventTypeDelete:
+ return DELETE
+ }
+ return UNKNOWN
+}
+
+// Close closes the KV store client
+func (c *EtcdClient) Close(ctx context.Context) {
+ if err := c.ectdAPI.Close(); err != nil {
+ logger.Errorw(ctx, "error-closing-client", log.Fields{"error": err})
+ }
+}
+
+func (c *EtcdClient) addLockName(lockName string, lock *v3Concurrency.Mutex, session *v3Concurrency.Session) {
+ c.lockToMutexLock.Lock()
+ defer c.lockToMutexLock.Unlock()
+ c.lockToMutexMap[lockName] = lock
+ c.lockToSessionMap[lockName] = session
+}
+
+func (c *EtcdClient) deleteLockName(lockName string) {
+ c.lockToMutexLock.Lock()
+ defer c.lockToMutexLock.Unlock()
+ delete(c.lockToMutexMap, lockName)
+ delete(c.lockToSessionMap, lockName)
+}
+
+func (c *EtcdClient) getLock(lockName string) (*v3Concurrency.Mutex, *v3Concurrency.Session) {
+ c.lockToMutexLock.Lock()
+ defer c.lockToMutexLock.Unlock()
+ var lock *v3Concurrency.Mutex
+ var session *v3Concurrency.Session
+ if l, exist := c.lockToMutexMap[lockName]; exist {
+ lock = l
+ }
+ if s, exist := c.lockToSessionMap[lockName]; exist {
+ session = s
+ }
+ return lock, session
+}
+
+func (c *EtcdClient) AcquireLock(ctx context.Context, lockName string, timeout time.Duration) error {
+ session, _ := v3Concurrency.NewSession(c.ectdAPI, v3Concurrency.WithContext(ctx))
+ mu := v3Concurrency.NewMutex(session, "/devicelock_"+lockName)
+ if err := mu.Lock(context.Background()); err != nil {
+ //cancel()
+ return err
+ }
+ c.addLockName(lockName, mu, session)
+ return nil
+}
+
+func (c *EtcdClient) ReleaseLock(lockName string) error {
+ lock, session := c.getLock(lockName)
+ var err error
+ if lock != nil {
+ if e := lock.Unlock(context.Background()); e != nil {
+ err = e
+ }
+ }
+ if session != nil {
+ if e := session.Close(); e != nil {
+ err = e
+ }
+ }
+ c.deleteLockName(lockName)
+
+ return err
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/kvutils.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/kvutils.go
new file mode 100644
index 0000000..70bd977
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore/kvutils.go
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package kvstore
+
+import (
+ "bytes"
+ "fmt"
+)
+
+// ToString converts an interface value to a string. The interface should either be of
+// a string type or []byte. Otherwise, an error is returned.
+func ToString(value interface{}) (string, error) {
+ switch t := value.(type) {
+ case []byte:
+ return string(value.([]byte)), nil
+ case string:
+ return value.(string), nil
+ default:
+ return "", fmt.Errorf("unexpected-type-%T", t)
+ }
+}
+
+// ToByte converts an interface value to a []byte. The interface should either be of
+// a string type or []byte. Otherwise, an error is returned.
+func ToByte(value interface{}) ([]byte, error) {
+ switch t := value.(type) {
+ case []byte:
+ return value.([]byte), nil
+ case string:
+ return []byte(value.(string)), nil
+ default:
+ return nil, fmt.Errorf("unexpected-type-%T", t)
+ }
+}
+
+// Helper function to verify mostly whether the content of two interface types are the same. Focus is []byte and
+// string types
+func isEqual(val1 interface{}, val2 interface{}) bool {
+ b1, err := ToByte(val1)
+ b2, er := ToByte(val2)
+ if err == nil && er == nil {
+ return bytes.Equal(b1, b2)
+ }
+ return val1 == val2
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/common.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/common.go
new file mode 100644
index 0000000..b0ce81b
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/common.go
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package log
+
+var logger CLogger
+
+func init() {
+ // Setup this package so that it's log level can be modified at run time
+ var err error
+ logger, err = RegisterPackage(JSON, ErrorLevel, Fields{})
+ if err != nil {
+ panic(err)
+ }
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/log.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/log.go
new file mode 100644
index 0000000..7b1a123
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/log.go
@@ -0,0 +1,662 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Package log provides a structured Logger interface implemented using zap logger. It provides the following capabilities:
+// 1. Package level logging - a go package can register itself (AddPackage) and have a logger created for that package.
+// 2. Dynamic log level change - for all registered packages (SetAllLogLevel)
+// 3. Dynamic log level change - for a given package (SetPackageLogLevel)
+// 4. Provides a default logger for unregistered packages (however avoid its usage)
+// 5. Allow key-value pairs to be added to a logger(UpdateLogger) or all loggers (UpdateAllLoggers) at run time
+// 6. Add to the log output the location where the log was invoked (filename.functionname.linenumber)
+//
+// Using package-level logging (recommended approach). In the examples below, log refers to this log package.
+//
+// 1. In the appropriate package, add the following in the init section of the package (usually in a common.go file)
+// The log level can be changed and any number of default fields can be added as well. The log level specifies
+// the lowest log level that will be in the output while the fields will be automatically added to all log printouts.
+// However, as voltha components re-initialize the log level of each registered package to default initial loglevel
+// passed as CLI argument, the log level passed in RegisterPackage call effectively has no effect.
+//
+// var logger log.CLogger
+// func init() {
+// logger, err = log.RegisterPackage(log.JSON, log.ErrorLevel, log.Fields{"key1": "value1"})
+// }
+//
+// 2. In the calling package, use any of the publicly available functions of local package-level logger instance created
+// in previous step. Here is an example to write an Info log with additional fields:
+//
+// logger.Infow("An example", mylog.Fields{"myStringOutput": "output", "myIntOutput": 2})
+//
+// 3. To dynamically change the log level, you can use
+// a) SetLogLevel from inside your package or
+// b) SetPackageLogLevel from anywhere or
+// c) SetAllLogLevel from anywhere.
+//
+// Dynamic Loglevel configuration feature also uses SetPackageLogLevel method based on triggers received due to
+// Changes to configured loglevels
+
+package log
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "path"
+ "runtime"
+ "strings"
+
+ zp "go.uber.org/zap"
+ zc "go.uber.org/zap/zapcore"
+)
+
+type LogLevel int8
+
+const (
+ // DebugLevel logs a message at debug level
+ DebugLevel = LogLevel(iota)
+ // InfoLevel logs a message at info level
+ InfoLevel
+ // WarnLevel logs a message at warning level
+ WarnLevel
+ // ErrorLevel logs a message at error level
+ ErrorLevel
+ // FatalLevel logs a message, then calls os.Exit(1).
+ FatalLevel
+)
+
+// CONSOLE formats the log for the console, mostly used during development
+const CONSOLE = "console"
+
+// JSON formats the log using json format, mostly used by an automated logging system consumption
+const JSON = "json"
+
+// Context Aware Logger represents an abstract logging interface. Any logging implementation used
+// will need to abide by this interface
+type CLogger interface {
+ Debug(context.Context, ...interface{})
+ Debugln(context.Context, ...interface{})
+ Debugf(context.Context, string, ...interface{})
+ Debugw(context.Context, string, Fields)
+
+ Info(context.Context, ...interface{})
+ Infoln(context.Context, ...interface{})
+ Infof(context.Context, string, ...interface{})
+ Infow(context.Context, string, Fields)
+
+ Warn(context.Context, ...interface{})
+ Warnln(context.Context, ...interface{})
+ Warnf(context.Context, string, ...interface{})
+ Warnw(context.Context, string, Fields)
+
+ Error(context.Context, ...interface{})
+ Errorln(context.Context, ...interface{})
+ Errorf(context.Context, string, ...interface{})
+ Errorw(context.Context, string, Fields)
+
+ Fatal(context.Context, ...interface{})
+ Fatalln(context.Context, ...interface{})
+ Fatalf(context.Context, string, ...interface{})
+ Fatalw(context.Context, string, Fields)
+
+ With(Fields) CLogger
+
+ // The following are added to be able to use this logger as a gRPC LoggerV2 if needed
+ //
+ Warning(context.Context, ...interface{})
+ Warningln(context.Context, ...interface{})
+ Warningf(context.Context, string, ...interface{})
+
+ // V reports whether verbosity level l is at least the requested verbose level.
+ V(l LogLevel) bool
+
+ //Returns the log level of this specific logger
+ GetLogLevel() LogLevel
+}
+
+// Fields is used as key-value pairs for structured logging
+type Fields map[string]interface{}
+
+var defaultLogger *clogger
+var cfg zp.Config
+
+var loggers map[string]*clogger
+var cfgs map[string]zp.Config
+
+type clogger struct {
+ log *zp.SugaredLogger
+ parent *zp.Logger
+ packageName string
+}
+
+func logLevelToAtomicLevel(l LogLevel) zp.AtomicLevel {
+ switch l {
+ case DebugLevel:
+ return zp.NewAtomicLevelAt(zc.DebugLevel)
+ case InfoLevel:
+ return zp.NewAtomicLevelAt(zc.InfoLevel)
+ case WarnLevel:
+ return zp.NewAtomicLevelAt(zc.WarnLevel)
+ case ErrorLevel:
+ return zp.NewAtomicLevelAt(zc.ErrorLevel)
+ case FatalLevel:
+ return zp.NewAtomicLevelAt(zc.FatalLevel)
+ }
+ return zp.NewAtomicLevelAt(zc.ErrorLevel)
+}
+
+func logLevelToLevel(l LogLevel) zc.Level {
+ switch l {
+ case DebugLevel:
+ return zc.DebugLevel
+ case InfoLevel:
+ return zc.InfoLevel
+ case WarnLevel:
+ return zc.WarnLevel
+ case ErrorLevel:
+ return zc.ErrorLevel
+ case FatalLevel:
+ return zc.FatalLevel
+ }
+ return zc.ErrorLevel
+}
+
+func levelToLogLevel(l zc.Level) LogLevel {
+ switch l {
+ case zc.DebugLevel:
+ return DebugLevel
+ case zc.InfoLevel:
+ return InfoLevel
+ case zc.WarnLevel:
+ return WarnLevel
+ case zc.ErrorLevel:
+ return ErrorLevel
+ case zc.FatalLevel:
+ return FatalLevel
+ }
+ return ErrorLevel
+}
+
+func StringToLogLevel(l string) (LogLevel, error) {
+ switch strings.ToUpper(l) {
+ case "DEBUG":
+ return DebugLevel, nil
+ case "INFO":
+ return InfoLevel, nil
+ case "WARN":
+ return WarnLevel, nil
+ case "ERROR":
+ return ErrorLevel, nil
+ case "FATAL":
+ return FatalLevel, nil
+ }
+ return 0, errors.New("Given LogLevel is invalid : " + l)
+}
+
+func LogLevelToString(l LogLevel) (string, error) {
+ switch l {
+ case DebugLevel:
+ return "DEBUG", nil
+ case InfoLevel:
+ return "INFO", nil
+ case WarnLevel:
+ return "WARN", nil
+ case ErrorLevel:
+ return "ERROR", nil
+ case FatalLevel:
+ return "FATAL", nil
+ }
+ return "", fmt.Errorf("Given LogLevel is invalid %d", l)
+}
+
+func getDefaultConfig(outputType string, level LogLevel, defaultFields Fields) zp.Config {
+ return zp.Config{
+ Level: logLevelToAtomicLevel(level),
+ Encoding: outputType,
+ Development: true,
+ OutputPaths: []string{"stdout"},
+ ErrorOutputPaths: []string{"stderr"},
+ InitialFields: defaultFields,
+ EncoderConfig: zc.EncoderConfig{
+ LevelKey: "level",
+ MessageKey: "msg",
+ TimeKey: "ts",
+ CallerKey: "caller",
+ StacktraceKey: "stacktrace",
+ LineEnding: zc.DefaultLineEnding,
+ EncodeLevel: zc.LowercaseLevelEncoder,
+ EncodeTime: zc.ISO8601TimeEncoder,
+ EncodeDuration: zc.SecondsDurationEncoder,
+ EncodeCaller: zc.ShortCallerEncoder,
+ },
+ }
+}
+
+func ConstructZapConfig(outputType string, level LogLevel, fields Fields) zp.Config {
+ return getDefaultConfig(outputType, level, fields)
+}
+
+// SetLogger needs to be invoked before the logger API can be invoked. This function
+// initialize the default logger (zap's sugaredlogger)
+func SetDefaultLogger(outputType string, level LogLevel, defaultFields Fields) (CLogger, error) {
+ // Build a custom config using zap
+ cfg = getDefaultConfig(outputType, level, defaultFields)
+
+ l, err := cfg.Build(zp.AddCallerSkip(1))
+ if err != nil {
+ return nil, err
+ }
+
+ defaultLogger = &clogger{
+ log: l.Sugar(),
+ parent: l,
+ }
+
+ return defaultLogger, nil
+}
+
+// AddPackage registers a package to the log map. Each package gets its own logger which allows
+// its config (loglevel) to be changed dynamically without interacting with the other packages.
+// outputType is JSON, level is the lowest level log to output with this logger and defaultFields is a map of
+// key-value pairs to always add to the output.
+// Note: AddPackage also returns a reference to the actual logger. If a calling package uses this reference directly
+//instead of using the publicly available functions in this log package then a number of functionalities will not
+// be available to it, notably log tracing with filename.functionname.linenumber annotation.
+//
+// pkgNames parameter should be used for testing only as this function detects the caller's package.
+func RegisterPackage(outputType string, level LogLevel, defaultFields Fields, pkgNames ...string) (CLogger, error) {
+ if cfgs == nil {
+ cfgs = make(map[string]zp.Config)
+ }
+ if loggers == nil {
+ loggers = make(map[string]*clogger)
+ }
+
+ var pkgName string
+ for _, name := range pkgNames {
+ pkgName = name
+ break
+ }
+ if pkgName == "" {
+ pkgName, _, _, _ = getCallerInfo()
+ }
+
+ if _, exist := loggers[pkgName]; exist {
+ return loggers[pkgName], nil
+ }
+
+ cfgs[pkgName] = getDefaultConfig(outputType, level, defaultFields)
+
+ l, err := cfgs[pkgName].Build(zp.AddCallerSkip(1))
+ if err != nil {
+ return nil, err
+ }
+
+ loggers[pkgName] = &clogger{
+ log: l.Sugar(),
+ parent: l,
+ packageName: pkgName,
+ }
+ return loggers[pkgName], nil
+}
+
+//UpdateAllLoggers create new loggers for all registered pacakges with the defaultFields.
+func UpdateAllLoggers(defaultFields Fields) error {
+ for pkgName, cfg := range cfgs {
+ for k, v := range defaultFields {
+ if cfg.InitialFields == nil {
+ cfg.InitialFields = make(map[string]interface{})
+ }
+ cfg.InitialFields[k] = v
+ }
+ l, err := cfg.Build(zp.AddCallerSkip(1))
+ if err != nil {
+ return err
+ }
+
+ // Update the existing zap logger instance
+ loggers[pkgName].log = l.Sugar()
+ loggers[pkgName].parent = l
+ }
+ return nil
+}
+
+// Return a list of all packages that have individually-configured loggers
+func GetPackageNames() []string {
+ i := 0
+ keys := make([]string, len(loggers))
+ for k := range loggers {
+ keys[i] = k
+ i++
+ }
+ return keys
+}
+
+// UpdateLogger updates the logger associated with a caller's package with supplied defaultFields
+func UpdateLogger(defaultFields Fields) error {
+ pkgName, _, _, _ := getCallerInfo()
+ if _, exist := loggers[pkgName]; !exist {
+ return fmt.Errorf("package-%s-not-registered", pkgName)
+ }
+
+ // Build a new logger
+ if _, exist := cfgs[pkgName]; !exist {
+ return fmt.Errorf("config-%s-not-registered", pkgName)
+ }
+
+ cfg := cfgs[pkgName]
+ for k, v := range defaultFields {
+ if cfg.InitialFields == nil {
+ cfg.InitialFields = make(map[string]interface{})
+ }
+ cfg.InitialFields[k] = v
+ }
+ l, err := cfg.Build(zp.AddCallerSkip(1))
+ if err != nil {
+ return err
+ }
+
+ // Update the existing zap logger instance
+ loggers[pkgName].log = l.Sugar()
+ loggers[pkgName].parent = l
+
+ return nil
+}
+
+func setLevel(cfg zp.Config, level LogLevel) {
+ switch level {
+ case DebugLevel:
+ cfg.Level.SetLevel(zc.DebugLevel)
+ case InfoLevel:
+ cfg.Level.SetLevel(zc.InfoLevel)
+ case WarnLevel:
+ cfg.Level.SetLevel(zc.WarnLevel)
+ case ErrorLevel:
+ cfg.Level.SetLevel(zc.ErrorLevel)
+ case FatalLevel:
+ cfg.Level.SetLevel(zc.FatalLevel)
+ default:
+ cfg.Level.SetLevel(zc.ErrorLevel)
+ }
+}
+
+//SetPackageLogLevel dynamically sets the log level of a given package to level. This is typically invoked at an
+// application level during debugging
+func SetPackageLogLevel(packageName string, level LogLevel) {
+ // Get proper config
+ if cfg, ok := cfgs[packageName]; ok {
+ setLevel(cfg, level)
+ }
+}
+
+//SetAllLogLevel sets the log level of all registered packages to level
+func SetAllLogLevel(level LogLevel) {
+ // Get proper config
+ for _, cfg := range cfgs {
+ setLevel(cfg, level)
+ }
+}
+
+//GetPackageLogLevel returns the current log level of a package.
+func GetPackageLogLevel(packageName ...string) (LogLevel, error) {
+ var name string
+ if len(packageName) == 1 {
+ name = packageName[0]
+ } else {
+ name, _, _, _ = getCallerInfo()
+ }
+ if cfg, ok := cfgs[name]; ok {
+ return levelToLogLevel(cfg.Level.Level()), nil
+ }
+ return 0, fmt.Errorf("unknown-package-%s", name)
+}
+
+//GetDefaultLogLevel gets the log level used for packages that don't have specific loggers
+func GetDefaultLogLevel() LogLevel {
+ return levelToLogLevel(cfg.Level.Level())
+}
+
+//SetLogLevel sets the log level for the logger corresponding to the caller's package
+func SetLogLevel(level LogLevel) error {
+ pkgName, _, _, _ := getCallerInfo()
+ if _, exist := cfgs[pkgName]; !exist {
+ return fmt.Errorf("unregistered-package-%s", pkgName)
+ }
+ cfg := cfgs[pkgName]
+ setLevel(cfg, level)
+ return nil
+}
+
+//SetDefaultLogLevel sets the log level used for packages that don't have specific loggers
+func SetDefaultLogLevel(level LogLevel) {
+ setLevel(cfg, level)
+}
+
+// CleanUp flushed any buffered log entries. Applications should take care to call
+// CleanUp before exiting.
+func CleanUp() error {
+ for _, logger := range loggers {
+ if logger != nil {
+ if logger.parent != nil {
+ if err := logger.parent.Sync(); err != nil {
+ return err
+ }
+ }
+ }
+ }
+ if defaultLogger != nil {
+ if defaultLogger.parent != nil {
+ if err := defaultLogger.parent.Sync(); err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+func getCallerInfo() (string, string, string, int) {
+ // Since the caller of a log function is one stack frame before (in terms of stack higher level) the log.go
+ // filename, then first look for the last log.go filename and then grab the caller info one level higher.
+ maxLevel := 3
+ skiplevel := 3 // Level with the most empirical success to see the last log.go stack frame.
+ pc := make([]uintptr, maxLevel)
+ n := runtime.Callers(skiplevel, pc)
+ packageName := ""
+ funcName := ""
+ fileName := ""
+ var line int
+ if n == 0 {
+ return packageName, fileName, funcName, line
+ }
+ frames := runtime.CallersFrames(pc[:n])
+ var frame runtime.Frame
+ var foundFrame runtime.Frame
+ more := true
+ for more {
+ frame, more = frames.Next()
+ _, fileName = path.Split(frame.File)
+ if fileName != "log.go" {
+ foundFrame = frame // First frame after log.go in the frame stack
+ break
+ }
+ }
+ parts := strings.Split(foundFrame.Function, ".")
+ pl := len(parts)
+ if pl >= 2 {
+ funcName = parts[pl-1]
+ if parts[pl-2][0] == '(' {
+ packageName = strings.Join(parts[0:pl-2], ".")
+ } else {
+ packageName = strings.Join(parts[0:pl-1], ".")
+ }
+ }
+
+ if strings.HasSuffix(packageName, ".init") {
+ packageName = strings.TrimSuffix(packageName, ".init")
+ }
+
+ if strings.HasSuffix(fileName, ".go") {
+ fileName = strings.TrimSuffix(fileName, ".go")
+ }
+
+ return packageName, fileName, funcName, foundFrame.Line
+}
+
+// With returns a logger initialized with the key-value pairs
+func (l clogger) With(keysAndValues Fields) CLogger {
+ return clogger{log: l.log.With(serializeMap(keysAndValues)...), parent: l.parent}
+}
+
+// Debug logs a message at level Debug on the standard logger.
+func (l clogger) Debug(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Debug(args...)
+}
+
+// Debugln logs a message at level Debug on the standard logger with a line feed. Default in any case.
+func (l clogger) Debugln(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Debug(args...)
+}
+
+// Debugw logs a message at level Debug on the standard logger.
+func (l clogger) Debugf(ctx context.Context, format string, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Debugf(format, args...)
+}
+
+// Debugw logs a message with some additional context. The variadic key-value
+// pairs are treated as they are in With.
+func (l clogger) Debugw(ctx context.Context, msg string, keysAndValues Fields) {
+ if l.V(DebugLevel) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Debugw(msg, serializeMap(keysAndValues)...)
+ }
+}
+
+// Info logs a message at level Info on the standard logger.
+func (l clogger) Info(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Info(args...)
+}
+
+// Infoln logs a message at level Info on the standard logger with a line feed. Default in any case.
+func (l clogger) Infoln(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Info(args...)
+ //msg := fmt.Sprintln(args...)
+ //l.sourced().Info(msg[:len(msg)-1])
+}
+
+// Infof logs a message at level Info on the standard logger.
+func (l clogger) Infof(ctx context.Context, format string, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Infof(format, args...)
+}
+
+// Infow logs a message with some additional context. The variadic key-value
+// pairs are treated as they are in With.
+func (l clogger) Infow(ctx context.Context, msg string, keysAndValues Fields) {
+ if l.V(InfoLevel) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Infow(msg, serializeMap(keysAndValues)...)
+ }
+}
+
+// Warn logs a message at level Warn on the standard logger.
+func (l clogger) Warn(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Warn(args...)
+}
+
+// Warnln logs a message at level Warn on the standard logger with a line feed. Default in any case.
+func (l clogger) Warnln(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Warn(args...)
+}
+
+// Warnf logs a message at level Warn on the standard logger.
+func (l clogger) Warnf(ctx context.Context, format string, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Warnf(format, args...)
+}
+
+// Warnw logs a message with some additional context. The variadic key-value
+// pairs are treated as they are in With.
+func (l clogger) Warnw(ctx context.Context, msg string, keysAndValues Fields) {
+ if l.V(WarnLevel) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Warnw(msg, serializeMap(keysAndValues)...)
+ }
+}
+
+// Error logs a message at level Error on the standard logger.
+func (l clogger) Error(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Error(args...)
+}
+
+// Errorln logs a message at level Error on the standard logger with a line feed. Default in any case.
+func (l clogger) Errorln(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Error(args...)
+}
+
+// Errorf logs a message at level Error on the standard logger.
+func (l clogger) Errorf(ctx context.Context, format string, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Errorf(format, args...)
+}
+
+// Errorw logs a message with some additional context. The variadic key-value
+// pairs are treated as they are in With.
+func (l clogger) Errorw(ctx context.Context, msg string, keysAndValues Fields) {
+ if l.V(ErrorLevel) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Errorw(msg, serializeMap(keysAndValues)...)
+ }
+}
+
+// Fatal logs a message at level Fatal on the standard logger.
+func (l clogger) Fatal(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Fatal(args...)
+}
+
+// Fatalln logs a message at level Fatal on the standard logger with a line feed. Default in any case.
+func (l clogger) Fatalln(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Fatal(args...)
+}
+
+// Fatalf logs a message at level Fatal on the standard logger.
+func (l clogger) Fatalf(ctx context.Context, format string, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Fatalf(format, args...)
+}
+
+// Fatalw logs a message with some additional context. The variadic key-value
+// pairs are treated as they are in With.
+func (l clogger) Fatalw(ctx context.Context, msg string, keysAndValues Fields) {
+ if l.V(FatalLevel) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Fatalw(msg, serializeMap(keysAndValues)...)
+ }
+}
+
+// Warning logs a message at level Warn on the standard logger.
+func (l clogger) Warning(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Warn(args...)
+}
+
+// Warningln logs a message at level Warn on the standard logger with a line feed. Default in any case.
+func (l clogger) Warningln(ctx context.Context, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Warn(args...)
+}
+
+// Warningf logs a message at level Warn on the standard logger.
+func (l clogger) Warningf(ctx context.Context, format string, args ...interface{}) {
+ l.log.With(GetGlobalLFM().ExtractContextAttributes(ctx)...).Warnf(format, args...)
+}
+
+// V reports whether verbosity level l is at least the requested verbose level.
+func (l clogger) V(level LogLevel) bool {
+ return l.parent.Core().Enabled(logLevelToLevel(level))
+}
+
+// GetLogLevel returns the current level of the logger
+func (l clogger) GetLogLevel() LogLevel {
+ return levelToLogLevel(cfgs[l.packageName].Level.Level())
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/utils.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/utils.go
new file mode 100644
index 0000000..82c3d7d
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/log/utils.go
@@ -0,0 +1,468 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// File contains utility functions to support Open Tracing in conjunction with
+// Enhanced Logging based on context propagation
+
+package log
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "github.com/opentracing/opentracing-go"
+ jtracing "github.com/uber/jaeger-client-go"
+ jcfg "github.com/uber/jaeger-client-go/config"
+ "io"
+ "os"
+ "strings"
+ "sync"
+)
+
+const (
+ RootSpanNameKey = "op-name"
+)
+
+// Global Settings governing the Log Correlation and Tracing features. Should only
+// be updated through the exposed public methods
+type LogFeaturesManager struct {
+ isTracePublishingEnabled bool
+ isLogCorrelationEnabled bool
+ componentName string // Name of component extracted from ENV variable
+ activeTraceAgentAddress string
+ lock sync.Mutex
+}
+
+var globalLFM *LogFeaturesManager = &LogFeaturesManager{}
+
+func GetGlobalLFM() *LogFeaturesManager {
+ return globalLFM
+}
+
+// A Wrapper to utilize currently Active Tracer instance. The middleware library being used for generating
+// Spans for GRPC API calls does not support dynamically setting the Active Tracer similar to the SetGlobalTracer method
+// provided by OpenTracing API
+type ActiveTracerProxy struct {
+}
+
+func (atw ActiveTracerProxy) StartSpan(operationName string, opts ...opentracing.StartSpanOption) opentracing.Span {
+ return opentracing.GlobalTracer().StartSpan(operationName, opts...)
+}
+
+func (atw ActiveTracerProxy) Inject(sm opentracing.SpanContext, format interface{}, carrier interface{}) error {
+ return opentracing.GlobalTracer().Inject(sm, format, carrier)
+}
+
+func (atw ActiveTracerProxy) Extract(format interface{}, carrier interface{}) (opentracing.SpanContext, error) {
+ return opentracing.GlobalTracer().Extract(format, carrier)
+}
+
+// Jaeger complaint Logger instance to redirect logs to Default Logger
+type traceLogger struct {
+ logger *clogger
+}
+
+func (tl traceLogger) Error(msg string) {
+ tl.logger.Error(context.Background(), msg)
+}
+
+func (tl traceLogger) Infof(msg string, args ...interface{}) {
+ // Tracing logs should be performed only at Debug Verbosity
+ tl.logger.Debugf(context.Background(), msg, args...)
+}
+
+// Wrapper to handle correct Closer call at the time of Process Termination
+type traceCloser struct {
+}
+
+func (c traceCloser) Close() error {
+ currentActiveTracer := opentracing.GlobalTracer()
+ if currentActiveTracer != nil {
+ if jTracer, ok := currentActiveTracer.(*jtracing.Tracer); ok {
+ jTracer.Close()
+ }
+ }
+
+ return nil
+}
+
+// Method to Initialize Jaeger based Tracing client based on initial status of Tracing Publish and Log Correlation
+func (lfm *LogFeaturesManager) InitTracingAndLogCorrelation(tracePublishEnabled bool, traceAgentAddress string, logCorrelationEnabled bool) (io.Closer, error) {
+ lfm.componentName = os.Getenv("COMPONENT_NAME")
+ if lfm.componentName == "" {
+ return nil, errors.New("Unable to retrieve PoD Component Name from Runtime env")
+ }
+
+ lfm.lock.Lock()
+ defer lfm.lock.Unlock()
+
+ // Use NoopTracer when both Tracing Publishing and Log Correlation are disabled
+ if !tracePublishEnabled && !logCorrelationEnabled {
+ logger.Info(context.Background(), "Skipping Global Tracer initialization as both Trace publish and Log correlation are configured as disabled")
+ lfm.isTracePublishingEnabled = false
+ lfm.isLogCorrelationEnabled = false
+ opentracing.SetGlobalTracer(opentracing.NoopTracer{})
+ return traceCloser{}, nil
+ }
+
+ tracer, _, err := lfm.constructJaegerTracer(tracePublishEnabled, traceAgentAddress, true)
+ if err != nil {
+ return nil, err
+ }
+
+ // Initialize variables representing Active Status
+ opentracing.SetGlobalTracer(tracer)
+ lfm.isTracePublishingEnabled = tracePublishEnabled
+ lfm.activeTraceAgentAddress = traceAgentAddress
+ lfm.isLogCorrelationEnabled = logCorrelationEnabled
+ return traceCloser{}, nil
+}
+
+// Method to replace Active Tracer along with graceful closer of previous tracer
+func (lfm *LogFeaturesManager) replaceActiveTracer(tracer opentracing.Tracer) {
+ currentActiveTracer := opentracing.GlobalTracer()
+ opentracing.SetGlobalTracer(tracer)
+
+ if currentActiveTracer != nil {
+ if jTracer, ok := currentActiveTracer.(*jtracing.Tracer); ok {
+ jTracer.Close()
+ }
+ }
+}
+
+func (lfm *LogFeaturesManager) GetLogCorrelationStatus() bool {
+ lfm.lock.Lock()
+ defer lfm.lock.Unlock()
+
+ return lfm.isLogCorrelationEnabled
+}
+
+func (lfm *LogFeaturesManager) SetLogCorrelationStatus(isEnabled bool) {
+ lfm.lock.Lock()
+ defer lfm.lock.Unlock()
+
+ if isEnabled == lfm.isLogCorrelationEnabled {
+ logger.Debugf(context.Background(), "Ignoring Log Correlation Set operation with value %t; current Status same as desired", isEnabled)
+ return
+ }
+
+ if isEnabled {
+ // Construct new Tracer instance if Log Correlation has been enabled and current active tracer is a NoopTracer instance.
+ // Continue using the earlier tracer instance in case of any error
+ if _, ok := opentracing.GlobalTracer().(opentracing.NoopTracer); ok {
+ tracer, _, err := lfm.constructJaegerTracer(lfm.isTracePublishingEnabled, lfm.activeTraceAgentAddress, false)
+ if err != nil {
+ logger.Warnf(context.Background(), "Log Correlation Enable operation failed with error: %s", err.Error())
+ return
+ }
+
+ lfm.replaceActiveTracer(tracer)
+ }
+
+ lfm.isLogCorrelationEnabled = true
+ logger.Info(context.Background(), "Log Correlation has been enabled")
+
+ } else {
+ // Switch to NoopTracer when Log Correlation has been disabled and Tracing Publish is already disabled
+ if _, ok := opentracing.GlobalTracer().(opentracing.NoopTracer); !ok && !lfm.isTracePublishingEnabled {
+ lfm.replaceActiveTracer(opentracing.NoopTracer{})
+ }
+
+ lfm.isLogCorrelationEnabled = false
+ logger.Info(context.Background(), "Log Correlation has been disabled")
+ }
+}
+
+func (lfm *LogFeaturesManager) GetTracePublishingStatus() bool {
+ lfm.lock.Lock()
+ defer lfm.lock.Unlock()
+
+ return lfm.isTracePublishingEnabled
+}
+
+func (lfm *LogFeaturesManager) SetTracePublishingStatus(isEnabled bool) {
+ lfm.lock.Lock()
+ defer lfm.lock.Unlock()
+
+ if isEnabled == lfm.isTracePublishingEnabled {
+ logger.Debugf(context.Background(), "Ignoring Trace Publishing Set operation with value %t; current Status same as desired", isEnabled)
+ return
+ }
+
+ if isEnabled {
+ // Construct new Tracer instance if Tracing Publish has been enabled (even if a Jaeger instance is already active)
+ // This is needed to ensure that a fresh lookup of Jaeger Agent address is performed again while performing
+ // Disable-Enable of Tracing
+ tracer, _, err := lfm.constructJaegerTracer(isEnabled, lfm.activeTraceAgentAddress, false)
+ if err != nil {
+ logger.Warnf(context.Background(), "Trace Publishing Enable operation failed with error: %s", err.Error())
+ return
+ }
+ lfm.replaceActiveTracer(tracer)
+
+ lfm.isTracePublishingEnabled = true
+ logger.Info(context.Background(), "Tracing Publishing has been enabled")
+ } else {
+ // Switch to NoopTracer when Tracing Publish has been disabled and Log Correlation is already disabled
+ if !lfm.isLogCorrelationEnabled {
+ lfm.replaceActiveTracer(opentracing.NoopTracer{})
+ } else {
+ // Else construct a new Jaeger Instance with publishing disabled
+ tracer, _, err := lfm.constructJaegerTracer(isEnabled, lfm.activeTraceAgentAddress, false)
+ if err != nil {
+ logger.Warnf(context.Background(), "Trace Publishing Disable operation failed with error: %s", err.Error())
+ return
+ }
+ lfm.replaceActiveTracer(tracer)
+ }
+
+ lfm.isTracePublishingEnabled = false
+ logger.Info(context.Background(), "Tracing Publishing has been disabled")
+ }
+}
+
+// Method to contruct a new Jaeger Tracer instance based on given Trace Agent address and Publish status.
+// The last attribute indicates whether to use Loopback IP for creating Jaeger Client when the DNS lookup
+// of supplied Trace Agent address has failed. It is fine to fallback during the initialization step, but
+// not later (when enabling/disabling the status dynamically)
+func (lfm *LogFeaturesManager) constructJaegerTracer(tracePublishEnabled bool, traceAgentAddress string, fallbackToLoopbackAllowed bool) (opentracing.Tracer, io.Closer, error) {
+ cfg := jcfg.Configuration{ServiceName: lfm.componentName}
+
+ var err error
+ var jReporterConfig jcfg.ReporterConfig
+ var jReporterCfgOption jtracing.Reporter
+
+ logger.Info(context.Background(), "Constructing new Jaeger Tracer instance")
+
+ // Attempt Trace Agent Address first; will fallback to Loopback IP if it fails
+ jReporterConfig = jcfg.ReporterConfig{LocalAgentHostPort: traceAgentAddress, LogSpans: true}
+ jReporterCfgOption, err = jReporterConfig.NewReporter(lfm.componentName, jtracing.NewNullMetrics(), traceLogger{logger: logger.(*clogger)})
+
+ if err != nil {
+ if !fallbackToLoopbackAllowed {
+ return nil, nil, errors.New("Reporter Creation for given Trace Agent address " + traceAgentAddress + " failed with error : " + err.Error())
+ }
+
+ logger.Infow(context.Background(), "Unable to create Reporter with given Trace Agent address",
+ Fields{"error": err, "address": traceAgentAddress})
+ // The Reporter initialization may fail due to Invalid Agent address or non-existent Agent (DNS lookup failure).
+ // It is essential for Tracer Instance to still start for correct Span propagation needed for log correlation.
+ // Thus, falback to use loopback IP for Reporter initialization before throwing back any error
+ tracePublishEnabled = false
+
+ jReporterConfig.LocalAgentHostPort = "127.0.0.1:6831"
+ jReporterCfgOption, err = jReporterConfig.NewReporter(lfm.componentName, jtracing.NewNullMetrics(), traceLogger{logger: logger.(*clogger)})
+ if err != nil {
+ return nil, nil, errors.New("Failed to initialize Jaeger Tracing due to Reporter creation error : " + err.Error())
+ }
+ }
+
+ // To start with, we are using Constant Sampling type
+ samplerParam := 0 // 0: Do not publish span, 1: Publish
+ if tracePublishEnabled {
+ samplerParam = 1
+ }
+ jSamplerConfig := jcfg.SamplerConfig{Type: "const", Param: float64(samplerParam)}
+ jSamplerCfgOption, err := jSamplerConfig.NewSampler(lfm.componentName, jtracing.NewNullMetrics())
+ if err != nil {
+ return nil, nil, errors.New("Unable to create Sampler : " + err.Error())
+ }
+
+ return cfg.NewTracer(jcfg.Reporter(jReporterCfgOption), jcfg.Sampler(jSamplerCfgOption))
+}
+
+func TerminateTracing(c io.Closer) {
+ err := c.Close()
+ if err != nil {
+ logger.Error(context.Background(), "error-while-closing-jaeger-tracer", Fields{"err": err})
+ }
+}
+
+// Extracts details of Execution Context as log fields from the Tracing Span injected into the
+// context instance. Following log fields are extracted:
+// 1. Operation Name : key as 'op-name' and value as Span operation name
+// 2. Operation Id : key as 'op-id' and value as 64 bit Span Id in hex digits string
+//
+// Additionally, any tags present in Span are also extracted to use as log fields e.g. device-id.
+//
+// If no Span is found associated with context, blank slice is returned without any log fields
+func (lfm *LogFeaturesManager) ExtractContextAttributes(ctx context.Context) []interface{} {
+ if !lfm.isLogCorrelationEnabled {
+ return make([]interface{}, 0)
+ }
+
+ attrMap := make(map[string]interface{})
+
+ if ctx != nil {
+ if span := opentracing.SpanFromContext(ctx); span != nil {
+ if jspan, ok := span.(*jtracing.Span); ok {
+ // Add Log fields for operation identified by Root Level Span (Trace)
+ opId := fmt.Sprintf("%016x", jspan.SpanContext().TraceID().Low) // Using Sprintf to avoid removal of leading 0s
+ opName := jspan.BaggageItem(RootSpanNameKey)
+
+ taskId := fmt.Sprintf("%016x", uint64(jspan.SpanContext().SpanID())) // Using Sprintf to avoid removal of leading 0s
+ taskName := jspan.OperationName()
+
+ if opName == "" {
+ span.SetBaggageItem(RootSpanNameKey, taskName)
+ opName = taskName
+ }
+
+ attrMap["op-id"] = opId
+ attrMap["op-name"] = opName
+
+ // Add Log fields for task identified by Current Span, if it is different
+ // than operation
+ if taskId != opId {
+ attrMap["task-id"] = taskId
+ attrMap["task-name"] = taskName
+ }
+
+ for k, v := range jspan.Tags() {
+ // Ignore the special tags added by Jaeger, middleware (sampler.type, span.*) present in the span
+ if strings.HasPrefix(k, "sampler.") || strings.HasPrefix(k, "span.") || k == "component" {
+ continue
+ }
+
+ attrMap[k] = v
+ }
+
+ processBaggageItems := func(k, v string) bool {
+ if k != "rpc-span-name" {
+ attrMap[k] = v
+ }
+ return true
+ }
+
+ jspan.SpanContext().ForeachBaggageItem(processBaggageItems)
+ }
+ }
+ }
+
+ return serializeMap(attrMap)
+}
+
+// Method to inject additional log fields into Span e.g. device-id
+func EnrichSpan(ctx context.Context, keyAndValues ...Fields) {
+ span := opentracing.SpanFromContext(ctx)
+ if span != nil {
+ if jspan, ok := span.(*jtracing.Span); ok {
+ // Inject as a BaggageItem when the Span is the Root Span so that it propagates
+ // across the components along with Root Span (called as Trace)
+ // Else, inject as a Tag so that it is attached to the Child Task
+ isRootSpan := false
+ if jspan.SpanContext().TraceID().String() == jspan.SpanContext().SpanID().String() {
+ isRootSpan = true
+ }
+
+ for _, field := range keyAndValues {
+ for k, v := range field {
+ if isRootSpan {
+ span.SetBaggageItem(k, v.(string))
+ } else {
+ span.SetTag(k, v)
+ }
+ }
+ }
+ }
+ }
+}
+
+// Method to inject Error into the Span in event of any operation failure
+func MarkSpanError(ctx context.Context, err error) {
+ span := opentracing.SpanFromContext(ctx)
+ if span != nil {
+ span.SetTag("error", true)
+ span.SetTag("err", err)
+ }
+}
+
+// Creates a Child Span from Parent Span embedded in passed context. Should be used before starting a new major
+// operation in Synchronous or Asynchronous mode (go routine), such as following:
+// 1. Start of all implemented External API methods unless using a interceptor for auto-injection of Span (Server side impl)
+// 2. Just before calling an Third-Party lib which is invoking a External API (etcd, kafka)
+// 3. In start of a Go Routine responsible for performing a major task involving significant duration
+// 4. Any method which is suspected to be time consuming...
+func CreateChildSpan(ctx context.Context, taskName string, keyAndValues ...Fields) (opentracing.Span, context.Context) {
+ if !GetGlobalLFM().GetLogCorrelationStatus() && !GetGlobalLFM().GetTracePublishingStatus() {
+ return opentracing.NoopTracer{}.StartSpan(taskName), ctx
+ }
+
+ parentSpan := opentracing.SpanFromContext(ctx)
+ childSpan, newCtx := opentracing.StartSpanFromContext(ctx, taskName)
+
+ if parentSpan == nil || parentSpan.BaggageItem(RootSpanNameKey) == "" {
+ childSpan.SetBaggageItem(RootSpanNameKey, taskName)
+ }
+
+ EnrichSpan(newCtx, keyAndValues...)
+ return childSpan, newCtx
+}
+
+// Creates a Async Child Span with Follows-From relationship from Parent Span embedded in passed context.
+// Should be used only in scenarios when
+// a) There is dis-continuation in execution and thus result of Child span does not affect the Parent flow at all
+// b) The execution of Child Span is guaranteed to start after the completion of Parent Span
+// In case of any confusion, use CreateChildSpan method
+// Some situations where this method would be suitable includes Kafka Async RPC call, Propagation of Event across
+// a channel etc.
+func CreateAsyncSpan(ctx context.Context, taskName string, keyAndValues ...Fields) (opentracing.Span, context.Context) {
+ if !GetGlobalLFM().GetLogCorrelationStatus() && !GetGlobalLFM().GetTracePublishingStatus() {
+ return opentracing.NoopTracer{}.StartSpan(taskName), ctx
+ }
+
+ var asyncSpan opentracing.Span
+ var newCtx context.Context
+
+ parentSpan := opentracing.SpanFromContext(ctx)
+
+ // We should always be creating Aysnc span from a Valid parent span. If not, create a Child span instead
+ if parentSpan == nil {
+ logger.Warn(context.Background(), "Async span must be created with a Valid parent span only")
+ asyncSpan, newCtx = opentracing.StartSpanFromContext(ctx, taskName)
+ } else {
+ // Use Background context as the base for Follows-from case; else new span is getting both Child and FollowsFrom relationship
+ asyncSpan, newCtx = opentracing.StartSpanFromContext(context.Background(), taskName, opentracing.FollowsFrom(parentSpan.Context()))
+ }
+
+ if parentSpan == nil || parentSpan.BaggageItem(RootSpanNameKey) == "" {
+ asyncSpan.SetBaggageItem(RootSpanNameKey, taskName)
+ }
+
+ EnrichSpan(newCtx, keyAndValues...)
+ return asyncSpan, newCtx
+}
+
+// Extracts the span from Source context and injects into the supplied Target context.
+// This should be used in situations wherein we are calling a time-sensitive operation (etcd update) and hence
+// had a context.Background() used earlier to avoid any cancellation/timeout of operation by passed context.
+// This will allow propagation of span with a different base context (and not the original context)
+func WithSpanFromContext(targetCtx, sourceCtx context.Context) context.Context {
+ span := opentracing.SpanFromContext(sourceCtx)
+ return opentracing.ContextWithSpan(targetCtx, span)
+}
+
+// Utility method to convert log Fields into array of interfaces expected by zap logger methods
+func serializeMap(fields Fields) []interface{} {
+ data := make([]interface{}, len(fields)*2)
+ i := 0
+ for k, v := range fields {
+ data[i] = k
+ data[i+1] = v
+ i = i + 2
+ }
+ return data
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/probe/common.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/probe/common.go
new file mode 100644
index 0000000..d9739af
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/probe/common.go
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package probe
+
+import (
+ "github.com/opencord/voltha-lib-go/v4/pkg/log"
+)
+
+var logger log.CLogger
+
+func init() {
+ // Setup this package so that it's log level can be modified at run time
+ var err error
+ logger, err = log.RegisterPackage(log.JSON, log.ErrorLevel, log.Fields{})
+ if err != nil {
+ panic(err)
+ }
+}
diff --git a/vendor/github.com/opencord/voltha-lib-go/v4/pkg/probe/probe.go b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/probe/probe.go
new file mode 100644
index 0000000..f13f257
--- /dev/null
+++ b/vendor/github.com/opencord/voltha-lib-go/v4/pkg/probe/probe.go
@@ -0,0 +1,305 @@
+/*
+ * Copyright 2019-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package probe
+
+import (
+ "context"
+ "fmt"
+ "github.com/opencord/voltha-lib-go/v4/pkg/log"
+ "net/http"
+ "sync"
+)
+
+// ProbeContextKey used to fetch the Probe instance from a context
+type ProbeContextKeyType string
+
+// ServiceStatus typed values for service status
+type ServiceStatus int
+
+const (
+ // ServiceStatusUnknown initial state of services
+ ServiceStatusUnknown ServiceStatus = iota
+
+ // ServiceStatusPreparing to optionally be used for prep, such as connecting
+ ServiceStatusPreparing
+
+ // ServiceStatusPrepared to optionally be used when prep is complete, but before run
+ ServiceStatusPrepared
+
+ // ServiceStatusRunning service is functional
+ ServiceStatusRunning
+
+ // ServiceStatusStopped service has stopped, but not because of error
+ ServiceStatusStopped
+
+ // ServiceStatusFailed service has stopped because of an error
+ ServiceStatusFailed
+
+ // ServiceStatusNotReady service has started but is unable to accept requests
+ ServiceStatusNotReady
+)
+
+const (
+ // ProbeContextKey value of context key to fetch probe
+ ProbeContextKey = ProbeContextKeyType("status-update-probe")
+)
+
+// String convert ServiceStatus values to strings
+func (s ServiceStatus) String() string {
+ switch s {
+ default:
+ fallthrough
+ case ServiceStatusUnknown:
+ return "Unknown"
+ case ServiceStatusPreparing:
+ return "Preparing"
+ case ServiceStatusPrepared:
+ return "Prepared"
+ case ServiceStatusRunning:
+ return "Running"
+ case ServiceStatusStopped:
+ return "Stopped"
+ case ServiceStatusFailed:
+ return "Failed"
+ case ServiceStatusNotReady:
+ return "NotReady"
+ }
+}
+
+// ServiceStatusUpdate status update event
+type ServiceStatusUpdate struct {
+ Name string
+ Status ServiceStatus
+}
+
+// Probe reciever on which to implement probe capabilities
+type Probe struct {
+ readyFunc func(map[string]ServiceStatus) bool
+ healthFunc func(map[string]ServiceStatus) bool
+
+ mutex sync.RWMutex
+ status map[string]ServiceStatus
+ isReady bool
+ isHealthy bool
+}
+
+// WithReadyFunc override the default ready calculation function
+func (p *Probe) WithReadyFunc(readyFunc func(map[string]ServiceStatus) bool) *Probe {
+ p.readyFunc = readyFunc
+ return p
+}
+
+// WithHealthFunc override the default health calculation function
+func (p *Probe) WithHealthFunc(healthFunc func(map[string]ServiceStatus) bool) *Probe {
+ p.healthFunc = healthFunc
+ return p
+}
+
+// RegisterService register one or more service names with the probe, status will be track against service name
+func (p *Probe) RegisterService(ctx context.Context, names ...string) {
+ p.mutex.Lock()
+ defer p.mutex.Unlock()
+ if p.status == nil {
+ p.status = make(map[string]ServiceStatus)
+ }
+ for _, name := range names {
+ if _, ok := p.status[name]; !ok {
+ p.status[name] = ServiceStatusUnknown
+ logger.Debugw(ctx, "probe-service-registered", log.Fields{"service-name": name})
+ }
+ }
+
+ if p.readyFunc != nil {
+ p.isReady = p.readyFunc(p.status)
+ } else {
+ p.isReady = defaultReadyFunc(p.status)
+ }
+
+ if p.healthFunc != nil {
+ p.isHealthy = p.healthFunc(p.status)
+ } else {
+ p.isHealthy = defaultHealthFunc(p.status)
+ }
+}
+
+// UpdateStatus utility function to send a service update to the probe
+func (p *Probe) UpdateStatus(ctx context.Context, name string, status ServiceStatus) {
+ p.mutex.Lock()
+ defer p.mutex.Unlock()
+ if p.status == nil {
+ p.status = make(map[string]ServiceStatus)
+ }
+
+ // if status hasn't changed, avoid doing useless work
+ existingStatus, ok := p.status[name]
+ if ok && (existingStatus == status) {
+ return
+ }
+
+ p.status[name] = status
+ if p.readyFunc != nil {
+ p.isReady = p.readyFunc(p.status)
+ } else {
+ p.isReady = defaultReadyFunc(p.status)
+ }
+
+ if p.healthFunc != nil {
+ p.isHealthy = p.healthFunc(p.status)
+ } else {
+ p.isHealthy = defaultHealthFunc(p.status)
+ }
+ logger.Debugw(ctx, "probe-service-status-updated",
+ log.Fields{
+ "service-name": name,
+ "status": status.String(),
+ "ready": p.isReady,
+ "health": p.isHealthy,
+ })
+}
+
+func (p *Probe) GetStatus(name string) ServiceStatus {
+ p.mutex.Lock()
+ defer p.mutex.Unlock()
+
+ if p.status == nil {
+ p.status = make(map[string]ServiceStatus)
+ }
+
+ currentStatus, ok := p.status[name]
+ if ok {
+ return currentStatus
+ }
+
+ return ServiceStatusUnknown
+}
+
+func GetProbeFromContext(ctx context.Context) *Probe {
+ if ctx != nil {
+ if value := ctx.Value(ProbeContextKey); value != nil {
+ if p, ok := value.(*Probe); ok {
+ return p
+ }
+ }
+ }
+ return nil
+}
+
+// UpdateStatusFromContext a convenience function to pull the Probe reference from the
+// Context, if it exists, and then calling UpdateStatus on that Probe reference. If Context
+// is nil or if a Probe reference is not associated with the ProbeContextKey then nothing
+// happens
+func UpdateStatusFromContext(ctx context.Context, name string, status ServiceStatus) {
+ p := GetProbeFromContext(ctx)
+ if p != nil {
+ p.UpdateStatus(ctx, name, status)
+ }
+}
+
+// pulled out to a function to help better enable unit testing
+func (p *Probe) readzFunc(w http.ResponseWriter, req *http.Request) {
+ p.mutex.RLock()
+ defer p.mutex.RUnlock()
+ if p.isReady {
+ w.WriteHeader(http.StatusOK)
+ } else {
+ w.WriteHeader(http.StatusTeapot)
+ }
+}
+func (p *Probe) healthzFunc(w http.ResponseWriter, req *http.Request) {
+ p.mutex.RLock()
+ defer p.mutex.RUnlock()
+ if p.isHealthy {
+ w.WriteHeader(http.StatusOK)
+ } else {
+ w.WriteHeader(http.StatusTeapot)
+ }
+}
+func (p *Probe) detailzFunc(w http.ResponseWriter, req *http.Request) {
+ ctx := context.Background()
+ p.mutex.RLock()
+ defer p.mutex.RUnlock()
+ w.Header().Set("Content-Type", "application/json")
+ if _, err := w.Write([]byte("{")); err != nil {
+ logger.Errorw(ctx, "write-response", log.Fields{"error": err})
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+ comma := ""
+ for c, s := range p.status {
+ if _, err := w.Write([]byte(fmt.Sprintf("%s\"%s\": \"%s\"", comma, c, s.String()))); err != nil {
+ logger.Errorw(ctx, "write-response", log.Fields{"error": err})
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+ comma = ", "
+ }
+ if _, err := w.Write([]byte("}")); err != nil {
+ logger.Errorw(ctx, "write-response", log.Fields{"error": err})
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+ w.WriteHeader(http.StatusOK)
+}
+
+// ListenAndServe implements 3 HTTP endpoints on the given port for healthz, readz, and detailz. Returns only on error
+func (p *Probe) ListenAndServe(ctx context.Context, address string) {
+ mux := http.NewServeMux()
+
+ // Returns the result of the readyFunc calculation
+ mux.HandleFunc("/readz", p.readzFunc)
+
+ // Returns the result of the healthFunc calculation
+ mux.HandleFunc("/healthz", p.healthzFunc)
+
+ // Returns the details of the services and their status as JSON
+ mux.HandleFunc("/detailz", p.detailzFunc)
+ s := &http.Server{
+ Addr: address,
+ Handler: mux,
+ }
+ logger.Fatal(ctx, s.ListenAndServe())
+}
+
+func (p *Probe) IsReady() bool {
+ return p.isReady
+}
+
+// defaultReadyFunc if all services are running then ready, else not
+func defaultReadyFunc(services map[string]ServiceStatus) bool {
+ if len(services) == 0 {
+ return false
+ }
+ for _, status := range services {
+ if status != ServiceStatusRunning {
+ return false
+ }
+ }
+ return true
+}
+
+// defaultHealthFunc if no service is stopped or failed, then healthy, else not.
+// service is start as unknown, so they are considered healthy
+func defaultHealthFunc(services map[string]ServiceStatus) bool {
+ if len(services) == 0 {
+ return false
+ }
+ for _, status := range services {
+ if status == ServiceStatusStopped || status == ServiceStatusFailed {
+ return false
+ }
+ }
+ return true
+}