github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/plugins/device/proto/device.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // source: plugins/device/proto/device.proto 3 4 package proto 5 6 import ( 7 context "context" 8 fmt "fmt" 9 proto "github.com/golang/protobuf/proto" 10 duration "github.com/golang/protobuf/ptypes/duration" 11 timestamp "github.com/golang/protobuf/ptypes/timestamp" 12 proto1 "github.com/hashicorp/nomad/plugins/shared/structs/proto" 13 grpc "google.golang.org/grpc" 14 codes "google.golang.org/grpc/codes" 15 status "google.golang.org/grpc/status" 16 math "math" 17 ) 18 19 // Reference imports to suppress errors if they are not otherwise used. 20 var _ = proto.Marshal 21 var _ = fmt.Errorf 22 var _ = math.Inf 23 24 // This is a compile-time assertion to ensure that this generated file 25 // is compatible with the proto package it is being compiled against. 26 // A compilation error at this line likely means your copy of the 27 // proto package needs to be updated. 28 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package 29 30 // FingerprintRequest is used to request for devices to be fingerprinted. 31 type FingerprintRequest struct { 32 XXX_NoUnkeyedLiteral struct{} `json:"-"` 33 XXX_unrecognized []byte `json:"-"` 34 XXX_sizecache int32 `json:"-"` 35 } 36 37 func (m *FingerprintRequest) Reset() { *m = FingerprintRequest{} } 38 func (m *FingerprintRequest) String() string { return proto.CompactTextString(m) } 39 func (*FingerprintRequest) ProtoMessage() {} 40 func (*FingerprintRequest) Descriptor() ([]byte, []int) { 41 return fileDescriptor_5edb0c35c07fa415, []int{0} 42 } 43 44 func (m *FingerprintRequest) XXX_Unmarshal(b []byte) error { 45 return xxx_messageInfo_FingerprintRequest.Unmarshal(m, b) 46 } 47 func (m *FingerprintRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 48 return xxx_messageInfo_FingerprintRequest.Marshal(b, m, deterministic) 49 } 50 func (m *FingerprintRequest) XXX_Merge(src proto.Message) { 51 xxx_messageInfo_FingerprintRequest.Merge(m, src) 52 } 53 func (m *FingerprintRequest) XXX_Size() int { 54 return xxx_messageInfo_FingerprintRequest.Size(m) 55 } 56 func (m *FingerprintRequest) XXX_DiscardUnknown() { 57 xxx_messageInfo_FingerprintRequest.DiscardUnknown(m) 58 } 59 60 var xxx_messageInfo_FingerprintRequest proto.InternalMessageInfo 61 62 // FingerprintResponse returns a set of detected devices. 63 type FingerprintResponse struct { 64 // device_group is a group of devices that share a vendor, device_type, and 65 // device_name. This is returned as a set so that a single plugin could 66 // potentially detect several device types and models. 67 DeviceGroup []*DeviceGroup `protobuf:"bytes,1,rep,name=device_group,json=deviceGroup,proto3" json:"device_group,omitempty"` 68 XXX_NoUnkeyedLiteral struct{} `json:"-"` 69 XXX_unrecognized []byte `json:"-"` 70 XXX_sizecache int32 `json:"-"` 71 } 72 73 func (m *FingerprintResponse) Reset() { *m = FingerprintResponse{} } 74 func (m *FingerprintResponse) String() string { return proto.CompactTextString(m) } 75 func (*FingerprintResponse) ProtoMessage() {} 76 func (*FingerprintResponse) Descriptor() ([]byte, []int) { 77 return fileDescriptor_5edb0c35c07fa415, []int{1} 78 } 79 80 func (m *FingerprintResponse) XXX_Unmarshal(b []byte) error { 81 return xxx_messageInfo_FingerprintResponse.Unmarshal(m, b) 82 } 83 func (m *FingerprintResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 84 return xxx_messageInfo_FingerprintResponse.Marshal(b, m, deterministic) 85 } 86 func (m *FingerprintResponse) XXX_Merge(src proto.Message) { 87 xxx_messageInfo_FingerprintResponse.Merge(m, src) 88 } 89 func (m *FingerprintResponse) XXX_Size() int { 90 return xxx_messageInfo_FingerprintResponse.Size(m) 91 } 92 func (m *FingerprintResponse) XXX_DiscardUnknown() { 93 xxx_messageInfo_FingerprintResponse.DiscardUnknown(m) 94 } 95 96 var xxx_messageInfo_FingerprintResponse proto.InternalMessageInfo 97 98 func (m *FingerprintResponse) GetDeviceGroup() []*DeviceGroup { 99 if m != nil { 100 return m.DeviceGroup 101 } 102 return nil 103 } 104 105 // DeviceGroup is a group of devices that share a vendor, device type and name. 106 type DeviceGroup struct { 107 // vendor is the name of the vendor of the device 108 Vendor string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"` 109 // device_type is the type of the device (gpu, fpga, etc). 110 DeviceType string `protobuf:"bytes,2,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"` 111 // device_name is the name of the device. 112 DeviceName string `protobuf:"bytes,3,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"` 113 // devices is the set of devices detected by the plugin. 114 Devices []*DetectedDevice `protobuf:"bytes,4,rep,name=devices,proto3" json:"devices,omitempty"` 115 // attributes allows adding attributes to be used for constraints or 116 // affinities. 117 Attributes map[string]*proto1.Attribute `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 118 XXX_NoUnkeyedLiteral struct{} `json:"-"` 119 XXX_unrecognized []byte `json:"-"` 120 XXX_sizecache int32 `json:"-"` 121 } 122 123 func (m *DeviceGroup) Reset() { *m = DeviceGroup{} } 124 func (m *DeviceGroup) String() string { return proto.CompactTextString(m) } 125 func (*DeviceGroup) ProtoMessage() {} 126 func (*DeviceGroup) Descriptor() ([]byte, []int) { 127 return fileDescriptor_5edb0c35c07fa415, []int{2} 128 } 129 130 func (m *DeviceGroup) XXX_Unmarshal(b []byte) error { 131 return xxx_messageInfo_DeviceGroup.Unmarshal(m, b) 132 } 133 func (m *DeviceGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 134 return xxx_messageInfo_DeviceGroup.Marshal(b, m, deterministic) 135 } 136 func (m *DeviceGroup) XXX_Merge(src proto.Message) { 137 xxx_messageInfo_DeviceGroup.Merge(m, src) 138 } 139 func (m *DeviceGroup) XXX_Size() int { 140 return xxx_messageInfo_DeviceGroup.Size(m) 141 } 142 func (m *DeviceGroup) XXX_DiscardUnknown() { 143 xxx_messageInfo_DeviceGroup.DiscardUnknown(m) 144 } 145 146 var xxx_messageInfo_DeviceGroup proto.InternalMessageInfo 147 148 func (m *DeviceGroup) GetVendor() string { 149 if m != nil { 150 return m.Vendor 151 } 152 return "" 153 } 154 155 func (m *DeviceGroup) GetDeviceType() string { 156 if m != nil { 157 return m.DeviceType 158 } 159 return "" 160 } 161 162 func (m *DeviceGroup) GetDeviceName() string { 163 if m != nil { 164 return m.DeviceName 165 } 166 return "" 167 } 168 169 func (m *DeviceGroup) GetDevices() []*DetectedDevice { 170 if m != nil { 171 return m.Devices 172 } 173 return nil 174 } 175 176 func (m *DeviceGroup) GetAttributes() map[string]*proto1.Attribute { 177 if m != nil { 178 return m.Attributes 179 } 180 return nil 181 } 182 183 // DetectedDevice is a single detected device. 184 type DetectedDevice struct { 185 // ID is the ID of the device. This ID is used during allocation and must be 186 // stable across restarts of the device driver. 187 ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` 188 // Health of the device. 189 Healthy bool `protobuf:"varint,2,opt,name=healthy,proto3" json:"healthy,omitempty"` 190 // health_description allows the device plugin to optionally 191 // annotate the health field with a human readable reason. 192 HealthDescription string `protobuf:"bytes,3,opt,name=health_description,json=healthDescription,proto3" json:"health_description,omitempty"` 193 // hw_locality is optionally set to expose hardware locality information for 194 // more optimal placement decisions. 195 HwLocality *DeviceLocality `protobuf:"bytes,4,opt,name=hw_locality,json=hwLocality,proto3" json:"hw_locality,omitempty"` 196 XXX_NoUnkeyedLiteral struct{} `json:"-"` 197 XXX_unrecognized []byte `json:"-"` 198 XXX_sizecache int32 `json:"-"` 199 } 200 201 func (m *DetectedDevice) Reset() { *m = DetectedDevice{} } 202 func (m *DetectedDevice) String() string { return proto.CompactTextString(m) } 203 func (*DetectedDevice) ProtoMessage() {} 204 func (*DetectedDevice) Descriptor() ([]byte, []int) { 205 return fileDescriptor_5edb0c35c07fa415, []int{3} 206 } 207 208 func (m *DetectedDevice) XXX_Unmarshal(b []byte) error { 209 return xxx_messageInfo_DetectedDevice.Unmarshal(m, b) 210 } 211 func (m *DetectedDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 212 return xxx_messageInfo_DetectedDevice.Marshal(b, m, deterministic) 213 } 214 func (m *DetectedDevice) XXX_Merge(src proto.Message) { 215 xxx_messageInfo_DetectedDevice.Merge(m, src) 216 } 217 func (m *DetectedDevice) XXX_Size() int { 218 return xxx_messageInfo_DetectedDevice.Size(m) 219 } 220 func (m *DetectedDevice) XXX_DiscardUnknown() { 221 xxx_messageInfo_DetectedDevice.DiscardUnknown(m) 222 } 223 224 var xxx_messageInfo_DetectedDevice proto.InternalMessageInfo 225 226 func (m *DetectedDevice) GetID() string { 227 if m != nil { 228 return m.ID 229 } 230 return "" 231 } 232 233 func (m *DetectedDevice) GetHealthy() bool { 234 if m != nil { 235 return m.Healthy 236 } 237 return false 238 } 239 240 func (m *DetectedDevice) GetHealthDescription() string { 241 if m != nil { 242 return m.HealthDescription 243 } 244 return "" 245 } 246 247 func (m *DetectedDevice) GetHwLocality() *DeviceLocality { 248 if m != nil { 249 return m.HwLocality 250 } 251 return nil 252 } 253 254 // DeviceLocality is used to expose HW locality information about a device. 255 type DeviceLocality struct { 256 // pci_bus_id is the PCI bus ID for the device. If reported, it 257 // allows Nomad to make NUMA aware optimizations. 258 PciBusId string `protobuf:"bytes,1,opt,name=pci_bus_id,json=pciBusId,proto3" json:"pci_bus_id,omitempty"` 259 XXX_NoUnkeyedLiteral struct{} `json:"-"` 260 XXX_unrecognized []byte `json:"-"` 261 XXX_sizecache int32 `json:"-"` 262 } 263 264 func (m *DeviceLocality) Reset() { *m = DeviceLocality{} } 265 func (m *DeviceLocality) String() string { return proto.CompactTextString(m) } 266 func (*DeviceLocality) ProtoMessage() {} 267 func (*DeviceLocality) Descriptor() ([]byte, []int) { 268 return fileDescriptor_5edb0c35c07fa415, []int{4} 269 } 270 271 func (m *DeviceLocality) XXX_Unmarshal(b []byte) error { 272 return xxx_messageInfo_DeviceLocality.Unmarshal(m, b) 273 } 274 func (m *DeviceLocality) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 275 return xxx_messageInfo_DeviceLocality.Marshal(b, m, deterministic) 276 } 277 func (m *DeviceLocality) XXX_Merge(src proto.Message) { 278 xxx_messageInfo_DeviceLocality.Merge(m, src) 279 } 280 func (m *DeviceLocality) XXX_Size() int { 281 return xxx_messageInfo_DeviceLocality.Size(m) 282 } 283 func (m *DeviceLocality) XXX_DiscardUnknown() { 284 xxx_messageInfo_DeviceLocality.DiscardUnknown(m) 285 } 286 287 var xxx_messageInfo_DeviceLocality proto.InternalMessageInfo 288 289 func (m *DeviceLocality) GetPciBusId() string { 290 if m != nil { 291 return m.PciBusId 292 } 293 return "" 294 } 295 296 // ReserveRequest is used to ask the device driver for information on 297 // how to allocate the requested devices. 298 type ReserveRequest struct { 299 // device_ids are the requested devices. 300 DeviceIds []string `protobuf:"bytes,1,rep,name=device_ids,json=deviceIds,proto3" json:"device_ids,omitempty"` 301 XXX_NoUnkeyedLiteral struct{} `json:"-"` 302 XXX_unrecognized []byte `json:"-"` 303 XXX_sizecache int32 `json:"-"` 304 } 305 306 func (m *ReserveRequest) Reset() { *m = ReserveRequest{} } 307 func (m *ReserveRequest) String() string { return proto.CompactTextString(m) } 308 func (*ReserveRequest) ProtoMessage() {} 309 func (*ReserveRequest) Descriptor() ([]byte, []int) { 310 return fileDescriptor_5edb0c35c07fa415, []int{5} 311 } 312 313 func (m *ReserveRequest) XXX_Unmarshal(b []byte) error { 314 return xxx_messageInfo_ReserveRequest.Unmarshal(m, b) 315 } 316 func (m *ReserveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 317 return xxx_messageInfo_ReserveRequest.Marshal(b, m, deterministic) 318 } 319 func (m *ReserveRequest) XXX_Merge(src proto.Message) { 320 xxx_messageInfo_ReserveRequest.Merge(m, src) 321 } 322 func (m *ReserveRequest) XXX_Size() int { 323 return xxx_messageInfo_ReserveRequest.Size(m) 324 } 325 func (m *ReserveRequest) XXX_DiscardUnknown() { 326 xxx_messageInfo_ReserveRequest.DiscardUnknown(m) 327 } 328 329 var xxx_messageInfo_ReserveRequest proto.InternalMessageInfo 330 331 func (m *ReserveRequest) GetDeviceIds() []string { 332 if m != nil { 333 return m.DeviceIds 334 } 335 return nil 336 } 337 338 // ReserveResponse informs Nomad how to expose the requested devices 339 // to the the task. 340 type ReserveResponse struct { 341 // container_res contains information on how to mount the device 342 // into a task isolated using container technologies (where the 343 // host is shared) 344 ContainerRes *ContainerReservation `protobuf:"bytes,1,opt,name=container_res,json=containerRes,proto3" json:"container_res,omitempty"` 345 XXX_NoUnkeyedLiteral struct{} `json:"-"` 346 XXX_unrecognized []byte `json:"-"` 347 XXX_sizecache int32 `json:"-"` 348 } 349 350 func (m *ReserveResponse) Reset() { *m = ReserveResponse{} } 351 func (m *ReserveResponse) String() string { return proto.CompactTextString(m) } 352 func (*ReserveResponse) ProtoMessage() {} 353 func (*ReserveResponse) Descriptor() ([]byte, []int) { 354 return fileDescriptor_5edb0c35c07fa415, []int{6} 355 } 356 357 func (m *ReserveResponse) XXX_Unmarshal(b []byte) error { 358 return xxx_messageInfo_ReserveResponse.Unmarshal(m, b) 359 } 360 func (m *ReserveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 361 return xxx_messageInfo_ReserveResponse.Marshal(b, m, deterministic) 362 } 363 func (m *ReserveResponse) XXX_Merge(src proto.Message) { 364 xxx_messageInfo_ReserveResponse.Merge(m, src) 365 } 366 func (m *ReserveResponse) XXX_Size() int { 367 return xxx_messageInfo_ReserveResponse.Size(m) 368 } 369 func (m *ReserveResponse) XXX_DiscardUnknown() { 370 xxx_messageInfo_ReserveResponse.DiscardUnknown(m) 371 } 372 373 var xxx_messageInfo_ReserveResponse proto.InternalMessageInfo 374 375 func (m *ReserveResponse) GetContainerRes() *ContainerReservation { 376 if m != nil { 377 return m.ContainerRes 378 } 379 return nil 380 } 381 382 // ContainerReservation returns how to mount the device into a 383 // container that shares the host OS. 384 type ContainerReservation struct { 385 // List of environment variable to be set 386 Envs map[string]string `protobuf:"bytes,1,rep,name=envs,proto3" json:"envs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 387 // Mounts for the task. 388 Mounts []*Mount `protobuf:"bytes,2,rep,name=mounts,proto3" json:"mounts,omitempty"` 389 // Devices for the task. 390 Devices []*DeviceSpec `protobuf:"bytes,3,rep,name=devices,proto3" json:"devices,omitempty"` 391 XXX_NoUnkeyedLiteral struct{} `json:"-"` 392 XXX_unrecognized []byte `json:"-"` 393 XXX_sizecache int32 `json:"-"` 394 } 395 396 func (m *ContainerReservation) Reset() { *m = ContainerReservation{} } 397 func (m *ContainerReservation) String() string { return proto.CompactTextString(m) } 398 func (*ContainerReservation) ProtoMessage() {} 399 func (*ContainerReservation) Descriptor() ([]byte, []int) { 400 return fileDescriptor_5edb0c35c07fa415, []int{7} 401 } 402 403 func (m *ContainerReservation) XXX_Unmarshal(b []byte) error { 404 return xxx_messageInfo_ContainerReservation.Unmarshal(m, b) 405 } 406 func (m *ContainerReservation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 407 return xxx_messageInfo_ContainerReservation.Marshal(b, m, deterministic) 408 } 409 func (m *ContainerReservation) XXX_Merge(src proto.Message) { 410 xxx_messageInfo_ContainerReservation.Merge(m, src) 411 } 412 func (m *ContainerReservation) XXX_Size() int { 413 return xxx_messageInfo_ContainerReservation.Size(m) 414 } 415 func (m *ContainerReservation) XXX_DiscardUnknown() { 416 xxx_messageInfo_ContainerReservation.DiscardUnknown(m) 417 } 418 419 var xxx_messageInfo_ContainerReservation proto.InternalMessageInfo 420 421 func (m *ContainerReservation) GetEnvs() map[string]string { 422 if m != nil { 423 return m.Envs 424 } 425 return nil 426 } 427 428 func (m *ContainerReservation) GetMounts() []*Mount { 429 if m != nil { 430 return m.Mounts 431 } 432 return nil 433 } 434 435 func (m *ContainerReservation) GetDevices() []*DeviceSpec { 436 if m != nil { 437 return m.Devices 438 } 439 return nil 440 } 441 442 // Mount specifies a host volume to mount into a task. 443 // where device library or tools are installed on host and task 444 type Mount struct { 445 // Path of the mount within the task. 446 TaskPath string `protobuf:"bytes,1,opt,name=task_path,json=taskPath,proto3" json:"task_path,omitempty"` 447 // Path of the mount on the host. 448 HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"` 449 // If set, the mount is read-only. 450 ReadOnly bool `protobuf:"varint,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` 451 XXX_NoUnkeyedLiteral struct{} `json:"-"` 452 XXX_unrecognized []byte `json:"-"` 453 XXX_sizecache int32 `json:"-"` 454 } 455 456 func (m *Mount) Reset() { *m = Mount{} } 457 func (m *Mount) String() string { return proto.CompactTextString(m) } 458 func (*Mount) ProtoMessage() {} 459 func (*Mount) Descriptor() ([]byte, []int) { 460 return fileDescriptor_5edb0c35c07fa415, []int{8} 461 } 462 463 func (m *Mount) XXX_Unmarshal(b []byte) error { 464 return xxx_messageInfo_Mount.Unmarshal(m, b) 465 } 466 func (m *Mount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 467 return xxx_messageInfo_Mount.Marshal(b, m, deterministic) 468 } 469 func (m *Mount) XXX_Merge(src proto.Message) { 470 xxx_messageInfo_Mount.Merge(m, src) 471 } 472 func (m *Mount) XXX_Size() int { 473 return xxx_messageInfo_Mount.Size(m) 474 } 475 func (m *Mount) XXX_DiscardUnknown() { 476 xxx_messageInfo_Mount.DiscardUnknown(m) 477 } 478 479 var xxx_messageInfo_Mount proto.InternalMessageInfo 480 481 func (m *Mount) GetTaskPath() string { 482 if m != nil { 483 return m.TaskPath 484 } 485 return "" 486 } 487 488 func (m *Mount) GetHostPath() string { 489 if m != nil { 490 return m.HostPath 491 } 492 return "" 493 } 494 495 func (m *Mount) GetReadOnly() bool { 496 if m != nil { 497 return m.ReadOnly 498 } 499 return false 500 } 501 502 // DeviceSpec specifies a host device to mount into a task. 503 type DeviceSpec struct { 504 // Path of the device within the task. 505 TaskPath string `protobuf:"bytes,1,opt,name=task_path,json=taskPath,proto3" json:"task_path,omitempty"` 506 // Path of the device on the host. 507 HostPath string `protobuf:"bytes,2,opt,name=host_path,json=hostPath,proto3" json:"host_path,omitempty"` 508 // Cgroups permissions of the device, candidates are one or more of 509 // * r - allows task to read from the specified device. 510 // * w - allows task to write to the specified device. 511 // * m - allows task to create device files that do not yet exist 512 Permissions string `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` 513 XXX_NoUnkeyedLiteral struct{} `json:"-"` 514 XXX_unrecognized []byte `json:"-"` 515 XXX_sizecache int32 `json:"-"` 516 } 517 518 func (m *DeviceSpec) Reset() { *m = DeviceSpec{} } 519 func (m *DeviceSpec) String() string { return proto.CompactTextString(m) } 520 func (*DeviceSpec) ProtoMessage() {} 521 func (*DeviceSpec) Descriptor() ([]byte, []int) { 522 return fileDescriptor_5edb0c35c07fa415, []int{9} 523 } 524 525 func (m *DeviceSpec) XXX_Unmarshal(b []byte) error { 526 return xxx_messageInfo_DeviceSpec.Unmarshal(m, b) 527 } 528 func (m *DeviceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 529 return xxx_messageInfo_DeviceSpec.Marshal(b, m, deterministic) 530 } 531 func (m *DeviceSpec) XXX_Merge(src proto.Message) { 532 xxx_messageInfo_DeviceSpec.Merge(m, src) 533 } 534 func (m *DeviceSpec) XXX_Size() int { 535 return xxx_messageInfo_DeviceSpec.Size(m) 536 } 537 func (m *DeviceSpec) XXX_DiscardUnknown() { 538 xxx_messageInfo_DeviceSpec.DiscardUnknown(m) 539 } 540 541 var xxx_messageInfo_DeviceSpec proto.InternalMessageInfo 542 543 func (m *DeviceSpec) GetTaskPath() string { 544 if m != nil { 545 return m.TaskPath 546 } 547 return "" 548 } 549 550 func (m *DeviceSpec) GetHostPath() string { 551 if m != nil { 552 return m.HostPath 553 } 554 return "" 555 } 556 557 func (m *DeviceSpec) GetPermissions() string { 558 if m != nil { 559 return m.Permissions 560 } 561 return "" 562 } 563 564 // StatsRequest is used to parameterize the retrieval of statistics. 565 type StatsRequest struct { 566 // collection_interval is the duration in which to collect statistics. 567 CollectionInterval *duration.Duration `protobuf:"bytes,1,opt,name=collection_interval,json=collectionInterval,proto3" json:"collection_interval,omitempty"` 568 XXX_NoUnkeyedLiteral struct{} `json:"-"` 569 XXX_unrecognized []byte `json:"-"` 570 XXX_sizecache int32 `json:"-"` 571 } 572 573 func (m *StatsRequest) Reset() { *m = StatsRequest{} } 574 func (m *StatsRequest) String() string { return proto.CompactTextString(m) } 575 func (*StatsRequest) ProtoMessage() {} 576 func (*StatsRequest) Descriptor() ([]byte, []int) { 577 return fileDescriptor_5edb0c35c07fa415, []int{10} 578 } 579 580 func (m *StatsRequest) XXX_Unmarshal(b []byte) error { 581 return xxx_messageInfo_StatsRequest.Unmarshal(m, b) 582 } 583 func (m *StatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 584 return xxx_messageInfo_StatsRequest.Marshal(b, m, deterministic) 585 } 586 func (m *StatsRequest) XXX_Merge(src proto.Message) { 587 xxx_messageInfo_StatsRequest.Merge(m, src) 588 } 589 func (m *StatsRequest) XXX_Size() int { 590 return xxx_messageInfo_StatsRequest.Size(m) 591 } 592 func (m *StatsRequest) XXX_DiscardUnknown() { 593 xxx_messageInfo_StatsRequest.DiscardUnknown(m) 594 } 595 596 var xxx_messageInfo_StatsRequest proto.InternalMessageInfo 597 598 func (m *StatsRequest) GetCollectionInterval() *duration.Duration { 599 if m != nil { 600 return m.CollectionInterval 601 } 602 return nil 603 } 604 605 // StatsResponse returns the statistics for each device group. 606 type StatsResponse struct { 607 // groups contains statistics for each device group. 608 Groups []*DeviceGroupStats `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"` 609 XXX_NoUnkeyedLiteral struct{} `json:"-"` 610 XXX_unrecognized []byte `json:"-"` 611 XXX_sizecache int32 `json:"-"` 612 } 613 614 func (m *StatsResponse) Reset() { *m = StatsResponse{} } 615 func (m *StatsResponse) String() string { return proto.CompactTextString(m) } 616 func (*StatsResponse) ProtoMessage() {} 617 func (*StatsResponse) Descriptor() ([]byte, []int) { 618 return fileDescriptor_5edb0c35c07fa415, []int{11} 619 } 620 621 func (m *StatsResponse) XXX_Unmarshal(b []byte) error { 622 return xxx_messageInfo_StatsResponse.Unmarshal(m, b) 623 } 624 func (m *StatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 625 return xxx_messageInfo_StatsResponse.Marshal(b, m, deterministic) 626 } 627 func (m *StatsResponse) XXX_Merge(src proto.Message) { 628 xxx_messageInfo_StatsResponse.Merge(m, src) 629 } 630 func (m *StatsResponse) XXX_Size() int { 631 return xxx_messageInfo_StatsResponse.Size(m) 632 } 633 func (m *StatsResponse) XXX_DiscardUnknown() { 634 xxx_messageInfo_StatsResponse.DiscardUnknown(m) 635 } 636 637 var xxx_messageInfo_StatsResponse proto.InternalMessageInfo 638 639 func (m *StatsResponse) GetGroups() []*DeviceGroupStats { 640 if m != nil { 641 return m.Groups 642 } 643 return nil 644 } 645 646 // DeviceGroupStats contains statistics for each device of a particular 647 // device group, identified by the vendor, type and name of the device. 648 type DeviceGroupStats struct { 649 Vendor string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"` 650 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` 651 Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` 652 // instance_stats is a mapping of each device ID to its statistics. 653 InstanceStats map[string]*DeviceStats `protobuf:"bytes,4,rep,name=instance_stats,json=instanceStats,proto3" json:"instance_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 654 XXX_NoUnkeyedLiteral struct{} `json:"-"` 655 XXX_unrecognized []byte `json:"-"` 656 XXX_sizecache int32 `json:"-"` 657 } 658 659 func (m *DeviceGroupStats) Reset() { *m = DeviceGroupStats{} } 660 func (m *DeviceGroupStats) String() string { return proto.CompactTextString(m) } 661 func (*DeviceGroupStats) ProtoMessage() {} 662 func (*DeviceGroupStats) Descriptor() ([]byte, []int) { 663 return fileDescriptor_5edb0c35c07fa415, []int{12} 664 } 665 666 func (m *DeviceGroupStats) XXX_Unmarshal(b []byte) error { 667 return xxx_messageInfo_DeviceGroupStats.Unmarshal(m, b) 668 } 669 func (m *DeviceGroupStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 670 return xxx_messageInfo_DeviceGroupStats.Marshal(b, m, deterministic) 671 } 672 func (m *DeviceGroupStats) XXX_Merge(src proto.Message) { 673 xxx_messageInfo_DeviceGroupStats.Merge(m, src) 674 } 675 func (m *DeviceGroupStats) XXX_Size() int { 676 return xxx_messageInfo_DeviceGroupStats.Size(m) 677 } 678 func (m *DeviceGroupStats) XXX_DiscardUnknown() { 679 xxx_messageInfo_DeviceGroupStats.DiscardUnknown(m) 680 } 681 682 var xxx_messageInfo_DeviceGroupStats proto.InternalMessageInfo 683 684 func (m *DeviceGroupStats) GetVendor() string { 685 if m != nil { 686 return m.Vendor 687 } 688 return "" 689 } 690 691 func (m *DeviceGroupStats) GetType() string { 692 if m != nil { 693 return m.Type 694 } 695 return "" 696 } 697 698 func (m *DeviceGroupStats) GetName() string { 699 if m != nil { 700 return m.Name 701 } 702 return "" 703 } 704 705 func (m *DeviceGroupStats) GetInstanceStats() map[string]*DeviceStats { 706 if m != nil { 707 return m.InstanceStats 708 } 709 return nil 710 } 711 712 // DeviceStats is the statistics for an individual device 713 type DeviceStats struct { 714 // summary exposes a single summary metric that should be the most 715 // informative to users. 716 Summary *proto1.StatValue `protobuf:"bytes,1,opt,name=summary,proto3" json:"summary,omitempty"` 717 // stats contains the verbose statistics for the device. 718 Stats *proto1.StatObject `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"` 719 // timestamp is the time the statistics were collected. 720 Timestamp *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` 721 XXX_NoUnkeyedLiteral struct{} `json:"-"` 722 XXX_unrecognized []byte `json:"-"` 723 XXX_sizecache int32 `json:"-"` 724 } 725 726 func (m *DeviceStats) Reset() { *m = DeviceStats{} } 727 func (m *DeviceStats) String() string { return proto.CompactTextString(m) } 728 func (*DeviceStats) ProtoMessage() {} 729 func (*DeviceStats) Descriptor() ([]byte, []int) { 730 return fileDescriptor_5edb0c35c07fa415, []int{13} 731 } 732 733 func (m *DeviceStats) XXX_Unmarshal(b []byte) error { 734 return xxx_messageInfo_DeviceStats.Unmarshal(m, b) 735 } 736 func (m *DeviceStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 737 return xxx_messageInfo_DeviceStats.Marshal(b, m, deterministic) 738 } 739 func (m *DeviceStats) XXX_Merge(src proto.Message) { 740 xxx_messageInfo_DeviceStats.Merge(m, src) 741 } 742 func (m *DeviceStats) XXX_Size() int { 743 return xxx_messageInfo_DeviceStats.Size(m) 744 } 745 func (m *DeviceStats) XXX_DiscardUnknown() { 746 xxx_messageInfo_DeviceStats.DiscardUnknown(m) 747 } 748 749 var xxx_messageInfo_DeviceStats proto.InternalMessageInfo 750 751 func (m *DeviceStats) GetSummary() *proto1.StatValue { 752 if m != nil { 753 return m.Summary 754 } 755 return nil 756 } 757 758 func (m *DeviceStats) GetStats() *proto1.StatObject { 759 if m != nil { 760 return m.Stats 761 } 762 return nil 763 } 764 765 func (m *DeviceStats) GetTimestamp() *timestamp.Timestamp { 766 if m != nil { 767 return m.Timestamp 768 } 769 return nil 770 } 771 772 func init() { 773 proto.RegisterType((*FingerprintRequest)(nil), "hashicorp.nomad.plugins.device.FingerprintRequest") 774 proto.RegisterType((*FingerprintResponse)(nil), "hashicorp.nomad.plugins.device.FingerprintResponse") 775 proto.RegisterType((*DeviceGroup)(nil), "hashicorp.nomad.plugins.device.DeviceGroup") 776 proto.RegisterMapType((map[string]*proto1.Attribute)(nil), "hashicorp.nomad.plugins.device.DeviceGroup.AttributesEntry") 777 proto.RegisterType((*DetectedDevice)(nil), "hashicorp.nomad.plugins.device.DetectedDevice") 778 proto.RegisterType((*DeviceLocality)(nil), "hashicorp.nomad.plugins.device.DeviceLocality") 779 proto.RegisterType((*ReserveRequest)(nil), "hashicorp.nomad.plugins.device.ReserveRequest") 780 proto.RegisterType((*ReserveResponse)(nil), "hashicorp.nomad.plugins.device.ReserveResponse") 781 proto.RegisterType((*ContainerReservation)(nil), "hashicorp.nomad.plugins.device.ContainerReservation") 782 proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.device.ContainerReservation.EnvsEntry") 783 proto.RegisterType((*Mount)(nil), "hashicorp.nomad.plugins.device.Mount") 784 proto.RegisterType((*DeviceSpec)(nil), "hashicorp.nomad.plugins.device.DeviceSpec") 785 proto.RegisterType((*StatsRequest)(nil), "hashicorp.nomad.plugins.device.StatsRequest") 786 proto.RegisterType((*StatsResponse)(nil), "hashicorp.nomad.plugins.device.StatsResponse") 787 proto.RegisterType((*DeviceGroupStats)(nil), "hashicorp.nomad.plugins.device.DeviceGroupStats") 788 proto.RegisterMapType((map[string]*DeviceStats)(nil), "hashicorp.nomad.plugins.device.DeviceGroupStats.InstanceStatsEntry") 789 proto.RegisterType((*DeviceStats)(nil), "hashicorp.nomad.plugins.device.DeviceStats") 790 } 791 792 func init() { 793 proto.RegisterFile("plugins/device/proto/device.proto", fileDescriptor_5edb0c35c07fa415) 794 } 795 796 var fileDescriptor_5edb0c35c07fa415 = []byte{ 797 // 979 bytes of a gzipped FileDescriptorProto 798 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xef, 0x8e, 0x1b, 0x35, 799 0x10, 0x27, 0xb9, 0xcb, 0x25, 0x99, 0xdc, 0x5d, 0x8b, 0x7b, 0x42, 0x61, 0x81, 0xf6, 0x58, 0x09, 800 0xa9, 0x02, 0xba, 0x29, 0x29, 0x12, 0x15, 0x08, 0xa4, 0xf6, 0x52, 0xee, 0xc2, 0x9f, 0x5e, 0xe5, 801 0x56, 0x48, 0x2d, 0x12, 0x2b, 0x67, 0xd7, 0x64, 0xdd, 0xee, 0xda, 0x8b, 0xed, 0x4d, 0x15, 0x3e, 802 0xf1, 0x38, 0x7c, 0xe1, 0x05, 0x78, 0x18, 0x3e, 0xf0, 0x24, 0x68, 0x6d, 0x6f, 0xb2, 0xf7, 0xa7, 803 0x24, 0x69, 0x3f, 0xad, 0x3d, 0x33, 0xbf, 0x99, 0xf1, 0xcc, 0xcf, 0xe3, 0x85, 0x0f, 0xf3, 0xb4, 804 0x98, 0x32, 0xae, 0x06, 0x31, 0x9d, 0xb1, 0x88, 0x0e, 0x72, 0x29, 0xb4, 0x70, 0x9b, 0xc0, 0x6c, 805 0xd0, 0xf5, 0x84, 0xa8, 0x84, 0x45, 0x42, 0xe6, 0x01, 0x17, 0x19, 0x89, 0x03, 0x07, 0x09, 0xac, 806 0x95, 0x77, 0x63, 0x2a, 0xc4, 0x34, 0x75, 0xd0, 0x49, 0xf1, 0xeb, 0x40, 0xb3, 0x8c, 0x2a, 0x4d, 807 0xb2, 0xdc, 0x3a, 0xf0, 0xae, 0x9f, 0x37, 0x88, 0x0b, 0x49, 0x34, 0x13, 0xdc, 0xe9, 0x8f, 0xa7, 808 0x4c, 0x27, 0xc5, 0x24, 0x88, 0x44, 0x36, 0x58, 0xc4, 0x1a, 0x98, 0x58, 0x83, 0x2a, 0x3d, 0x95, 809 0x10, 0x49, 0xe3, 0x81, 0xd2, 0xb2, 0x88, 0xb4, 0x72, 0x69, 0x12, 0xad, 0x25, 0x9b, 0x14, 0xda, 810 0x65, 0xea, 0x1d, 0xbd, 0xae, 0x23, 0xa5, 0x89, 0x56, 0xd6, 0x89, 0x7f, 0x00, 0xe8, 0x5b, 0xc6, 811 0xa7, 0x54, 0xe6, 0x92, 0x71, 0x8d, 0xe9, 0x6f, 0x05, 0x55, 0xda, 0xa7, 0x70, 0xed, 0x8c, 0x54, 812 0xe5, 0x82, 0x2b, 0x8a, 0x1e, 0xc2, 0xae, 0xad, 0x42, 0x38, 0x95, 0xa2, 0xc8, 0xfb, 0x8d, 0xc3, 813 0xad, 0x9b, 0xbd, 0xe1, 0x27, 0xc1, 0xff, 0x97, 0x2c, 0x18, 0x99, 0xcf, 0x71, 0x09, 0xc1, 0xbd, 814 0x78, 0xb9, 0xf1, 0xff, 0xd8, 0x82, 0x5e, 0x4d, 0x89, 0xde, 0x81, 0x9d, 0x19, 0xe5, 0xb1, 0x90, 815 0xfd, 0xc6, 0x61, 0xe3, 0x66, 0x17, 0xbb, 0x1d, 0xba, 0x01, 0x0e, 0x16, 0xea, 0x79, 0x4e, 0xfb, 816 0x4d, 0xa3, 0x04, 0x2b, 0x7a, 0x32, 0xcf, 0x69, 0xcd, 0x80, 0x93, 0x8c, 0xf6, 0xb7, 0xea, 0x06, 817 0x0f, 0x49, 0x46, 0xd1, 0x09, 0xb4, 0xed, 0x4e, 0xf5, 0xb7, 0x4d, 0xd2, 0xc1, 0xea, 0xa4, 0x35, 818 0x8d, 0x34, 0x8d, 0x6d, 0x7e, 0xb8, 0x82, 0xa3, 0x9f, 0x01, 0x16, 0x8d, 0x50, 0xfd, 0x96, 0x71, 819 0xf6, 0xd5, 0x06, 0x15, 0x08, 0xee, 0x2d, 0xd0, 0x0f, 0xb8, 0x96, 0x73, 0x5c, 0x73, 0xe7, 0xe5, 820 0x70, 0xe5, 0x9c, 0x1a, 0x5d, 0x85, 0xad, 0x17, 0x74, 0xee, 0x0a, 0x52, 0x2e, 0xd1, 0x31, 0xb4, 821 0x66, 0x24, 0x2d, 0x6c, 0x1d, 0x7a, 0xc3, 0xcf, 0x5e, 0x19, 0xdc, 0x36, 0x3f, 0x70, 0xcd, 0x5f, 822 0x06, 0xc6, 0x16, 0xff, 0x65, 0xf3, 0x6e, 0xc3, 0xff, 0xbb, 0x01, 0xfb, 0x67, 0x8f, 0x8a, 0xf6, 823 0xa1, 0x39, 0x1e, 0xb9, 0x80, 0xcd, 0xf1, 0x08, 0xf5, 0xa1, 0x9d, 0x50, 0x92, 0xea, 0x64, 0x6e, 824 0x22, 0x76, 0x70, 0xb5, 0x45, 0xb7, 0x00, 0xd9, 0x65, 0x18, 0x53, 0x15, 0x49, 0x96, 0x97, 0x34, 825 0x77, 0xd5, 0x7f, 0xdb, 0x6a, 0x46, 0x4b, 0x05, 0x3a, 0x85, 0x5e, 0xf2, 0x32, 0x4c, 0x45, 0x44, 826 0x52, 0xa6, 0xe7, 0xfd, 0x6d, 0x93, 0x7e, 0xb0, 0x5e, 0xed, 0x7e, 0x70, 0x28, 0x0c, 0xc9, 0xcb, 827 0x6a, 0xed, 0x07, 0x65, 0xee, 0x75, 0x2d, 0x7a, 0x1f, 0x20, 0x8f, 0x58, 0x38, 0x29, 0x54, 0xc8, 828 0x62, 0x77, 0x86, 0x4e, 0x1e, 0xb1, 0xfb, 0x85, 0x1a, 0xc7, 0xfe, 0x00, 0xf6, 0x31, 0x55, 0x54, 829 0xce, 0xa8, 0x23, 0x3a, 0xfa, 0x00, 0x1c, 0x4b, 0x42, 0x16, 0x2b, 0xc3, 0xe7, 0x2e, 0xee, 0x5a, 830 0xc9, 0x38, 0x56, 0x7e, 0x0a, 0x57, 0x16, 0x00, 0x77, 0x07, 0x9e, 0xc2, 0x5e, 0x24, 0xb8, 0x26, 831 0x8c, 0x53, 0x19, 0x4a, 0xaa, 0x4c, 0x90, 0xde, 0xf0, 0xf3, 0x55, 0xc7, 0x38, 0xaa, 0x40, 0xd6, 832 0xa1, 0x99, 0x08, 0x78, 0x37, 0xaa, 0x49, 0xfd, 0x3f, 0x9b, 0x70, 0x70, 0x99, 0x19, 0xc2, 0xb0, 833 0x4d, 0xf9, 0x4c, 0xb9, 0xfb, 0xf6, 0xcd, 0xeb, 0x84, 0x0a, 0x1e, 0xf0, 0x99, 0x23, 0x9c, 0xf1, 834 0x85, 0xbe, 0x86, 0x9d, 0x4c, 0x14, 0x5c, 0xab, 0x7e, 0xd3, 0x78, 0xfd, 0x68, 0x95, 0xd7, 0x1f, 835 0x4b, 0x6b, 0xec, 0x40, 0x68, 0xb4, 0xbc, 0x50, 0x5b, 0x06, 0xff, 0xf1, 0x7a, 0x7d, 0x7c, 0x9c, 836 0xd3, 0x68, 0x71, 0x99, 0xbc, 0x2f, 0xa0, 0xbb, 0xc8, 0xeb, 0x12, 0xa6, 0x1f, 0xd4, 0x99, 0xde, 837 0xad, 0xd3, 0xf6, 0x17, 0x68, 0x99, 0x7c, 0xd0, 0x7b, 0xd0, 0xd5, 0x44, 0xbd, 0x08, 0x73, 0xa2, 838 0x93, 0xaa, 0xdf, 0xa5, 0xe0, 0x11, 0xd1, 0x49, 0xa9, 0x4c, 0x84, 0xd2, 0x56, 0x69, 0x7d, 0x74, 839 0x4a, 0x41, 0xa5, 0x94, 0x94, 0xc4, 0xa1, 0xe0, 0xe9, 0xdc, 0x70, 0xb6, 0x83, 0x3b, 0xa5, 0xe0, 840 0x94, 0xa7, 0x73, 0x3f, 0x01, 0x58, 0xe6, 0xfb, 0x06, 0x41, 0x0e, 0xa1, 0x97, 0x53, 0x99, 0x31, 841 0xa5, 0x98, 0xe0, 0xca, 0x5d, 0x8d, 0xba, 0xc8, 0x7f, 0x06, 0xbb, 0x8f, 0xcb, 0x79, 0x5c, 0x31, 842 0xf2, 0x3b, 0xb8, 0x16, 0x89, 0x34, 0xa5, 0x51, 0xd9, 0xb5, 0x90, 0x71, 0x5d, 0x76, 0x30, 0x75, 843 0x2c, 0x7b, 0x37, 0xb0, 0x8f, 0x4b, 0x50, 0x3d, 0x2e, 0xc1, 0xc8, 0x3d, 0x2e, 0x18, 0x2d, 0x51, 844 0x63, 0x07, 0xf2, 0x9f, 0xc2, 0x9e, 0xf3, 0xed, 0xc8, 0x7b, 0x02, 0x3b, 0x66, 0x72, 0x57, 0x54, 845 0xba, 0xbd, 0xc1, 0xe0, 0xb2, 0x9e, 0x1c, 0xde, 0xff, 0xab, 0x09, 0x57, 0xcf, 0x2b, 0x5f, 0x39, 846 0xbf, 0x11, 0x6c, 0xd7, 0x06, 0xb7, 0x59, 0x97, 0xb2, 0xda, 0xac, 0x36, 0x6b, 0xf4, 0x1c, 0xf6, 847 0x19, 0x57, 0x9a, 0xf0, 0x88, 0x86, 0xe6, 0x91, 0x72, 0xc3, 0xfa, 0x68, 0xd3, 0x34, 0x83, 0xb1, 848 0x73, 0x63, 0x76, 0x96, 0xf6, 0x7b, 0xac, 0x2e, 0xf3, 0x32, 0x40, 0x17, 0x8d, 0x2e, 0xe1, 0xe0, 849 0xbd, 0xb3, 0xd3, 0x76, 0xcd, 0xc7, 0xce, 0x16, 0xab, 0x46, 0xd8, 0x7f, 0x1a, 0xd5, 0x53, 0x67, 850 0x4b, 0xf5, 0x3d, 0xb4, 0x55, 0x91, 0x65, 0x44, 0xce, 0x5d, 0x6b, 0xd7, 0x1e, 0xe3, 0x25, 0xfe, 851 0xa7, 0xd2, 0x2f, 0xae, 0x3c, 0xa0, 0x13, 0x68, 0xd9, 0x72, 0xd9, 0x1c, 0x87, 0x9b, 0xb8, 0x3a, 852 0x9d, 0x3c, 0xa7, 0x91, 0xc6, 0xd6, 0x01, 0xba, 0x0b, 0xdd, 0xc5, 0xff, 0x8c, 0x69, 0x4d, 0x6f, 853 0xe8, 0x5d, 0xe0, 0xdc, 0x93, 0xca, 0x02, 0x2f, 0x8d, 0x87, 0xff, 0x36, 0x61, 0xd7, 0x1e, 0xf0, 854 0x91, 0x09, 0x86, 0x7e, 0x87, 0x5e, 0xed, 0x1f, 0x02, 0x0d, 0x57, 0x15, 0xee, 0xe2, 0x6f, 0x88, 855 0x77, 0x67, 0x23, 0x8c, 0xe5, 0xb8, 0xff, 0xd6, 0xed, 0x06, 0x4a, 0xa1, 0xed, 0xe6, 0x36, 0x5a, 856 0xf9, 0xbe, 0x9c, 0x7d, 0x11, 0xbc, 0xc1, 0xda, 0xf6, 0x55, 0x3c, 0x94, 0x40, 0xcb, 0x36, 0xf5, 857 0xd3, 0x55, 0xd8, 0xfa, 0x4d, 0xf7, 0x6e, 0xad, 0x69, 0xbd, 0x3c, 0xd7, 0xfd, 0xf6, 0xb3, 0x96, 858 0xed, 0xc2, 0x8e, 0xf9, 0xdc, 0xf9, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x12, 0xb9, 0x76, 0xd8, 0xd1, 859 0x0a, 0x00, 0x00, 860 } 861 862 // Reference imports to suppress errors if they are not otherwise used. 863 var _ context.Context 864 var _ grpc.ClientConnInterface 865 866 // This is a compile-time assertion to ensure that this generated file 867 // is compatible with the grpc package it is being compiled against. 868 const _ = grpc.SupportPackageIsVersion6 869 870 // DevicePluginClient is the client API for DevicePlugin service. 871 // 872 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 873 type DevicePluginClient interface { 874 // Fingerprint allows the device plugin to return a set of 875 // detected devices and provide a mechanism to update the state of 876 // the device. 877 Fingerprint(ctx context.Context, in *FingerprintRequest, opts ...grpc.CallOption) (DevicePlugin_FingerprintClient, error) 878 // Reserve is called by the client before starting an allocation 879 // that requires access to the plugin’s devices. The plugin can use 880 // this to run any setup steps and provides the mounting details to 881 // the Nomad client 882 Reserve(ctx context.Context, in *ReserveRequest, opts ...grpc.CallOption) (*ReserveResponse, error) 883 // Stats returns a stream of device statistics. 884 Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (DevicePlugin_StatsClient, error) 885 } 886 887 type devicePluginClient struct { 888 cc grpc.ClientConnInterface 889 } 890 891 func NewDevicePluginClient(cc grpc.ClientConnInterface) DevicePluginClient { 892 return &devicePluginClient{cc} 893 } 894 895 func (c *devicePluginClient) Fingerprint(ctx context.Context, in *FingerprintRequest, opts ...grpc.CallOption) (DevicePlugin_FingerprintClient, error) { 896 stream, err := c.cc.NewStream(ctx, &_DevicePlugin_serviceDesc.Streams[0], "/hashicorp.nomad.plugins.device.DevicePlugin/Fingerprint", opts...) 897 if err != nil { 898 return nil, err 899 } 900 x := &devicePluginFingerprintClient{stream} 901 if err := x.ClientStream.SendMsg(in); err != nil { 902 return nil, err 903 } 904 if err := x.ClientStream.CloseSend(); err != nil { 905 return nil, err 906 } 907 return x, nil 908 } 909 910 type DevicePlugin_FingerprintClient interface { 911 Recv() (*FingerprintResponse, error) 912 grpc.ClientStream 913 } 914 915 type devicePluginFingerprintClient struct { 916 grpc.ClientStream 917 } 918 919 func (x *devicePluginFingerprintClient) Recv() (*FingerprintResponse, error) { 920 m := new(FingerprintResponse) 921 if err := x.ClientStream.RecvMsg(m); err != nil { 922 return nil, err 923 } 924 return m, nil 925 } 926 927 func (c *devicePluginClient) Reserve(ctx context.Context, in *ReserveRequest, opts ...grpc.CallOption) (*ReserveResponse, error) { 928 out := new(ReserveResponse) 929 err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.device.DevicePlugin/Reserve", in, out, opts...) 930 if err != nil { 931 return nil, err 932 } 933 return out, nil 934 } 935 936 func (c *devicePluginClient) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (DevicePlugin_StatsClient, error) { 937 stream, err := c.cc.NewStream(ctx, &_DevicePlugin_serviceDesc.Streams[1], "/hashicorp.nomad.plugins.device.DevicePlugin/Stats", opts...) 938 if err != nil { 939 return nil, err 940 } 941 x := &devicePluginStatsClient{stream} 942 if err := x.ClientStream.SendMsg(in); err != nil { 943 return nil, err 944 } 945 if err := x.ClientStream.CloseSend(); err != nil { 946 return nil, err 947 } 948 return x, nil 949 } 950 951 type DevicePlugin_StatsClient interface { 952 Recv() (*StatsResponse, error) 953 grpc.ClientStream 954 } 955 956 type devicePluginStatsClient struct { 957 grpc.ClientStream 958 } 959 960 func (x *devicePluginStatsClient) Recv() (*StatsResponse, error) { 961 m := new(StatsResponse) 962 if err := x.ClientStream.RecvMsg(m); err != nil { 963 return nil, err 964 } 965 return m, nil 966 } 967 968 // DevicePluginServer is the server API for DevicePlugin service. 969 type DevicePluginServer interface { 970 // Fingerprint allows the device plugin to return a set of 971 // detected devices and provide a mechanism to update the state of 972 // the device. 973 Fingerprint(*FingerprintRequest, DevicePlugin_FingerprintServer) error 974 // Reserve is called by the client before starting an allocation 975 // that requires access to the plugin’s devices. The plugin can use 976 // this to run any setup steps and provides the mounting details to 977 // the Nomad client 978 Reserve(context.Context, *ReserveRequest) (*ReserveResponse, error) 979 // Stats returns a stream of device statistics. 980 Stats(*StatsRequest, DevicePlugin_StatsServer) error 981 } 982 983 // UnimplementedDevicePluginServer can be embedded to have forward compatible implementations. 984 type UnimplementedDevicePluginServer struct { 985 } 986 987 func (*UnimplementedDevicePluginServer) Fingerprint(req *FingerprintRequest, srv DevicePlugin_FingerprintServer) error { 988 return status.Errorf(codes.Unimplemented, "method Fingerprint not implemented") 989 } 990 func (*UnimplementedDevicePluginServer) Reserve(ctx context.Context, req *ReserveRequest) (*ReserveResponse, error) { 991 return nil, status.Errorf(codes.Unimplemented, "method Reserve not implemented") 992 } 993 func (*UnimplementedDevicePluginServer) Stats(req *StatsRequest, srv DevicePlugin_StatsServer) error { 994 return status.Errorf(codes.Unimplemented, "method Stats not implemented") 995 } 996 997 func RegisterDevicePluginServer(s *grpc.Server, srv DevicePluginServer) { 998 s.RegisterService(&_DevicePlugin_serviceDesc, srv) 999 } 1000 1001 func _DevicePlugin_Fingerprint_Handler(srv interface{}, stream grpc.ServerStream) error { 1002 m := new(FingerprintRequest) 1003 if err := stream.RecvMsg(m); err != nil { 1004 return err 1005 } 1006 return srv.(DevicePluginServer).Fingerprint(m, &devicePluginFingerprintServer{stream}) 1007 } 1008 1009 type DevicePlugin_FingerprintServer interface { 1010 Send(*FingerprintResponse) error 1011 grpc.ServerStream 1012 } 1013 1014 type devicePluginFingerprintServer struct { 1015 grpc.ServerStream 1016 } 1017 1018 func (x *devicePluginFingerprintServer) Send(m *FingerprintResponse) error { 1019 return x.ServerStream.SendMsg(m) 1020 } 1021 1022 func _DevicePlugin_Reserve_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1023 in := new(ReserveRequest) 1024 if err := dec(in); err != nil { 1025 return nil, err 1026 } 1027 if interceptor == nil { 1028 return srv.(DevicePluginServer).Reserve(ctx, in) 1029 } 1030 info := &grpc.UnaryServerInfo{ 1031 Server: srv, 1032 FullMethod: "/hashicorp.nomad.plugins.device.DevicePlugin/Reserve", 1033 } 1034 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1035 return srv.(DevicePluginServer).Reserve(ctx, req.(*ReserveRequest)) 1036 } 1037 return interceptor(ctx, in, info, handler) 1038 } 1039 1040 func _DevicePlugin_Stats_Handler(srv interface{}, stream grpc.ServerStream) error { 1041 m := new(StatsRequest) 1042 if err := stream.RecvMsg(m); err != nil { 1043 return err 1044 } 1045 return srv.(DevicePluginServer).Stats(m, &devicePluginStatsServer{stream}) 1046 } 1047 1048 type DevicePlugin_StatsServer interface { 1049 Send(*StatsResponse) error 1050 grpc.ServerStream 1051 } 1052 1053 type devicePluginStatsServer struct { 1054 grpc.ServerStream 1055 } 1056 1057 func (x *devicePluginStatsServer) Send(m *StatsResponse) error { 1058 return x.ServerStream.SendMsg(m) 1059 } 1060 1061 var _DevicePlugin_serviceDesc = grpc.ServiceDesc{ 1062 ServiceName: "hashicorp.nomad.plugins.device.DevicePlugin", 1063 HandlerType: (*DevicePluginServer)(nil), 1064 Methods: []grpc.MethodDesc{ 1065 { 1066 MethodName: "Reserve", 1067 Handler: _DevicePlugin_Reserve_Handler, 1068 }, 1069 }, 1070 Streams: []grpc.StreamDesc{ 1071 { 1072 StreamName: "Fingerprint", 1073 Handler: _DevicePlugin_Fingerprint_Handler, 1074 ServerStreams: true, 1075 }, 1076 { 1077 StreamName: "Stats", 1078 Handler: _DevicePlugin_Stats_Handler, 1079 ServerStreams: true, 1080 }, 1081 }, 1082 Metadata: "plugins/device/proto/device.proto", 1083 }