Device Plugin API change to include Topology Info in Devices

This commit is contained in:
lmdaly 2019-02-22 09:11:26 +00:00 committed by Louise Daly
parent fc4cbf743a
commit c1fb5bd508
2 changed files with 343 additions and 0 deletions

View File

@ -17,6 +17,31 @@ limitations under the License.
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api.proto
<<<<<<< HEAD
=======
/*
Package v1beta1 is a generated protocol buffer package.
It is generated from these files:
api.proto
It has these top-level messages:
DevicePluginOptions
RegisterRequest
Empty
ListAndWatchResponse
TopologyInfo
Device
PreStartContainerRequest
PreStartContainerResponse
AllocateRequest
ContainerAllocateRequest
AllocateResponse
ContainerAllocateResponse
Mount
DeviceSpec
*/
>>>>>>> Device Plugin API change to include Topology Info in Devices
package v1beta1
import (
@ -251,17 +276,39 @@ func (m *ListAndWatchResponse) GetDevices() []*Device {
return nil
}
type TopologyInfo struct {
Socket int64 `protobuf:"varint,1,opt,name=socket,proto3" json:"socket,omitempty"`
}
func (m *TopologyInfo) Reset() { *m = TopologyInfo{} }
func (*TopologyInfo) ProtoMessage() {}
func (*TopologyInfo) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{4} }
func (m *TopologyInfo) GetSocket() int64 {
if m != nil {
return m.Socket
}
return 0
}
// E.g:
// struct Device {
// ID: "GPU-fef8089b-4820-abfc-e83e-94318197576e",
// State: "Healthy",
<<<<<<< HEAD
//}
=======
// Topology:
// Socket: 1
// }
>>>>>>> Device Plugin API change to include Topology Info in Devices
type Device struct {
// A unique ID assigned by the device plugin used
// to identify devices during the communication
// Max length of this field is 63 characters
ID string `protobuf:"bytes,1,opt,name=ID,json=iD,proto3" json:"ID,omitempty"`
// Health of the device, can be healthy or unhealthy, see constants.go
<<<<<<< HEAD
Health string `protobuf:"bytes,2,opt,name=health,proto3" json:"health,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -298,6 +345,16 @@ func (m *Device) XXX_DiscardUnknown() {
}
var xxx_messageInfo_Device proto.InternalMessageInfo
=======
Health string `protobuf:"bytes,2,opt,name=health,proto3" json:"health,omitempty"`
// Topology for device
Topology *TopologyInfo `protobuf:"bytes,3,opt,name=topology" json:"topology,omitempty"`
}
func (m *Device) Reset() { *m = Device{} }
func (*Device) ProtoMessage() {}
func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{5} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *Device) GetID() string {
if m != nil {
@ -313,6 +370,13 @@ func (m *Device) GetHealth() string {
return ""
}
func (m *Device) GetTopology() *TopologyInfo {
if m != nil {
return m.Topology
}
return nil
}
// - PreStartContainer is expected to be called before each container start if indicated by plugin during registration phase.
// - PreStartContainer allows kubelet to pass reinitialized devices to containers.
// - PreStartContainer allows Device Plugin to run device specific operations on
@ -323,6 +387,7 @@ type PreStartContainerRequest struct {
XXX_sizecache int32 `json:"-"`
}
<<<<<<< HEAD
func (m *PreStartContainerRequest) Reset() { *m = PreStartContainerRequest{} }
func (*PreStartContainerRequest) ProtoMessage() {}
func (*PreStartContainerRequest) Descriptor() ([]byte, []int) {
@ -354,6 +419,11 @@ func (m *PreStartContainerRequest) XXX_DiscardUnknown() {
}
var xxx_messageInfo_PreStartContainerRequest proto.InternalMessageInfo
=======
func (m *PreStartContainerRequest) Reset() { *m = PreStartContainerRequest{} }
func (*PreStartContainerRequest) ProtoMessage() {}
func (*PreStartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{6} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *PreStartContainerRequest) GetDevicesIDs() []string {
if m != nil {
@ -368,6 +438,7 @@ type PreStartContainerResponse struct {
XXX_sizecache int32 `json:"-"`
}
<<<<<<< HEAD
func (m *PreStartContainerResponse) Reset() { *m = PreStartContainerResponse{} }
func (*PreStartContainerResponse) ProtoMessage() {}
func (*PreStartContainerResponse) Descriptor() ([]byte, []int) {
@ -399,6 +470,11 @@ func (m *PreStartContainerResponse) XXX_DiscardUnknown() {
}
var xxx_messageInfo_PreStartContainerResponse proto.InternalMessageInfo
=======
func (m *PreStartContainerResponse) Reset() { *m = PreStartContainerResponse{} }
func (*PreStartContainerResponse) ProtoMessage() {}
func (*PreStartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{7} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
// - Allocate is expected to be called during pod creation since allocation
// failures for any container would result in pod startup failure.
@ -412,6 +488,7 @@ type AllocateRequest struct {
XXX_sizecache int32 `json:"-"`
}
<<<<<<< HEAD
func (m *AllocateRequest) Reset() { *m = AllocateRequest{} }
func (*AllocateRequest) ProtoMessage() {}
func (*AllocateRequest) Descriptor() ([]byte, []int) {
@ -443,6 +520,11 @@ func (m *AllocateRequest) XXX_DiscardUnknown() {
}
var xxx_messageInfo_AllocateRequest proto.InternalMessageInfo
=======
func (m *AllocateRequest) Reset() { *m = AllocateRequest{} }
func (*AllocateRequest) ProtoMessage() {}
func (*AllocateRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{8} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *AllocateRequest) GetContainerRequests() []*ContainerAllocateRequest {
if m != nil {
@ -457,6 +539,7 @@ type ContainerAllocateRequest struct {
XXX_sizecache int32 `json:"-"`
}
<<<<<<< HEAD
func (m *ContainerAllocateRequest) Reset() { *m = ContainerAllocateRequest{} }
func (*ContainerAllocateRequest) ProtoMessage() {}
func (*ContainerAllocateRequest) Descriptor() ([]byte, []int) {
@ -488,6 +571,11 @@ func (m *ContainerAllocateRequest) XXX_DiscardUnknown() {
}
var xxx_messageInfo_ContainerAllocateRequest proto.InternalMessageInfo
=======
func (m *ContainerAllocateRequest) Reset() { *m = ContainerAllocateRequest{} }
func (*ContainerAllocateRequest) ProtoMessage() {}
func (*ContainerAllocateRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{9} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *ContainerAllocateRequest) GetDevicesIDs() []string {
if m != nil {
@ -540,7 +628,13 @@ func (m *AllocateResponse) XXX_DiscardUnknown() {
xxx_messageInfo_AllocateResponse.DiscardUnknown(m)
}
<<<<<<< HEAD
var xxx_messageInfo_AllocateResponse proto.InternalMessageInfo
=======
func (m *AllocateResponse) Reset() { *m = AllocateResponse{} }
func (*AllocateResponse) ProtoMessage() {}
func (*AllocateResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{10} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *AllocateResponse) GetContainerResponses() []*ContainerAllocateResponse {
if m != nil {
@ -562,6 +656,7 @@ type ContainerAllocateResponse struct {
XXX_sizecache int32 `json:"-"`
}
<<<<<<< HEAD
func (m *ContainerAllocateResponse) Reset() { *m = ContainerAllocateResponse{} }
func (*ContainerAllocateResponse) ProtoMessage() {}
func (*ContainerAllocateResponse) Descriptor() ([]byte, []int) {
@ -593,6 +688,11 @@ func (m *ContainerAllocateResponse) XXX_DiscardUnknown() {
}
var xxx_messageInfo_ContainerAllocateResponse proto.InternalMessageInfo
=======
func (m *ContainerAllocateResponse) Reset() { *m = ContainerAllocateResponse{} }
func (*ContainerAllocateResponse) ProtoMessage() {}
func (*ContainerAllocateResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{11} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *ContainerAllocateResponse) GetEnvs() map[string]string {
if m != nil {
@ -665,7 +765,13 @@ func (m *Mount) XXX_DiscardUnknown() {
xxx_messageInfo_Mount.DiscardUnknown(m)
}
<<<<<<< HEAD
var xxx_messageInfo_Mount proto.InternalMessageInfo
=======
func (m *Mount) Reset() { *m = Mount{} }
func (*Mount) ProtoMessage() {}
func (*Mount) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{12} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *Mount) GetContainerPath() string {
if m != nil {
@ -733,7 +839,13 @@ func (m *DeviceSpec) XXX_DiscardUnknown() {
xxx_messageInfo_DeviceSpec.DiscardUnknown(m)
}
<<<<<<< HEAD
var xxx_messageInfo_DeviceSpec proto.InternalMessageInfo
=======
func (m *DeviceSpec) Reset() { *m = DeviceSpec{} }
func (*DeviceSpec) ProtoMessage() {}
func (*DeviceSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{13} }
>>>>>>> Device Plugin API change to include Topology Info in Devices
func (m *DeviceSpec) GetContainerPath() string {
if m != nil {
@ -761,6 +873,7 @@ func init() {
proto.RegisterType((*RegisterRequest)(nil), "v1beta1.RegisterRequest")
proto.RegisterType((*Empty)(nil), "v1beta1.Empty")
proto.RegisterType((*ListAndWatchResponse)(nil), "v1beta1.ListAndWatchResponse")
proto.RegisterType((*TopologyInfo)(nil), "v1beta1.TopologyInfo")
proto.RegisterType((*Device)(nil), "v1beta1.Device")
proto.RegisterType((*PreStartContainerRequest)(nil), "v1beta1.PreStartContainerRequest")
proto.RegisterType((*PreStartContainerResponse)(nil), "v1beta1.PreStartContainerResponse")
@ -1287,6 +1400,29 @@ func (m *ListAndWatchResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *TopologyInfo) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *TopologyInfo) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if m.Socket != 0 {
dAtA[i] = 0x8
i++
i = encodeVarintApi(dAtA, i, uint64(m.Socket))
}
return i, nil
}
func (m *Device) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -1321,7 +1457,21 @@ func (m *Device) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0xa
}
<<<<<<< HEAD
return len(dAtA) - i, nil
=======
if m.Topology != nil {
dAtA[i] = 0x1a
i++
i = encodeVarintApi(dAtA, i, uint64(m.Topology.Size()))
n2, err := m.Topology.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n2
}
return i, nil
>>>>>>> Device Plugin API change to include Topology Info in Devices
}
func (m *PreStartContainerRequest) Marshal() (dAtA []byte, err error) {
@ -1737,6 +1887,15 @@ func (m *ListAndWatchResponse) Size() (n int) {
return n
}
func (m *TopologyInfo) Size() (n int) {
var l int
_ = l
if m.Socket != 0 {
n += 1 + sovApi(uint64(m.Socket))
}
return n
}
func (m *Device) Size() (n int) {
if m == nil {
return 0
@ -1751,6 +1910,10 @@ func (m *Device) Size() (n int) {
if l > 0 {
n += 1 + l + sovApi(uint64(l))
}
if m.Topology != nil {
l = m.Topology.Size()
n += 1 + l + sovApi(uint64(l))
}
return n
}
@ -1954,6 +2117,16 @@ func (this *ListAndWatchResponse) String() string {
}, "")
return s
}
func (this *TopologyInfo) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&TopologyInfo{`,
`Socket:` + fmt.Sprintf("%v", this.Socket) + `,`,
`}`,
}, "")
return s
}
func (this *Device) String() string {
if this == nil {
return "nil"
@ -1961,6 +2134,7 @@ func (this *Device) String() string {
s := strings.Join([]string{`&Device{`,
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`Health:` + fmt.Sprintf("%v", this.Health) + `,`,
`Topology:` + strings.Replace(fmt.Sprintf("%v", this.Topology), "TopologyInfo", "TopologyInfo", 1) + `,`,
`}`,
}, "")
return s
@ -2497,6 +2671,75 @@ func (m *ListAndWatchResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *TopologyInfo) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowApi
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: TopologyInfo: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: TopologyInfo: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Socket", wireType)
}
m.Socket = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowApi
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Socket |= (int64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipApi(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthApi
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *Device) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@ -2590,6 +2833,39 @@ func (m *Device) Unmarshal(dAtA []byte) error {
}
m.Health = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Topology", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowApi
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthApi
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Topology == nil {
m.Topology = &TopologyInfo{}
}
if err := m.Topology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipApi(dAtA[iNdEx:])
@ -3782,3 +4058,62 @@ var (
ErrInvalidLengthApi = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowApi = fmt.Errorf("proto: integer overflow")
)
<<<<<<< HEAD
=======
func init() { proto.RegisterFile("api.proto", fileDescriptorApi) }
var fileDescriptorApi = []byte{
// 798 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x4e, 0x33, 0x45,
0x18, 0xee, 0xb6, 0xd0, 0x9f, 0xb7, 0x05, 0xca, 0x80, 0x64, 0x59, 0x70, 0x53, 0xc7, 0x48, 0x30,
0x81, 0x22, 0x25, 0x41, 0xc3, 0x81, 0xb1, 0x52, 0x54, 0x12, 0x95, 0x66, 0xd1, 0x78, 0x62, 0xd2,
0x6c, 0xb7, 0x43, 0x77, 0xc3, 0x76, 0x66, 0xdd, 0x99, 0x36, 0xe9, 0x99, 0x07, 0x5e, 0x80, 0x17,
0xe1, 0x65, 0x78, 0x01, 0x1c, 0x7a, 0xe8, 0xa1, 0xd4, 0x1b, 0xf9, 0xb2, 0xb3, 0xbf, 0x59, 0x0a,
0x7c, 0x5f, 0xf2, 0x9d, 0xf5, 0xfd, 0x79, 0xde, 0x79, 0xde, 0x9f, 0x7d, 0x0a, 0x35, 0xd3, 0x73,
0xda, 0x9e, 0xcf, 0x04, 0x43, 0x95, 0xd9, 0xe9, 0x90, 0x08, 0xf3, 0x54, 0x3b, 0x1e, 0x3b, 0xc2,
0x9e, 0x0e, 0xdb, 0x16, 0x9b, 0x9c, 0x8c, 0xd9, 0x98, 0x9d, 0xc8, 0xf8, 0x70, 0x7a, 0x27, 0x2d,
0x69, 0xc8, 0x5f, 0x21, 0x0e, 0x5f, 0xc2, 0x56, 0x8f, 0xcc, 0x1c, 0x8b, 0xf4, 0xdd, 0xe9, 0xd8,
0xa1, 0x37, 0x9e, 0x70, 0x18, 0xe5, 0xe8, 0x08, 0x90, 0xe7, 0x93, 0x01, 0x17, 0xa6, 0x2f, 0x06,
0x3e, 0xf9, 0x6d, 0xea, 0xf8, 0x64, 0xa4, 0x2a, 0x2d, 0xe5, 0xb0, 0x6a, 0x34, 0x3d, 0x9f, 0xdc,
0x06, 0x01, 0x23, 0xf2, 0xe3, 0xbf, 0x14, 0xd8, 0x30, 0xc8, 0xd8, 0xe1, 0x82, 0xf8, 0x81, 0x93,
0x70, 0x81, 0x54, 0xa8, 0xcc, 0x88, 0xcf, 0x1d, 0x46, 0x25, 0xac, 0x66, 0xc4, 0x26, 0xd2, 0xa0,
0x4a, 0xe8, 0xc8, 0x63, 0x0e, 0x15, 0x6a, 0x51, 0x86, 0x12, 0x1b, 0x7d, 0x0c, 0x6b, 0x3e, 0xe1,
0x6c, 0xea, 0x5b, 0x64, 0x40, 0xcd, 0x09, 0x51, 0x4b, 0x32, 0xa1, 0x11, 0x3b, 0x7f, 0x34, 0x27,
0x04, 0x9d, 0x43, 0x85, 0x85, 0x3c, 0xd5, 0x95, 0x96, 0x72, 0x58, 0xef, 0xec, 0xb7, 0xa3, 0xee,
0xdb, 0x4b, 0x7a, 0x31, 0xe2, 0x64, 0x5c, 0x81, 0xd5, 0xab, 0x89, 0x27, 0xe6, 0xb8, 0x0b, 0xdb,
0xdf, 0x3b, 0x5c, 0x74, 0xe9, 0xe8, 0x17, 0x53, 0x58, 0xb6, 0x41, 0xb8, 0xc7, 0x28, 0x27, 0xe8,
0x53, 0xa8, 0x8c, 0x64, 0x01, 0xae, 0x2a, 0xad, 0xd2, 0x61, 0xbd, 0xb3, 0x91, 0x2b, 0x6c, 0xc4,
0x71, 0x7c, 0x00, 0x8d, 0x9f, 0x98, 0xc7, 0x5c, 0x36, 0x9e, 0x5f, 0xd3, 0x3b, 0x86, 0x76, 0xa0,
0xcc, 0x99, 0x75, 0x4f, 0x84, 0xec, 0xb6, 0x64, 0x44, 0x16, 0xb6, 0xa0, 0x1c, 0x42, 0xd1, 0x3a,
0x14, 0xaf, 0x7b, 0xd1, 0x2c, 0x8a, 0x4e, 0x2f, 0x40, 0xd8, 0xc4, 0x74, 0x85, 0x1d, 0x0d, 0x21,
0xb2, 0xd0, 0x29, 0x54, 0x45, 0x54, 0x59, 0x76, 0x5f, 0xef, 0x7c, 0x90, 0xb0, 0xc8, 0x3e, 0x69,
0x24, 0x69, 0xf8, 0x02, 0xd4, 0x7e, 0xb4, 0x93, 0x4b, 0x46, 0x85, 0xe9, 0xd0, 0x74, 0x0f, 0x3a,
0x40, 0xc4, 0xf9, 0xba, 0x17, 0xb6, 0x55, 0x33, 0x32, 0x1e, 0xbc, 0x07, 0xbb, 0x4b, 0xb0, 0xe1,
0x40, 0xb0, 0x05, 0x1b, 0x5d, 0xd7, 0x65, 0x96, 0x29, 0x48, 0x5c, 0xaf, 0x0f, 0xc8, 0x8a, 0xf3,
0xe4, 0x65, 0x10, 0x2e, 0xe2, 0x71, 0x7d, 0x94, 0x10, 0x4d, 0x4a, 0xe5, 0xe0, 0xc6, 0xa6, 0x95,
0x23, 0xc8, 0x03, 0xf6, 0xcf, 0xa5, 0xbf, 0xca, 0x7e, 0x0c, 0xcd, 0x14, 0x12, 0x6d, 0xf1, 0x16,
0xb6, 0xb2, 0x0c, 0x43, 0x6f, 0x4c, 0x11, 0xbf, 0x44, 0x31, 0x4c, 0x35, 0x90, 0x95, 0x1f, 0x04,
0xc7, 0x7f, 0x94, 0x60, 0xf7, 0x59, 0x04, 0xfa, 0x0a, 0x56, 0x08, 0x9d, 0xc5, 0x6f, 0x1c, 0xbd,
0xfe, 0x46, 0xfb, 0x8a, 0xce, 0xf8, 0x15, 0x15, 0xfe, 0xdc, 0x90, 0x48, 0x74, 0x00, 0xe5, 0x09,
0x9b, 0x52, 0xc1, 0xd5, 0xa2, 0xac, 0xb1, 0x9e, 0xd4, 0xf8, 0x21, 0x70, 0x1b, 0x51, 0x14, 0x1d,
0xa7, 0x27, 0x5a, 0x92, 0x89, 0x5b, 0xb9, 0x13, 0xbd, 0xf5, 0x88, 0x95, 0x9c, 0x29, 0xfa, 0x19,
0xea, 0x26, 0xa5, 0x4c, 0x98, 0xf1, 0xe7, 0x12, 0x40, 0xce, 0xde, 0x82, 0x5f, 0x37, 0x45, 0x85,
0x34, 0xb3, 0x75, 0xb4, 0xcf, 0xa1, 0x96, 0x34, 0x80, 0x9a, 0x50, 0xba, 0x27, 0xf3, 0xe8, 0xb2,
0x83, 0x9f, 0x68, 0x1b, 0x56, 0x67, 0xa6, 0x3b, 0x25, 0xd1, 0x65, 0x87, 0xc6, 0x45, 0xf1, 0x0b,
0x45, 0xfb, 0x12, 0x9a, 0xf9, 0xca, 0xef, 0x82, 0xc7, 0x36, 0xac, 0xca, 0x79, 0xa0, 0x4f, 0x60,
0x3d, 0x5d, 0xb2, 0x67, 0x0a, 0x3b, 0xc2, 0xaf, 0x25, 0xde, 0xbe, 0x29, 0x6c, 0xb4, 0x07, 0x35,
0x9b, 0x71, 0x11, 0x66, 0x44, 0x62, 0x13, 0x38, 0xe2, 0xa0, 0x4f, 0xcc, 0xd1, 0x80, 0x51, 0x37,
0xfc, 0xd4, 0xaa, 0x46, 0x35, 0x70, 0xdc, 0x50, 0x77, 0x8e, 0x7d, 0x80, 0x74, 0xa0, 0xef, 0xe5,
0xb9, 0x16, 0xd4, 0x3d, 0xe2, 0x4f, 0x1c, 0xce, 0xe5, 0x2e, 0x42, 0x65, 0xcb, 0xba, 0x3a, 0xdf,
0x40, 0x23, 0x94, 0x51, 0x5f, 0xce, 0x07, 0x9d, 0x43, 0x35, 0x96, 0x55, 0xa4, 0x26, 0x4b, 0xcb,
0x29, 0xad, 0x96, 0x9e, 0x4a, 0xa8, 0x6e, 0x85, 0xce, 0xdf, 0x45, 0x68, 0x64, 0x95, 0x10, 0x7d,
0x07, 0x3b, 0xdf, 0x12, 0xb1, 0x4c, 0xe8, 0x73, 0x60, 0xed, 0x45, 0x29, 0xc5, 0x05, 0xd4, 0x85,
0x46, 0x56, 0x3a, 0x9f, 0xe0, 0x3f, 0x4c, 0xec, 0x65, 0x0a, 0x8b, 0x0b, 0x9f, 0x29, 0xa8, 0x0b,
0xd5, 0xf8, 0xdc, 0x32, 0x5d, 0xe5, 0xbe, 0x7c, 0x6d, 0x77, 0x49, 0x24, 0x2e, 0x82, 0x7e, 0x85,
0xcd, 0x27, 0xa2, 0x85, 0x52, 0xf5, 0x79, 0x4e, 0x0c, 0x35, 0xfc, 0x52, 0x4a, 0x5c, 0xfd, 0xeb,
0xfd, 0x87, 0x47, 0x5d, 0xf9, 0xf7, 0x51, 0x2f, 0xfc, 0xbe, 0xd0, 0x95, 0x87, 0x85, 0xae, 0xfc,
0xb3, 0xd0, 0x95, 0xff, 0x16, 0xba, 0xf2, 0xe7, 0xff, 0x7a, 0x61, 0x58, 0x96, 0x7f, 0x9c, 0x67,
0x6f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x37, 0x3d, 0xda, 0xc8, 0x7d, 0x07, 0x00, 0x00,
}
>>>>>>> Device Plugin API change to include Topology Info in Devices

View File

@ -73,10 +73,16 @@ message ListAndWatchResponse {
repeated Device devices = 1;
}
message TopologyInfo {
int64 socket = 1;
}
/* E.g:
* struct Device {
* ID: "GPU-fef8089b-4820-abfc-e83e-94318197576e",
* State: "Healthy",
* Topology:
* Socket: 1
*} */
message Device {
// A unique ID assigned by the device plugin used
@ -85,6 +91,8 @@ message Device {
string ID = 1;
// Health of the device, can be healthy or unhealthy, see constants.go
string health = 2;
// Topology for device
TopologyInfo topology = 3;
}
// - PreStartContainer is expected to be called before each container start if indicated by plugin during registration phase.